SlideShare a Scribd company logo
The journey to Native Cloud
Architecture & Microservices
Customized for @Jitta - Mek Srunyu Stittri
Tracing the footsteps of Adrian Cockcroft
Agenda
● Background, case study from Netflix
● Continuous Delivery
● Building pillars of frictionless dev and deploy
● Microservices, abstraction and architecture
Enterprise late adoption of the cloud
Why did Netflix do this
Speed
Innovation
New Ideas
New Products
SPEED, is always going to win in the market.
The faster you go the more competitive you are.
Netflix VS Comcast, Apple, Google, Amazon and etc..
What they did : Be really fast, Being disruptive &
Continuous Deployment
Why did Netflix do this
What Netflix learned
● Speed wins in the marketplace
● Remove friction from product development (CD)
● High-trust, low process, no handoffs between teams
● Freedom and responsibility culture
● Don’t do your own undifferentiated heavy lifting
● Use simple patterns automated by tooling, Jenkins
● Self service cloud makes impossible things instant
Non cloud product deployment
Let’s eliminate HW provisioning
IaaS Based Product Development
Let's eliminate SW provisioning
PaaS Based Product Development
Go even further… use SaaS
What Happened..
Continuous Delivery on Cloud
Continuous Delivery on Cloud4
Build, Release and architecture
Monolithic VS Microservice (CD)
Monolithic approach
Microservices approach
Immutable code, old code remains
Independent development streams
New code deploys into service groups
Non-destructive production updates
● Immutable Code Service Pattern
○ Existing services are unchanged, old code remains in service
○ New code deploys as a new service group
○ No impact to production until traffic routing changes
● A|B Tests, Feature Flags and Version Routing control traffic
○ First users in the test cell are the developers and test engineers
○ A cohort of users is added looking for measurable improvement
○ Finally make the new version the default for everyone, keep
older version for a while
How do we get there...
Old way :
● Dev runs code, IT deploys code.
New way:
● Deployment should be automatic, self service API driven.
● Dev runs code + dev deploys code.
● Freedom but also incentive to be responsible.
Culture and trust.
Non-destructive production updates
● Make your assumptions explicit
● Extrapolate trends to the limit
● Listen to non-customers
● Follow developer adoption not IT spending
● Map evolution of products to services to
utilities
● Re-organize your teams for speed of execution
Non-destructive production updates
● Business logic isolation in stateless micro-services
● Immutable code with instant rollback
● Auto-scaled capacity and deployment updates
● Distributed across availability zones and regions
● De-normalize single function NoSQL data stores
● See over 40 NetflixOSS projects at - netflix.githb.com
● Netflix engineering blog - techblog.netflix.com
Mircroservice.. what is it ?
See http://en.wikipedia.org/wiki/Domain-driven_design for discussion of bounded contexts
A definition of : Microservices
Loosely coupled service oriented
architecture with bounded contexts
Scaling Continuous Delivery
Monolithic
● Devs book a train ticket
● Everyone runs the monolith
● Queue for the next train
● Coordination chat session
● Need to learn deploy process
● Copy code to existing servers
● Few concurrent versions
● Tens of monolithic updates/day
maximum
● Roll-forward only
● Done - is release to production
Microservices
● Every team has their own build
● Dev runs their own microservice
● No waiting, no meetings
● API call to update prod timeline
● Automated hands-off deploy
● Immutable code on new servers
● Unlimited concurrent versions
● 100s of independent updates
● Roll-back in seconds
● Done - is retired from production
Separate components using Micro-services
● Invert Conway’s Law - teams own service groups and backend
stores
● One “Verb” per single function micro-service, size does not
matter
● One developer independently produces a micro-service
● Each micro-service is its own build, avoid trunk conflicts
● Deploy in a container: Tomcat, AMI, or Docker etc..
● Stateless business logic. Cattle not pets (dispensable)
● Stateful cached data access layer can use ephemeral instances
●
Microservices Development Architecture
Client libraries
● Even if you start with a raw protocol, a client side driver is the end-state
● Best strategy is the own your own client libraries from the start
Multi-threading and non-blocking calls
● Reactive model RxJava uses Observable to hide concurrently cleanly
● Netty can be used to get non-blocking IO speedup over Tomcat container
Circuit breakers - See Fluxcapacitor.com for code
● NetflixOSS Hystrix, Turbine, Latency Monkey, Ribbon/Karyon
● Also look at Finagle/Zipkin from Twitter
Microservice Datastores
Book : Refactoring Databases
● SchemaSpy to examine schema structure
● Denormalization into one datasource per table or materialized view
Polyglot Persistence
● Use a mixture of database technologies, behind REST data access layers
● See NetflixOSS Storage Tier as a Service HTTP (staash.com) for MySQL and C*
CAP - Consistent or Available when Partitioned
● Look at Jepsen torture tests for common systems aphyr.com/tags/jepsen
● Also look at Finagle/Zipkin from Twitter
Microservice examples
Monitoring...
Monitoring for Microservices
Great speed comes with great
responsibility and code ownership
Challenges with Continuous Delivery
High rate of change
● Code pushes can cause floods of new instances and metrics
● Short baseline for alert thresholds analysis - everything looks unusual
Ephemeral Configurations
● Short lifetimes make it hard to aggregate historical views
● Hand-tweaked monitoring tools take too much work to keep running
Microservices with complex calling patterns
● End-to-end request flow measurements are very important
● Request flow visualizations get overwhelmed
Monitoring Continuous Delivery
● Changes are smaller but more frequent
● Individual changes are more likely to be
broken
● Change are normally deployed y developers
● Feature flags are used to enable new code
● Instant detection and rollback matters much
more
●
Continuous Monitoring
Continuous Monitoring
Whoops! I didn’t mean that
Reverting...
Not cool if it takes 5 mins to detect a failure and another 5 mins to fix
No one notices if it takes 5 seconds to detect and 5 more to rollback
Continuous Monitoring
NetflixOSS Hystrix / Turbine
circuit breaker monitoring system
Latest SaaS Monitoring Products
Summary
● Speed wins in the Market
● Remove friction from development
● High trust, low process
● Freedom and responsibility culture
● Leverage SAAS solutions to do heavy lifting
● Automate simple patterns in tools
● Microservices for speed and high-availability
Resources
Adrian Cockroft
Adrian’s Blog http://perfcap.blogspot.com
Adrian’s Slides http://www.slideshare.net/adriancockcroft/qcon-new-york-speed-and-scale
NetFlix Hystrix / Turbine
http://techblog.netflix.com/2012/12/hystrix-dashboard-and-turbine.html
See over 40 NetflixOSS projects at netflix.github.com
Monitoring tools
VividCortex.com / Boundary.com

