SlideShare a Scribd company logo
Move fast and make things with
Microservices
Lessons of running Microservices at scale with Docker & Kubernetes
Mithun Arunan
Architect, @Vernacular.ai
@MithunArunan
➢ Must scale to millions of users
➢ Support multiple platforms
➢ Handle complex business rules
➢ Competitive in a fast moving market
➢ Flexibility to choose the cloud vendor or go on-premise
How do you support these requirements while moving fast and innovating?
Let’s say I wanted to build a large application
Microservices @Vernacular.ai
A pattern language is a method of describing good design practices or
patterns of useful organization within a field of expertise.
A pattern language defines these relationships between the patterns,
➢ Alternative pattern
➢ Predecessor pattern
➢ Successor pattern
Applying microservices pattern language
Application Architecture Pattern
Decision #1
Monolithic Architecture
or
Microservice Architecture
Monolithic architecture
Backend
Services
Load
Balancer
Backend
Replica 1
Backend
Replica 2
DB
Simple to Develop
Simple to Deploy
Simple to Maintain
Browser
Monolithic architecture
Backend
Services
Load
Balancer
Backend
Replica 1
Backend
Replica 2
DB
Browser
Hard to understand
Hard to scale
Long term commitment
Hard to debug
Obstacle to scaling dev
Courtesy: https://dzone.com/articles/scale-cube-simplified-scale-model
Scale Cube
Define an architecture that structures the application as a set of loosely
coupled, collaborating services. This approach corresponds to the Y-axis of
the Scale Cube.
Services communicate using either synchronous protocols such as
HTTP/REST or asynchronous protocols such as AMQP.
Services can be developed and deployed independently of one another.
All the drawbacks of Monolithic architecture becomes advantages of
microservices
Microservices Architecture
Microservices architecture
Easy to understand
Easy to scale
Easy to Re-write
Easy to debug
Courtesy: https://dzone.com/articles/building-microservice-using-spring-boot-and-secure
Decision #2
How to decompose application into
microservices?
Application Pattern
Conway’s law
Any organization that designs a system (defined broadly) will produce a
design whose structure is a copy of the organization's communication
structure.
➢ Decompose by business capability - Echoes Conway’s law
➢ Decompose by subdomain - Echoes the inverse of Conway’s law
Decompose applications into microservices
Decompose applications into microservices
Decision #3
How to maintain data consistency and
perform queries
Application Pattern
Data patterns
Saga Pattern
A saga is a sequence of
local transactions. Each
local transaction updates
the database and
publishes a message or
event to trigger the next
local transaction in the
saga.
➢ Choreography
➢ Orchestration
Decision #4
How to establish fast and reliable
inter-service communication?
Application & Infrastructure Pattern
Communication
Patterns
Courtesy: microservices.io
Discovery
➢ Client-Side Discovery
➢ Service-Side Discovery
Courtesy: microservices.io
Communication
Patterns
Courtesy: microservices.io
HTTP/1.1 vs HTTP/2.0
HTTP/1.x does not compress request and
response headers, causing unnecessary
network traffic
HTTP/1.x makes poor use of the underlying
TCP connection
HTTP/2 reduces latency by enabling,
➢ Request and response multiplexing
➢ Minimize protocol overhead
➢ Multiple concurrent exchanges on the
same connection
HTTP/3 is under experimentation
gRPC - Quickstart
REST -> HTTP/1.1 + JSON
gRPC - HTTP/2 + Protobuf
Define your service definition in a
proto file
Automatically generate idiomatic
client and server stubs for your
service in a variety of languages and
platforms
Use the runtime libraries for
programming languages of your
choice and write client and server.
gRPC Go - Example
Microservices @Vernacular.ai
➢ Number of microservices ≠ Successful microservice architecture
➢ Individual teams adopting microservice architecture without any platform
support or coordination
➢ Retaining the same development process and organization structure that
were used when developing monolithic applications.
Microservices Anti-Patterns
Decision #5
How to deploy, monitor and scale?
Infrastructure Pattern
Sad state of DevOps
Sad state of DevOps
Sad state of DevOps
Deploy using Kubernetes and Docker
Load
Balancer
Compute Engine
10GB PD
1 4 20
Compute Engine
10GB PD
1 4 20
Compute Engine
10GB PD
1 4 20
DBs
SQL
Storage
NFS
Cache
Redis
Logging
Monitoring
Compute Engine
10GB PD
1 4 20
Compute Engine
10GB PD
1 4 20
Front 1
Front
Front 1
Back
Front 1
Front
Front 1
Front
Front 1
Back
Front 1
Back
Front 1
Back
4
4 Cores
16GB RAM
External DBs and Storage
Management tools
Total Light
Defragmentation
Portability
Multiple environments
Only 1 process
Compute cluster
Service discovery
Load balancing
Self healing & resiliency
Horizontal scaling
Automated rollouts and
rollbacks
Centralized logs
Easy CI/CD
Service Mesh (Linkerd) - Monitoring
App
App
App
App App
App
ExternalIn cluster
API 1
API 2
API 3
Load
Balancer
What’s the latency?
MONITORING?
How many 5xx ?
How many RPS ?
Observability
Tracing
Service Mesh (Linkerd) - Security
App
App
App
App App
App
ExternalIn cluster
API 1
API 2
API 3
Load
Balancer Is it secure?
Is it authenticated?
Who is talking to
me?
Is this allowed?
SECURITY?
Service Mesh (Linkerd) - Reliability
App
App
App
App
App
App
ExternalIn cluster
API 1
API 2
API 3
Load
Balancer
App
Version A
Version B
10%
90%
Failing
Where is the retry policy
implemented?
How is canary
deployment done?
ADVANCED RULES?
Canary
A/B
Fault injection
Retry policy
Configure timeouts?
➢ Tight security with restricted access to public internet
➢ Delay in procuring hardware makes scaling up VMs without capacity
planning impossible
➢ Operational overhead of installing, upgrading and monitoring infrastructure
➢ Complexity of managing many deployment configurations
➢ Supported OS vary from client to client
On-Premise vs On-Cloud
Challenges on deploying solution on-premise
Leveraging Cloud Native technologies to go on-premise
➢ Harden application security
○ Compile-time languages to build binaries
○ Removing all sensitive information from code
➢ Dockerize all applications
○ Multi-stage docker builds to remove traces and ship the binaries
➢ Setup Kubernetes cluster on-premise on any Operating System of choice
➢ Helm charts for managing deployment complexities
➢ Leveraging cloud native stack for Monitoring, Logging using Prometheus &
EFK stack
Thank you

