SlideShare a Scribd company logo
1 of 61
Sascha Möllering | zanox AG
Cloud Workshop
About me
Sascha Möllering
sascha@autoscaling.io
Lead Engineer / DevOps Hipster
zanox AG
http://autoscaling.io
@sascha242
About me
Java Magazin 11.14
Architektur im Kontext der Cloud: Patterns und
Best Practices
AWS Virtual Cloud Summit
Continuous delivery in AWS using Docker
http://aws-summit.de/
Entwickler Spezial: Docker
Über den Wolken: Ein Erfahrungsbericht zum
Docker-Einsatz in der Amazon Cloud
Agenda
• AWS Overview
• Creating a cloud service
• Real World example
• Cloud deployment
• Q&A
How can we scale?
RegionUS-WEST (N.
California) EU-WEST (Ireland)
ASIA PAC
(Tokyo)
ASIA PAC
(Singapore)
US-WEST (Oregon)
SOUTH AMERICA (Sao
Paulo)
US-EAST (Virginia)
GOV CLOUD
ASIA PAC
(Sydney)
Regions
Regions
EU-CENTRAL
(Frankfurt)
AWS Overview
Zones
Zones
Availability
Zone
AWS Overview
AWS Overview
EC2: Resizable compute capacity
AutoScaling: scale up or down
Route 53: Domain Name System
ELB: Load Balancing
Elastic IP: Static IP address
AWS Overview
RDS: Managed database service
DynamoDB: NoSQL implementation
Redshift: data warehouse solution
ElastiCache: Managed cache
Kinesis: Service for streaming data
AWS Overview
S3: Highly-scalable object storage
CloudFront: CDN implementation
CloudWatch: Monitoring service
IAM: Identity and Access Management
EMR: Managed Hadoop
CloudFormation: Configuration Mgmt
Starting point
• How can we leverage the Cloud?
• Our application:
– Simple Java based web application
– One application
– One database
– Runs in our own DC
Creating a cloud service
• Initial setup:
– Route53 for DNS
– One Elastic IP (static IPs for the Cloud)
– One EC2 instance
• Web Application
• Database
– One AZ
Creating a cloud service
Availability Zone
Creating a cloud service
• Simple approach to scale:
– Different EC2 instance type
• More RAM
• More CPU power
• More IOPS
• Approach will hit a barrier
Creating a cloud service
• Problems:
– No failover
– No redundancy
– Database and application on one instance
– Does not scale very well
Creating a cloud service
• Separate Web Application from DB
– One EC2 instance for the Web Application
– One EC2 instance for the DB
– Or: Managed DB service (RDS)
• One AZ
Creating a cloud service
Availability Zone
Database
Creating a cloud service
• Problems:
– No failover
– No redundancy
– Does still not scale very well
Creating a cloud service
• Add an ELB
• Add EC2 instance for Web Application
• Different AZs
• Standby DB instance
– Multi AZ setup in RDS
Creating a cloud service
Creating a cloud service
Availability Zone
Database
Availability Zone
Database
Creating a cloud service
• Problems:
– Still limited scaling capabilities
– If one EC2 instance crashes, 50% less
capability
Creating a cloud service
• Add additional EC2 instances
• Add read replicas in RDS
Creating a cloud service
Availability Zone
Database
Availability Zone
Database
Creating a cloud service
• Problems:
– Naive implementation
– Does not leverage AWS services
– Limited scaling
– Can be quite expensive
Creating a cloud service
• Refactoring
• Introduce caches to take load from DB
• Use S3 and CloudFront to ship static
content
• Store session data in DynamoDB
• Add Autoscaling
Creating a cloud service
• Autoscaling
– Automatic resizing of compute clusters
based on demand
– Integrated to Amazon CloudWatch
– Maximum and minimum pool sizes
– Autoscaling policies triggered by
CloudWatch alarms
Creating a cloud service
Requests
Elastic Load Balancing
Latency Metrics CPU Metrics
Amazon CloudWatch
Metric
Monitoring
Alarm
Notification
Scale up/down
Creating a cloud service
Availability Zone
Auto Scaling
group
Creating a cloud service
• Started with a simple web application
• Added several Amazon services
• Managed to shift load from application
to services
• Added caches and CDN
• Added Autoscaling
Creating a cloud service
• Next steps:
– SOA/Microservices
– Loose coupling: decouple interactions
– Amazon services, don‘t reinvent the wheel
– Database federation
– Database sharding
Docker Deployment
• Amazon Services with Docker
support:
–Amazon OpsWorks*
–Elastic Beanstalk
–EC2 Container Service
*by adding a custom Docker Layer
Docker Deployment
• On EC2 level:
– Using the Docker remote API
– EC2 User Data
Docker Deployment
• Remote API
– API to access Docker daemon
– Can be bound to specific host/port
– E.g. Jenkins can trigger deployments
– GET /containers/json
Docker Deployment
• EC2 User Data
– Data to configure instance during launch
• Install Docker
• Start Daemon
• Run Docker container
Demo
• Elastic architecture that grows and
shrinks
• Multiple AZs
• Use case: simple web app
• Elastic Beanstalk and Docker
• Postgres RDS DB
Demo
• JHipster
– Yeoman generator
– Yeoman is a scaffolding tool for webapps
– Creates Spring Boot/AngularJS projects
Demo
• Support for:
– Maven/Gradle
– Spring Security
– Spring Data JPA
– Elasticsearch
– MongoDB
– Cassandra
– ...
Demo
Demo
Elastic Beanstalk
• Docker support:
– Dockerrun.aws.json specifies runtime
– Dockerfile is an alternative
• EC2 instances using Docker 1.6
• No direct port mapping
• Local nginx reverse proxy
• Connects to IP of Docker container
Elastic Beanstalk
• Dockerrun.aws.json:
– Specifies Docker image (support for private
registries as well)
– Defines port for local nginx
– Support for volumes and logging as well
Elastic Beanstalk
Elastic Beanstalk
But … we didn’t
specify RDS
connection strings in
our Container?
• RDS specific values are exposed as
ENV-variables
• Mapped into the Docker container
• Used by the application to connect to
Postgres
Elastic Beanstalk
Elastic Beanstalk
Elastic Beanstalk
• nginx local proxy
• Config in sites-enabled and conf.d
• proxy-pass is http://docker
• Maps to container-ip
Elastic Beanstalk
Elastic Beanstalk
Elastic Beanstalk
Q&A