More Related Content

What's hot

Build the "right" regression suite using Behavior Driven Testing (BDT)
Build the "right" regression suite using Behavior Driven Testing (BDT)Build the "right" regression suite using Behavior Driven Testing (BDT)
Build the "right" regression suite using Behavior Driven Testing (BDT)
Anand Bagmar
 
How to scale your Test Automation
How to scale your Test AutomationHow to scale your Test Automation
How to scale your Test Automation
Klaus Salchner
 
Polyglot engineering
Polyglot engineeringPolyglot engineering
Polyglot engineering
Klaus Salchner
 
Behavior Driven Testing - A paradigm shift
Behavior Driven Testing - A paradigm shiftBehavior Driven Testing - A paradigm shift
Behavior Driven Testing - A paradigm shift
Aspire Systems
 
What's so great about web driver?
What's so great about web driver?What's so great about web driver?
What's so great about web driver?
mwinteringham
 
Intelligent Testing with mabl
Intelligent Testing with mablIntelligent Testing with mabl
Intelligent Testing with mabl
mabl
 
Jenkins as the Test Reporting Framework
Jenkins as the Test Reporting FrameworkJenkins as the Test Reporting Framework
Jenkins as the Test Reporting Framework
Nitin Sharma
 
Build the "right" regression suite using Behavior Driven Testing (BDT)
Build the "right" regression suite using Behavior Driven Testing (BDT)Build the "right" regression suite using Behavior Driven Testing (BDT)
Build the "right" regression suite using Behavior Driven Testing (BDT)
Anand Bagmar
 
5 step bim automation roadmap - shed manufacturers e book
5 step bim automation roadmap - shed manufacturers e book5 step bim automation roadmap - shed manufacturers e book
5 step bim automation roadmap - shed manufacturers e book
LukeHunter14
 
