Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Cooking soa


Published on

Published in: Technology, Business
  • Be the first to comment

Cooking soa

  1. 1. Cooking SOA Aleksei Kornev
  2. 2. 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.
  3. 3. Pros & Cons + + Modularity + Flexibility + Ability to scale - - Difficult development (integration, debug, etc) - Difficult deployment - Difficult support
  4. 4. Pros & Cons Rule#1 Think twice before you choose SOA
  5. 5. Service ingredients Communication layer Business logic layer Operation layer
  6. 6. Communication layer
  7. 7. Communication layer ● Elastic and reliable discovery - should handle nodes brought up and shut 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.)
  8. 8. Communication layer Talkbits architecture
  9. 9. Communication layer Rule#2 Don’t choose Thrift, Protobuff, etc if you are not going to have services on different languages
  10. 10. Business logic layer
  11. 11. Business logic layer Talkbits service architecture
  12. 12. Communication layer
  13. 13. Business logic layer Rule#3 Make services corpuscular!
  14. 14. Business logic layer Rule#4 If you develop SOA application from scratch implement features not services!
  15. 15. Operation layer
  16. 16. Operation layer Rule#5 Before develop your first services think how you are going lunch, configure, monitor, deploy services.
  17. 17. 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
  18. 18. QA Aleksei Kornev