More Related Content

What's hot

Iguazú: A Long-Running Job Scheduler using Docker and Mesos
Iguazú: A Long-Running Job Scheduler using Docker and MesosIguazú: A Long-Running Job Scheduler using Docker and Mesos
Iguazú: A Long-Running Job Scheduler using Docker and MesosColleen Lee
 
Greetings from AWS User Group Taiwan
Greetings from AWS User Group TaiwanGreetings from AWS User Group Taiwan
Greetings from AWS User Group TaiwanCliff Chao-kuan Lu
 
Securing Containers From Day One | null Ahmedabad Meetup
Securing Containers From Day One | null Ahmedabad MeetupSecuring Containers From Day One | null Ahmedabad Meetup
Securing Containers From Day One | null Ahmedabad MeetupKumar Ashwin
 
Stacktician - CloudStack Collab Conference 2014
Stacktician - CloudStack Collab Conference 2014Stacktician - CloudStack Collab Conference 2014
Stacktician - CloudStack Collab Conference 2014amoghvk
 
AWS Webcast - AWS OpsWorks Continuous Integration Demo
AWS Webcast - AWS OpsWorks Continuous Integration Demo  AWS Webcast - AWS OpsWorks Continuous Integration Demo
AWS Webcast - AWS OpsWorks Continuous Integration Demo Amazon Web Services
 
NDev Talk - Serverless Design Patterns
NDev Talk - Serverless Design PatternsNDev Talk - Serverless Design Patterns
NDev Talk - Serverless Design PatternsRyan Green
 
Sebastien goasguen cloud stack the next year
Sebastien goasguen   cloud stack the next yearSebastien goasguen   cloud stack the next year
Sebastien goasguen cloud stack the next yearShapeBlue
 
Deep Dive into AWS ECS and Spot Instances at Scale
Deep Dive into AWS ECS and Spot Instances at ScaleDeep Dive into AWS ECS and Spot Instances at Scale
Deep Dive into AWS ECS and Spot Instances at ScalePahud Hsieh
 
goployer, 코드 기반의 배포 도구 - 송주영 (beNX) :: AWS Community Day 2020
goployer, 코드 기반의 배포 도구 - 송주영 (beNX) :: AWS Community Day 2020goployer, 코드 기반의 배포 도구 - 송주영 (beNX) :: AWS Community Day 2020
goployer, 코드 기반의 배포 도구 - 송주영 (beNX) :: AWS Community Day 2020AWSKRUG - AWS한국사용자모임
 
Building A Dynamic Website - 31st Jan 2015
Building A Dynamic Website - 31st Jan 2015Building A Dynamic Website - 31st Jan 2015
Building A Dynamic Website - 31st Jan 2015Jhalak Modi
 
Surati Tech Talks 2022 / Build reliable Svelte applications using Cypress
Surati Tech Talks 2022 / Build reliable Svelte applications using CypressSurati Tech Talks 2022 / Build reliable Svelte applications using Cypress
Surati Tech Talks 2022 / Build reliable Svelte applications using CypressMaurice De Beijer [MVP]
 
從劍宗到氣宗 - 談AWS ECS與Serverless最佳實踐
從劍宗到氣宗  - 談AWS ECS與Serverless最佳實踐從劍宗到氣宗  - 談AWS ECS與Serverless最佳實踐
從劍宗到氣宗 - 談AWS ECS與Serverless最佳實踐Pahud Hsieh
 