Integration Testing in Enterprises using TaaS
Integration Testing in Enterprises using TaaSIntegration Testing in Enterprises using TaaS
Integration Testing in Enterprises using TaaS
Anand Bagmar
 
API Testing With Katalon Studio
API Testing With Katalon StudioAPI Testing With Katalon Studio
API Testing With Katalon Studio
Knoldus Inc.
 
Data-Driven Software Design
Data-Driven Software DesignData-Driven Software Design
Data-Driven Software Design
Patrick McKenzie
 
Test Automation Made Easy
Test Automation Made EasyTest Automation Made Easy
Test Automation Made Easy
qainfotech09
 
Testing Design System Changes Across Your Application -- Intuit Use Case -- w...
Testing Design System Changes Across Your Application -- Intuit Use Case -- w...Testing Design System Changes Across Your Application -- Intuit Use Case -- w...
Testing Design System Changes Across Your Application -- Intuit Use Case -- w...
Applitools
 
Test Automation With Cucumber JVM, Selenium, and Mocha
Test Automation With Cucumber JVM, Selenium, and MochaTest Automation With Cucumber JVM, Selenium, and Mocha
Test Automation With Cucumber JVM, Selenium, and Mocha
Salesforce Developers
 
Bdd with Cucumber and Mocha
Bdd with Cucumber and MochaBdd with Cucumber and Mocha
Bdd with Cucumber and Mocha
Atish Narlawar
 
Visual Automation Framework via Screenshot Comparison
Visual Automation Framework via Screenshot ComparisonVisual Automation Framework via Screenshot Comparison
Visual Automation Framework via Screenshot Comparison
Mek Srunyu Stittri
 
Branching Your Way to Low-Code Perfection
Branching Your Way to Low-Code PerfectionBranching Your Way to Low-Code Perfection
Branching Your Way to Low-Code Perfection
OutSystems
 
Why software projects fail in 2021?
Why software projects fail in 2021?Why software projects fail in 2021?
Why software projects fail in 2021?
Orlovsky Consulting GbR
 
[webinar] Best of Breed: Successful Test Automation Practices from Innovative...
[webinar] Best of Breed: Successful Test Automation Practices from Innovative...[webinar] Best of Breed: Successful Test Automation Practices from Innovative...
[webinar] Best of Breed: Successful Test Automation Practices from Innovative...
Applitools
 

What's hot (20)

Build the "right" regression suite using Behavior Driven Testing (BDT)
Build the "right" regression suite using Behavior Driven Testing (BDT)Build the "right" regression suite using Behavior Driven Testing (BDT)
Build the "right" regression suite using Behavior Driven Testing (BDT)
 
How to scale your Test Automation
How to scale your Test AutomationHow to scale your Test Automation
How to scale your Test Automation
 
Polyglot engineering
Polyglot engineeringPolyglot engineering
Polyglot engineering
 
Behavior Driven Testing - A paradigm shift
Behavior Driven Testing - A paradigm shiftBehavior Driven Testing - A paradigm shift
Behavior Driven Testing - A paradigm shift
 
What's so great about web driver?
What's so great about web driver?What's so great about web driver?
What's so great about web driver?
 
Intelligent Testing with mabl
Intelligent Testing with mablIntelligent Testing with mabl
Intelligent Testing with mabl
 
Jenkins as the Test Reporting Framework
Jenkins as the Test Reporting FrameworkJenkins as the Test Reporting Framework
Jenkins as the Test Reporting Framework
 
Build the "right" regression suite using Behavior Driven Testing (BDT)
Build the "right" regression suite using Behavior Driven Testing (BDT)Build the "right" regression suite using Behavior Driven Testing (BDT)
Build the "right" regression suite using Behavior Driven Testing (BDT)
 
5 step bim automation roadmap - shed manufacturers e book
5 step bim automation roadmap - shed manufacturers e book5 step bim automation roadmap - shed manufacturers e book
5 step bim automation roadmap - shed manufacturers e book
 
Integration Testing in Enterprises using TaaS
Integration Testing in Enterprises using TaaSIntegration Testing in Enterprises using TaaS
Integration Testing in Enterprises using TaaS
 
