Preparing For a Future Microservices Journey Susanne Kaiser - - PowerPoint PPT Presentation
Preparing For a Future Microservices Journey Susanne Kaiser - - PowerPoint PPT Presentation
Preparing For a Future Microservices Journey Susanne Kaiser Independent Tech Consultant @suksr CTO at Just Software @JustSocialApps #VoxxedMicroservices @suksr #VoxxedMicroservices @suksr #VoxxedMicroservices @suksr Source:
@suksr #VoxxedMicroservices
@suksr #VoxxedMicroservices
@suksr #VoxxedMicroservices Source: http://www.thomasthwaites.com
@suksr #VoxxedMicroservices
@suksr #VoxxedMicroservices Source: http://www.thomasthwaites.com
@suksr #VoxxedMicroservices
@suksr #VoxxedMicroservices
Data Store
@suksr #VoxxedMicroservices
Hardware O/S Virtualization Container Runtime
@suksr #VoxxedMicroservices
API Hardware O/S Virtualization Container Runtime
@suksr #VoxxedMicroservices
API API API Service Discovery
- 1. Register
- 3. Connect
- 2. Discover
Hardware O/S Virtualization Container Runtime
@suksr #VoxxedMicroservices
API API API Service Discovery Load-Balancer Hardware O/S Virtualization Container Runtime
@suksr #VoxxedMicroservices
API API API Service Discovery Load-Balancer API Timeout-Handling Hardware O/S Virtualization Container Runtime
@suksr #VoxxedMicroservices
API API API Service Discovery Load-Balancer API Timeout-Handling Retries Hardware O/S Virtualization Container Runtime
@suksr #VoxxedMicroservices
API API API Service Discovery Load-Balancer API Timeout-Handling Retries Idempotency Hardware O/S Virtualization Container Runtime
@suksr #VoxxedMicroservices
API API API Service Discovery Load-Balancer API Timeout-Handling Retries Bulk- heads Idempotency Hardware O/S Virtualization Container Runtime
@suksr #VoxxedMicroservices
API API API Service Discovery Load-Balancer API Timeout-Handling Retries Bulk- Heads Circuit Breaker Idempotency Hardware O/S Virtualization Container Runtime
@suksr #VoxxedMicroservices
API API API Service Discovery Load-Balancer API Timeout-Handling Retries Bulk- heads Circuit Breaker Idempotency Message Broker Hardware O/S Virtualization Container Runtime
@suksr #VoxxedMicroservices
API API API Service Discovery Load-Balancer API Timeout-Handling Retries Bulk- heads Circuit Breaker Idempotency Message Broker API-Gateway Hardware O/S Virtualization Container Runtime
@suksr #VoxxedMicroservices
API API API Service Discovery Load-Balancer API Timeout-Handling Retries Bulk- heads Idempotency Message Broker API-Gateway Circuit Breaker Config-Mngmt. Hardware O/S Virtualization Container Runtime
@suksr #VoxxedMicroservices
API API API Service Discovery Load-Balancer API Timeout-Handling Retries Bulk- heads Idempotency Message Broker API-Gateway Circuit Breaker Config-Mngmt. Monitoring Log Aggreation Metrics Distributed Tracing Health Checks Hardware O/S Virtualization Container Runtime
@suksr #VoxxedMicroservices
API API API Service Discovery Load-Balancer API Timeout-Handling Retries Bulk- heads Idempotency Message Broker API-Gateway Circuit Breaker Config-Mngmt. Monitoring Log Aggreation Metrics Distributed Tracing Health Checks SCM
Checkout Test Build
CI/CD Pipeline
Deploy
Hardware O/S Virtualization Container Runtime
API API API Service Discovery Load-Balancer API Timeout-Handling Retries Bulk- heads Idempotency Message Broker API-Gateway Circuit Breaker Config-Mngmt. Monitoring Log Aggreation Metrics Distributed Tracing Health Checks SCM
Checkout Test Build
CI/CD Pipeline
Deploy
Hardware O/S Virtualization Container Runtime Backup Recovery
µService
@suksr #VoxxedMicroservices
Hardware Data Store API API-Gateway Service Discovery Load-Balancer Message Broker Timeout-Handling Retries Idempotency Bulkheads Circuit Breaker Config-Mngmt. Monitoring Log Aggreation Metrics Distributed Tracing Health Checks SCM O/S Virtualization Container Runtime
Checkout Test Build
CI/CD Pipeline
Deploy
µService Backup Recovery
@suksr #VoxxedMicroservices
Hardware Data Store API API-Gateway Service Discovery Load-Balancer Message Broker Timeout-Handling Retries Idempotency Bulkheads Circuit Breaker Configuration Monitoring Log Aggreation Metrics Distributed Tracing Health Checks SCM O/S Virtualization Container Runtime
Checkout Test Build
CI/CD Pipeline
Deploy
µService
Team
Structure Skillset Size
Strategy
New Features Timeline / Milestones
Legacy
Maintenance effort Runtime environment Backup Recovery
@suksr #VoxxedMicroservices
Source: http://www.thomasthwaites.com/folio5/wp-content/uploads/2010/10/Toaster_Project1-PhotoCredit-Daniel_Alexanderx630.jpg
@suksr #VoxxedMicroservices Source: http://www.thomasthwaites.com
How can a small team handle infrastructure complexities and deliver business value?
@suksr #VoxxedMicroservices
Business Domain Focus Visible Business Value
@suksr #VoxxedMicroservices
Build the things that differentiate you, offload the things that don’t.
Core Domain Distinguishes your organization competitively from all others Subdomain Subdomain @suksr #VoxxedMicroservices
Build the things that differentiate you Offload the things that don’t
@suksr #VoxxedMicroservices
Build the things that differentiate you Offload the things that don’t
@suksr #VoxxedMicroservices
Hardware O/S Virtualization Container Runtime
Managed Services
O/S Orchestration Data Store µService
Offload by getting common building blocks managed
Cloud Native
Managed by YOU Managed by Platform Hardware O/S Virtualization Container Runtime O/S Orchestration µService Container Runtime µService Service Discovery Load Balancer Config-Mngmt. Monitoring Log Aggreation Health Checks Recovery Scaling
w/ Container Orchestration
@suksr #VoxxedMicroservices
Cloud Native
Managed by YOU Managed by Platform Hardware O/S Virtualization Container Runtime O/S Orchestration µService Container Runtime µService Service Discovery Load Balancer Config-Mngmt. Monitoring Log Aggreation Health Checks Recovery Scaling
w/ Container Orchestration
Message Broker Data Store Backup API-Gateway
@suksr #VoxxedMicroservices
Kubernetes
Primitives
Container Runtime µService
Pod ReplicaSet Deployment StatefulSet Service Volume ConfigMap Secret PersistentVolumeClaim CronJob Job DaemonSet Replication Controller Ingress Horizontal Pod AutoScaler Endpoint + a lot more @suksr #VoxxedMicroservices
Cloud Native Citizen Principles
Based on Red Hat’s Whitepaper “Principles of container-based application design” by Bilgin Ibryam
Single Concern
Reusabilty Replacability @suksr #VoxxedMicroservices
Cloud Native Citizen Principles
Single Concern
Reusage Replacability
High Observability
Process Health Readiness Liveliness Metrics Tracing Logs Based on Red Hat’s Whitepaper “Principles of container-based application design” by Bilgin Ibryam @suksr #VoxxedMicroservices
Cloud Native Citizen Principles
Single Concern
Reusage Replacability
High Observability
Process Health Readiness Liveliness Metrics Tracing Logs
Life-Cycle Conformance
SIGTERM SIGKILL PreStop PostStart Based on Red Hat’s Whitepaper “Principles of container-based application design” by Bilgin Ibryam @suksr #VoxxedMicroservices
Cloud Native Citizen Principles
Single Concern
Reusage Replacability
High Observability
Process Health Readiness Liveliness Metrics Tracing Logs
Life-Cycle Conformance
SIGTERM SIGKILL PreStop PostStart
Image Immutability
Dev Test Prod Based on Red Hat’s Whitepaper “Principles of container-based application design” by Bilgin Ibryam @suksr #VoxxedMicroservices
Cloud Native Citizen Principles
Single Concern
Reusage Replacability
High Observability
Process Health Readiness Liveliness Metrics Tracing Logs
Life-Cycle Conformance
SIGTERM SIGKILL PreStop PostStart
Image Immutability
Dev Test Prod
Self-Containment
Build Time Configuration Storage Runtime Based on Red Hat’s Whitepaper “Principles of container-based application design” by Bilgin Ibryam @suksr #VoxxedMicroservices
Cloud Native Citizen Principles
Single Concern
Reusage Replacability
High Observability
Process Health Readiness Liveliness Metrics Tracing Logs
Life-Cycle Conformance
SIGTERM SIGKILL PreStop PostStart
Image Immutability
Dev Test Prod
Process Disposability
Start/Stop
Self-Containment
Build Time Configuration Storage Runtime Externalized State Small Based on Red Hat’s Whitepaper “Principles of container-based application design” by Bilgin Ibryam @suksr #VoxxedMicroservices
Cloud Native Citizen Principles
Single Concern
Reusage Replacability
High Observability
Process Health Readiness Liveliness Metrics Tracing Logs
Life-Cycle Conformance
SIGTERM SIGKILL PreStop PostStart
Image Immutability
Dev Test Prod
Process Disposability Self-Containment
Build Time Configuration Storage Runtime
Runtime Confinement
Memory CPU Container Size Start/Stop Externalized State Small Based on Red Hat’s Whitepaper “Principles of container-based application design” by Bilgin Ibryam @suksr #VoxxedMicroservices
Separation Of Concerns
Service Discovery Load-Balancer Circuit Breaker Timeouts Retries Bulkheads
Application Networking Concerns Business Logic
@suksr #VoxxedMicroservices
Separation Of Concerns
Service Discovery Load-Balancer Circuit Breaker Timeout Retries Bulkheads Kubernetes / Service Mesh Proxy Proxy
Business Logic Service Mesh Application Networking Concerns
@suksr #VoxxedMicroservices
Service Mesh
Primitives
Container Runtime µService
Pod ReplicaSet Deployment StatefulSet Service Volume ConfigMap Secret PersistentVolumeClaim CronJob Job DaemonSet Replication Controller Ingress Horizontal Pod AutoScaler Endpoint + a lot more Sidecar Proxy Pilot Mixer Control Plane Data Plane Auth @suksr #VoxxedMicroservices
Hardware O/S Virtualization Container Runtime O/S Orchestration Data Store µService Hardware O/S Virtualization Container Runtime O/S Orchestration Data Store Function Managed by YOU Managed by Third Party Unit of Work
@suksr #VoxxedMicroservices
Serverless
Function Event
Event-Driven Workflow
Hardware Data Store O/S Virtualization Container Runtime
Fully Managed By Third Party Ephemeral Function Pay-per-Execution Auto-Scaling Characteristics
@suksr #VoxxedMicroservices
Serverless
Functions
listCustomers
One function per endpoint and action
API
getCustomer createCustomer updateCustomer deleteCustomer
API-Gateway
GET /customers GET /customers/{id} POST /customers PUT /customers/{id} DELETE /customers/{id} CustomerService @suksr #VoxxedMicroservices
Serverless
Example Image Processing
- Backend API
- Data Processing
- Format Conversion
- Encoding
- Integrating of 3rd Party Services
@suksr #VoxxedMicroservices File Storage (S3) File Storage (S3) Create Thumbnail Update Search Service Notification Service (SNS) Write Log Log Service (CloudWatch)
Compute as glue
Additional Use Cases
Serverless
AWS Primitives
Lambda API Gateway SNS SQS DynamoDB Step Functions Core AWS Serverless Building Blocks S3 Kinesis CloudWatch Cognito @suksr #VoxxedMicroservices IAM and more
Be aware of ...
@suksr #VoxxedMicroservices
New primitives
Cognitive load
Build the things that differentiate you, offload the things that don’t
@suksr #VoxxedMicroservices
@suksr #VoxxedMicroservices