Meeyup aws-loadbalancing-28032015
Meeyup aws-loadbalancing-28032015Meeyup aws-loadbalancing-28032015
Meeyup aws-loadbalancing-28032015Jhalak Modi
 
Building Micro-Services with Scala
Building Micro-Services with ScalaBuilding Micro-Services with Scala
Building Micro-Services with ScalaYardena Meymann
 
Sebastien goasguen cloud stack and docker
Sebastien goasguen   cloud stack and dockerSebastien goasguen   cloud stack and docker
Sebastien goasguen cloud stack and dockerShapeBlue
 
Container orchestration overview
Container orchestration overviewContainer orchestration overview
Container orchestration overviewWyn B. Van Devanter
 

What's hot (20)

Intro to Serverless
Intro to ServerlessIntro to Serverless
Intro to Serverless
 
104 meets cloud
104 meets cloud104 meets cloud
104 meets cloud
 
Iguazú: A Long-Running Job Scheduler using Docker and Mesos
Iguazú: A Long-Running Job Scheduler using Docker and MesosIguazú: A Long-Running Job Scheduler using Docker and Mesos
Iguazú: A Long-Running Job Scheduler using Docker and Mesos
 
Greetings from AWS User Group Taiwan
Greetings from AWS User Group TaiwanGreetings from AWS User Group Taiwan
Greetings from AWS User Group Taiwan
 
Serverless
ServerlessServerless
Serverless
 
Securing Containers From Day One | null Ahmedabad Meetup
Securing Containers From Day One | null Ahmedabad MeetupSecuring Containers From Day One | null Ahmedabad Meetup
Securing Containers From Day One | null Ahmedabad Meetup
 
Stacktician - CloudStack Collab Conference 2014
Stacktician - CloudStack Collab Conference 2014Stacktician - CloudStack Collab Conference 2014
Stacktician - CloudStack Collab Conference 2014
 
AWS Webcast - AWS OpsWorks Continuous Integration Demo
AWS Webcast - AWS OpsWorks Continuous Integration Demo  AWS Webcast - AWS OpsWorks Continuous Integration Demo
AWS Webcast - AWS OpsWorks Continuous Integration Demo
 
Architecting on The Cloud
Architecting on The CloudArchitecting on The Cloud
Architecting on The Cloud
 
NDev Talk - Serverless Design Patterns
NDev Talk - Serverless Design PatternsNDev Talk - Serverless Design Patterns
NDev Talk - Serverless Design Patterns
 
Sebastien goasguen cloud stack the next year
Sebastien goasguen   cloud stack the next yearSebastien goasguen   cloud stack the next year
Sebastien goasguen cloud stack the next year
 
Deep Dive into AWS ECS and Spot Instances at Scale
Deep Dive into AWS ECS and Spot Instances at ScaleDeep Dive into AWS ECS and Spot Instances at Scale
Deep Dive into AWS ECS and Spot Instances at Scale
 
goployer, 코드 기반의 배포 도구 - 송주영 (beNX) :: AWS Community Day 2020
goployer, 코드 기반의 배포 도구 - 송주영 (beNX) :: AWS Community Day 2020goployer, 코드 기반의 배포 도구 - 송주영 (beNX) :: AWS Community Day 2020
goployer, 코드 기반의 배포 도구 - 송주영 (beNX) :: AWS Community Day 2020
 
Building A Dynamic Website - 31st Jan 2015
Building A Dynamic Website - 31st Jan 2015Building A Dynamic Website - 31st Jan 2015
Building A Dynamic Website - 31st Jan 2015
 
Surati Tech Talks 2022 / Build reliable Svelte applications using Cypress
Surati Tech Talks 2022 / Build reliable Svelte applications using CypressSurati Tech Talks 2022 / Build reliable Svelte applications using Cypress
Surati Tech Talks 2022 / Build reliable Svelte applications using Cypress
 
從劍宗到氣宗 - 談AWS ECS與Serverless最佳實踐
從劍宗到氣宗  - 談AWS ECS與Serverless最佳實踐從劍宗到氣宗  - 談AWS ECS與Serverless最佳實踐
從劍宗到氣宗 - 談AWS ECS與Serverless最佳實踐
 
Meeyup aws-loadbalancing-28032015
Meeyup aws-loadbalancing-28032015Meeyup aws-loadbalancing-28032015
Meeyup aws-loadbalancing-28032015
 
Building Micro-Services with Scala
Building Micro-Services with ScalaBuilding Micro-Services with Scala
Building Micro-Services with Scala
 
Sebastien goasguen cloud stack and docker
Sebastien goasguen   cloud stack and dockerSebastien goasguen   cloud stack and docker
Sebastien goasguen cloud stack and docker
 
Container orchestration overview
Container orchestration overviewContainer orchestration overview
Container orchestration overview
 