API Testing With Katalon Studio
API Testing With Katalon StudioAPI Testing With Katalon Studio
API Testing With Katalon Studio
 
Data-Driven Software Design
Data-Driven Software DesignData-Driven Software Design
Data-Driven Software Design
 
Test Automation Made Easy
Test Automation Made EasyTest Automation Made Easy
Test Automation Made Easy
 
Testing Design System Changes Across Your Application -- Intuit Use Case -- w...
Testing Design System Changes Across Your Application -- Intuit Use Case -- w...Testing Design System Changes Across Your Application -- Intuit Use Case -- w...
Testing Design System Changes Across Your Application -- Intuit Use Case -- w...
 
Test Automation With Cucumber JVM, Selenium, and Mocha
Test Automation With Cucumber JVM, Selenium, and MochaTest Automation With Cucumber JVM, Selenium, and Mocha
Test Automation With Cucumber JVM, Selenium, and Mocha
 
Bdd with Cucumber and Mocha
Bdd with Cucumber and MochaBdd with Cucumber and Mocha
Bdd with Cucumber and Mocha
 
Visual Automation Framework via Screenshot Comparison
Visual Automation Framework via Screenshot ComparisonVisual Automation Framework via Screenshot Comparison
Visual Automation Framework via Screenshot Comparison
 
Branching Your Way to Low-Code Perfection
Branching Your Way to Low-Code PerfectionBranching Your Way to Low-Code Perfection
Branching Your Way to Low-Code Perfection
 
Why software projects fail in 2021?
Why software projects fail in 2021?Why software projects fail in 2021?
Why software projects fail in 2021?
 
[webinar] Best of Breed: Successful Test Automation Practices from Innovative...
[webinar] Best of Breed: Successful Test Automation Practices from Innovative...[webinar] Best of Breed: Successful Test Automation Practices from Innovative...
[webinar] Best of Breed: Successful Test Automation Practices from Innovative...
 

Similar to The journey to Native Cloud Architecture & Microservices, tracing the footsteps of Adrian Cockcroft

Controlled Evolution with Puppet and AWS
Controlled Evolution with Puppet and AWSControlled Evolution with Puppet and AWS
Controlled Evolution with Puppet and AWS
Puppet
 
Moving from Monolith to Microservices
Moving from Monolith to MicroservicesMoving from Monolith to Microservices
Moving from Monolith to Microservices
Mist.io
 
Netflix Architecture and Open Source
Netflix Architecture and Open SourceNetflix Architecture and Open Source
Netflix Architecture and Open Source
All Things Open
 
Micro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - PlansoftMicro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - Plansoft
Miki Lombardi
 
Triangle Devops Meetup 10/2015
Triangle Devops Meetup 10/2015Triangle Devops Meetup 10/2015
Triangle Devops Meetup 10/2015
aspyker
 
Network Automation Journey, A systems engineer NetOps perspective
Network Automation Journey, A systems engineer NetOps perspectiveNetwork Automation Journey, A systems engineer NetOps perspective
Network Automation Journey, A systems engineer NetOps perspective
Walid Shaari
 
Microservices
MicroservicesMicroservices
Microservices
NewsCred Dhaka
 
Getting Started with Serverless Architectures
Getting Started with Serverless ArchitecturesGetting Started with Serverless Architectures
Getting Started with Serverless Architectures
Amazon Web Services
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science Platform
Decision Science Community
 
Last Conference 2017: Big Data in a Production Environment: Lessons Learnt
Last Conference 2017: Big Data in a Production Environment: Lessons LearntLast Conference 2017: Big Data in a Production Environment: Lessons Learnt
Last Conference 2017: Big Data in a Production Environment: Lessons Learnt
Mark Grebler
 
Introduction to Microservices Architecture - SECCOMP 2020
Introduction to Microservices Architecture - SECCOMP 2020Introduction to Microservices Architecture - SECCOMP 2020
Introduction to Microservices Architecture - SECCOMP 2020
Rodrigo Antonialli
 
Controlled Evolution with Puppet and AWS
Controlled Evolution with Puppet and AWSControlled Evolution with Puppet and AWS
Controlled Evolution with Puppet and AWS
Puppet
 
