ORPP logo
Image from Google Jackets

Essentials of Microservices Architecture : Paradigms, Applications, and Techniques.

By: Contributor(s): Material type: TextTextPublisher: Milton : Taylor & Francis Group, 2019Copyright date: ©2020Edition: 1st edDescription: 1 online resource (315 pages)Content type:
  • text
Media type:
  • computer
Carrier type:
  • online resource
ISBN:
  • 9781000617566
Subject(s): Genre/Form: Additional physical formats: Print version:: Essentials of Microservices ArchitectureDDC classification:
  • 005.3
LOC classification:
  • QA76.76.A65 .S875 2020
Online resources:
Contents:
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.
Summary: 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.
Tags from this library: No tags from this library for this title. Log in to add tags.
Star ratings
    Average rating: 0.0 (0 votes)
No physical items for this record

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.

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.

Description based on publisher supplied metadata and other sources.

Electronic reproduction. Ann Arbor, Michigan : ProQuest Ebook Central, 2024. Available via World Wide Web. Access may be limited to ProQuest Ebook Central affiliated libraries.

There are no comments on this title.

to post a comment.

© 2024 Resource Centre. All rights reserved.