More Related Content

What's hot

Scaling MQTT With Apache Kafka
Scaling MQTT With Apache KafkaScaling MQTT With Apache Kafka
Scaling MQTT With Apache Kafka
kellogh
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architecture
Touraj Ebrahimi
 
Kafka at Scale: Multi-Tier Architectures
Kafka at Scale: Multi-Tier ArchitecturesKafka at Scale: Multi-Tier Architectures
Kafka at Scale: Multi-Tier Architectures
Todd Palino
 
The elegant way of implementing microservices with istio
The elegant way of implementing microservices with istioThe elegant way of implementing microservices with istio
The elegant way of implementing microservices with istio
Inho Kang
 
Istio : Service Mesh
Istio : Service MeshIstio : Service Mesh
Istio : Service Mesh
Knoldus Inc.
 
Building Linux IPv6 DNS Server (Third Review)
Building Linux IPv6 DNS Server (Third Review)Building Linux IPv6 DNS Server (Third Review)
Building Linux IPv6 DNS Server (Third Review)
Hari
 
Building Language Agnostic APIs with gRPC - JavaDay Istanbul 2017
Building Language Agnostic APIs with gRPC - JavaDay Istanbul 2017Building Language Agnostic APIs with gRPC - JavaDay Istanbul 2017
Building Language Agnostic APIs with gRPC - JavaDay Istanbul 2017
Mustafa AKIN
 
