SlideShare a Scribd company logo
1 of 62
Download to read offline
Smaller IS Better - Exploiting
Microservices on AWS
Craig S. Dickson, Solutions Architect, Amazon Web Services
Presentation Takeaways
When we are finished today, you will be able to answer the
following questions:
• What are microservices?
• What do they look like on AWS?
• What problems can you address using a microservices
architecture?
• Is there a customer success story I can leverage?
• How do I get “microserviced”?
Who am I?
• Solutions Architect at AWS since 2012
• Software Engineer / Architect / Manager prior to that
• Based in Brisbane, Australia
Who are you?
• Architect
• Developer
• SysOps / Server Admin / Networking
• Development Manager
• CTO
What is a Microservice?
Google has been getting a workout …
https://www.google.com/trends/explore#q=microservices
High Expectations …
Microservices
https://www.gartner.com/doc/3102217/hype-cycle-application-architecture-
“Microservices are the first post
DevOps revolution architecture”
– Neal Ford
(Director, Software Architect, and
Meme Wrangler at ThoughtWorks)
Image: http://nealford.com/bio
Why does everyone
hate me? 
Image: 1869 / ptwo / license
What’s wrong with a monolith?
Self Contained Tightly Coupled Lacks Modularity
A Definition of Microservices
“… is an approach to developing a single application as a suite of small
services, each running in its own process and communicating with
lightweight mechanisms, often an HTTP resource API. These services
are built around business capabilities and independently deployable by
fully automated deployment machinery. There is a bare minimum of
centralized management of these services, which may be written in
different programming languages and use different data storage
technologies.”
- Martin Fowler (Chief Scientist, ThoughtWorks)
- James Lewis (Principal Consultant, ThoughtWorks)
“Say hello to my micro friend!”
- Tony Montaña
(Cuban Software Architect)
Image: http://www.amazon.com/Scarface-Limited-Edition-Blu-ray-Digital/dp/B0019N94X6
Um, isn’t this just SOA?
SOA Microservices
Smart pipes, dumb endpoints Simple pipes, smart endpoints
Centralized governance (ESB) Minimal governance
Proprietary standards Open standards
Services provide myriad functions Services are single purposed
Distributed monoliths?
A Well-Architected Microservice on AWS
1. cannot be made any smaller
• has a single functional purpose
• has minimized total lines of code, architecture components, etc.
• is cost optimized
2. is vertically isolated
• runs in its own process
• uses the best fit-for-purpose architecture (app. & infra.)
• uses the best fit-for-purpose programming language
• uses the best fit-for-purpose persistance option(s)
A Well-Architected Microservice on AWS (2)
3. has a well defined interface (API)
• can be versioned
• provides SDKs & documentation for clients
• no backdoors
4. is automatically and independently deployed
• first deploy and all updates
• to all environments, not just test and dev.
5. is automatically tested thoroughly
• functional, integration, performance, etc.
• baseline metrics collected and evaluated
A Well-Architected Microservice on AWS (3)
6. is operationally mature
• horizontally scalable
• self healing
• metrics & logs collected centrally
• elegantly handles failures of downstream services
7. is managed by a small team (2 pizzas?)
• co-located & cross-functional
• back-end devs, UX, ops, DBA, etc.
• with cradle-to-grave responsibilities
Microservice Patterns on AWS
The Poor-Man’s Microservice
Clients
Elastic IP
RDS
HTTP
REST
Running EC2
Instance
Auto Scaling Group
AZ-A
AZ-B
Min = 1, Max = 1
Future EC2
Instance
The Traditional Microservice
Clients
RDS
HTTP
REST
EC2
Instance
Auto Scaling Group
AZ-A
AZ-B
Min > 1
Elastic Load
Balancing
EC2
Instance
AWS
OpsWorks
AWS Elastic
Beanstalk
And don’t forget …
.
That’s nice, but can we make
it smaller?
Image: http://www.nowverybad.com/honey-i-shrunk-the-kids-1989/
The Elastic Container Service Microservice
Clients
RDS
HTTP
REST
ECS Fleet
AZ-A
AZ-B
Elastic Load
Balancing
Servers? Where we’re going,
we don’t need servers
Doc Brown
(Early Cloud Adopter)
Image: http://memorydelta.wikia.com/wiki/Emmett_Brown
“No server is easier to
manage than no server”
Werner Vogels
(CTO, Amazon.com)
Image: 20081108 DDP Werner_Vogels / Guido van Nispen / license
The Serverless Microservice
Clients
HTTP
REST
AWS
Lambda RDS
Never pay for idle!
The Serverless Microservice API
Amazon API
GatewayClients
HTTP
REST
AWS
Lambda
Amazon
S3
Amazon
DynamoDB
Amazon Machine
Learning
Amazon
SNS
Amazon
SQS
Amazon
Kinesis
Lambda
Blueprints
The Hybrid Microservice API
Amazon API
GatewayClients
HTTP
REST
Amazon
EC2
AWS
Lambda
Lambda
Blueprints
Amazon ECS
Elastic Load
Balancing
The Micro-Microservice API
Clients
Amazon API
Gateway
Free
Amazon API
Gateway
Premium
Amazon API
Gateway
Partner
Amazon API
Gateway
Experimental
Amazon
EC2
Amazon ECS
AWS
Lambda
Lambda
Blueprints
Exploiting Microservices to
Address Business Problems
• Product Management has a great idea
• Even better: Product Management has many
great ideas, but are not sure which ones are
winners
• Takes weeks, months or worse to get them in
front of a customer
• A massive barrier to innovation
Problem: Long Feature Cycle Times
• Create an architecture that enables rapid change, inherently
supports agility and encourages innovation
Exploit Microservices to …
Conway’s Law
”organizations which design systems
... are constrained to produce
designs which are copies of the
communication structures of these
organizations”
- Melvin Conway
Image: https://twitter.com/conways_law
• Large pieces of software, require large teams
• Increased inertia, lack of agility
• Hard to integrate work from other teams
• Many problems are actually people problems, not
technology problems
Problem: Large Teams
• Create an architecture that encourages smaller
software components
• Better align team size and responsibilities to
services
Exploit Microservices to …
“Being woken up at 3am every night
by your pager is certainly a powerful
incentive to focus on quality when
writing your code.”
- Martin Fowler
Image: https://en.wikipedia.org/wiki/Martin_Fowler
• Monoliths lead to “shared” responsibilities
• Focus is on project deliverables, not full lifecycle
Problem: Lack of Ownership
• Create small teams working on small pieces of
functionality
• Provide an opportunity for cradle-to-grave ownership
• Foster a “You build it, you run it” philosophy
Exploit Microservices to …
• Geographically, Temporally, Organizationally
• Burden of orchestration
Problem: Distributed Teams
• Provide a mechanism to divide work up so that only
co-located teams have to collaborate heavily
• Define service level APIs that allow distributed teams
to move at different velocities
Exploit Microservices to …
• Upskilling takes time
• Unable to make use of temporary resources
Problem: Inelastic Human Capacity
• Reduce the surface area that individuals need to
understand at any one time
• Enable temporary resources to work quickly and
integrate easily
Exploit Microservices to …
Netflix slide
• Lack of Availability = Loss of Revenue
• Small issues rendering whole applications
unusable
Problem: Availability
• Encourage a design-for-failure attitude
• Enable individual services to implement
appropriate fall-back plans and continue to
provide value to customers
Exploit Microservices to …
• Cannot create à la carte application offerings to
users
• Cannot easily get feedback about new ideas
before investing large resources
Problem: Product Management
• Enable flexibility for product management and
increase innovation
• Quickly test ideas by combining strategies such as
Feature Toggling and A/B Testing
Exploit Microservices to …
Exploiting Microservices to
Address Technical Problems
"I suppose it is tempting, if the only tool you have is a
hammer, to treat everything as if it were a nail.”
- Abraham Maslow (1966)
Maslow’s Hammer
Image: DSC_1607 / Justin Baeder / license
“Give a small boy a
hammer, and he
will find that
everything he
encounters needs
pounding.”
- Abraham
Kaplan (1964)
Image: Thor and his hammer / tenthousandcubans / license
• Different teams forced to use/learn technologies
that they are not effective with, just because it is
“the standard”
• Inability to adopt different or emerging
technologies
Problem: Single Technology Syndrome
• Encourage a polyglot attitude
• Allow the best solution for each problem to be
selected
Exploit Microservices to …
• Fear of deployments due to assumed risk
• Large deployment sizes due to dependencies
Problem: Constrained Delivery Velocities
• Allow different parts of applications to move at
different speeds for development and deployment
activities
• Minimize risk by reducing the deployment sizes
down to single services
Exploit Microservices to …
• Large functional surface area
• All potential failure scenarios are hard to define
• Long running tests delay feedback
Problem: Lack of Testability
• Provide well defined APIs that can be deployed in
isolation
• Allow for quicker, yet more complete testing
Exploit Microservices to …
• Standardizing onto limited EC2 instance types
• Using generic scaling strategies
• Scaling every thing, every time
• Failing to use existing AWS services
Problem: Inefficient Scaling
• Allow the correct scaling option for each service to
be selected
• Scale services independently
• Quickly adopt new AWS services
Exploit Microservices to …
• Inability to easily/safely try new algorithms or
patterns
• Inability to quickly adopt disruptive technologies
Problem: Lack of Technical Innovation
• To encourage vertical decoupling of components
• Evolve individual services quickly without
interfering with other parts of an application
Exploit Microservices to …
Evolving to Microservices
Microservices may not be
the right choice for you.
Image: http://insec.in/blog/2015/01/09/discounts-ethical-hacking-course-in-kolkata/shocked-woman-1/
Before Adopting Microservices
• Are you are a startup?
• Is this a brand new green field project?
• Do you have a deep understanding of the domain?
• Is your organisational structure compatible?
• Have you adopted DevOps practices?
Consider these questions …
“A microservices-first approach for a
brand new project that we didn’t fully
understand the domain for led to a lot of
unexpected complexity. We are however,
having great success on another project
refactoring an existing monolithic service
into microservices.”
Mark Bond
(Group Architect, Dominos Pizza Enterprises)
Mo’ services, mo’ problems
The Notorious B.I.G.
(Influential East-Coast Software Architect)
Image: http://www.neontommy.com/news/2014/03/notorious-big-top-ten-songs
Focus on DevOps and Automation
• Even a medium scale microservices architecture (10s or 100s of
services) is difficult to manage by hand
• Invest in automating EVERYTHING
• Code builds and testing (CI)
• Code deployments to all environments (CD)
• Operational monitoring
• CloudWatch Metrics, CloudWatch Logs, custom dashboards etc.
• A/B testing, function toggling
Focus on Your Organisation
• Evolve team sizes and responsibilities
• Moving towards smaller, cross-functional teams
• With cradle-to-grave responsibilities
• Integrate Product Management, QA, Ops, etc.
Focus on Your Services
• Business capability, rather than technical function
• Everything fails, all the time
• retry, fail-over and service down scenarios
• the circuit-breaker pattern
• Netflix Hystrix
• Centralized metrics and logging collection
Conclusion
µ
Summary
7 tenets
7 architecture patterns 8 business problems
6 technical problems 1 big warning
3 tips for evolving 13 awesome jokes (at least)
What You Should Do Next
µ
AWS Lambda Amazon API Gateway Identify problems
Hunt MonolithsChampion Microservices Get Help
Resources
• Microservices – Martin Fowler & James Lewis
• http://martinfowler.com/articles/microservices.html
• Introduction to Microservices – Chris Richardson
• https://www.nginx.com/blog/introduction-to-microservices/
• Are You Well Architected? – AWS Blog
• https://aws.amazon.com/blogs/aws/are-you-well-architected/
• Netflix Hystrix
• https://github.com/Netflix/Hystrix
Online Labs & Training
Gain confidence and hands-on
experience with AWS.
Watch free Instructional Videos and
explore Self-Paced Labs
Instructor Led Classes
Learn how to design, deploy and
operate highly available, cost-effective
and secure applications on AWS in
courses led by qualified AWS
instructors
Validate your technical expertise
with AWS and use practice
exams to help you prepare for
AWS Certification
AWS Certification
More info at http://aws.amazon.com/training
Thank You for Attending AWS Innovate
We hope you found it interesting!
Do provide us with your feedback for the session and complete the feedback form.
Let us know your thoughts of today’s event and how we can improve the event
experience for you in the future.