Viewers also liked

Cloud Patterns Beuth Hochschule
Cloud Patterns Beuth HochschuleCloud Patterns Beuth Hochschule
Cloud Patterns Beuth HochschuleSascha Möllering
 
Real World Enterprise Reactive Programming using Vert.x
Real World Enterprise Reactive Programming using Vert.xReal World Enterprise Reactive Programming using Vert.x
Real World Enterprise Reactive Programming using Vert.xSascha Möllering
 
Lift Urban Entrepreneurs Seoul Ideation Workshop, Nov 12, 2016
Lift Urban Entrepreneurs Seoul Ideation Workshop, Nov 12, 2016Lift Urban Entrepreneurs Seoul Ideation Workshop, Nov 12, 2016
Lift Urban Entrepreneurs Seoul Ideation Workshop, Nov 12, 2016University of Geneva
 
Integrate Jenkins with S3
Integrate Jenkins with S3Integrate Jenkins with S3
Integrate Jenkins with S3devopsjourney
 
Continuous Delivery and Infrastructure as Code
Continuous Delivery and Infrastructure as CodeContinuous Delivery and Infrastructure as Code
Continuous Delivery and Infrastructure as CodeSascha Möllering
 
Cloud Architecture: Patterns and Best Practices
Cloud Architecture: Patterns and Best PracticesCloud Architecture: Patterns and Best Practices
Cloud Architecture: Patterns and Best PracticesSascha Möllering
 
Microservices: Architecture for Agile Software Development
Microservices: Architecture for Agile Software DevelopmentMicroservices: Architecture for Agile Software Development
Microservices: Architecture for Agile Software DevelopmentEberhard Wolff
 
Deep Dive on Amazon S3 - March 2017 AWS Online Tech Talks
Deep Dive on Amazon S3 - March 2017 AWS Online Tech TalksDeep Dive on Amazon S3 - March 2017 AWS Online Tech Talks
Deep Dive on Amazon S3 - March 2017 AWS Online Tech TalksAmazon Web Services
 
Hands-on Labs: Getting Started with AWS - March 2017 AWS Online Tech Talks
Hands-on Labs: Getting Started with AWS  - March 2017 AWS Online Tech TalksHands-on Labs: Getting Started with AWS  - March 2017 AWS Online Tech Talks
Hands-on Labs: Getting Started with AWS - March 2017 AWS Online Tech TalksAmazon Web Services
 
Amazon EC2 Systems Manager for Hybrid Cloud Management at Scale
Amazon EC2 Systems Manager for Hybrid Cloud Management at ScaleAmazon EC2 Systems Manager for Hybrid Cloud Management at Scale
Amazon EC2 Systems Manager for Hybrid Cloud Management at ScaleAmazon Web Services
 
Best Practices for Managing Security Operations in AWS - March 2017 AWS Onlin...
Best Practices for Managing Security Operations in AWS - March 2017 AWS Onlin...Best Practices for Managing Security Operations in AWS - March 2017 AWS Onlin...
Best Practices for Managing Security Operations in AWS - March 2017 AWS Onlin...Amazon Web Services
 

Viewers also liked (20)

MTC 2013 monetarisierung
MTC 2013 monetarisierungMTC 2013 monetarisierung
MTC 2013 monetarisierung
 
BED Con JBoss
BED Con JBossBED Con JBoss
BED Con JBoss
 
Get IT together
Get IT togetherGet IT together
Get IT together
 
Cloud Patterns Beuth Hochschule
Cloud Patterns Beuth HochschuleCloud Patterns Beuth Hochschule
Cloud Patterns Beuth Hochschule
 
Docker in der Cloud
Docker in der CloudDocker in der Cloud
Docker in der Cloud
 
Docker in der AWS Cloud
Docker in der AWS CloudDocker in der AWS Cloud
Docker in der AWS Cloud
 
Real World Enterprise Reactive Programming using Vert.x
Real World Enterprise Reactive Programming using Vert.xReal World Enterprise Reactive Programming using Vert.x
Real World Enterprise Reactive Programming using Vert.x
 
Docker on AWS
Docker on AWSDocker on AWS
Docker on AWS
 
Lift Urban Entrepreneurs Seoul Ideation Workshop, Nov 12, 2016
Lift Urban Entrepreneurs Seoul Ideation Workshop, Nov 12, 2016Lift Urban Entrepreneurs Seoul Ideation Workshop, Nov 12, 2016
Lift Urban Entrepreneurs Seoul Ideation Workshop, Nov 12, 2016
 
Production ready Vert.x
Production ready Vert.xProduction ready Vert.x
Production ready Vert.x
 
Integrate Jenkins with S3
Integrate Jenkins with S3Integrate Jenkins with S3
Integrate Jenkins with S3
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as Code
 
Continuous Delivery and Infrastructure as Code
Continuous Delivery and Infrastructure as CodeContinuous Delivery and Infrastructure as Code
Continuous Delivery and Infrastructure as Code
 