Kafka and kafka connect
Kafka and kafka connectKafka and kafka connect
Kafka and kafka connect
Touraj Ebrahimi
 
8 Lessons Learned from Using Kafka in 1000 Scala microservices - Scale by the...
8 Lessons Learned from Using Kafka in 1000 Scala microservices - Scale by the...8 Lessons Learned from Using Kafka in 1000 Scala microservices - Scale by the...
8 Lessons Learned from Using Kafka in 1000 Scala microservices - Scale by the...
Natan Silnitsky
 
Building Microservices with gRPC and NATS
Building Microservices with gRPC and NATSBuilding Microservices with gRPC and NATS
Building Microservices with gRPC and NATS
Shiju Varghese
 
Orchestration Patterns for Microservices with Messaging by RabbitMQ
Orchestration Patterns for Microservices with Messaging by RabbitMQOrchestration Patterns for Microservices with Messaging by RabbitMQ
Orchestration Patterns for Microservices with Messaging by RabbitMQ
VMware Tanzu
 
Protecting your data at rest with Apache Kafka by Confluent and Vormetric
Protecting your data at rest with Apache Kafka by Confluent and VormetricProtecting your data at rest with Apache Kafka by Confluent and Vormetric
Protecting your data at rest with Apache Kafka by Confluent and Vormetric
confluent
 
Service mesh with istio
Service mesh with istioService mesh with istio
Service mesh with istio
WisnuPrabowo20
 
Confluent Platform Security Components
Confluent Platform Security ComponentsConfluent Platform Security Components
Confluent Platform Security Components
confluent
 
Relevez les défis Kubernetes avec NGINX
Relevez les défis Kubernetes avec NGINXRelevez les défis Kubernetes avec NGINX
Relevez les défis Kubernetes avec NGINX
NGINX, Inc.
 
Solving Complex Scaling Problems by Prashant Kumar and Abhishek Jain of Myntr...
Solving Complex Scaling Problems by Prashant Kumar and Abhishek Jain of Myntr...Solving Complex Scaling Problems by Prashant Kumar and Abhishek Jain of Myntr...
Solving Complex Scaling Problems by Prashant Kumar and Abhishek Jain of Myntr...
Redis Labs
 
Fully Automate Application Delivery with Puppet and F5 - PuppetConf 2014
Fully Automate Application Delivery with Puppet and F5 - PuppetConf 2014Fully Automate Application Delivery with Puppet and F5 - PuppetConf 2014
Fully Automate Application Delivery with Puppet and F5 - PuppetConf 2014
Puppet
 
F5's Dynamic DNS Services
F5's Dynamic DNS ServicesF5's Dynamic DNS Services
F5's Dynamic DNS Services
F5 Networks
 
Polyglot, fault-tolerant event-driven programming with kafka, kubernetes and ...
Polyglot, fault-tolerant event-driven programming with kafka, kubernetes and ...Polyglot, fault-tolerant event-driven programming with kafka, kubernetes and ...
Polyglot, fault-tolerant event-driven programming with kafka, kubernetes and ...
Natan Silnitsky
 
Deep Dive into the Pulsar Binary Protocol - Pulsar Virtual Summit Europe 2021
Deep Dive into the Pulsar Binary Protocol - Pulsar Virtual Summit Europe 2021Deep Dive into the Pulsar Binary Protocol - Pulsar Virtual Summit Europe 2021
Deep Dive into the Pulsar Binary Protocol - Pulsar Virtual Summit Europe 2021
StreamNative
 

What's hot (20)

Scaling MQTT With Apache Kafka
Scaling MQTT With Apache KafkaScaling MQTT With Apache Kafka
Scaling MQTT With Apache Kafka
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architecture
 
Kafka at Scale: Multi-Tier Architectures
Kafka at Scale: Multi-Tier ArchitecturesKafka at Scale: Multi-Tier Architectures
Kafka at Scale: Multi-Tier Architectures
 
The elegant way of implementing microservices with istio
The elegant way of implementing microservices with istioThe elegant way of implementing microservices with istio
The elegant way of implementing microservices with istio
 