More Related Content

What's hot

What's hot (20)

Automated Governance of Your AWS Resources
Automated Governance of Your AWS ResourcesAutomated Governance of Your AWS Resources
Automated Governance of Your AWS Resources
 
DevOps, Microservices and Serverless Architecture
DevOps, Microservices and Serverless ArchitectureDevOps, Microservices and Serverless Architecture
DevOps, Microservices and Serverless Architecture
 
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
 
Zombie Apocalypse Workshop by Warren Santer and Kyle Somers, Solutions Archit...
Zombie Apocalypse Workshop by Warren Santer and Kyle Somers, Solutions Archit...Zombie Apocalypse Workshop by Warren Santer and Kyle Somers, Solutions Archit...
Zombie Apocalypse Workshop by Warren Santer and Kyle Somers, Solutions Archit...
 
Getting Started with AWS Lambda and the Serverless Cloud
Getting Started with AWS Lambda and the Serverless CloudGetting Started with AWS Lambda and the Serverless Cloud
Getting Started with AWS Lambda and the Serverless Cloud
 
AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (D...
AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (D...AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (D...
AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (D...
 
Chris Munns, DevOps @ Amazon: Microservices, 2 Pizza Teams, & 50 Million Depl...
Chris Munns, DevOps @ Amazon: Microservices, 2 Pizza Teams, & 50 Million Depl...Chris Munns, DevOps @ Amazon: Microservices, 2 Pizza Teams, & 50 Million Depl...
Chris Munns, DevOps @ Amazon: Microservices, 2 Pizza Teams, & 50 Million Depl...
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
 
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
 
Application Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless WorldApplication Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless World
 
Application Lifecycle Management
Application Lifecycle ManagementApplication Lifecycle Management
Application Lifecycle Management
 
AWS Security and SecOps
AWS Security and SecOpsAWS Security and SecOps
AWS Security and SecOps
 
AWS re:Invent 2016: How A Federal Agency Transformed Work and Adopted DevOps ...
AWS re:Invent 2016: How A Federal Agency Transformed Work and Adopted DevOps ...AWS re:Invent 2016: How A Federal Agency Transformed Work and Adopted DevOps ...
AWS re:Invent 2016: How A Federal Agency Transformed Work and Adopted DevOps ...
 
(SEC307) A Progressive Journey Through AWS IAM Federation Options
(SEC307) A Progressive Journey Through AWS IAM Federation Options(SEC307) A Progressive Journey Through AWS IAM Federation Options
(SEC307) A Progressive Journey Through AWS IAM Federation Options
 
Accelerating DevOps Pipelines with AWS
Accelerating DevOps Pipelines with AWSAccelerating DevOps Pipelines with AWS
Accelerating DevOps Pipelines with AWS
 
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar SeriesGetting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
 
Building CICD Pipelines for Serverless Applications - DevDay Los Angeles 2017
Building CICD Pipelines for Serverless Applications - DevDay Los Angeles 2017Building CICD Pipelines for Serverless Applications - DevDay Los Angeles 2017
Building CICD Pipelines for Serverless Applications - DevDay Los Angeles 2017
 
AWS re:Invent 2016: The AWS Hero’s Journey to Achieving Autonomous, Self-Heal...
AWS re:Invent 2016: The AWS Hero’s Journey to Achieving Autonomous, Self-Heal...AWS re:Invent 2016: The AWS Hero’s Journey to Achieving Autonomous, Self-Heal...
AWS re:Invent 2016: The AWS Hero’s Journey to Achieving Autonomous, Self-Heal...
 
AWS re:Invent 2016: Application Lifecycle Management in a Serverless World (S...
AWS re:Invent 2016: Application Lifecycle Management in a Serverless World (S...AWS re:Invent 2016: Application Lifecycle Management in a Serverless World (S...
AWS re:Invent 2016: Application Lifecycle Management in a Serverless World (S...
 
Announcing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck TalksAnnouncing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck Talks
 

Similar to AWS Innovate: Smaller IS Better – Exploiting Microservices on AWS, Craig Dickson

스타트업과 개발자를 위한 AWS 클라우드 태권 세미나
스타트업과 개발자를 위한 AWS 클라우드 태권 세미나스타트업과 개발자를 위한 AWS 클라우드 태권 세미나
스타트업과 개발자를 위한 AWS 클라우드 태권 세미나
Amazon Web Services Korea
 

Similar to AWS Innovate: Smaller IS Better – Exploiting Microservices on AWS, Craig Dickson (20)

Smaller is Better - Exploiting Microservice Architectures on AWS - Technical 201
Smaller is Better - Exploiting Microservice Architectures on AWS - Technical 201Smaller is Better - Exploiting Microservice Architectures on AWS - Technical 201
Smaller is Better - Exploiting Microservice Architectures on AWS - Technical 201
 
Microservices and Serverless for Mega Startups - DevOps IL Meetup
Microservices and Serverless for Mega Startups - DevOps IL MeetupMicroservices and Serverless for Mega Startups - DevOps IL Meetup
Microservices and Serverless for Mega Startups - DevOps IL Meetup
 
Introducing to serverless computing and AWS lambda - Israel Clouds Meetup
Introducing to serverless computing and AWS lambda - Israel Clouds MeetupIntroducing to serverless computing and AWS lambda - Israel Clouds Meetup
Introducing to serverless computing and AWS lambda - Israel Clouds Meetup
 
Designing Microservices
Designing MicroservicesDesigning Microservices
Designing Microservices
 
Microservices and docker
Microservices and dockerMicroservices and docker
Microservices and docker
 
Containers, microservices and serverless for realists
Containers, microservices and serverless for realistsContainers, microservices and serverless for realists
Containers, microservices and serverless for realists
 
Accelerate Delivery: Business case for Agile DevOps, CI/CD and Microservices
Accelerate Delivery: Business case for Agile DevOps, CI/CD and MicroservicesAccelerate Delivery: Business case for Agile DevOps, CI/CD and Microservices
Accelerate Delivery: Business case for Agile DevOps, CI/CD and Microservices
 
Micro services and Containers
Micro services and ContainersMicro services and Containers
Micro services and Containers
 
스타트업과 개발자를 위한 AWS 클라우드 태권 세미나
스타트업과 개발자를 위한 AWS 클라우드 태권 세미나스타트업과 개발자를 위한 AWS 클라우드 태권 세미나
스타트업과 개발자를 위한 AWS 클라우드 태권 세미나
 
MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.
 
Tech Talk on Cloud Computing
Tech Talk on Cloud ComputingTech Talk on Cloud Computing
Tech Talk on Cloud Computing
 
From Monoliths to Services: Grafually paying your Technical Debt
From Monoliths to Services: Grafually paying your Technical DebtFrom Monoliths to Services: Grafually paying your Technical Debt
From Monoliths to Services: Grafually paying your Technical Debt
 
Kubernetes solutions
Kubernetes solutionsKubernetes solutions
Kubernetes solutions
 
Application Centric Microservices from Redhat Summit 2015
Application Centric Microservices from Redhat Summit 2015Application Centric Microservices from Redhat Summit 2015
Application Centric Microservices from Redhat Summit 2015
 
Disruptive Trends in Application Development
Disruptive Trends in Application DevelopmentDisruptive Trends in Application Development
Disruptive Trends in Application Development
 
Changing the Game with Cloud, Microservices, and DevOps
Changing the Game with Cloud, Microservices, and DevOps Changing the Game with Cloud, Microservices, and DevOps
Changing the Game with Cloud, Microservices, and DevOps
 
Microservices: Yes or not?
Microservices: Yes or not?Microservices: Yes or not?
Microservices: Yes or not?
 
Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.
 
Mobile app-and-microservices-with-ibm-cloud
Mobile app-and-microservices-with-ibm-cloudMobile app-and-microservices-with-ibm-cloud
Mobile app-and-microservices-with-ibm-cloud
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
 

More from Amazon Web Services Korea

More from Amazon Web Services Korea (20)

AWS Modern Infra with Storage Roadshow 2023 - Day 2
AWS Modern Infra with Storage Roadshow 2023 - Day 2AWS Modern Infra with Storage Roadshow 2023 - Day 2
AWS Modern Infra with Storage Roadshow 2023 - Day 2
 
AWS Modern Infra with Storage Roadshow 2023 - Day 1
AWS Modern Infra with Storage Roadshow 2023 - Day 1AWS Modern Infra with Storage Roadshow 2023 - Day 1
AWS Modern Infra with Storage Roadshow 2023 - Day 1
 
사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...
사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...
사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...
 
Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...
Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...
Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...
 
Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...
Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...
Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...
 
Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...
Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...
Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...
 
[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...
[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...
[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...
 
Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...
Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...
Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...
 
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...
 
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...
 
Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...
Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...
Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...
 
Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...
Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...
Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...
 
From Insights to Action, How to build and maintain a Data Driven Organization...
From Insights to Action, How to build and maintain a Data Driven Organization...From Insights to Action, How to build and maintain a Data Driven Organization...
From Insights to Action, How to build and maintain a Data Driven Organization...
 
[Keynote] Accelerating Business Outcomes with AWS Data - 발표자: Saeed Gharadagh...
[Keynote] Accelerating Business Outcomes with AWS Data - 발표자: Saeed Gharadagh...[Keynote] Accelerating Business Outcomes with AWS Data - 발표자: Saeed Gharadagh...
[Keynote] Accelerating Business Outcomes with AWS Data - 발표자: Saeed Gharadagh...
 
Amazon DynamoDB - Use Cases and Cost Optimization - 발표자: 이혁, DynamoDB Special...
Amazon DynamoDB - Use Cases and Cost Optimization - 발표자: 이혁, DynamoDB Special...Amazon DynamoDB - Use Cases and Cost Optimization - 발표자: 이혁, DynamoDB Special...
Amazon DynamoDB - Use Cases and Cost Optimization - 발표자: 이혁, DynamoDB Special...
 
LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L...
LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L...LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L...
LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L...
 
KB국민카드 - 클라우드 기반 분석 플랫폼 혁신 여정 - 발표자: 박창용 과장, 데이터전략본부, AI혁신부, KB카드│강병억, Soluti...
KB국민카드 - 클라우드 기반 분석 플랫폼 혁신 여정 - 발표자: 박창용 과장, 데이터전략본부, AI혁신부, KB카드│강병억, Soluti...KB국민카드 - 클라우드 기반 분석 플랫폼 혁신 여정 - 발표자: 박창용 과장, 데이터전략본부, AI혁신부, KB카드│강병억, Soluti...
KB국민카드 - 클라우드 기반 분석 플랫폼 혁신 여정 - 발표자: 박창용 과장, 데이터전략본부, AI혁신부, KB카드│강병억, Soluti...
 
SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...
SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...
SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...
 
코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...
코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...
코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...
 
LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노...
LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노...LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노...
LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노...
 

Recently uploaded

Recently uploaded (20)

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 

AWS Innovate: Smaller IS Better – Exploiting Microservices on AWS, Craig Dickson

  • 1. Smaller IS Better - Exploiting Microservices on AWS Craig S. Dickson, Solutions Architect, Amazon Web Services
  • 2. Presentation Takeaways When we are finished today, you will be able to answer the following questions: • What are microservices? • What do they look like on AWS? • What problems can you address using a microservices architecture? • Is there a customer success story I can leverage? • How do I get “microserviced”?
  • 3. Who am I? • Solutions Architect at AWS since 2012 • Software Engineer / Architect / Manager prior to that • Based in Brisbane, Australia
  • 4. Who are you? • Architect • Developer • SysOps / Server Admin / Networking • Development Manager • CTO
  • 5. What is a Microservice?
  • 6. Google has been getting a workout … https://www.google.com/trends/explore#q=microservices
  • 8. “Microservices are the first post DevOps revolution architecture” – Neal Ford (Director, Software Architect, and Meme Wrangler at ThoughtWorks) Image: http://nealford.com/bio
  • 9. Why does everyone hate me?  Image: 1869 / ptwo / license
  • 10. What’s wrong with a monolith? Self Contained Tightly Coupled Lacks Modularity
  • 11. A Definition of Microservices “… is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies.” - Martin Fowler (Chief Scientist, ThoughtWorks) - James Lewis (Principal Consultant, ThoughtWorks)
  • 12.
  • 13. “Say hello to my micro friend!” - Tony Montaña (Cuban Software Architect) Image: http://www.amazon.com/Scarface-Limited-Edition-Blu-ray-Digital/dp/B0019N94X6
  • 14. Um, isn’t this just SOA? SOA Microservices Smart pipes, dumb endpoints Simple pipes, smart endpoints Centralized governance (ESB) Minimal governance Proprietary standards Open standards Services provide myriad functions Services are single purposed Distributed monoliths?
  • 15. A Well-Architected Microservice on AWS 1. cannot be made any smaller • has a single functional purpose • has minimized total lines of code, architecture components, etc. • is cost optimized 2. is vertically isolated • runs in its own process • uses the best fit-for-purpose architecture (app. & infra.) • uses the best fit-for-purpose programming language • uses the best fit-for-purpose persistance option(s)
  • 16. A Well-Architected Microservice on AWS (2) 3. has a well defined interface (API) • can be versioned • provides SDKs & documentation for clients • no backdoors 4. is automatically and independently deployed • first deploy and all updates • to all environments, not just test and dev. 5. is automatically tested thoroughly • functional, integration, performance, etc. • baseline metrics collected and evaluated
  • 17. A Well-Architected Microservice on AWS (3) 6. is operationally mature • horizontally scalable • self healing • metrics & logs collected centrally • elegantly handles failures of downstream services 7. is managed by a small team (2 pizzas?) • co-located & cross-functional • back-end devs, UX, ops, DBA, etc. • with cradle-to-grave responsibilities
  • 19. The Poor-Man’s Microservice Clients Elastic IP RDS HTTP REST Running EC2 Instance Auto Scaling Group AZ-A AZ-B Min = 1, Max = 1 Future EC2 Instance
  • 20. The Traditional Microservice Clients RDS HTTP REST EC2 Instance Auto Scaling Group AZ-A AZ-B Min > 1 Elastic Load Balancing EC2 Instance AWS OpsWorks AWS Elastic Beanstalk And don’t forget … .
  • 21. That’s nice, but can we make it smaller? Image: http://www.nowverybad.com/honey-i-shrunk-the-kids-1989/
  • 22. The Elastic Container Service Microservice Clients RDS HTTP REST ECS Fleet AZ-A AZ-B Elastic Load Balancing
  • 23. Servers? Where we’re going, we don’t need servers Doc Brown (Early Cloud Adopter) Image: http://memorydelta.wikia.com/wiki/Emmett_Brown
  • 24. “No server is easier to manage than no server” Werner Vogels (CTO, Amazon.com) Image: 20081108 DDP Werner_Vogels / Guido van Nispen / license
  • 26. The Serverless Microservice API Amazon API GatewayClients HTTP REST AWS Lambda Amazon S3 Amazon DynamoDB Amazon Machine Learning Amazon SNS Amazon SQS Amazon Kinesis Lambda Blueprints
  • 27. The Hybrid Microservice API Amazon API GatewayClients HTTP REST Amazon EC2 AWS Lambda Lambda Blueprints Amazon ECS Elastic Load Balancing
  • 28. The Micro-Microservice API Clients Amazon API Gateway Free Amazon API Gateway Premium Amazon API Gateway Partner Amazon API Gateway Experimental Amazon EC2 Amazon ECS AWS Lambda Lambda Blueprints
  • 30. • Product Management has a great idea • Even better: Product Management has many great ideas, but are not sure which ones are winners • Takes weeks, months or worse to get them in front of a customer • A massive barrier to innovation Problem: Long Feature Cycle Times • Create an architecture that enables rapid change, inherently supports agility and encourages innovation Exploit Microservices to …
  • 31. Conway’s Law ”organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations” - Melvin Conway Image: https://twitter.com/conways_law
  • 32. • Large pieces of software, require large teams • Increased inertia, lack of agility • Hard to integrate work from other teams • Many problems are actually people problems, not technology problems Problem: Large Teams • Create an architecture that encourages smaller software components • Better align team size and responsibilities to services Exploit Microservices to …
  • 33.
  • 34. “Being woken up at 3am every night by your pager is certainly a powerful incentive to focus on quality when writing your code.” - Martin Fowler Image: https://en.wikipedia.org/wiki/Martin_Fowler
  • 35. • Monoliths lead to “shared” responsibilities • Focus is on project deliverables, not full lifecycle Problem: Lack of Ownership • Create small teams working on small pieces of functionality • Provide an opportunity for cradle-to-grave ownership • Foster a “You build it, you run it” philosophy Exploit Microservices to …
  • 36. • Geographically, Temporally, Organizationally • Burden of orchestration Problem: Distributed Teams • Provide a mechanism to divide work up so that only co-located teams have to collaborate heavily • Define service level APIs that allow distributed teams to move at different velocities Exploit Microservices to …
  • 37. • Upskilling takes time • Unable to make use of temporary resources Problem: Inelastic Human Capacity • Reduce the surface area that individuals need to understand at any one time • Enable temporary resources to work quickly and integrate easily Exploit Microservices to …
  • 39. • Lack of Availability = Loss of Revenue • Small issues rendering whole applications unusable Problem: Availability • Encourage a design-for-failure attitude • Enable individual services to implement appropriate fall-back plans and continue to provide value to customers Exploit Microservices to …
  • 40. • Cannot create à la carte application offerings to users • Cannot easily get feedback about new ideas before investing large resources Problem: Product Management • Enable flexibility for product management and increase innovation • Quickly test ideas by combining strategies such as Feature Toggling and A/B Testing Exploit Microservices to …
  • 42. "I suppose it is tempting, if the only tool you have is a hammer, to treat everything as if it were a nail.” - Abraham Maslow (1966) Maslow’s Hammer Image: DSC_1607 / Justin Baeder / license
  • 43. “Give a small boy a hammer, and he will find that everything he encounters needs pounding.” - Abraham Kaplan (1964) Image: Thor and his hammer / tenthousandcubans / license
  • 44. • Different teams forced to use/learn technologies that they are not effective with, just because it is “the standard” • Inability to adopt different or emerging technologies Problem: Single Technology Syndrome • Encourage a polyglot attitude • Allow the best solution for each problem to be selected Exploit Microservices to …
  • 45. • Fear of deployments due to assumed risk • Large deployment sizes due to dependencies Problem: Constrained Delivery Velocities • Allow different parts of applications to move at different speeds for development and deployment activities • Minimize risk by reducing the deployment sizes down to single services Exploit Microservices to …
  • 46. • Large functional surface area • All potential failure scenarios are hard to define • Long running tests delay feedback Problem: Lack of Testability • Provide well defined APIs that can be deployed in isolation • Allow for quicker, yet more complete testing Exploit Microservices to …
  • 47. • Standardizing onto limited EC2 instance types • Using generic scaling strategies • Scaling every thing, every time • Failing to use existing AWS services Problem: Inefficient Scaling • Allow the correct scaling option for each service to be selected • Scale services independently • Quickly adopt new AWS services Exploit Microservices to …
  • 48. • Inability to easily/safely try new algorithms or patterns • Inability to quickly adopt disruptive technologies Problem: Lack of Technical Innovation • To encourage vertical decoupling of components • Evolve individual services quickly without interfering with other parts of an application Exploit Microservices to …
  • 50. Microservices may not be the right choice for you. Image: http://insec.in/blog/2015/01/09/discounts-ethical-hacking-course-in-kolkata/shocked-woman-1/
  • 51. Before Adopting Microservices • Are you are a startup? • Is this a brand new green field project? • Do you have a deep understanding of the domain? • Is your organisational structure compatible? • Have you adopted DevOps practices? Consider these questions …
  • 52. “A microservices-first approach for a brand new project that we didn’t fully understand the domain for led to a lot of unexpected complexity. We are however, having great success on another project refactoring an existing monolithic service into microservices.” Mark Bond (Group Architect, Dominos Pizza Enterprises)
  • 53. Mo’ services, mo’ problems The Notorious B.I.G. (Influential East-Coast Software Architect) Image: http://www.neontommy.com/news/2014/03/notorious-big-top-ten-songs
  • 54. Focus on DevOps and Automation • Even a medium scale microservices architecture (10s or 100s of services) is difficult to manage by hand • Invest in automating EVERYTHING • Code builds and testing (CI) • Code deployments to all environments (CD) • Operational monitoring • CloudWatch Metrics, CloudWatch Logs, custom dashboards etc. • A/B testing, function toggling
  • 55. Focus on Your Organisation • Evolve team sizes and responsibilities • Moving towards smaller, cross-functional teams • With cradle-to-grave responsibilities • Integrate Product Management, QA, Ops, etc.
  • 56. Focus on Your Services • Business capability, rather than technical function • Everything fails, all the time • retry, fail-over and service down scenarios • the circuit-breaker pattern • Netflix Hystrix • Centralized metrics and logging collection
  • 58. µ Summary 7 tenets 7 architecture patterns 8 business problems 6 technical problems 1 big warning 3 tips for evolving 13 awesome jokes (at least)
  • 59. What You Should Do Next µ AWS Lambda Amazon API Gateway Identify problems Hunt MonolithsChampion Microservices Get Help
  • 60. Resources • Microservices – Martin Fowler & James Lewis • http://martinfowler.com/articles/microservices.html • Introduction to Microservices – Chris Richardson • https://www.nginx.com/blog/introduction-to-microservices/ • Are You Well Architected? – AWS Blog • https://aws.amazon.com/blogs/aws/are-you-well-architected/ • Netflix Hystrix • https://github.com/Netflix/Hystrix
  • 61. Online Labs & Training Gain confidence and hands-on experience with AWS. Watch free Instructional Videos and explore Self-Paced Labs Instructor Led Classes Learn how to design, deploy and operate highly available, cost-effective and secure applications on AWS in courses led by qualified AWS instructors Validate your technical expertise with AWS and use practice exams to help you prepare for AWS Certification AWS Certification More info at http://aws.amazon.com/training
  • 62. Thank You for Attending AWS Innovate We hope you found it interesting! Do provide us with your feedback for the session and complete the feedback form. Let us know your thoughts of today’s event and how we can improve the event experience for you in the future.