Cloud Architecture: Patterns and Best Practices
Cloud Architecture: Patterns and Best PracticesCloud Architecture: Patterns and Best Practices
Cloud Architecture: Patterns and Best Practices
 
Microservices: Architecture for Agile Software Development
Microservices: Architecture for Agile Software DevelopmentMicroservices: Architecture for Agile Software Development
Microservices: Architecture for Agile Software Development
 
CloudFormation Best Practices
CloudFormation Best PracticesCloudFormation Best Practices
CloudFormation Best Practices
 
Deep Dive on Amazon S3 - March 2017 AWS Online Tech Talks
Deep Dive on Amazon S3 - March 2017 AWS Online Tech TalksDeep Dive on Amazon S3 - March 2017 AWS Online Tech Talks
Deep Dive on Amazon S3 - March 2017 AWS Online Tech Talks
 
Hands-on Labs: Getting Started with AWS - March 2017 AWS Online Tech Talks
Hands-on Labs: Getting Started with AWS  - March 2017 AWS Online Tech TalksHands-on Labs: Getting Started with AWS  - March 2017 AWS Online Tech Talks
Hands-on Labs: Getting Started with AWS - March 2017 AWS Online Tech Talks
 
Amazon EC2 Systems Manager for Hybrid Cloud Management at Scale
Amazon EC2 Systems Manager for Hybrid Cloud Management at ScaleAmazon EC2 Systems Manager for Hybrid Cloud Management at Scale
Amazon EC2 Systems Manager for Hybrid Cloud Management at Scale
 
Best Practices for Managing Security Operations in AWS - March 2017 AWS Onlin...
Best Practices for Managing Security Operations in AWS - March 2017 AWS Onlin...Best Practices for Managing Security Operations in AWS - March 2017 AWS Onlin...
Best Practices for Managing Security Operations in AWS - March 2017 AWS Onlin...
 

Similar to DevOpsCon Cloud Workshop

Oracle Solutions on AWS : May 2014
Oracle Solutions on AWS : May 2014Oracle Solutions on AWS : May 2014
Oracle Solutions on AWS : May 2014Tom Laszewski
 
Auto scaling websites in the cloud
Auto scaling websites in the cloudAuto scaling websites in the cloud
Auto scaling websites in the cloudDavid Veksler
 
A 60-mn tour of AWS compute (March 2016)
A 60-mn tour of AWS compute (March 2016)A 60-mn tour of AWS compute (March 2016)
A 60-mn tour of AWS compute (March 2016)Julien SIMON
 
Application Lifecycle Management on AWS
Application Lifecycle Management on AWSApplication Lifecycle Management on AWS
Application Lifecycle Management on AWSDavid Mat
 
Amazon Webservices for Java Developers - UCI Webinar
Amazon Webservices for Java Developers - UCI WebinarAmazon Webservices for Java Developers - UCI Webinar
Amazon Webservices for Java Developers - UCI WebinarCraig Dickson
 
Scaling the Platform for Your Startup
Scaling the Platform for Your StartupScaling the Platform for Your Startup
Scaling the Platform for Your StartupAmazon Web Services
 
Introduction to AWS and Docker on ECS
Introduction to AWS and Docker on ECSIntroduction to AWS and Docker on ECS
Introduction to AWS and Docker on ECSCloudHesive
 
Scaling on AWS for the First 10 Million Users at Websummit Dublin
Scaling on AWS for the First 10 Million Users at Websummit DublinScaling on AWS for the First 10 Million Users at Websummit Dublin
Scaling on AWS for the First 10 Million Users at Websummit DublinAmazon Web Services
 
Scaling on AWS for the First 10 Million Users at Websummit Dublin
Scaling on AWS for the First 10 Million Users at Websummit DublinScaling on AWS for the First 10 Million Users at Websummit Dublin
Scaling on AWS for the First 10 Million Users at Websummit DublinIan Massingham
 
SAP on Amazon web services
SAP on Amazon web servicesSAP on Amazon web services
SAP on Amazon web servicescloudnonstop
 
Distribua, gerencie e escale suas aplicações com o aws elastic beanstalk
Distribua, gerencie e escale suas aplicações com o aws elastic beanstalkDistribua, gerencie e escale suas aplicações com o aws elastic beanstalk
Distribua, gerencie e escale suas aplicações com o aws elastic beanstalkAmazon Web Services LATAM
 
What is Amazon Web Services & How to Start to deploy your apps ?
What is Amazon Web Services & How to Start to deploy your apps ?What is Amazon Web Services & How to Start to deploy your apps ?
What is Amazon Web Services & How to Start to deploy your apps ?Sébastien ☁ Stormacq
 
(DVO305) Turbocharge YContinuous Deployment Pipeline with Containers
(DVO305) Turbocharge YContinuous Deployment Pipeline with Containers(DVO305) Turbocharge YContinuous Deployment Pipeline with Containers
(DVO305) Turbocharge YContinuous Deployment Pipeline with ContainersAmazon Web Services
 