Istio : Service Mesh
Istio : Service MeshIstio : Service Mesh
Istio : Service Mesh
 
Building Linux IPv6 DNS Server (Third Review)
Building Linux IPv6 DNS Server (Third Review)Building Linux IPv6 DNS Server (Third Review)
Building Linux IPv6 DNS Server (Third Review)
 
Building Language Agnostic APIs with gRPC - JavaDay Istanbul 2017
Building Language Agnostic APIs with gRPC - JavaDay Istanbul 2017Building Language Agnostic APIs with gRPC - JavaDay Istanbul 2017
Building Language Agnostic APIs with gRPC - JavaDay Istanbul 2017
 
Kafka and kafka connect
Kafka and kafka connectKafka and kafka connect
Kafka and kafka connect
 
8 Lessons Learned from Using Kafka in 1000 Scala microservices - Scale by the...
8 Lessons Learned from Using Kafka in 1000 Scala microservices - Scale by the...8 Lessons Learned from Using Kafka in 1000 Scala microservices - Scale by the...
8 Lessons Learned from Using Kafka in 1000 Scala microservices - Scale by the...
 
Building Microservices with gRPC and NATS
Building Microservices with gRPC and NATSBuilding Microservices with gRPC and NATS
Building Microservices with gRPC and NATS
 
Orchestration Patterns for Microservices with Messaging by RabbitMQ
Orchestration Patterns for Microservices with Messaging by RabbitMQOrchestration Patterns for Microservices with Messaging by RabbitMQ
Orchestration Patterns for Microservices with Messaging by RabbitMQ
 
Protecting your data at rest with Apache Kafka by Confluent and Vormetric
Protecting your data at rest with Apache Kafka by Confluent and VormetricProtecting your data at rest with Apache Kafka by Confluent and Vormetric
Protecting your data at rest with Apache Kafka by Confluent and Vormetric
 
Service mesh with istio
Service mesh with istioService mesh with istio
Service mesh with istio
 
Confluent Platform Security Components
Confluent Platform Security ComponentsConfluent Platform Security Components
Confluent Platform Security Components
 
Relevez les défis Kubernetes avec NGINX
Relevez les défis Kubernetes avec NGINXRelevez les défis Kubernetes avec NGINX
Relevez les défis Kubernetes avec NGINX
 
Solving Complex Scaling Problems by Prashant Kumar and Abhishek Jain of Myntr...
Solving Complex Scaling Problems by Prashant Kumar and Abhishek Jain of Myntr...Solving Complex Scaling Problems by Prashant Kumar and Abhishek Jain of Myntr...
Solving Complex Scaling Problems by Prashant Kumar and Abhishek Jain of Myntr...
 
Fully Automate Application Delivery with Puppet and F5 - PuppetConf 2014
Fully Automate Application Delivery with Puppet and F5 - PuppetConf 2014Fully Automate Application Delivery with Puppet and F5 - PuppetConf 2014
Fully Automate Application Delivery with Puppet and F5 - PuppetConf 2014
 
F5's Dynamic DNS Services
F5's Dynamic DNS ServicesF5's Dynamic DNS Services
F5's Dynamic DNS Services
 
Polyglot, fault-tolerant event-driven programming with kafka, kubernetes and ...
Polyglot, fault-tolerant event-driven programming with kafka, kubernetes and ...Polyglot, fault-tolerant event-driven programming with kafka, kubernetes and ...
Polyglot, fault-tolerant event-driven programming with kafka, kubernetes and ...
 
Deep Dive into the Pulsar Binary Protocol - Pulsar Virtual Summit Europe 2021
Deep Dive into the Pulsar Binary Protocol - Pulsar Virtual Summit Europe 2021Deep Dive into the Pulsar Binary Protocol - Pulsar Virtual Summit Europe 2021
Deep Dive into the Pulsar Binary Protocol - Pulsar Virtual Summit Europe 2021
 

Similar to Move fast and make things with microservices

Microservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsMicroservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native Apps
Araf Karsh Hamid
 
Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)
Rick Hightower
 
Service Mesh Talk for CTO Forum
Service Mesh Talk for CTO ForumService Mesh Talk for CTO Forum
Service Mesh Talk for CTO Forum
Rick Hightower
 
Microservice Pattern Launguage
Microservice Pattern LaunguageMicroservice Pattern Launguage
Microservice Pattern Launguage
Inho Kang
 
Do You Need A Service Mesh?
Do You Need A Service Mesh?Do You Need A Service Mesh?
Do You Need A Service Mesh?
NGINX, Inc.
 
Microservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsMicroservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration Patterns
Araf Karsh Hamid
 
Microservices.pdf
Microservices.pdfMicroservices.pdf
Microservices.pdf
SelmaJelovac1
 
stackconf 2023 | Infrastructure-From-Code and the end of Microservices by Ala...
stackconf 2023 | Infrastructure-From-Code and the end of Microservices by Ala...stackconf 2023 | Infrastructure-From-Code and the end of Microservices by Ala...
stackconf 2023 | Infrastructure-From-Code and the end of Microservices by Ala...
NETWAYS
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
Faren faren
 
From Monoliths to Microservices - A Journey With Confluent With Gayathri Veal...
From Monoliths to Microservices - A Journey With Confluent With Gayathri Veal...From Monoliths to Microservices - A Journey With Confluent With Gayathri Veal...
From Monoliths to Microservices - A Journey With Confluent With Gayathri Veal...
HostedbyConfluent
 
Lunar Way and the Cloud Native "stack"
Lunar Way and the Cloud Native "stack"Lunar Way and the Cloud Native "stack"
Lunar Way and the Cloud Native "stack"
Kasper Nissen
 
Confluent Partner Tech Talk with Reply
Confluent Partner Tech Talk with ReplyConfluent Partner Tech Talk with Reply
Confluent Partner Tech Talk with Reply
confluent
 
12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클
12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클
12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클
Oracle Korea
 
Cloud-Native Patterns and the Benefits of MySQL as a Platform Managed Service
Cloud-Native Patterns and the Benefits of MySQL as a Platform Managed ServiceCloud-Native Patterns and the Benefits of MySQL as a Platform Managed Service
Cloud-Native Patterns and the Benefits of MySQL as a Platform Managed Service
VMware Tanzu
 
Application Modernisation through Event-Driven Microservices
Application Modernisation through Event-Driven Microservices Application Modernisation through Event-Driven Microservices
Application Modernisation through Event-Driven Microservices
confluent
 
12-Factor Apps
12-Factor Apps12-Factor Apps
Microservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREMicroservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SRE
Araf Karsh Hamid
 
Do I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptxDo I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptx
PINGXIONG3
 
The evolution of data center network fabrics
The evolution of data center network fabricsThe evolution of data center network fabrics
The evolution of data center network fabrics
Cisco Canada
 
Confluent Messaging Modernization Forum
Confluent Messaging Modernization ForumConfluent Messaging Modernization Forum
Confluent Messaging Modernization Forum
confluent
 

Similar to Move fast and make things with microservices (20)

Microservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsMicroservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native Apps
 
Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)
 
Service Mesh Talk for CTO Forum
Service Mesh Talk for CTO ForumService Mesh Talk for CTO Forum
Service Mesh Talk for CTO Forum
 
Microservice Pattern Launguage
Microservice Pattern LaunguageMicroservice Pattern Launguage
Microservice Pattern Launguage
 
Do You Need A Service Mesh?
Do You Need A Service Mesh?Do You Need A Service Mesh?
Do You Need A Service Mesh?
 
Microservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsMicroservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration Patterns
 
Microservices.pdf
Microservices.pdfMicroservices.pdf
Microservices.pdf
 
stackconf 2023 | Infrastructure-From-Code and the end of Microservices by Ala...
stackconf 2023 | Infrastructure-From-Code and the end of Microservices by Ala...stackconf 2023 | Infrastructure-From-Code and the end of Microservices by Ala...
stackconf 2023 | Infrastructure-From-Code and the end of Microservices by Ala...
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
 
