TY - BOOK AU - Surianarayanan,Chellammal AU - Ganapathy,Gopinath AU - Pethuru,Raj TI - Essentials of Microservices Architecture: Paradigms, Applications, and Techniques SN - 9781000617566 AV - QA76.76.A65 .S875 2020 U1 - 005.3 PY - 2019/// CY - Milton PB - Taylor & Francis Group KW - Application software-Development KW - Electronic books N1 - Cover -- Half Title -- Title Page -- Copyright Page -- Table of Contents -- Foreword -- Preface -- Acknowledgments -- About the Authors -- 1: An Introduction to Service-Oriented Architecture -- 1.1 Common Object Request Broker Architecture (CORBA) -- 1.2 Distributed Component Object Model (DCOM) -- 1.3 Remote Method Invocation -- 1.4 Prerequisites for CORBA, DCOM, and RMI -- 1.5 Typical Use Cases and Confined Focuses of CORBA, DCOM, and RMI -- 1.6 Concept of Service-Oriented Architecture -- 1.7 Web Services -- 1.7.1 High-Level Architecture of Application to Application Interaction Using Web Services -- 1.7.2 Unique Capabilities of Web Services -- 1.7.3 Can Web Services Replace CORBA/DCOM/RMI? -- 1.7.4 Why Do We Need Web Services? -- 1.7.5 Typical Use Cases of Web Services -- 1.7.6 Distinction between Web Services and CORBA/DCOM/RMI -- 1.7.7 Why Have Web Services Become Obsolete? What Are the Issues with Web Services? Are We Still in Need of Yet Another Architecture to Meet Business Requirements? -- References -- 2: Demystifying MSA -- 2.1 Need for Microservices Architecture -- 2.2 Issues with Traditional Enterprise Applications -- 2.3 How Does MSA Handle the Issues with Monolithic Applications? -- 2.4 Capabilities, Features, and Benefits of MSA -- 2.5 Key Enablers for MSA -- 2.6 Drawbacks of MSA -- 2.7 Differences between SOA and MSA -- 2.8 Where Do SOA and MSA Fit into Business Enterprises? -- 2.9 Applicability of MSA in Contrast to SOA -- 2.9.1 Typical Use Cases of MSA -- 2.9.1.1 How Amazon Uses MSA and the Cloud -- 2.9.1.2 How Netflix Uses Microservices -- 2.9.1.3 How Capital One Uses Microservices -- 2.9.1.4 Microservices Are the Perfect Choice for Developing Cloud-Native/Optimized Applications -- 2.9.1.5 Microservices for E-Commerce Applications -- 2.9.1.6 Microservices for Developing Web Applications; 2.9.1.7 Microservices for CPU/RAM Intensive Parts of Applications -- 2.9.1.8 Applications Having Multiple Teams Working on the Same Product -- 2.9.1.9 Microservices as Enablers for Cloud Adoption -- 2.9.1.10 Identifying Microservices Use Cases from Classic SOA -- 2.10 Trade-Offs in MSA -- 2.10.1 Gain the Benefit of Strong Service Boundaries at the Cost of Distribution -- 2.10.2 Gain the Benefit of Individual Deployment at the Cost of Eventual Consistency -- 2.10.3 Avail Independent Deployment at the Cost of Operational Complexity -- 2.10.4 Avail the Benefit of Technology Diversity at the Cost of Interface Issues -- References -- 3: Communication Models for Microservices -- 3.1 Key Architectural Elements of MSA -- 3.2 Design Principles of Microservices -- 3.3 Prerequisites for Service Interaction/Communication -- 3.4 Communication Models for Microservices -- 3.5 Synchronous Communication -- 3.5.1 Representational State Transfer (REST) Architecture -- 3.5.2 REST and HTTP Methods for Synchronous Communication -- 3.5.3 Why Synchronous Communication Is Not Encouraged in Microservices? -- 3.6 Asynchronous Communication -- 3.7 Asynchronous Communication with Rabbit MQ Message Broker -- 3.7.1 AMQ Model -- 3.7.2 Advanced Message Queuing Protocol -- 3.7.2.1 AMQP Command Architecture -- 3.7.2.2 AMQP Transport Architecture -- 3.7.2.3 AMQP Client Architecture -- 3.7.3 Where to Use RabbitMQ -- 3.7.4 AMQP and JMS -- 3.8 Asynchronous Communication with an Apache Kafka Message Broker -- 3.8.1 Need for Apache Kafka (High Throughput Message Broker) -- 3.8.2 Comparing the Origin of Kafka with RabbitMQ -- 3.8.2.1 Primary Objectives of Kafka-High Scalability, Availability, and Throughput (The Concept of Partitions in Kafka) -- 3.8.3 Kafka Architecture -- 3.8.4 How Consumers Read Data from Kafka with Message Ordering? -- 3.8.5 Kafka and Message Producers; 3.8.6 Important Features of the Kafka Broker -- 3.8.7 Typical Use Cases of the Kafka Broker -- References -- 4: Designing APIs and Developing Middleware Platforms for Microservices -- 4.1 API Design Mechanisms and Middleware Platforms -- 4.2 WSDL and SOAP (Traditional API and Middleware Platform for Web Services) -- 4.2.1 Web Service Description Language -- 4.2.2 Simple Object Access Protocol -- 4.3 API Design and Middleware Platforms for Microservices -- 4.3.1 REST API -- 4.3.1.1 REST API Design Using a URL Template -- 4.3.1.2 The Need for REST API Standardization/Limitations with URL Template Design -- 4.3.2 Standard REST API Specifications -- 4.3.2.1 Open API Specification (Swagger) -- 4.3.2.2 REST API Modeling Language -- 4.3.2.3 API BluePrint -- 4.3.3 Apache Thrift API Design and Middleware Platform -- 4.3.3.1 Apache Thrift IDL and Code Generation -- 4.3.3.2 Thrift Layers of Communication -- 4.3.3.3 How to Use Thrift API and Tools -- 4.3.3.4 When to Use Thrift -- 4.3.4 Google Protocol Buffers (Protobuf, GPB) and Google RPC -- 4.3.4.1 Google Protobuf -- 4.3.4.2 Google RPC with Google Protobuf -- 4.4 Data Serialization Formats for Inter-Service Communication -- 4.4.1 XML -- 4.4.2 JavaScript Object Notation (JSON) -- 4.4.3 YAML Ain't Markup Language -- 4.4.4 Apache Avro -- References -- 5: Service Discovery and API Gateways -- 5.1 The Need for Dynamic Configuration for Microservices Discovery -- 5.2 Service Registry -- 5.3 Service Registration -- 5.4 Service Discovery -- 5.4.1 Client-Side Discovery -- 5.4.2 Server-Side Service Discovery -- 5.5 Service Discovery Tools -- 5.5.1 General Purpose Discovery Tools -- 5.5.2 Single-Purpose Service Registry Tools -- 5.6 API Gateway -- 5.6.1 The Need for an API Gateway (Single-Entry Point to MSA Applications) -- 5.6.2 Key Functions of the API Gateway -- 5.6.2.1 Creation of Client-Specific APIs at API Gateway; 5.6.2.2 Service Composition at the API Gateway -- 5.6.2.3 Security Implementation -- 5.6.2.4 Service Discovery and Routing with an API Gateway -- 5.6.2.5 Data Aggregation with an API Gateway -- 5.6.2.6 Data Format/Protocol Conversion at the API Gateway -- 5.6.2.7 Edge Functions at the API Gateway -- 5.6.2.8 API Gateway-Monitoring and Other Design Considerations -- 5.6.2.9 Open Source Tools for an API Gateway -- References -- 6: Service Orchestration and Choreography -- 6.1 Service Composition -- 6.2 Service Orchestration -- 6.2.1 Orchestration Languages -- 6.2.2 Service Orchestration in Detail (with BPEL) -- 6.2.3 Service Orchestration in Microservices -- 6.3 Service Choreography -- 6.3.1 Choreography Languages -- 6.4 The Need for Orchestration and Choreography Platforms for Microservices -- 6.4.1 Camunda -- 6.4.2 Zeebe -- 6.4.3 Event-Based Choreography Using Apache Kafka and Zeebe Workflow Engine Zeebe -- 6.4.4 RockScript -- 6.4.5 Conductor -- 6.4.6 JOLIE -- 6.4.7 Jexia -- References -- 7: Database Transactions in MSA -- 7.1 Database Transactions and ACID Properties -- 7.2 Distributed Transactions and Two-Phase-Commit Protocol (in Conventional Systems) -- 7.3 Nature of Databases and Database Access in MSA -- 7.3.1 Why Avoid ACID Transactions with 2PC in MSA? -- 7.3.2 BASE Transactions in MSA -- 7.3.2.1 How to Achieve the Basically Available Property in MSA -- 7.3.2.2 How the Consistency is Brought in MSA (Saga Pattern) -- References -- 8: Patterns for Microservices-Centric Applications -- 8.1 A Macro-Level View of Microservices Architecture -- 8.2 The Need for Patterns for Microservices Architecture -- 8.2.1 Decomposition Patterns -- 8.2.2 Composition Patterns -- 8.2.3 Database Patterns -- 8.2.4 Observability Patterns -- 8.2.5 Cross-Cutting Concern Patterns -- 8.2.6 Additional Database Architecture Patterns -- 8.2.7 Deployment Patterns; References -- 9: MSA Security and Migration -- 9.1 Basic Security Requirements -- 9.2 Pragmatic Architecture for Secure MSA -- 9.3 Security Mechanisms for MSA Applications -- 9.4 MSA Migration -- 9.4.1 The Advantages of MSA -- 9.4.2 Motivating Drivers for MSA Migration -- 9.4.3 Issues in MSA Migration -- 9.4.4 Migration Process Using Strangler Pattern -- 9.4.5 Disadvantages of MSA Migration -- 9.4.6 Candidate Applications for MSA Migration -- References -- 10: Platform Solutions for Microservices Architecture -- Introduction -- 10.1 Challenges in a MSA Approach/The Need for Microservices Platforms -- 10.2 Foundational Capabilities of Microservices Platforms -- 10.3 Classification of Microservices Platforms -- 10.3.1 Microservices Deployment Platforms -- 10.3.1.1 Overview of Kubernetes -- 10.3.2 Microservices Security Platform and Service Resiliency Platform -- 10.3.3 API Platforms -- 10.3.4 Microservices Development Platforms -- References -- Index N2 - The book explains the concepts behind microservices, discovery of microservices and how individual services can be combined to yield composite service(i.e., service composition) and techniques of service composition UR - https://ebookcentral.proquest.com/lib/orpp/detail.action?docID=5883406 ER -