Download - Cloud Patterns Beuth Hochschule
![Page 1: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/1.jpg)
CLOUD ARCHITECTURESascha Möllering | zanox AG
![Page 2: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/2.jpg)
Sascha Möllering
Lead Engineer / DevOps Hipster
zanox AG
http://autoscaling.io
@sascha242
ABOUT ME
![Page 3: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/3.jpg)
JAVA MAGAZIN 11.14
ARCHITEKTUR IM KONTEXT DER CLOUD: PATTERNS UND BEST
PRACTICES
AWS VIRTUAL CLOUD SUMMIT
CONTINUOUS DELIVERY IN AWS USING DOCKER
ENTWICKLER SPEZIAL: DOCKER
ÜBER DEN WOLKEN: EIN ERFAHRUNGSBERICHT ZUM DOCKER-
EINSATZ IN DER AMAZON CLOUD
ABOUT ME
![Page 4: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/4.jpg)
AGENDA
●AWS Overview
●Creating a cloud service
●Real World example
●Cloud deployment
●Q&A
![Page 5: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/5.jpg)
HOW CAN WE SCALE?
![Page 6: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/6.jpg)
HOW CAN WE SCALE?
![Page 7: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/7.jpg)
AWS OVERVIEW
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)
EU-CENTRAL (Frankfurt)
![Page 8: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/8.jpg)
AWS OVERVIEW
Availability
Zone
![Page 9: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/9.jpg)
AWS OVERVIEW
EC2: Resizable compute capacity
AutoScaling: scale up or down
Route 53: Domain Name System
ELB: Load Balancing
Elastic IP: Static IP address
![Page 10: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/10.jpg)
AWS OVERVIEW
RDS: Managed database service
DynamoDB: NoSQL implementation
Redshift: data warehouse solution
ElastiCache: Managed cache
Kinesis: Service for streaming data
![Page 11: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/11.jpg)
AWS OVERVIEW
S3: Highly-scalable object storage
CloudFront: CDN implementation
CloudWatch: Monitoring service
IAM: Identity and Access Management
EMR: Managed Hadoop
![Page 12: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/12.jpg)
STARTING POINT
●How can we leverage the Cloud?
●Our application:
● Simple Java based web application
● One application
● One database
● Runs in our own DC
![Page 13: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/13.jpg)
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
![Page 14: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/14.jpg)
CREATING A CLOUD SERVICE
Availability Zone
![Page 15: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/15.jpg)
CREATING A CLOUD SERVICE
●Simple approach to scale:
●More RAM
●More CPU power
●More IOPS
●Different EC2 instance type
●Approach will hit a barrier
![Page 16: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/16.jpg)
CREATING A CLOUD SERVICE
●Problems:
●No failover
●No redundancy
●Database and application on one instance
●Does not scale very well
![Page 17: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/17.jpg)
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
![Page 18: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/18.jpg)
CREATING A CLOUD SERVICE
Availability Zone
Database
![Page 19: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/19.jpg)
CREATING A CLOUD SERVICE
●Problems:
●No failover
●No redundancy
●Does still not scale very well
![Page 20: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/20.jpg)
CREATING A CLOUD SERVICE
●Add an ELB
●Add EC2 instance for Web Application
●Different AZs
●Standby DB instance
●Multi AZ setup in RDS
![Page 21: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/21.jpg)
CREATING A CLOUD SERVICE
![Page 22: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/22.jpg)
CREATING A CLOUD SERVICE
Availability Zone
Database
Availability Zone
Database
![Page 23: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/23.jpg)
CREATING A CLOUD SERVICE
●Problems:
●Still limited scaling capabilities
● If one EC2 instance crashes, 50% less
capability
![Page 24: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/24.jpg)
CREATING A CLOUD SERVICE
●Add additional EC2 instances
●Add read replicas in RDS
![Page 25: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/25.jpg)
CREATING A CLOUD SERVICE
Availability Zone
Database
Availability Zone
Database
![Page 26: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/26.jpg)
CREATING A CLOUD SERVICE
●Problems:
●Naive implementation
●Does not leverage AWS services
●Limited scaling
●Can be quite expensive
![Page 27: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/27.jpg)
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
![Page 28: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/28.jpg)
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
![Page 29: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/29.jpg)
CREATING A CLOUD SERVICE
Availability Zone
Auto Scaling
group
![Page 30: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/30.jpg)
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
![Page 31: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/31.jpg)
CREATING A CLOUD SERVICE
●Next steps:
●SOA
●Loose coupling: decouple interactions
●Amazon services, don‘t reinvent the wheel
●Database federation
●Database sharding
![Page 32: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/32.jpg)
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
![Page 33: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/33.jpg)
Internet
Auto Scaling group
Auto Scaling group
Availability Zone
Availability Zone
ARCHITECTURE
![Page 34: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/34.jpg)
ARCHITECTURE
![Page 35: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/35.jpg)
“Vert.x is a lightweight, high performance application
platform for the JVM that's designed for modern
mobile, web, and enterprise applications.”
Vert.x
![Page 36: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/36.jpg)
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)
●…
![Page 37: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/37.jpg)
DEPLOYMENT
WorkstationGitHub
Jenkins
Python/Fabric
Nexus
Datacenter
Artefakt
![Page 38: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/38.jpg)
![Page 39: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/39.jpg)
DEPLOYMENT
EC2 instance with Docker
registry (port 5000)
S3 bucket to store
Docker images
![Page 40: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/40.jpg)
DEPLOYMENT
Amazon Cloud
WorkstationGitHub
Jenkins
Python/Boto
Docker Image
Docker Registry S3 bucket with
Docker Images
![Page 41: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/41.jpg)
DEPLOYMENT
![Page 42: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/42.jpg)
DEPLOYMENT
![Page 43: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/43.jpg)
EC2 INSTANCES AND ELB
python start_docker_instance.py \
-r <myregistry>:5000 \
-i tracking-ppv \
-t 95 \
-q 2 \
-s quality \
-d '-d -p 8080:8080'
https://github.com/SaschaMoellering/aws-docker-
scripts
![Page 44: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/44.jpg)
EC2 INSTANCES AND ELB
python start_elb.py \
-r <myregistry>:5000 \
-i tracking-ppv \
-t 95 \
-s quality \
-d '-d -p 8080:8080'
https://github.com/SaschaMoellering/aws-docker-
scripts
![Page 45: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/45.jpg)
EC2 INSTANCES AND ELB
![Page 46: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/46.jpg)
EC2 INSTANCES AND ELB
![Page 47: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/47.jpg)
DEPLOYMENT
●Amazon EC2 Container Service (ECS):
●Container management service
● Fast
●Highly scalable
●Supports Docker
![Page 48: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/48.jpg)
DEPLOYMENT
●Cluster
●Container Instance
●Task Definition
●Task
●Container
![Page 49: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/49.jpg)
DEPLOYMENT
![Page 50: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/50.jpg)
DEPLOYMENT
![Page 51: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/51.jpg)
DEPLOYMENT
![Page 52: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/52.jpg)
DEPLOYMENT
#!/bin/bash
echo ECS_CLUSTER = \
your_cluster_name >> \
/etc/ecs/ecs.config
![Page 53: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/53.jpg)
DEPLOYMENT
![Page 54: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/54.jpg)
DEPLOYMENT
![Page 55: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/55.jpg)
DEPLOYMENT
![Page 56: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/56.jpg)
DEPLOYMENT
![Page 57: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/57.jpg)
DEPLOYMENT
![Page 58: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/58.jpg)
DEPLOYMENT
![Page 59: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/59.jpg)
DEPLOYMENT
![Page 60: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/60.jpg)
DEPLOYMENT
![Page 61: Cloud Patterns Beuth Hochschule](https://reader031.vdocument.in/reader031/viewer/2022032022/55a937b71a28ab340a8b46bb/html5/thumbnails/61.jpg)