From Monoliths to Microservices - A Journey With Confluent With Gayathri Veal...
From Monoliths to Microservices - A Journey With Confluent With Gayathri Veal...From Monoliths to Microservices - A Journey With Confluent With Gayathri Veal...
From Monoliths to Microservices - A Journey With Confluent With Gayathri Veal...
 
Lunar Way and the Cloud Native "stack"
Lunar Way and the Cloud Native "stack"Lunar Way and the Cloud Native "stack"
Lunar Way and the Cloud Native "stack"
 
Confluent Partner Tech Talk with Reply
Confluent Partner Tech Talk with ReplyConfluent Partner Tech Talk with Reply
Confluent Partner Tech Talk with Reply
 
12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클
12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클
12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클
 
Cloud-Native Patterns and the Benefits of MySQL as a Platform Managed Service
Cloud-Native Patterns and the Benefits of MySQL as a Platform Managed ServiceCloud-Native Patterns and the Benefits of MySQL as a Platform Managed Service
Cloud-Native Patterns and the Benefits of MySQL as a Platform Managed Service
 
Application Modernisation through Event-Driven Microservices
Application Modernisation through Event-Driven Microservices Application Modernisation through Event-Driven Microservices
Application Modernisation through Event-Driven Microservices
 
12-Factor Apps
12-Factor Apps12-Factor Apps
12-Factor Apps
 
Microservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREMicroservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SRE
 
Do I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptxDo I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptx
 
The evolution of data center network fabrics
The evolution of data center network fabricsThe evolution of data center network fabrics
The evolution of data center network fabrics
 
Confluent Messaging Modernization Forum
Confluent Messaging Modernization ForumConfluent Messaging Modernization Forum
Confluent Messaging Modernization Forum
 

Recently uploaded

Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
Fwdays
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 

Recently uploaded (20)

Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 

