SlideShare a Scribd company logo
1 of 48
Sascha Möllering | zanox AG 
Cloud Architecture
About me 
Sascha Möllering 
sascha.moellering@zanox.com 
Lead Engineer / DevOps Hipster 
zanox AG 
http://www.der-maschinenstuermer.de/ 
@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?
How can we scale?
AWS Overview 
Region 
US-WEST (N. California) EU-WEST (Ireland) 
ASIA PAC 
(Tokyo) 
ASIA PAC 
(Singapore) 
US-WEST (Oregon) 
US-EAST (Virginia) 
SOUTH AMERICA (Sao 
Paulo) 
GOV CLOUD 
ASIA PAC 
(Sydney) 
EU-CENTRAL (Frankfurt)
AWS Overview 
Availability 
Zone
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
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: 
– More RAM 
– More CPU power 
– More IOPS 
– Different EC2 instance type 
• 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 
Auto Scaling 
Availability Zone 
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 
– Loose coupling: decouple interactions 
– Amazon services, don‘t reinvent the wheel 
– Database federation 
– Database sharding
Real world example 
• Elastic architecture that grows and 
shrinks 
• Multiple AZs 
• Use case: streaming data 
• Decoupling using Kinesis 
• IAM Roles for managing credentials 
• CloudWatch for monitoring
Internet 
Architecture 
Availability Zone 
Auto Scaling group 
Auto Scaling group 
Availability Zone
Architecture
Vert.x 
“Vert.x is a lightweight, high performance application 
platform for the JVM that's designed for modern 
mobile, web, and enterprise applications.”
Architecture 
• Main framework Vert.x 
• mod-kinesis (Kinesis-Adapter for Vert.x) 
• AWS Java SDK 
• IAM roles for Amazon EC2 instances 
• Coda Hale metrics and CloudWatch reporter 
• Jedis (Redis client for Java) 
• …
Deployment 
Workstation 
GitHub 
Jenkins 
Nexus 
Python/Fabric 
Datacenter 
Artefakt
Deployment 
EC2 instance with Docker 
registry (port 5000) 
S3 bucket to store 
Docker images
Deployment 
Amazon Cloud 
Workstation 
GitHub 
Jenkins 
Python/Boto 
Docker Image 
Docker Registry S3 bucket with 
Docker Images
Deployment
Deployment
Deployment
EC2 instances and ELB 
python start_docker_instance.py  
-r <myregistry>:5000  
-i kinesis-producer  
-t 95  
-q 2  
-s quality  
-d '-d -p 8080:8080' 
https://github.com/SaschaMoellering/aws-docker-scripts
EC2 instances and ELB 
python start_elb.py  
-r <myregistry>:5000  
-i kinesis-producer  
-t 95  
-s quality  
-d '-d -p 8080:8080' 
https://github.com/SaschaMoellering/aws-docker-scripts
EC2 instances and ELB
EC2 instances and ELB
Cloud Architecture: Patterns and Best Practices

More Related Content

What's hot

Introduction to amazon web services for developers
Introduction to amazon web services for developersIntroduction to amazon web services for developers
Introduction to amazon web services for developers
Ciklum Ukraine
 
AWS Architecting for the Cloud - matt tavis
AWS Architecting for the Cloud - matt tavisAWS Architecting for the Cloud - matt tavis
AWS Architecting for the Cloud - matt tavis
Amazon Web Services
 

What's hot (20)

Introduction to amazon web services for developers
Introduction to amazon web services for developersIntroduction to amazon web services for developers
Introduction to amazon web services for developers
 
ENT307 VMware and AWS Together - VMware Cloud on AWS
ENT307 VMware and AWS Together - VMware Cloud on AWSENT307 VMware and AWS Together - VMware Cloud on AWS
ENT307 VMware and AWS Together - VMware Cloud on AWS
 
Enterprise Workloads on AWS
Enterprise Workloads on AWSEnterprise Workloads on AWS
Enterprise Workloads on AWS
 
Kinney j aws
Kinney j awsKinney j aws
Kinney j aws
 
(ENT205) AWS and VMware: How to Architect and Manage Hybrid Environments | AW...
(ENT205) AWS and VMware: How to Architect and Manage Hybrid Environments | AW...(ENT205) AWS and VMware: How to Architect and Manage Hybrid Environments | AW...
(ENT205) AWS and VMware: How to Architect and Manage Hybrid Environments | AW...
 