AWS Summit Benelux 2013 - Enterprise Applications on AWS
AWS Summit Benelux 2013 - Enterprise Applications on AWSAWS Summit Benelux 2013 - Enterprise Applications on AWS
AWS Summit Benelux 2013 - Enterprise Applications on AWSAmazon Web Services
 
Aws-What You Need to Know_Simon Elisha
Aws-What You Need to Know_Simon ElishaAws-What You Need to Know_Simon Elisha
Aws-What You Need to Know_Simon ElishaHelen Rogers
 

Similar to DevOpsCon Cloud Workshop (20)

Oracle Solutions on AWS : May 2014
Oracle Solutions on AWS : May 2014Oracle Solutions on AWS : May 2014
Oracle Solutions on AWS : May 2014
 
AWS Black Belt Tips
AWS Black Belt TipsAWS Black Belt Tips
AWS Black Belt Tips
 
AWS Distilled
AWS DistilledAWS Distilled
AWS Distilled
 
Auto scaling websites in the cloud
Auto scaling websites in the cloudAuto scaling websites in the cloud
Auto scaling websites in the cloud
 
A 60-mn tour of AWS compute (March 2016)
A 60-mn tour of AWS compute (March 2016)A 60-mn tour of AWS compute (March 2016)
A 60-mn tour of AWS compute (March 2016)
 
Introduction to DevOps on AWS
Introduction to DevOps on AWSIntroduction to DevOps on AWS
Introduction to DevOps on AWS
 
Application Lifecycle Management on AWS
Application Lifecycle Management on AWSApplication Lifecycle Management on AWS
Application Lifecycle Management on AWS
 
Amazon Webservices for Java Developers - UCI Webinar
Amazon Webservices for Java Developers - UCI WebinarAmazon Webservices for Java Developers - UCI Webinar
Amazon Webservices for Java Developers - UCI Webinar
 
Scaling the Platform for Your Startup
Scaling the Platform for Your StartupScaling the Platform for Your Startup
Scaling the Platform for Your Startup
 
Introduction to AWS and Docker on ECS
Introduction to AWS and Docker on ECSIntroduction to AWS and Docker on ECS
Introduction to AWS and Docker on ECS
 
[Jun AWS 201] Technical Workshop
[Jun AWS 201] Technical Workshop[Jun AWS 201] Technical Workshop
[Jun AWS 201] Technical Workshop
 
Scaling on AWS for the First 10 Million Users at Websummit Dublin
Scaling on AWS for the First 10 Million Users at Websummit DublinScaling on AWS for the First 10 Million Users at Websummit Dublin
Scaling on AWS for the First 10 Million Users at Websummit Dublin
 
Scaling on AWS for the First 10 Million Users at Websummit Dublin
Scaling on AWS for the First 10 Million Users at Websummit DublinScaling on AWS for the First 10 Million Users at Websummit Dublin
Scaling on AWS for the First 10 Million Users at Websummit Dublin
 
SAP on Amazon web services
SAP on Amazon web servicesSAP on Amazon web services
SAP on Amazon web services
 
Managing Your Cloud Assets
Managing Your Cloud AssetsManaging Your Cloud Assets
Managing Your Cloud Assets
 
Distribua, gerencie e escale suas aplicações com o aws elastic beanstalk
Distribua, gerencie e escale suas aplicações com o aws elastic beanstalkDistribua, gerencie e escale suas aplicações com o aws elastic beanstalk
Distribua, gerencie e escale suas aplicações com o aws elastic beanstalk
 
What is Amazon Web Services & How to Start to deploy your apps ?
What is Amazon Web Services & How to Start to deploy your apps ?What is Amazon Web Services & How to Start to deploy your apps ?
What is Amazon Web Services & How to Start to deploy your apps ?
 
(DVO305) Turbocharge YContinuous Deployment Pipeline with Containers
(DVO305) Turbocharge YContinuous Deployment Pipeline with Containers(DVO305) Turbocharge YContinuous Deployment Pipeline with Containers
(DVO305) Turbocharge YContinuous Deployment Pipeline with Containers
 
AWS Summit Benelux 2013 - Enterprise Applications on AWS
AWS Summit Benelux 2013 - Enterprise Applications on AWSAWS Summit Benelux 2013 - Enterprise Applications on AWS
AWS Summit Benelux 2013 - Enterprise Applications on AWS
 
Aws-What You Need to Know_Simon Elisha
Aws-What You Need to Know_Simon ElishaAws-What You Need to Know_Simon Elisha
Aws-What You Need to Know_Simon Elisha
 

Recently uploaded

Elevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New OrleansElevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New Orleanscorenetworkseo
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书zdzoqco
 
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书rnrncn29
 
SCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is prediSCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is predieusebiomeyer
 
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一Fs
 
Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Paul Calvano
 
Film cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasaFilm cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasa494f574xmv
 
Git and Github workshop GDSC MLRITM
Git and Github  workshop GDSC MLRITMGit and Github  workshop GDSC MLRITM
Git and Github workshop GDSC MLRITMgdsc13
 
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012rehmti665
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作ys8omjxb
 
Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Excelmac1
 
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一z xss
 
Top 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxTop 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxDyna Gilbert
 
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一Fs
 
Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Sonam Pathan
 
Contact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New DelhiContact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New Delhimiss dipika
 
PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationLinaWolf1
 

Recently uploaded (20)

Elevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New OrleansElevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New Orleans
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
 
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
 
SCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is prediSCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is predi
 
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
 
Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24
 
Film cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasaFilm cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasa
 
Model Call Girl in Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in  Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in  Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
 
Git and Github workshop GDSC MLRITM
Git and Github  workshop GDSC MLRITMGit and Github  workshop GDSC MLRITM
Git and Github workshop GDSC MLRITM
 
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
 
Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...
 
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
 
Top 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxTop 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptx
 
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
 
Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170
 
Hot Sexy call girls in Rk Puram 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in  Rk Puram 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in  Rk Puram 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Rk Puram 🔝 9953056974 🔝 Delhi escort Service
 
Contact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New DelhiContact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New Delhi
 
PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 Documentation
 
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
 

DevOpsCon Cloud Workshop

  • 1. Sascha Möllering | zanox AG Cloud Workshop
  • 2. About me Sascha Möllering sascha@autoscaling.io Lead Engineer / DevOps Hipster zanox AG http://autoscaling.io @sascha242
  • 3. About me Java Magazin 11.14 Architektur im Kontext der Cloud: Patterns und Best Practices AWS Virtual Cloud Summit Continuous delivery in AWS using Docker http://aws-summit.de/ Entwickler Spezial: Docker Über den Wolken: Ein Erfahrungsbericht zum Docker-Einsatz in der Amazon Cloud
  • 4. Agenda • AWS Overview • Creating a cloud service • Real World example • Cloud deployment • Q&A
  • 5. How can we scale?
  • 6. RegionUS-WEST (N. California) EU-WEST (Ireland) ASIA PAC (Tokyo) ASIA PAC (Singapore) US-WEST (Oregon) SOUTH AMERICA (Sao Paulo) US-EAST (Virginia) GOV CLOUD ASIA PAC (Sydney) Regions Regions EU-CENTRAL (Frankfurt) AWS Overview
  • 8. AWS Overview EC2: Resizable compute capacity AutoScaling: scale up or down Route 53: Domain Name System ELB: Load Balancing Elastic IP: Static IP address
  • 9. AWS Overview RDS: Managed database service DynamoDB: NoSQL implementation Redshift: data warehouse solution ElastiCache: Managed cache Kinesis: Service for streaming data
  • 10. AWS Overview S3: Highly-scalable object storage CloudFront: CDN implementation CloudWatch: Monitoring service IAM: Identity and Access Management EMR: Managed Hadoop CloudFormation: Configuration Mgmt
  • 11. Starting point • How can we leverage the Cloud? • Our application: – Simple Java based web application – One application – One database – Runs in our own DC
  • 12. Creating a cloud service • Initial setup: – Route53 for DNS – One Elastic IP (static IPs for the Cloud) – One EC2 instance • Web Application • Database – One AZ
  • 13. Creating a cloud service Availability Zone
  • 14. Creating a cloud service • Simple approach to scale: – Different EC2 instance type • More RAM • More CPU power • More IOPS • Approach will hit a barrier
  • 15. Creating a cloud service • Problems: – No failover – No redundancy – Database and application on one instance – Does not scale very well
  • 16. Creating a cloud service • Separate Web Application from DB – One EC2 instance for the Web Application – One EC2 instance for the DB – Or: Managed DB service (RDS) • One AZ
  • 17. Creating a cloud service Availability Zone Database
  • 18. Creating a cloud service • Problems: – No failover – No redundancy – Does still not scale very well
  • 19. Creating a cloud service • Add an ELB • Add EC2 instance for Web Application • Different AZs • Standby DB instance – Multi AZ setup in RDS
  • 20. Creating a cloud service
  • 21. Creating a cloud service Availability Zone Database Availability Zone Database
  • 22. Creating a cloud service • Problems: – Still limited scaling capabilities – If one EC2 instance crashes, 50% less capability
  • 23. Creating a cloud service • Add additional EC2 instances • Add read replicas in RDS
  • 24. Creating a cloud service Availability Zone Database Availability Zone Database
  • 25. Creating a cloud service • Problems: – Naive implementation – Does not leverage AWS services – Limited scaling – Can be quite expensive
  • 26. Creating a cloud service • Refactoring • Introduce caches to take load from DB • Use S3 and CloudFront to ship static content • Store session data in DynamoDB • Add Autoscaling
  • 27. Creating a cloud service • Autoscaling – Automatic resizing of compute clusters based on demand – Integrated to Amazon CloudWatch – Maximum and minimum pool sizes – Autoscaling policies triggered by CloudWatch alarms
  • 28. Creating a cloud service Requests Elastic Load Balancing Latency Metrics CPU Metrics Amazon CloudWatch Metric Monitoring Alarm Notification Scale up/down
  • 29. Creating a cloud service Availability Zone Auto Scaling group
  • 30. Creating a cloud service • Started with a simple web application • Added several Amazon services • Managed to shift load from application to services • Added caches and CDN • Added Autoscaling
  • 31. Creating a cloud service • Next steps: – SOA/Microservices – Loose coupling: decouple interactions – Amazon services, don‘t reinvent the wheel – Database federation – Database sharding
  • 32.
  • 33. Docker Deployment • Amazon Services with Docker support: –Amazon OpsWorks* –Elastic Beanstalk –EC2 Container Service *by adding a custom Docker Layer
  • 34. Docker Deployment • On EC2 level: – Using the Docker remote API – EC2 User Data
  • 35. Docker Deployment • Remote API – API to access Docker daemon – Can be bound to specific host/port – E.g. Jenkins can trigger deployments – GET /containers/json
  • 36. Docker Deployment • EC2 User Data – Data to configure instance during launch • Install Docker • Start Daemon • Run Docker container
  • 37. Demo • Elastic architecture that grows and shrinks • Multiple AZs • Use case: simple web app • Elastic Beanstalk and Docker • Postgres RDS DB
  • 38. Demo
  • 39. • JHipster – Yeoman generator – Yeoman is a scaffolding tool for webapps – Creates Spring Boot/AngularJS projects Demo
  • 40. • Support for: – Maven/Gradle – Spring Security – Spring Data JPA – Elasticsearch – MongoDB – Cassandra – ... Demo
  • 41.
  • 42. Demo
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51. Elastic Beanstalk • Docker support: – Dockerrun.aws.json specifies runtime – Dockerfile is an alternative • EC2 instances using Docker 1.6 • No direct port mapping • Local nginx reverse proxy • Connects to IP of Docker container
  • 52. Elastic Beanstalk • Dockerrun.aws.json: – Specifies Docker image (support for private registries as well) – Defines port for local nginx – Support for volumes and logging as well
  • 54. Elastic Beanstalk But … we didn’t specify RDS connection strings in our Container?
  • 55. • RDS specific values are exposed as ENV-variables • Mapped into the Docker container • Used by the application to connect to Postgres Elastic Beanstalk
  • 57. Elastic Beanstalk • nginx local proxy • Config in sites-enabled and conf.d • proxy-pass is http://docker • Maps to container-ip
  • 61. Q&A