Move fast and make things with microservices

  • 1. Move fast and make things with Microservices Lessons of running Microservices at scale with Docker & Kubernetes
  • 3. ➢ Must scale to millions of users ➢ Support multiple platforms ➢ Handle complex business rules ➢ Competitive in a fast moving market ➢ Flexibility to choose the cloud vendor or go on-premise How do you support these requirements while moving fast and innovating? Let’s say I wanted to build a large application
  • 5. A pattern language is a method of describing good design practices or patterns of useful organization within a field of expertise. A pattern language defines these relationships between the patterns, ➢ Alternative pattern ➢ Predecessor pattern ➢ Successor pattern Applying microservices pattern language
  • 6. Application Architecture Pattern Decision #1 Monolithic Architecture or Microservice Architecture
  • 7. Monolithic architecture Backend Services Load Balancer Backend Replica 1 Backend Replica 2 DB Simple to Develop Simple to Deploy Simple to Maintain Browser
  • 8. Monolithic architecture Backend Services Load Balancer Backend Replica 1 Backend Replica 2 DB Browser Hard to understand Hard to scale Long term commitment Hard to debug Obstacle to scaling dev
  • 10. Define an architecture that structures the application as a set of loosely coupled, collaborating services. This approach corresponds to the Y-axis of the Scale Cube. Services communicate using either synchronous protocols such as HTTP/REST or asynchronous protocols such as AMQP. Services can be developed and deployed independently of one another. All the drawbacks of Monolithic architecture becomes advantages of microservices Microservices Architecture
  • 11. Microservices architecture Easy to understand Easy to scale Easy to Re-write Easy to debug Courtesy: https://dzone.com/articles/building-microservice-using-spring-boot-and-secure
  • 12. Decision #2 How to decompose application into microservices? Application Pattern
  • 13. Conway’s law Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure. ➢ Decompose by business capability - Echoes Conway’s law ➢ Decompose by subdomain - Echoes the inverse of Conway’s law Decompose applications into microservices
  • 15. Decision #3 How to maintain data consistency and perform queries Application Pattern
  • 17. Saga Pattern A saga is a sequence of local transactions. Each local transaction updates the database and publishes a message or event to trigger the next local transaction in the saga. ➢ Choreography ➢ Orchestration
  • 18. Decision #4 How to establish fast and reliable inter-service communication? Application & Infrastructure Pattern
  • 20. Discovery ➢ Client-Side Discovery ➢ Service-Side Discovery Courtesy: microservices.io
  • 22. HTTP/1.1 vs HTTP/2.0 HTTP/1.x does not compress request and response headers, causing unnecessary network traffic HTTP/1.x makes poor use of the underlying TCP connection HTTP/2 reduces latency by enabling, ➢ Request and response multiplexing ➢ Minimize protocol overhead ➢ Multiple concurrent exchanges on the same connection HTTP/3 is under experimentation
  • 23. gRPC - Quickstart REST -> HTTP/1.1 + JSON gRPC - HTTP/2 + Protobuf Define your service definition in a proto file Automatically generate idiomatic client and server stubs for your service in a variety of languages and platforms Use the runtime libraries for programming languages of your choice and write client and server. gRPC Go - Example
  • 25. ➢ Number of microservices ≠ Successful microservice architecture ➢ Individual teams adopting microservice architecture without any platform support or coordination ➢ Retaining the same development process and organization structure that were used when developing monolithic applications. Microservices Anti-Patterns
  • 26. Decision #5 How to deploy, monitor and scale? Infrastructure Pattern
  • 27. Sad state of DevOps
  • 28. Sad state of DevOps
  • 29. Sad state of DevOps
  • 30. Deploy using Kubernetes and Docker Load Balancer Compute Engine 10GB PD 1 4 20 Compute Engine 10GB PD 1 4 20 Compute Engine 10GB PD 1 4 20 DBs SQL Storage NFS Cache Redis Logging Monitoring Compute Engine 10GB PD 1 4 20 Compute Engine 10GB PD 1 4 20 Front 1 Front Front 1 Back Front 1 Front Front 1 Front Front 1 Back Front 1 Back Front 1 Back 4 4 Cores 16GB RAM External DBs and Storage Management tools Total Light Defragmentation Portability Multiple environments Only 1 process Compute cluster Service discovery Load balancing Self healing & resiliency Horizontal scaling Automated rollouts and rollbacks Centralized logs Easy CI/CD
  • 31. Service Mesh (Linkerd) - Monitoring App App App App App App ExternalIn cluster API 1 API 2 API 3 Load Balancer What’s the latency? MONITORING? How many 5xx ? How many RPS ? Observability Tracing
  • 32. Service Mesh (Linkerd) - Security App App App App App App ExternalIn cluster API 1 API 2 API 3 Load Balancer Is it secure? Is it authenticated? Who is talking to me? Is this allowed? SECURITY?
  • 33. Service Mesh (Linkerd) - Reliability App App App App App App ExternalIn cluster API 1 API 2 API 3 Load Balancer App Version A Version B 10% 90% Failing Where is the retry policy implemented? How is canary deployment done? ADVANCED RULES? Canary A/B Fault injection Retry policy Configure timeouts?
  • 34. ➢ Tight security with restricted access to public internet ➢ Delay in procuring hardware makes scaling up VMs without capacity planning impossible ➢ Operational overhead of installing, upgrading and monitoring infrastructure ➢ Complexity of managing many deployment configurations ➢ Supported OS vary from client to client On-Premise vs On-Cloud Challenges on deploying solution on-premise
  • 35. Leveraging Cloud Native technologies to go on-premise ➢ Harden application security ○ Compile-time languages to build binaries ○ Removing all sensitive information from code ➢ Dockerize all applications ○ Multi-stage docker builds to remove traces and ship the binaries ➢ Setup Kubernetes cluster on-premise on any Operating System of choice ➢ Helm charts for managing deployment complexities ➢ Leveraging cloud native stack for Monitoring, Logging using Prometheus & EFK stack