Cooking soa
-
Upload
aleksei-kornev -
Category
Technology
-
view
378 -
download
1
description
Transcript of Cooking soa
Cooking SOAAleksei Kornev
What is SOA
Service-oriented architecture (SOA) is a software design and software architecture design pattern based on discrete pieces of software that provide application functionality as services, known as Service-orientation. A service is a self-contained logical representation of a repeatable function or activity.Services can be combined by other software applications that together, provide the complete functionality of a large software application. The purpose of SOA is to allow easy cooperation of a large number of computers that are connected over a network. Every computer can run an arbitrary number of services, and each service is built in a way that ensures that the service can exchange information with any other service within the reach of the network without human interaction and without the need to make changes to the underlying program itself.
Pros & Cons
++ Modularity+ Flexibility+ Ability to scale
-- Difficult development(integration, debug, etc)- Difficult deployment- Difficult support
Pros & Cons
Rule#1Think twice before you
choose SOA
Service ingredients
Communication layer
Business logic layer
Operation layer
Communication layer
Communication layer
● Elastic and reliable discovery - should handle nodes brought up andshut down transparently and not be a SPOF itself● Support for N-N topology of client and server instances● Disconnect detection and transparent reconnects● Fault tolerance - for example, by retries to remaining instances where
called instance goes down● Clients backoff built-in - i.e., clients should not overload servers when
load spikes - as far as possible● Configurable load distribution - i.e., which server instance to call for this
specific request● Configurable networking layer - keepalives & heartbeats, timeouts,
connection pools etc.)
Communication layer
Talkbits architecture
Communication layer
Rule#2Don’t choose Thrift, Protobuff, etc if you are not going to have services on
different languages
Business logic layer
Business logic layer
Talkbits service architecture
Communication layer
Business logic layer
Rule#3Make services corpuscular!
Business logic layer
Rule#4If you develop SOA application from
scratch implement features not services!
Operation layer
Operation layer
Rule#5Before develop your first services
think how you are going lunch, configure, monitor, deploy services.
Operation layer
Talkbits operation
Business logic
framework
demonization metrics logging finagle conf
● One way to configure service, log, metricks● One way to lunch service● One way to package and deploy
QAAleksei [email protected]://www.slideshare.net/alekseikornev1/