How to Operate Kubernetes CI/CD Pipelines at Scale
How to Operate Kubernetes CI/CD Pipelines at ScaleHow to Operate Kubernetes CI/CD Pipelines at Scale
How to Operate Kubernetes CI/CD Pipelines at Scale
DevOps.com
 
Api gitlab: configurazione dei progetti as a service
Api gitlab: configurazione dei progetti as a serviceApi gitlab: configurazione dei progetti as a service
Api gitlab: configurazione dei progetti as a service
Emerasoft, solutions to collaborate
 
First Steps to DevOps
First Steps to DevOpsFirst Steps to DevOps
First Steps to DevOps
Inductive Automation
 
Workshop: Delivering chnages for applications and databases
Workshop: Delivering chnages for applications and databasesWorkshop: Delivering chnages for applications and databases
Workshop: Delivering chnages for applications and databases
Eduardo Piairo
 
How Azure DevOps can boost your organization's productivity
How Azure DevOps can boost your organization's productivityHow Azure DevOps can boost your organization's productivity
How Azure DevOps can boost your organization's productivity
Ivan Porta
 
DevOps State of the Union 2015
DevOps State of the Union 2015DevOps State of the Union 2015
DevOps State of the Union 2015
Ernest Mueller
 
How to go from waterfall app dev to secure agile development in 2 weeks
How to go from waterfall app dev to secure agile development in 2 weeks How to go from waterfall app dev to secure agile development in 2 weeks
How to go from waterfall app dev to secure agile development in 2 weeks
Ulf Mattsson
 
Securing Your App Deployments with Tunnels, OIDC, RBAC, and Progressive Deliv...
Securing Your App Deployments with Tunnels, OIDC, RBAC, and Progressive Deliv...Securing Your App Deployments with Tunnels, OIDC, RBAC, and Progressive Deliv...
Securing Your App Deployments with Tunnels, OIDC, RBAC, and Progressive Deliv...
Weaveworks
 

Similar to The journey to Native Cloud Architecture & Microservices, tracing the footsteps of Adrian Cockcroft (20)

Controlled Evolution with Puppet and AWS
Controlled Evolution with Puppet and AWSControlled Evolution with Puppet and AWS
Controlled Evolution with Puppet and AWS
 
Moving from Monolith to Microservices
Moving from Monolith to MicroservicesMoving from Monolith to Microservices
Moving from Monolith to Microservices
 
Netflix Architecture and Open Source
Netflix Architecture and Open SourceNetflix Architecture and Open Source
Netflix Architecture and Open Source
 
Micro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - PlansoftMicro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - Plansoft
 
Triangle Devops Meetup 10/2015
Triangle Devops Meetup 10/2015Triangle Devops Meetup 10/2015
Triangle Devops Meetup 10/2015
 
Network Automation Journey, A systems engineer NetOps perspective
Network Automation Journey, A systems engineer NetOps perspectiveNetwork Automation Journey, A systems engineer NetOps perspective
Network Automation Journey, A systems engineer NetOps perspective
 
Microservices
MicroservicesMicroservices
Microservices
 
Getting Started with Serverless Architectures
Getting Started with Serverless ArchitecturesGetting Started with Serverless Architectures
Getting Started with Serverless Architectures
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science Platform
 
Last Conference 2017: Big Data in a Production Environment: Lessons Learnt
Last Conference 2017: Big Data in a Production Environment: Lessons LearntLast Conference 2017: Big Data in a Production Environment: Lessons Learnt
Last Conference 2017: Big Data in a Production Environment: Lessons Learnt
 
Introduction to Microservices Architecture - SECCOMP 2020
Introduction to Microservices Architecture - SECCOMP 2020Introduction to Microservices Architecture - SECCOMP 2020
Introduction to Microservices Architecture - SECCOMP 2020
 
Controlled Evolution with Puppet and AWS
Controlled Evolution with Puppet and AWSControlled Evolution with Puppet and AWS
Controlled Evolution with Puppet and AWS
 
How to Operate Kubernetes CI/CD Pipelines at Scale
How to Operate Kubernetes CI/CD Pipelines at ScaleHow to Operate Kubernetes CI/CD Pipelines at Scale
How to Operate Kubernetes CI/CD Pipelines at Scale
 