Editor's Notes

  1. Frage: wie können wir Skalieren? AWS als Basis Zeige heute: Patterns und Best Practices in der Cloud anhand von AWS Beispielapplikation in Java, die skaliert werden soll
  2. 9 bzw. 10 verschiedene Regionen Region: separierte geographische Bereiche Neu: EU-Central in Frankfurt
  3. Regions werden in Availability Zones unterteilt Jede AZ is isoliert, aber durch Leitungen mit niedriger Latenz verbunden A group of AZ is a Region A group of Datacenter is an AZ
  4. Elastic IP addresses are static IP addresses designed for dynamic cloud computing. An Elastic IP address is associated with your account, not a particular instance, and you control that address until you choose to explicitly release it Im Fehlerfall (EC2-Instanz ist down) kann die EIP umgemappt werden
  5. RDS: fully managed database service Supports: MySQL, Oracle, Microsoft SQL Server, PostgreSQL automatically patches the database software and backs up your database
  6. - Multi AZ: Multi-AZ deployment option you can run mission critical workloads with high availability and built-in automated fail-over from your primary database to a synchronously replicated secondary database
  7. - Multi AZ: Multi-AZ deployment option you can run mission critical workloads with high availability and built-in automated fail-over from your primary database to a synchronously replicated secondary database
  8. - Minimum poolsizes is great if you have crashing EC2 instances,
  9. Alle Bestandteile der Applikation in Services auslagern, die unabhängig voneinander skaliert werden können Loose Kopplung der Komponenten über Messaging Systeme
  10. Eb - Single Container - Multiple Containers (dependencies using JSON format) - Cool: direct integration into ELB (not just on EC2 level)
  11. Eb - Single Container - Multiple Containers (dependencies using JSON format) - Cool: direct integration into ELB (not just on EC2 level)
  12. Eb - Single Container - Multiple Containers (dependencies using JSON format) - Cool: direct integration into ELB (not just on EC2 level)
  13. Eb - Single Container - Multiple Containers (dependencies using JSON format) - Cool: direct integration into ELB (not just on EC2 level)