How to Design for High Availability & Scale with AWS
How to Design for High Availability & Scale with AWSHow to Design for High Availability & Scale with AWS
How to Design for High Availability & Scale with AWS
 
Aws re invent hybrid cloud breakout session
Aws re invent   hybrid cloud breakout session Aws re invent   hybrid cloud breakout session
Aws re invent hybrid cloud breakout session
 
AWS Architecting for the Cloud - matt tavis
AWS Architecting for the Cloud - matt tavisAWS Architecting for the Cloud - matt tavis
AWS Architecting for the Cloud - matt tavis
 
Moving Enterprise Windows Workloads to AWS
Moving Enterprise Windows Workloads to AWSMoving Enterprise Windows Workloads to AWS
Moving Enterprise Windows Workloads to AWS
 
AWS Webcast - Website Hosting in the Cloud
AWS Webcast - Website Hosting in the CloudAWS Webcast - Website Hosting in the Cloud
AWS Webcast - Website Hosting in the Cloud
 
AWS re:Invent 2016: Reinventing Disaster Recovery Leveraging AWS Cloud Infras...
AWS re:Invent 2016: Reinventing Disaster Recovery Leveraging AWS Cloud Infras...AWS re:Invent 2016: Reinventing Disaster Recovery Leveraging AWS Cloud Infras...
AWS re:Invent 2016: Reinventing Disaster Recovery Leveraging AWS Cloud Infras...
 
ARC302 AWS Cloud Design Patterns - AWS re: Invent 2012
ARC302 AWS Cloud Design Patterns - AWS re: Invent 2012ARC302 AWS Cloud Design Patterns - AWS re: Invent 2012
ARC302 AWS Cloud Design Patterns - AWS re: Invent 2012
 
AWS and VMware: How to Architect and Manage Hybrid Environments
AWS and VMware: How to Architect and Manage Hybrid EnvironmentsAWS and VMware: How to Architect and Manage Hybrid Environments
AWS and VMware: How to Architect and Manage Hybrid Environments
 
NWCloud Cloud Track - Best Practices for Architecting in the Cloud
NWCloud Cloud Track - Best Practices for Architecting in the CloudNWCloud Cloud Track - Best Practices for Architecting in the Cloud
NWCloud Cloud Track - Best Practices for Architecting in the Cloud
 
Aws Architecture Fundamentals | Dallas
Aws Architecture Fundamentals | DallasAws Architecture Fundamentals | Dallas
Aws Architecture Fundamentals | Dallas
 
(ARC309) Getting to Microservices: Cloud Architecture Patterns
(ARC309) Getting to Microservices: Cloud Architecture Patterns(ARC309) Getting to Microservices: Cloud Architecture Patterns
(ARC309) Getting to Microservices: Cloud Architecture Patterns
 
Cloud-Native DevOps: Simplifying application lifecycle management with AWS | ...
Cloud-Native DevOps: Simplifying application lifecycle management with AWS | ...Cloud-Native DevOps: Simplifying application lifecycle management with AWS | ...
Cloud-Native DevOps: Simplifying application lifecycle management with AWS | ...
 
VMware on AWS A Technical Deep Dive PPT
VMware on AWS A Technical Deep Dive PPTVMware on AWS A Technical Deep Dive PPT
VMware on AWS A Technical Deep Dive PPT
 
Introduction to Amazon Web Services
Introduction to Amazon Web ServicesIntroduction to Amazon Web Services
Introduction to Amazon Web Services
 
(CMP404) Cloud Rendering at Walt Disney Animation Studios
(CMP404) Cloud Rendering at Walt Disney Animation Studios(CMP404) Cloud Rendering at Walt Disney Animation Studios
(CMP404) Cloud Rendering at Walt Disney Animation Studios
 

Similar to Cloud Architecture: Patterns and Best Practices

Similar to Cloud Architecture: Patterns and Best Practices (20)

DevOpsCon Cloud Workshop
DevOpsCon Cloud Workshop DevOpsCon Cloud Workshop
DevOpsCon Cloud Workshop
 