Api gitlab: configurazione dei progetti as a service
Api gitlab: configurazione dei progetti as a serviceApi gitlab: configurazione dei progetti as a service
Api gitlab: configurazione dei progetti as a service
 
First Steps to DevOps
First Steps to DevOpsFirst Steps to DevOps
First Steps to DevOps
 
Workshop: Delivering chnages for applications and databases
Workshop: Delivering chnages for applications and databasesWorkshop: Delivering chnages for applications and databases
Workshop: Delivering chnages for applications and databases
 
How Azure DevOps can boost your organization's productivity
How Azure DevOps can boost your organization's productivityHow Azure DevOps can boost your organization's productivity
How Azure DevOps can boost your organization's productivity
 
DevOps State of the Union 2015
DevOps State of the Union 2015DevOps State of the Union 2015
DevOps State of the Union 2015
 
How to go from waterfall app dev to secure agile development in 2 weeks
How to go from waterfall app dev to secure agile development in 2 weeks How to go from waterfall app dev to secure agile development in 2 weeks
How to go from waterfall app dev to secure agile development in 2 weeks
 
Securing Your App Deployments with Tunnels, OIDC, RBAC, and Progressive Deliv...
Securing Your App Deployments with Tunnels, OIDC, RBAC, and Progressive Deliv...Securing Your App Deployments with Tunnels, OIDC, RBAC, and Progressive Deliv...
Securing Your App Deployments with Tunnels, OIDC, RBAC, and Progressive Deliv...
 

Recently uploaded

space technology lecture notes on satellite
space technology lecture notes on satellitespace technology lecture notes on satellite
space technology lecture notes on satellite
ongomchris
 
power quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptxpower quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptx
ViniHema
 
Water Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdfWater Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation & Control
 
road safety engineering r s e unit 3.pdf
road safety engineering  r s e unit 3.pdfroad safety engineering  r s e unit 3.pdf
road safety engineering r s e unit 3.pdf
VENKATESHvenky89705
 
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
obonagu
 
Fundamentals of Electric Drives and its applications.pptx
Fundamentals of Electric Drives and its applications.pptxFundamentals of Electric Drives and its applications.pptx
Fundamentals of Electric Drives and its applications.pptx
manasideore6
 
WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234
AafreenAbuthahir2
 
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdfHybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
fxintegritypublishin
 
weather web application report.pdf
weather web application report.pdfweather web application report.pdf
weather web application report.pdf
Pratik Pawar
 
Investor-Presentation-Q1FY2024 investor presentation document.pptx
Investor-Presentation-Q1FY2024 investor presentation document.pptxInvestor-Presentation-Q1FY2024 investor presentation document.pptx
Investor-Presentation-Q1FY2024 investor presentation document.pptx
AmarGB2
 
Standard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - NeometrixStandard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - Neometrix
Neometrix_Engineering_Pvt_Ltd
 
Runway Orientation Based on the Wind Rose Diagram.pptx
Runway Orientation Based on the Wind Rose Diagram.pptxRunway Orientation Based on the Wind Rose Diagram.pptx
Runway Orientation Based on the Wind Rose Diagram.pptx
SupreethSP4
 
ethical hacking in wireless-hacking1.ppt
ethical hacking in wireless-hacking1.pptethical hacking in wireless-hacking1.ppt
ethical hacking in wireless-hacking1.ppt
Jayaprasanna4
 
H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
H.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdfH.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdf
H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
MLILAB
 
Student information management system project report ii.pdf
Student information management system project report ii.pdfStudent information management system project report ii.pdf
Student information management system project report ii.pdf
Kamal Acharya
 
Hierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power SystemHierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power System
Kerry Sado
 
block diagram and signal flow graph representation
block diagram and signal flow graph representationblock diagram and signal flow graph representation
block diagram and signal flow graph representation
Divya Somashekar
 
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
zwunae
 
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdfTop 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Teleport Manpower Consultant
 
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptxCFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
R&R Consult
 

Recently uploaded (20)

space technology lecture notes on satellite
space technology lecture notes on satellitespace technology lecture notes on satellite
space technology lecture notes on satellite
 
power quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptxpower quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptx
 
Water Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdfWater Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdf
 
road safety engineering r s e unit 3.pdf
road safety engineering  r s e unit 3.pdfroad safety engineering  r s e unit 3.pdf
road safety engineering r s e unit 3.pdf
 
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
 
