cooking soa
DESCRIPTION
TRANSCRIPT
![Page 1: Cooking soa](https://reader033.vdocuments.us/reader033/viewer/2022050921/55381b2c550346b82d8b473c/html5/thumbnails/1.jpg)
Cooking SOAAleksei Kornev
![Page 2: Cooking soa](https://reader033.vdocuments.us/reader033/viewer/2022050921/55381b2c550346b82d8b473c/html5/thumbnails/2.jpg)
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.
![Page 3: Cooking soa](https://reader033.vdocuments.us/reader033/viewer/2022050921/55381b2c550346b82d8b473c/html5/thumbnails/3.jpg)
Pros & Cons
++ Modularity+ Flexibility+ Ability to scale
-- Difficult development(integration, debug, etc)- Difficult deployment- Difficult support
![Page 4: Cooking soa](https://reader033.vdocuments.us/reader033/viewer/2022050921/55381b2c550346b82d8b473c/html5/thumbnails/4.jpg)
Pros & Cons
Rule#1Think twice before you
choose SOA
![Page 5: Cooking soa](https://reader033.vdocuments.us/reader033/viewer/2022050921/55381b2c550346b82d8b473c/html5/thumbnails/5.jpg)
Service ingredients
Communication layer
Business logic layer
Operation layer
![Page 6: Cooking soa](https://reader033.vdocuments.us/reader033/viewer/2022050921/55381b2c550346b82d8b473c/html5/thumbnails/6.jpg)
Communication layer
![Page 7: Cooking soa](https://reader033.vdocuments.us/reader033/viewer/2022050921/55381b2c550346b82d8b473c/html5/thumbnails/7.jpg)
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.)
![Page 8: Cooking soa](https://reader033.vdocuments.us/reader033/viewer/2022050921/55381b2c550346b82d8b473c/html5/thumbnails/8.jpg)
Communication layer
Talkbits architecture
![Page 9: Cooking soa](https://reader033.vdocuments.us/reader033/viewer/2022050921/55381b2c550346b82d8b473c/html5/thumbnails/9.jpg)
Communication layer
Rule#2Don’t choose Thrift, Protobuff, etc if you are not going to have services on
different languages
![Page 10: Cooking soa](https://reader033.vdocuments.us/reader033/viewer/2022050921/55381b2c550346b82d8b473c/html5/thumbnails/10.jpg)
Business logic layer
![Page 11: Cooking soa](https://reader033.vdocuments.us/reader033/viewer/2022050921/55381b2c550346b82d8b473c/html5/thumbnails/11.jpg)
Business logic layer
Talkbits service architecture
![Page 12: Cooking soa](https://reader033.vdocuments.us/reader033/viewer/2022050921/55381b2c550346b82d8b473c/html5/thumbnails/12.jpg)
Communication layer
![Page 13: Cooking soa](https://reader033.vdocuments.us/reader033/viewer/2022050921/55381b2c550346b82d8b473c/html5/thumbnails/13.jpg)
Business logic layer
Rule#3Make services corpuscular!
![Page 14: Cooking soa](https://reader033.vdocuments.us/reader033/viewer/2022050921/55381b2c550346b82d8b473c/html5/thumbnails/14.jpg)
Business logic layer
Rule#4If you develop SOA application from
scratch implement features not services!
![Page 15: Cooking soa](https://reader033.vdocuments.us/reader033/viewer/2022050921/55381b2c550346b82d8b473c/html5/thumbnails/15.jpg)
Operation layer
![Page 16: Cooking soa](https://reader033.vdocuments.us/reader033/viewer/2022050921/55381b2c550346b82d8b473c/html5/thumbnails/16.jpg)
Operation layer
Rule#5Before develop your first services
think how you are going lunch, configure, monitor, deploy services.
![Page 17: Cooking soa](https://reader033.vdocuments.us/reader033/viewer/2022050921/55381b2c550346b82d8b473c/html5/thumbnails/17.jpg)
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
![Page 18: Cooking soa](https://reader033.vdocuments.us/reader033/viewer/2022050921/55381b2c550346b82d8b473c/html5/thumbnails/18.jpg)
QAAleksei [email protected]://www.slideshare.net/alekseikornev1/