Cloud Patterns Beuth Hochschule
Cloud Patterns Beuth HochschuleCloud Patterns Beuth Hochschule
Cloud Patterns Beuth Hochschule
 
AWS Distilled
AWS DistilledAWS Distilled
AWS Distilled
 
Scaling the Platform for Your Startup
Scaling the Platform for Your StartupScaling the Platform for Your Startup
Scaling the Platform for Your Startup
 
Oracle Solutions on AWS : May 2014
Oracle Solutions on AWS : May 2014Oracle Solutions on AWS : May 2014
Oracle Solutions on AWS : May 2014
 
Cloud Computing - Challenges & Opportunities
Cloud Computing - Challenges & OpportunitiesCloud Computing - Challenges & Opportunities
Cloud Computing - Challenges & Opportunities
 
[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
 
Auto scaling websites in the cloud
Auto scaling websites in the cloudAuto scaling websites in the cloud
Auto scaling websites in the cloud
 
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
 
Application Lifecycle Management on AWS
Application Lifecycle Management on AWSApplication Lifecycle Management on AWS
Application Lifecycle Management on AWS
 
SAP on Amazon web services
SAP on Amazon web servicesSAP on Amazon web services
SAP on Amazon web services
 
Architecting for AWS Cloud - let's do it right!
Architecting for AWS Cloud - let's do it right!Architecting for AWS Cloud - let's do it right!
Architecting for AWS Cloud - let's do it right!
 
Fundamentals of Cloud Computing & AWS
Fundamentals of Cloud Computing & AWSFundamentals of Cloud Computing & AWS
Fundamentals of Cloud Computing & AWS
 
Introduction to DevOps on AWS
Introduction to DevOps on AWSIntroduction to DevOps on AWS
Introduction to DevOps on AWS
 
AWS Black Belt Tips
AWS Black Belt TipsAWS Black Belt Tips
AWS Black Belt Tips
 
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
 
AWS re:Invent 2016: Host a massively scalable website around the world for a ...
AWS re:Invent 2016: Host a massively scalable website around the world for a ...AWS re:Invent 2016: Host a massively scalable website around the world for a ...
AWS re:Invent 2016: Host a massively scalable website around the world for a ...
 
AWS 201 - A Walk through the AWS Cloud: What's New with AWS
AWS 201 - A Walk through the AWS Cloud: What's New with AWSAWS 201 - A Walk through the AWS Cloud: What's New with AWS
AWS 201 - A Walk through the AWS Cloud: What's New with AWS
 

More from Sascha Möllering

More from Sascha Möllering (12)

Sas 2015 event_driven
Sas 2015 event_drivenSas 2015 event_driven
Sas 2015 event_driven
 
Docker in the Cloud
Docker in the CloudDocker in the Cloud
Docker in the Cloud
 
Docker in der AWS Cloud
Docker in der AWS CloudDocker in der AWS Cloud
Docker in der AWS Cloud
 
Docker in der Cloud
Docker in der CloudDocker in der Cloud
Docker in der Cloud
 
Docker on AWS
Docker on AWSDocker on AWS
Docker on AWS
 
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
 
Production ready Vert.x
Production ready Vert.xProduction ready Vert.x
Production ready Vert.x
 
Continuous Delivery and Infrastructure as Code
Continuous Delivery and Infrastructure as CodeContinuous Delivery and Infrastructure as Code
Continuous Delivery and Infrastructure as Code
 
MTC 2013 monetarisierung
MTC 2013 monetarisierungMTC 2013 monetarisierung
MTC 2013 monetarisierung
 
Get IT together
Get IT togetherGet IT together
Get IT together
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as Code
 
BED Con JBoss
BED Con JBossBED Con JBoss
BED Con JBoss
 

Recently uploaded

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Recently uploaded (20)

EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
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
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 

Cloud Architecture: Patterns and Best Practices

  • 1. Sascha Möllering | zanox AG Cloud Architecture
  • 2. About me Sascha Möllering sascha.moellering@zanox.com Lead Engineer / DevOps Hipster zanox AG http://www.der-maschinenstuermer.de/ @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. How can we scale?
  • 7. AWS Overview Region US-WEST (N. California) EU-WEST (Ireland) ASIA PAC (Tokyo) ASIA PAC (Singapore) US-WEST (Oregon) US-EAST (Virginia) SOUTH AMERICA (Sao Paulo) GOV CLOUD ASIA PAC (Sydney) EU-CENTRAL (Frankfurt)
  • 9. AWS Overview EC2: Resizable compute capacity AutoScaling: scale up or down Route 53: Domain Name System ELB: Load Balancing Elastic IP: Static IP address
  • 10. AWS Overview RDS: Managed database service DynamoDB: NoSQL implementation Redshift: data warehouse solution ElastiCache: Managed cache Kinesis: Service for streaming data
  • 11. AWS Overview S3: Highly-scalable object storage CloudFront: CDN implementation CloudWatch: Monitoring service IAM: Identity and Access Management EMR: Managed Hadoop
  • 12. Starting point • How can we leverage the Cloud? • Our application: – Simple Java based web application – One application – One database – Runs in our own DC
  • 13. 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
  • 14. Creating a cloud service Availability Zone
  • 15. Creating a cloud service • Simple approach to scale: – More RAM – More CPU power – More IOPS – Different EC2 instance type • Approach will hit a barrier
  • 16. Creating a cloud service • Problems: – No failover – No redundancy – Database and application on one instance – Does not scale very well
  • 17. 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
  • 18. Creating a cloud service Availability Zone Database
  • 19. Creating a cloud service • Problems: – No failover – No redundancy – Does still not scale very well
  • 20. Creating a cloud service • Add an ELB • Add EC2 instance for Web Application • Different AZs • Standby DB instance – Multi AZ setup in RDS
  • 21. Creating a cloud service
  • 22. Creating a cloud service Availability Zone Database Availability Zone Database
  • 23. Creating a cloud service • Problems: – Still limited scaling capabilities – If one EC2 instance crashes, 50% less capability
  • 24. Creating a cloud service • Add additional EC2 instances • Add read replicas in RDS
  • 25. Creating a cloud service Availability Zone Database Availability Zone Database
  • 26. Creating a cloud service • Problems: – Naive implementation – Does not leverage AWS services – Limited scaling – Can be quite expensive
  • 27. 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
  • 28. 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
  • 29. Creating a cloud service Auto Scaling Availability Zone 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 – Loose coupling: decouple interactions – Amazon services, don‘t reinvent the wheel – Database federation – Database sharding
  • 32. Real world example • Elastic architecture that grows and shrinks • Multiple AZs • Use case: streaming data • Decoupling using Kinesis • IAM Roles for managing credentials • CloudWatch for monitoring
  • 33. Internet Architecture Availability Zone Auto Scaling group Auto Scaling group Availability Zone
  • 35. Vert.x “Vert.x is a lightweight, high performance application platform for the JVM that's designed for modern mobile, web, and enterprise applications.”
  • 36. Architecture • Main framework Vert.x • mod-kinesis (Kinesis-Adapter for Vert.x) • AWS Java SDK • IAM roles for Amazon EC2 instances • Coda Hale metrics and CloudWatch reporter • Jedis (Redis client for Java) • …
  • 37. Deployment Workstation GitHub Jenkins Nexus Python/Fabric Datacenter Artefakt
  • 38.
  • 39. Deployment EC2 instance with Docker registry (port 5000) S3 bucket to store Docker images
  • 40. Deployment Amazon Cloud Workstation GitHub Jenkins Python/Boto Docker Image Docker Registry S3 bucket with Docker Images
  • 44. EC2 instances and ELB python start_docker_instance.py -r <myregistry>:5000 -i kinesis-producer -t 95 -q 2 -s quality -d '-d -p 8080:8080' https://github.com/SaschaMoellering/aws-docker-scripts
  • 45. EC2 instances and ELB python start_elb.py -r <myregistry>:5000 -i kinesis-producer -t 95 -s quality -d '-d -p 8080:8080' https://github.com/SaschaMoellering/aws-docker-scripts

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. S3 DynamoDB RDS RedShift EMR
  11. ----- Meeting Notes (26/10/14 22:22) ----- Fabric -> Boto
  12. ----- Meeting Notes (26/10/14 22:22) ----- Fat JAR
  13. User-data script for ec2 - ein Mal bei initialen Setup der ec2-Instanz ausgeführt - Aktualisiert die Pakete - Installiert Docker - Startet Docker Service - Starten der Docker Instanzen mit den passenden Parametern