Fundamentals of Electric Drives and its applications.pptx
Fundamentals of Electric Drives and its applications.pptxFundamentals of Electric Drives and its applications.pptx
Fundamentals of Electric Drives and its applications.pptx
 
WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234
 
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdfHybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
 
weather web application report.pdf
weather web application report.pdfweather web application report.pdf
weather web application report.pdf
 
Investor-Presentation-Q1FY2024 investor presentation document.pptx
Investor-Presentation-Q1FY2024 investor presentation document.pptxInvestor-Presentation-Q1FY2024 investor presentation document.pptx
Investor-Presentation-Q1FY2024 investor presentation document.pptx
 
Standard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - NeometrixStandard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - Neometrix
 
Runway Orientation Based on the Wind Rose Diagram.pptx
Runway Orientation Based on the Wind Rose Diagram.pptxRunway Orientation Based on the Wind Rose Diagram.pptx
Runway Orientation Based on the Wind Rose Diagram.pptx
 
ethical hacking in wireless-hacking1.ppt
ethical hacking in wireless-hacking1.pptethical hacking in wireless-hacking1.ppt
ethical hacking in wireless-hacking1.ppt
 
H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
H.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdfH.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdf
H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
 
Student information management system project report ii.pdf
Student information management system project report ii.pdfStudent information management system project report ii.pdf
Student information management system project report ii.pdf
 
Hierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power SystemHierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power System
 
block diagram and signal flow graph representation
block diagram and signal flow graph representationblock diagram and signal flow graph representation
block diagram and signal flow graph representation
 
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
 
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdfTop 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
 
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptxCFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
 

