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

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Recently uploaded (20)

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
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
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
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...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
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
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
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
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 

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