SOA, Microservices and Service Orientation: The Samurai Way OGhTech Experience 17 Sandra Flores @sandyfloresmx 武 士道
Introduction SOA has been in action for a long time, even though many people are not completely convinced about this architectural style, over the years it has proven to be mature and reliable, but is it the best way to build Service Oriented Solutions? Microservices, in the other hand, has attracted the attention of many of us in recent years, it seems that more and more people want to join this movement. However, there is still much confusion out there. Some people say Microservices are just well-designed SOA Services. What do you think about it? Let s dig deeper into the topic and try to find out some answers that are still in the air. SOA & Microservices
About Me Mexican Software Engineer. Oracle ACE Associate. Blogger and Tech Community Member. Working as an independent SOA and Software Architect. Sandra Flores SOA Architect Trainer.
4 The Samurai Way Bushidō Code Bushidō ( 武 士道?, the way of the warrior ) is a Japanese term for a way of life following the code of principles which the Samurai (Bushi) were required to master in order to become a consummate diplomat. Under the bushidō ideal, if a Samurai failed to uphold his honor he could only regain it by performing seppuku (ritual suicide).
Agenda 5 Service Oriented Architecture Brief definition What SOA is for? Microservices Brief definition Martin Fowler and soapatterns.org point of view Service Orientation Principles Samurai style Do you know the 8 principles of SO? Oracle and Microservices What Oracle offers to us? A clue It s raining Microservices Comparing SOA and Microservices Which one will you choose? A real business case analyzed from both approaches
6 Service Oriented Architecture
Service Oriented Architecture 7 Definition Architectural Model to build distributed Service Oriented Solutions Service Types SOAP Services REST Services Components Services SOA uses Services as the basic building blocks by which solution logic is represented Service Composition There is a service initiator which orchestrates the invocation to the other participants SOA SOA supports Service Orientation in the realization of the strategic goals associated with Service- Oriented computing.
Service Oriented Architecture 8 SOA is more than just an Integration Platform
Service Oriented Architecture 9 What is SOA for? SOA was mainly aimed to move away from monolithic applications to Service Oriented Solutions, where the agile and effective work is the promise, by dividing the monolith into more independent reusable Services. While progressive exposure of business capabilities to more audiences is the trend of organizations expansion, SOA can help us to create a more centralized and governed enterprise solution to provide a growing exposure of business.
10 Microservices
Microservices 11 Brief definition Buzz words A way to build fine-grained, more flexible, replaceable and independently deployable services. Mainly aimed to move away from monolithic application (or service) deployments to automated, efficient and smaller deployment units in Service Oriented Solutions.
Microservices: Main purpose 12 https://martinfowler.com/articles/microservices.html
Microservices Architecture: Martin Fowler 13 Componentization via Services Organized around Business Capabilities Products not Projects Smart endpoints and dumb pipes Decentralized Governance Decentralized Data Management Infrastructure Automation Design for failure Evolutionary Design https://martinfowler.com/articles/microservices.html
Microservices: soapatterns.org 14 01 02 Micro Task Abstraction (Erl) Grouping non-agnostic logic with specialized processing and deployment requirements together with non-agnostic logic that does not have such requirements can compromise the former's ability to consistently fulfill its requirements. Microservice Deployment (Merson) Services and other components of a software solution are packaged together in a monolithic deployment bundle. Deploying a new version of a service that is part of the solution can require redeploying the entire solution. Also, there is less flexibility to configure service-specific scalability, availability, persistence, monitoring, and security logic. Solution Individual units of non-agnostic logic with specialized processing and deployment requirements are separated using the microservice model and abstracted into a microservice layer in which there is the architectural freedom to tailor environments in support of specialized service processing and deployment requirements. Solution Each service is treated as an independent product and is deployed is an isolated package that contributes to service autonomy. 03 Containerization (Stoffers) Services deployed on bare metal or virtual servers can impose a significant footprint. Virtualization improves portability but introduces a layer of intermediate processing that can further increase the footprint. Monolithic solution deployments can lead to widespread reduced performance and availability when any one service or solution component suffers an outage or a runtime exception. Solution Services are deployed independently, or together with composed services, as autonomous units that are packaged into independently manageable and autonomous container images, each of which includes the services underlying system dependencies. Tooling is provided to manage the building, deploying and operating of the containers.
Microservices & SOA & Service Orientation 15 Service Orientation SOA SOA Microservices Microservices
Microservice: Characteristics 16 Polyglot Autonomous Loosely Coupled Automated Small Simple Task Resilient
New is always better! Right? igital Transformation
Microservices: Disrupting the disruption 18
Microservices: The iceberg effect 19 People try to copy Netflix, but they can only copy what they see. They copy the results, not the process. Adrian Cockcroft Former Netflix Chief Cloud Architect
20 Service Orientation Principles
Service Orientation Design Principles 21 Service Reusability Design principles are our guideline for identifying and classifying services during the analysis and design stages in a Service Oriented Solution. Service Loose Coupling Service Statelessness Standardized Service Contract Service Autonomy Service Composability Service Abstraction Service Discoverability
SO Principles: SOA more related 22 Service Reusability Service Loose Coupling Service Statelessness Standardized Service Contract Service Autonomy Service Composability Service Abstraction Service Discoverability
SO Principles: Microservices more related 23 Service Reusability Service Loose Coupling Service Statelessness Standardized Service Contract Service Autonomy Service Composability Service Abstraction Service Discoverability
24 ORACLE Oracle and Microservices
Oracle Application Container Cloud Service 25 Polyglot Application Runtime Platform A pre-configured environment for Java, Node.js, and PHP applications. Java SE advanced features such as Java Flight Recorder, Java Mission Control, advanced memory management, and ongoing and timely security updates. Open platform that supports all Java frameworks and containers such as Spring, Play, Tomcat, and Jersey. Support for Java Virtual Machine (JVM) based languages such as JRuby. You can run any language that uses the Java Virtual Machine on this service. Web-based user interface and REST API (Health Monitoring, Application Life Cycle, Application Deployment, Application Instance Life Cycle, Logs and Recordings. http://docs.oracle.com/en/cloud/paas/app-container-cloud/csjse/index.html
Oracle Developer Cloud Service 26 GIT Integration GIT source code control system repositories and integration with the popular GitHub service. Collaboration A team wiki and a set of collaboration tools to support the documentation needs of developer projects. IDE IDE support with a choice of Java IDEs popular with enterprise developers including JDeveloper, Eclipse, and NetBeans. Build Support for dependency management with the Java Maven build automation tool. Continous Integration Build integration using the Hudson continuous integration system. DevOps Collaboration tools and issue tracking such as increasingly required by modern application development and DevOps practices. https://www.oracle.com/webfolder/s/delivery_production/docs/fy16h1/doc18/idc-technology-spotlight.pdf
27 SOA Orchestration Microservices Choreography Business Case
Medication Delivery Process 28 Products Search 2 Deliver Products 5 1 6 Incoming Call 90 Pharmacies + 10 inventory stock warehouses distributed across the country to supply orders. 35 in Mexico City + 2 warehouses. Each of one has it s own inventory stock system made with.net. The complete order is delivered to the customer location. Payments are accepted if it has n been payed yet. Confirm Delivery Callcenter operators using a Siebel CRM based system receive 24x7 customer calls asking for several medication all over the country. Submit Order Collect Products 3 4 The delivery person using the mobile device confirms the delivery and the mobile app spread it to all the pharmacies and warehouses involved in the order. ACK The application must spread the order submission to all the pharmacies and warehouses involved to complete the order. A supply delivery person receives order details in a mobile device to collect all the products from one or more places.
Medication Delivery Process Systems 29 Siebel CRM Legacy Supports only SOAP Services Delivery App Mobile application Supports REST and SOAP Services Pharmacy Pharmacy point of sale and stock management system.net made Warehouse Stock warehouse management system.net Made
Medication Delivery Process: Services 30 Products Search Service It locates the nearest pharmacy to the customer The inventory search goes through the pharmacies or warehouses from the nearest to the farthest until the products are completed. A list with products and locations details is returned. Submit Order Service Receives the order and pharmacies/warehouses to spread it on each one of them. It sends a notification to a logistics mobile app which chooses a delivery person to pick up the products at pharmacies and warehouses and then deliver the complete order to the customer. Order Tracking Service For each step the delivery person takes on his way to pick up and deliver the order to the customer, an update in order status must be sent from mobile app to each pharmacy, warehouse, and to Siebel CRM. Spatial Service Returns a list of pharmacies ordered by the proximity of a given location (customer location). Pharmacy Order Service Receives the products details and creates a new sales order in specific pharmacies. Pharmacy Order Update Service Receives the order status updated in specific pharmacies. Pharmacy Inventory Service Returns a list of inventory of the requested products in specific pharmacies. Warehouse Order Service Receives the products details and creates a new sales order in specific warehouses. Warehouse Order Update Service Receives the order status updated in specific warehouses. Warehouse Inventory Service Returns a list of inventory of the requested products in an specific warehouse. Delivery Notification Service Sends a notification to a logistics mobile app indicating order details. Siebel Order Update Service Receives the order status updated in Siebel.
31 Medication Delivery Process: SOA Perspective
Medication Delivery Process SOA Services 32 Search Products Service Submit Order Service Order Tracking Service Orchestrated Task Services Spatial Service Pharmacy Service Warehouse Service Delivery Service Siebel Order Service Entity Services Utility Services
33 Medication Delivery Process: Microservices Perspective
Medication Delivery Process Systems 34 THIS IS NOT A MONOLITHIC APPLICATION Siebel CRM Legacy Supports only SOAP Services Delivery App Mobile application Supports REST and SOAP Services Pharmacy Pharmacy point of sale and stock management system.net made Warehouse Stock warehouse management system.net Made
Medication Delivery Process SOA & Microservices 35 Search Products Service Submit Order Service Order Tracking Service Orchestrated Task Services Spatial Service Pharmacy Service Warehouse Service Delivery Service Siebel Order Service Entity Services Utility Services
36 Microservices are not for everything, nor is SOA.
Thank You! 37 Want to find me? @sandyfloresmx /sandrafloresmx desarrolloconsoa.blogspot.mx Any Questions?