The journey to Native Cloud Architecture & Microservices, tracing the footsteps of Adrian Cockcroft

  • 1. The journey to Native Cloud Architecture & Microservices Customized for @Jitta - Mek Srunyu Stittri Tracing the footsteps of Adrian Cockcroft
  • 2. Agenda ● Background, case study from Netflix ● Continuous Delivery ● Building pillars of frictionless dev and deploy ● Microservices, abstraction and architecture
  • 4. Why did Netflix do this Speed Innovation New Ideas New Products
  • 5. SPEED, is always going to win in the market. The faster you go the more competitive you are. Netflix VS Comcast, Apple, Google, Amazon and etc.. What they did : Be really fast, Being disruptive & Continuous Deployment Why did Netflix do this
  • 6. What Netflix learned ● Speed wins in the marketplace ● Remove friction from product development (CD) ● High-trust, low process, no handoffs between teams ● Freedom and responsibility culture ● Don’t do your own undifferentiated heavy lifting ● Use simple patterns automated by tooling, Jenkins ● Self service cloud makes impossible things instant
  • 7. Non cloud product deployment
  • 8. Let’s eliminate HW provisioning
  • 9. IaaS Based Product Development
  • 10. Let's eliminate SW provisioning
  • 11. PaaS Based Product Development
  • 12. Go even further… use SaaS
  • 16. Build, Release and architecture Monolithic VS Microservice (CD)
  • 19. Immutable code, old code remains
  • 21. New code deploys into service groups
  • 22. Non-destructive production updates ● Immutable Code Service Pattern ○ Existing services are unchanged, old code remains in service ○ New code deploys as a new service group ○ No impact to production until traffic routing changes ● A|B Tests, Feature Flags and Version Routing control traffic ○ First users in the test cell are the developers and test engineers ○ A cohort of users is added looking for measurable improvement ○ Finally make the new version the default for everyone, keep older version for a while
  • 23. How do we get there... Old way : ● Dev runs code, IT deploys code. New way: ● Deployment should be automatic, self service API driven. ● Dev runs code + dev deploys code. ● Freedom but also incentive to be responsible. Culture and trust.
  • 24. Non-destructive production updates ● Make your assumptions explicit ● Extrapolate trends to the limit ● Listen to non-customers ● Follow developer adoption not IT spending ● Map evolution of products to services to utilities ● Re-organize your teams for speed of execution
  • 25. Non-destructive production updates ● Business logic isolation in stateless micro-services ● Immutable code with instant rollback ● Auto-scaled capacity and deployment updates ● Distributed across availability zones and regions ● De-normalize single function NoSQL data stores ● See over 40 NetflixOSS projects at - netflix.githb.com ● Netflix engineering blog - techblog.netflix.com
  • 26. Mircroservice.. what is it ? See http://en.wikipedia.org/wiki/Domain-driven_design for discussion of bounded contexts A definition of : Microservices Loosely coupled service oriented architecture with bounded contexts
  • 27. Scaling Continuous Delivery Monolithic ● Devs book a train ticket ● Everyone runs the monolith ● Queue for the next train ● Coordination chat session ● Need to learn deploy process ● Copy code to existing servers ● Few concurrent versions ● Tens of monolithic updates/day maximum ● Roll-forward only ● Done - is release to production Microservices ● Every team has their own build ● Dev runs their own microservice ● No waiting, no meetings ● API call to update prod timeline ● Automated hands-off deploy ● Immutable code on new servers ● Unlimited concurrent versions ● 100s of independent updates ● Roll-back in seconds ● Done - is retired from production
  • 28. Separate components using Micro-services ● Invert Conway’s Law - teams own service groups and backend stores ● One “Verb” per single function micro-service, size does not matter ● One developer independently produces a micro-service ● Each micro-service is its own build, avoid trunk conflicts ● Deploy in a container: Tomcat, AMI, or Docker etc.. ● Stateless business logic. Cattle not pets (dispensable) ● Stateful cached data access layer can use ephemeral instances ●
  • 29. Microservices Development Architecture Client libraries ● Even if you start with a raw protocol, a client side driver is the end-state ● Best strategy is the own your own client libraries from the start Multi-threading and non-blocking calls ● Reactive model RxJava uses Observable to hide concurrently cleanly ● Netty can be used to get non-blocking IO speedup over Tomcat container Circuit breakers - See Fluxcapacitor.com for code ● NetflixOSS Hystrix, Turbine, Latency Monkey, Ribbon/Karyon ● Also look at Finagle/Zipkin from Twitter
  • 30. Microservice Datastores Book : Refactoring Databases ● SchemaSpy to examine schema structure ● Denormalization into one datasource per table or materialized view Polyglot Persistence ● Use a mixture of database technologies, behind REST data access layers ● See NetflixOSS Storage Tier as a Service HTTP (staash.com) for MySQL and C* CAP - Consistent or Available when Partitioned ● Look at Jepsen torture tests for common systems aphyr.com/tags/jepsen ● Also look at Finagle/Zipkin from Twitter
  • 32. Monitoring... Monitoring for Microservices Great speed comes with great responsibility and code ownership
  • 33. Challenges with Continuous Delivery High rate of change ● Code pushes can cause floods of new instances and metrics ● Short baseline for alert thresholds analysis - everything looks unusual Ephemeral Configurations ● Short lifetimes make it hard to aggregate historical views ● Hand-tweaked monitoring tools take too much work to keep running Microservices with complex calling patterns ● End-to-end request flow measurements are very important ● Request flow visualizations get overwhelmed
  • 34. Monitoring Continuous Delivery ● Changes are smaller but more frequent ● Individual changes are more likely to be broken ● Change are normally deployed y developers ● Feature flags are used to enable new code ● Instant detection and rollback matters much more ●
  • 36. Continuous Monitoring Whoops! I didn’t mean that Reverting... Not cool if it takes 5 mins to detect a failure and another 5 mins to fix No one notices if it takes 5 seconds to detect and 5 more to rollback
  • 38. NetflixOSS Hystrix / Turbine circuit breaker monitoring system
  • 40. Summary ● Speed wins in the Market ● Remove friction from development ● High trust, low process ● Freedom and responsibility culture ● Leverage SAAS solutions to do heavy lifting ● Automate simple patterns in tools ● Microservices for speed and high-availability
  • 41. Resources Adrian Cockroft Adrian’s Blog http://perfcap.blogspot.com Adrian’s Slides http://www.slideshare.net/adriancockcroft/qcon-new-york-speed-and-scale NetFlix Hystrix / Turbine http://techblog.netflix.com/2012/12/hystrix-dashboard-and-turbine.html See over 40 NetflixOSS projects at netflix.github.com Monitoring tools VividCortex.com / Boundary.com