SlideShare uma empresa Scribd logo
1 de 78
Baixar para ler offline
© 2014 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in partwithout the express consent of Amazon.com, Inc. 
November 13, 2014 | Las Vegas 
APP307 -Leveraging the Cloud with a Blue-Green Deployment Architecture 
Jim Plush, Sr. Director of Engineering, CrowdStrike -@jimplush 
Sean Berry, Principal Software Engineer, CrowdStrike -@schleprachaun
About us
•Founded in September 2011 
•~150 employees 
•Detection/prevention 
–Advanced cyber threats 
–Real-time detection 
–Real-time analytics 
Cybersecurity startup
Published experts
Event Stream Processing 
Sensor 
Targeted Malicious 
Malware 
The “CLOUD” 
{"date":"11/14/2014 08:03", "path": “C:WINDOWSProgramsWord.exe", "id": 49, "parentId": 48} 
{"date":"11/14/2014 08:03", "path": “C:WINDOWSSystem32cmd.exe", "id": 50, "parentId": 49} 
{"date":"11/14/2014 08:03", "path": “C:WINDOWSProgramsWord.exe", "id": 51, "parentId": 50} 
DNS Lookup 
{"date":"11/14/2014 08:03", “dns": “badapple.cc”, "id": 52, "parentId": 51} 
TCP Connect 
{"date":"11/14/2014 08:03", “tcp_connect”: “10.10.10.10”, "id": 53, "parentId": 51} 
FTP Download 
{"date":"11/14/2014 08:03", "download": “10.10.10.10/badstuff.exe”, “id": 54, "parentId": 51} 
Document Exfiltration 
{"date":"11/14/2014 08:03", "scp": “C:DocumentsTradeSecrets.doc”, “id": 55, "parentId": 54}
Tactical UI
Data ingestion 
Service A 
Service A 
UI 
Service A 
Service A 
API 
Sensors 
Termination server 
Termination server 
Termination server 
Termination server 
Kafka 
DynamoDB 
Redis 
Amazon RDS 
Amazon Redshift 
Amazon Glacier 
Amazon S3 
Data plane 
Sensors 
Sensors 
External service Elastic Load Balancing load balancer 
Content Router 
Content Router 
Service A 
Service A 
Processor 1 
Service A 
Service A 
Processor 2
•Fortune 500, Think Tanks, Non-Profits 
•100K+ events per second 
–Expected to hit 500K EPS by end of 2015 
•Each enterprise customer can generate 2-4 TBs of data per day 
•Microservice architecture 
•Polyglot environment 
High scale, big data
Our tech stack is complicated
…but possible because of AWS
Motivation
Solving for the problems 
•OMG, all servers need to be patched?? 
•I’m afraid to restart that service; it’s been running for 2 years 
•Large rolling restarts 
•Deployment fear 
–Friday night deploys 
•B/G for event processing?
Our primary objectives for deployments 
•Minimize customer impact 
–Customers should have no indication that anything has changed 
•Maximize engineer’s weekends 
–Avoid burnout 
•Reduce dependencies of rollouts 
–Everything goes out together, 50+ services, 1000+ VMS
Leveraging AWS 
•Programmable data centers 
•Nodes are ephemeral 
•It should be easier to re-create an environment than to fix it 
—Think like the cloud
What is blue-green? 
Router 
Web 
server 
App 
server 
Application v1 
Shared 
database 
Web 
server 
App 
server 
Application v2 
x 
x
What is blue-green? 
•Full cluster BG 
–Everything goes out together 
–Indiana Jones: “idol switch” 
•App-based BG 
–Each app or team controls their ownblue-green deployments
Data plane 
The data plane 
can’t blue-green all the things 
Blue cluster 
Green cluster 
Kafka 
DynamoDB 
Redis 
Amazon RDS pgsql 
Amazon Redshift 
Amazon Glacier 
Amazon S3
When do we deploy? 
•Teams deploy end of sprint releases together 
•Hot-fix/Upgrades are performed via rolling restart deployments frequently 
•Early on deployments took an entire day 
–Lack of automation 
•Deploys today generally take 45 minutes 
–Everyone has run a deployment
Sustaining engineer 
•Every team member including QA has run deployments 
•Builds confidence, understanding, and redundancy 
•Ensures documentation is up to date and all things are automated that can be. 
Sustaining engineer badge of honor 
shirt after their tour of duty
Deployment day 
•Apt repo synchronized and locked down 
•Data plane migrations applied 
•“Green” cluster is launched (1000s of machines) 
•IT tests run 
•Canary customers 
•Logging and error checks 
•Active-active 
•“Blue” marked as inactive, decommissioned
Keys to success 
Pro tip: It’s not just flipping load balancers
Keys to success 
Automate all the things 
•jr devs should be able to run your deploy system
Keys to success 
Instrumentation & Metrics 
https://github.com/codahale/metrics 
https://github.com/rcrowley/go-metrics
Keys to success 
Use a provisioning system 
•Chef 
•Puppet 
•Salt 
•baked AMIs
Keys to success 
Live integration / regression test suites 
Test 
System 
Send deterministic input values 
Verify processed state
Keys to success 
Canary Customers 
V1 App 
V2 App
Keys to success 
Feature Flags
Keys to success 
Unified app requirements
Keys to success 
Deployment History
–every team member 
“Thank God we have blue-green”
Implementation
How we blue-green
Elevator pitch on Kafka 
•Distributed commit log 
•Similar to a message queue 
•Allows for replaying messages from earlier in the stream in case of failure
Kafka 
DynamoDB 
Redis 
Amazon RDS 
Amazon Redshift 
Amazon Glacier 
Amazon S3 
Data plane 
Service A 
Service A 
Processor 1 
Service A 
Service A 
Processor 2 
Service A 
Service A 
Processor 3 
Service A 
Service A 
Processor 4 
Sensors 
Termination server 
Termination server 
Termination server 
Termination server 
Content Router 
Content Router 
Sensors 
•Blue is running;normal operation 
•Content Routers are writing to the “active” topics in Kafka 
•Blue processors read from the “active” topics 
Sensors 
Active topic 
Active topic 
External service ELB load balancer 
It all starts with a running cluster
Main management page for blue-green
Kafka 
DynamoDB 
Redis 
Amazon RDS 
Amazon Redshift 
Amazon Glacier 
Amazon S3 
Data plane 
External service ELB load balanceer 
Sensors 
Termination server 
Termination server 
Termination server 
Termination server 
Termination server 
Termination server 
Termination server 
Termination server 
Content Router 
Content Router 
Sensors 
Sensors 
Service A 
Service A 
Processor 1 
Service A 
Service A 
Processor 2 
Service A 
Service A 
Processor 3 
Service A 
Service A 
Processor 4 
Active topic 
Launching new cluster 
Active topic 
Active topic 
Inactive Topic 
Service A 
Service A 
Processor 1 
Service A 
Service A 
Processor 2 
Service A 
Service A 
Processor 3 
Service A 
Service A 
Processor 4 
Content Router 
Content Router 
•Green cluster is launched 
•Termination servers are kept out of the ELB load balancer by failing health checks 
•Content Routers write to the “active” topics 
•Processors in green read from the “inactive” topics
Sizing the new cluster
Getting the size right 
•Sizing of our autoscale groups is determined programmatically 
–Admin page allows for setting mix / max 
–Script determines appropriate desired-capacity based on running cluster 
•Launching is then as simple as updating the autoscale groups to the new sizes 
defcurrent_counts(region='us-east-1'): 
proc = Popen( 
"as-describe-auto-scaling-groups “ 
“--region {} “ 
“--max-records=600".format(region), 
shell=False, stdout=PIPE, stderr=PIPE) 
out, err = proc.communicate() 
iferr: 
raiseException(err) 
counts = {} 
forline inout.splitlines(): 
if"AUTO-SCALING-GROUP"not inline: 
continue 
parts = line.split() 
group = parts[1] 
current = parts[-2] 
counts[group] = int(current) 
returncounts
Tuning size before we launch
Bootstrapping
User data and Chef get things rolling 
•Inside out Chef bootstrapping 
–Didn’t feel comfortable running `wget … | bash` 
•Custom version of Chef installer 
–Version of Chef 
–Where to find the Chef servers 
–Which role to run 
–Which environment (dev, integ, blue, green)
Testing the new stuff 
External service ELB load balancer 
Sensors 
Termination server 
Termination server 
Termination server 
Termination server 
Sensors 
Active topic 
Active topic 
Kafka 
DynamoDB 
Redis 
Amazon RDS 
Amazon Redshift 
Amazon Glacier 
Amazon S3 
Data plane 
Termination server 
Termination server 
Termination server 
Termination server 
Integration tests 
Active topic 
Inactive Topic 
Content Router 
Content Router 
Service A 
Service A 
Processor 1 
Service A 
Service A 
Processor 2 
Service A 
Service A 
Processor 3 
Service A 
Service A 
Processor 4 
Service A 
Service A 
Processor 1 
Service A 
Service A 
Processor 2 
Service A 
Service A 
Processor 3 
Service A 
Service A 
Processor 4 
Content Router 
Content Router 
•Test customer(s) are *canaried 
•Integration test suite is run by connecting to a termination server directly 
•Tests pass; then we canary real customers
Canary customers
•Canary information is stored in zookeeper 
•Fortunately we dogfood our own tech 
•This affords us the ability to use ourselves as canaries for new code 
•The inactive processing cluster is set to read from the .inactivetopics 
•The standard Kafka topics with .inactiveappended 
•The ingestion layer has a watcher on that znode and routes any canaried customer to a the .inactive topics 
•Ex. regular traffic goes to foo.bar, canary traffic goes to foo.bar.inactive 
•When we are ready to test real traffic we mark several customers as canaries and start the monitoring process to determine any issues 
Canary customers
Canary customers 
Sensors 
External service ELB load balancer 
Event ingestor 
Kafka 
Green Processors 
Inactive Topic 
Regular Traffic 
Active topic 
Blue Processors 
Active topic 
Inactive Topic 
Canary Traffic 
Customer 123 
Customer 456
Let’s canary some customers
That was easy
Testing
IT tests run 
•Integration tests are run 
–~3000 tests in total 
–Test customer must be “canaried” 
•If any tests fail, we triage and determine if it is still possible to move forward 
•Testing is only done when we are passing 100%—no exceptions!
Sean is mad -we have work to do
Sean is happy -so we all arehappy
Kafka 
DynamoDB 
Redis 
Amazon RDS 
Amazon Redshift 
Amazon Glacier 
Amazon S3 
Data plane 
Trust, but verify! 
Sensors 
Termination server 
Termination server 
Termination server 
Termination server 
Sensors 
Active Topic 
Active Topic 
Inactive Topic 
Sensors 
External service ELB load balancer 
Service A 
Service A 
Processor 1 
Service A 
Service A 
Processor 2 
Service A 
Service A 
Processor 3 
Service A 
Service A 
Processor 4 
Content Router 
Content Router 
Inactive Topic 
Service A 
Service A 
Processor 1 
Service A 
Service A 
Processor 2 
Service A 
Service A 
Processor 3 
Service A 
Service A 
Processor 4 
•Monitor green services 
•Verify health of the cluster by inspecting graphicaldata and log outputs 
•Rerun tests with load
Monitoring
Logging and errorchecking 
•Every server forwards its relevant logs to Splunk 
•Several dashboards have been set up with common things to watch for 
•Raw logs are streamed in near real-time and we watch specifically for log-level ERROR 
•This is one of our most important steps, as it gives us the most insight into the health of the system as a whole
Logging / ErrorChecking
Moving customers over 
Termination server 
Termination server 
Termination server 
Termination server 
Termination server 
Termination server 
Termination server 
Termination server 
Sensors 
Sensors 
Sensors 
External service ELB load blaancer 
Kafka 
DynamoDB 
Redis 
Amazon RDS 
Amazon Redshift 
Amazon Glacier 
Amazon S3 
Data plane 
Active topic 
Active topic 
Content Router 
Content Router 
Service A 
Service A 
Processor 1 
Service A 
Service A 
Processor 2 
Service A 
Service A 
Processor 3 
Service A 
Service A 
Processor 4 
Service A 
Service A 
Processor 1 
Service A 
Service A 
Processor 2 
Service A 
Service A 
Processor 3 
Service A 
Service A 
Processor 4 
Content Router 
Content Router 
Active topic 
Active topic 
•Flip all customers back away from canary 
•Activate green cluster 
•Event processors and consuming services in blue and green now write to and consume the “active” topics 
•We are in a state of active-activefor a few minutes
Each node in the data processing layer has a watcher on a particular znode which tells the environment whether it is active (use standard Kafka topics) or inactive (append .inactiveto the topics) 
Service A 
Service A 
Processor 1 
Service A 
Service A 
Processor 2 
Service A 
Service A 
Processor 3 
Service A 
Service A 
Processor 4 
Active Topic 
Kafka 
Service A 
Service A 
Processor 1 
Service A 
Service A 
Processor 2 
Service A 
Service A 
Processor 3 
Service A 
Service A 
Processor 4 
Active -active 
Inactive Topic 
Ingestion
Inactive Topic 
Active topic 
When we are ready to make the switch, we start by making the new cluster active and enter into an active-active state where both processing clusters are doing work. 
Kafka 
Green, switch 
to active! 
Active Topic 
This is where is it paramount that code is forward compatible since two different code bases will be doing work simultaneously 
Active -active 
Service A 
Service A 
Processor 1 
Service A 
Service A 
Processor 2 
Service A 
Service A 
Processor 3 
Service A 
Service A 
Processor 4 
Service A 
Service A 
Processor 1 
Service A 
Service A 
Processor 2 
Service A 
Service A 
Processor 3 
Service A 
Service A 
Processor 4 
Ingestion
However, blue and green are fully partitioned and there is no intercommunication between the clusters. This allows for things like changes in serialization for inter- service communication. 
Active Topic 
Kafka 
Active Topic 
Active -active 
Service A 
Service A 
Processor 1 
Service A 
Service A 
Processor 2 
Service A 
Service A 
Processor 3 
Service A 
Service A 
Processor 4 
Service A 
Service A 
Processor 1 
Service A 
Service A 
Processor 2 
Service A 
Service A 
Processor 3 
Service A 
Service A 
Processor 4 
Ingestion
Kafka 
DynamoDB 
Redis 
Amazon RDS 
Amazon Redshift 
Amazon Glacier 
Amazon S3 
Data plane 
Flipping the switch 
Termination server 
Termination server 
Termination server 
Termination server 
Content Router 
Content Router 
Sensors 
Sensors 
Sensors 
External service ELB load balancer 
Termination server 
Termination server 
Termination server 
Termination server 
Content Router 
Content Router 
Active topic 
Active topic 
Service A 
Service A 
Processor 1 
Service A 
Service A 
Processor 2 
Service A 
Service A 
Processor 3 
Service A 
Service A 
Processor 4 
Service A 
Service A 
Processor 1 
Service A 
Service A 
Processor 2 
Service A 
Service A 
Processor 3 
Service A 
Service A 
Processor 4 
Inactive topic 
Active topic 
•We deactivate Blue, which forces Termination Servers in Blue to fail health checks and all Blue sensors disconnect 
•Blue processors switch to read from the “inactive” topic 
•Once all consumers of the “inactive” topic have caught up to thehead of the stream, Blue can be decommissioned
Out with the old… 
Termination server 
Termination server 
Termination server 
Termination server 
Content Router 
Content Router 
Kafka 
DynamoDB 
Redis 
Amazon RDS 
Amazon Redshift 
Amazon Glacier 
Amazon S3 
Data plane 
Active topic 
Active topic 
Sensors 
Sensors 
Sensors 
External service ELB load balancer 
Service A 
Service A 
Processor 1 
Service A 
Service A 
Processor 2 
Service A 
Service A 
Processor 3 
Service A 
Service A 
Processor 4 
•Green is now the active cluster 
•If we need to roll back code, we have a snapshot of the repository in Amazon S3 
•We haven’t had to roll back code… yet
Easing the pain
Bootstapping faster
Half-baked AMIs 
We use a process to create “half-baked” AMIs, which speed up deployments 
•JVM (for our Scala code base) 
•Common tools and configurations 
•Latest updates to make sure patches are up to date 
•Build plan is run twice daily 
Green Server 
Green Server 
Green Server 
Green Server 
Green Server 
Green server 
Green Server 
Green Server 
Green Server 
Green Server 
Green Server 
Blue server 
Half-baked-AMI 
Auto Scaling group 
1 
AMI 
Auto Scale Group 
Amazon S3
Getting code ready
How code graduates -Development 
Commit on main 
Development apt repo 
Auto deploy changed 
roles 
Development cluster
How code graduates -Production 
Create release-X.X.X or 
hotfix-X.X.X branches 
Integration apt repo 
Production apt repo 
Same exact 
Binary 
Integration cluster 
Integration apt repo 
Sync specified 
Packages for integ 
New production cluster
Choosing what goes out
Viewing debian details
Integration is synced
Integration is synced
Production is synced from Integ
Updating the data plane
Data plane migrations 
•Migrations applied to the database are forward only 
•We have past experiences with two way migrations, but the cost outweigh the benefits. 
•Code must be forward compatible in case rollbacks are necessary 
•Database schemas are only modified via migrations even in development and integration environments 
•We use an in-house migration service(based on flyway) to parallelize the process
Final Thoughts 
•blue-green deployments can be done in many ways 
•Our requirement of never losing customer data made this the best solution for us 
•The automation and tooling around our deployment system were built over many months and was a lot of work(built by 2 people –Hi Dennis!) 
•But it is completely worth it, knowing we have a very reliable, fault-tolerant system
Thankyou
http://bit.ly/awsevals 
Jim:@jimplush 
Sean:@schleprachaun

Mais conteúdo relacionado

Mais procurados

20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)
20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)
20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)Amazon Web Services Japan
 
負荷分散だけじゃないELBのメリット
負荷分散だけじゃないELBのメリット負荷分散だけじゃないELBのメリット
負荷分散だけじゃないELBのメリットTakashi Toyosaki
 
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20Amazon Web Services Korea
 
Introduction to Amazon Elastic File System (EFS)
Introduction to Amazon Elastic File System (EFS)Introduction to Amazon Elastic File System (EFS)
Introduction to Amazon Elastic File System (EFS)Amazon Web Services
 
20190320 AWS Black Belt Online Seminar Amazon EBS
20190320 AWS Black Belt Online Seminar Amazon EBS20190320 AWS Black Belt Online Seminar Amazon EBS
20190320 AWS Black Belt Online Seminar Amazon EBSAmazon Web Services Japan
 
AWS Fault Injection Simulator를 통한 실전 카오스 엔지니어링 - 윤석찬 AWS 수석 테크에반젤리스트 / 김신 SW엔...
AWS Fault Injection Simulator를 통한 실전 카오스 엔지니어링 - 윤석찬 AWS 수석 테크에반젤리스트 / 김신 SW엔...AWS Fault Injection Simulator를 통한 실전 카오스 엔지니어링 - 윤석찬 AWS 수석 테크에반젤리스트 / 김신 SW엔...
AWS Fault Injection Simulator를 통한 실전 카오스 엔지니어링 - 윤석찬 AWS 수석 테크에반젤리스트 / 김신 SW엔...Amazon Web Services Korea
 
AWS Black Belt Techシリーズ Elastic Load Balancing (ELB)
AWS Black Belt Techシリーズ  Elastic Load Balancing (ELB)AWS Black Belt Techシリーズ  Elastic Load Balancing (ELB)
AWS Black Belt Techシリーズ Elastic Load Balancing (ELB)Amazon Web Services Japan
 
20191016 AWS Black Belt Online Seminar Amazon Route 53 Resolver
20191016 AWS Black Belt Online Seminar Amazon Route 53 Resolver20191016 AWS Black Belt Online Seminar Amazon Route 53 Resolver
20191016 AWS Black Belt Online Seminar Amazon Route 53 ResolverAmazon Web Services Japan
 
Running Kubernetes Across Multiple AWS Accounts (CON409) - AWS re:Invent 2018
Running Kubernetes Across Multiple AWS Accounts (CON409) - AWS re:Invent 2018Running Kubernetes Across Multiple AWS Accounts (CON409) - AWS re:Invent 2018
Running Kubernetes Across Multiple AWS Accounts (CON409) - AWS re:Invent 2018Amazon Web Services
 
Kafka 101 and Developer Best Practices
Kafka 101 and Developer Best PracticesKafka 101 and Developer Best Practices
Kafka 101 and Developer Best Practicesconfluent
 
Stream processing using Kafka
Stream processing using KafkaStream processing using Kafka
Stream processing using KafkaKnoldus Inc.
 
Amazon EKS - Elastic Container Service for Kubernetes
Amazon EKS - Elastic Container Service for KubernetesAmazon EKS - Elastic Container Service for Kubernetes
Amazon EKS - Elastic Container Service for KubernetesAmazon Web Services
 
Application & Account Monitoring in AWS
Application & Account Monitoring in AWSApplication & Account Monitoring in AWS
Application & Account Monitoring in AWSBhuvaneswari Subramani
 
K8s on AWS: Introducing Amazon EKS
K8s on AWS: Introducing Amazon EKSK8s on AWS: Introducing Amazon EKS
K8s on AWS: Introducing Amazon EKSAmazon Web Services
 
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...Amazon Web Services Japan
 
Best Practices for Middleware and Integration Architecture Modernization with...
Best Practices for Middleware and Integration Architecture Modernization with...Best Practices for Middleware and Integration Architecture Modernization with...
Best Practices for Middleware and Integration Architecture Modernization with...Claus Ibsen
 
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...Amazon Web Services Japan
 
실시간 스트리밍 분석 Kinesis Data Analytics Deep Dive
실시간 스트리밍 분석  Kinesis Data Analytics Deep Dive실시간 스트리밍 분석  Kinesis Data Analytics Deep Dive
실시간 스트리밍 분석 Kinesis Data Analytics Deep DiveAmazon Web Services Korea
 
re:Invent 2022 DAT326 Deep dive into Amazon Aurora and its innovations
re:Invent 2022  DAT326 Deep dive into Amazon Aurora and its innovationsre:Invent 2022  DAT326 Deep dive into Amazon Aurora and its innovations
re:Invent 2022 DAT326 Deep dive into Amazon Aurora and its innovationsGrant McAlister
 

Mais procurados (20)

20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)
20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)
20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)
 
負荷分散だけじゃないELBのメリット
負荷分散だけじゃないELBのメリット負荷分散だけじゃないELBのメリット
負荷分散だけじゃないELBのメリット
 
Introduction to Amazon EKS
Introduction to Amazon EKSIntroduction to Amazon EKS
Introduction to Amazon EKS
 
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
 
Introduction to Amazon Elastic File System (EFS)
Introduction to Amazon Elastic File System (EFS)Introduction to Amazon Elastic File System (EFS)
Introduction to Amazon Elastic File System (EFS)
 
20190320 AWS Black Belt Online Seminar Amazon EBS
20190320 AWS Black Belt Online Seminar Amazon EBS20190320 AWS Black Belt Online Seminar Amazon EBS
20190320 AWS Black Belt Online Seminar Amazon EBS
 
AWS Fault Injection Simulator를 통한 실전 카오스 엔지니어링 - 윤석찬 AWS 수석 테크에반젤리스트 / 김신 SW엔...
AWS Fault Injection Simulator를 통한 실전 카오스 엔지니어링 - 윤석찬 AWS 수석 테크에반젤리스트 / 김신 SW엔...AWS Fault Injection Simulator를 통한 실전 카오스 엔지니어링 - 윤석찬 AWS 수석 테크에반젤리스트 / 김신 SW엔...
AWS Fault Injection Simulator를 통한 실전 카오스 엔지니어링 - 윤석찬 AWS 수석 테크에반젤리스트 / 김신 SW엔...
 
AWS Black Belt Techシリーズ Elastic Load Balancing (ELB)
AWS Black Belt Techシリーズ  Elastic Load Balancing (ELB)AWS Black Belt Techシリーズ  Elastic Load Balancing (ELB)
AWS Black Belt Techシリーズ Elastic Load Balancing (ELB)
 
20191016 AWS Black Belt Online Seminar Amazon Route 53 Resolver
20191016 AWS Black Belt Online Seminar Amazon Route 53 Resolver20191016 AWS Black Belt Online Seminar Amazon Route 53 Resolver
20191016 AWS Black Belt Online Seminar Amazon Route 53 Resolver
 
Running Kubernetes Across Multiple AWS Accounts (CON409) - AWS re:Invent 2018
Running Kubernetes Across Multiple AWS Accounts (CON409) - AWS re:Invent 2018Running Kubernetes Across Multiple AWS Accounts (CON409) - AWS re:Invent 2018
Running Kubernetes Across Multiple AWS Accounts (CON409) - AWS re:Invent 2018
 
Kafka 101 and Developer Best Practices
Kafka 101 and Developer Best PracticesKafka 101 and Developer Best Practices
Kafka 101 and Developer Best Practices
 
Stream processing using Kafka
Stream processing using KafkaStream processing using Kafka
Stream processing using Kafka
 
Amazon EKS - Elastic Container Service for Kubernetes
Amazon EKS - Elastic Container Service for KubernetesAmazon EKS - Elastic Container Service for Kubernetes
Amazon EKS - Elastic Container Service for Kubernetes
 
Application & Account Monitoring in AWS
Application & Account Monitoring in AWSApplication & Account Monitoring in AWS
Application & Account Monitoring in AWS
 
K8s on AWS: Introducing Amazon EKS
K8s on AWS: Introducing Amazon EKSK8s on AWS: Introducing Amazon EKS
K8s on AWS: Introducing Amazon EKS
 
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
 
Best Practices for Middleware and Integration Architecture Modernization with...
Best Practices for Middleware and Integration Architecture Modernization with...Best Practices for Middleware and Integration Architecture Modernization with...
Best Practices for Middleware and Integration Architecture Modernization with...
 
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
 
실시간 스트리밍 분석 Kinesis Data Analytics Deep Dive
실시간 스트리밍 분석  Kinesis Data Analytics Deep Dive실시간 스트리밍 분석  Kinesis Data Analytics Deep Dive
실시간 스트리밍 분석 Kinesis Data Analytics Deep Dive
 
re:Invent 2022 DAT326 Deep dive into Amazon Aurora and its innovations
re:Invent 2022  DAT326 Deep dive into Amazon Aurora and its innovationsre:Invent 2022  DAT326 Deep dive into Amazon Aurora and its innovations
re:Invent 2022 DAT326 Deep dive into Amazon Aurora and its innovations
 

Semelhante a (APP307) Leverage the Cloud with a Blue/Green Deployment Architecture | AWS re:Invent 2014

5 Steps on the Way to Continuous Delivery
5 Steps on the Way to Continuous Delivery5 Steps on the Way to Continuous Delivery
5 Steps on the Way to Continuous DeliveryXebiaLabs
 
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
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOpsEklove Mohan
 
Microservices in action at the Dutch National Police - Bert Jan Schrijver - C...
Microservices in action at the Dutch National Police - Bert Jan Schrijver - C...Microservices in action at the Dutch National Police - Bert Jan Schrijver - C...
Microservices in action at the Dutch National Police - Bert Jan Schrijver - C...Codemotion
 
CodeMotion Amsterdam 2018 - Microservices in action at the Dutch National Police
CodeMotion Amsterdam 2018 - Microservices in action at the Dutch National PoliceCodeMotion Amsterdam 2018 - Microservices in action at the Dutch National Police
CodeMotion Amsterdam 2018 - Microservices in action at the Dutch National PoliceBert Jan Schrijver
 
iSense Java Summit 2017 - Microservices in action at the Dutch National Police
iSense Java Summit 2017 - Microservices in action at the Dutch National PoliceiSense Java Summit 2017 - Microservices in action at the Dutch National Police
iSense Java Summit 2017 - Microservices in action at the Dutch National PoliceBert Jan Schrijver
 
JavaZone 2017 - Microservices in action at the Dutch National Police
JavaZone 2017 - Microservices in action at the Dutch National PoliceJavaZone 2017 - Microservices in action at the Dutch National Police
JavaZone 2017 - Microservices in action at the Dutch National PoliceBert Jan Schrijver
 
Microservices in action at the Dutch National Police
Microservices in action at the Dutch National PoliceMicroservices in action at the Dutch National Police
Microservices in action at the Dutch National PoliceBert Jan Schrijver
 
OpenValue meetup October 2017 - Microservices in action at the Dutch National...
OpenValue meetup October 2017 - Microservices in action at the Dutch National...OpenValue meetup October 2017 - Microservices in action at the Dutch National...
OpenValue meetup October 2017 - Microservices in action at the Dutch National...Bert Jan Schrijver
 
Get There meetup March 2018 - Microservices in action at the Dutch National P...
Get There meetup March 2018 - Microservices in action at the Dutch National P...Get There meetup March 2018 - Microservices in action at the Dutch National P...
Get There meetup March 2018 - Microservices in action at the Dutch National P...Bert Jan Schrijver
 
Dublin JUG February 2018 - Microservices in action at the Dutch National Police
Dublin JUG February 2018 - Microservices in action at the Dutch National PoliceDublin JUG February 2018 - Microservices in action at the Dutch National Police
Dublin JUG February 2018 - Microservices in action at the Dutch National PoliceBert Jan Schrijver
 
Agile infrastructure
Agile infrastructureAgile infrastructure
Agile infrastructureTarun Rajput
 
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...Emerson Eduardo Rodrigues Von Staffen
 
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...Amazon Web Services
 
Stay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolithStay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolithMarkus Eisele
 
Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...
Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...
Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...Amazon Web Services
 
Ansible benelux meetup - Amsterdam 27-5-2015
Ansible benelux meetup - Amsterdam 27-5-2015Ansible benelux meetup - Amsterdam 27-5-2015
Ansible benelux meetup - Amsterdam 27-5-2015Pavel Chunyayev
 
Monitoring and tuning your chef server - chef conf talk
Monitoring and tuning your chef server - chef conf talk Monitoring and tuning your chef server - chef conf talk
Monitoring and tuning your chef server - chef conf talk Andrew DuFour
 
10 Tips for Your Journey to the Public Cloud
10 Tips for Your Journey to the Public Cloud10 Tips for Your Journey to the Public Cloud
10 Tips for Your Journey to the Public CloudIntuit Inc.
 

Semelhante a (APP307) Leverage the Cloud with a Blue/Green Deployment Architecture | AWS re:Invent 2014 (20)

5 Steps on the Way to Continuous Delivery
5 Steps on the Way to Continuous Delivery5 Steps on the Way to Continuous Delivery
5 Steps on the Way to Continuous Delivery
 
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
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOps
 
Microservices in action at the Dutch National Police - Bert Jan Schrijver - C...
Microservices in action at the Dutch National Police - Bert Jan Schrijver - C...Microservices in action at the Dutch National Police - Bert Jan Schrijver - C...
Microservices in action at the Dutch National Police - Bert Jan Schrijver - C...
 
CodeMotion Amsterdam 2018 - Microservices in action at the Dutch National Police
CodeMotion Amsterdam 2018 - Microservices in action at the Dutch National PoliceCodeMotion Amsterdam 2018 - Microservices in action at the Dutch National Police
CodeMotion Amsterdam 2018 - Microservices in action at the Dutch National Police
 
iSense Java Summit 2017 - Microservices in action at the Dutch National Police
iSense Java Summit 2017 - Microservices in action at the Dutch National PoliceiSense Java Summit 2017 - Microservices in action at the Dutch National Police
iSense Java Summit 2017 - Microservices in action at the Dutch National Police
 
JavaZone 2017 - Microservices in action at the Dutch National Police
JavaZone 2017 - Microservices in action at the Dutch National PoliceJavaZone 2017 - Microservices in action at the Dutch National Police
JavaZone 2017 - Microservices in action at the Dutch National Police
 
Microservices in action at the Dutch National Police
Microservices in action at the Dutch National PoliceMicroservices in action at the Dutch National Police
Microservices in action at the Dutch National Police
 
OpenValue meetup October 2017 - Microservices in action at the Dutch National...
OpenValue meetup October 2017 - Microservices in action at the Dutch National...OpenValue meetup October 2017 - Microservices in action at the Dutch National...
OpenValue meetup October 2017 - Microservices in action at the Dutch National...
 
Get There meetup March 2018 - Microservices in action at the Dutch National P...
Get There meetup March 2018 - Microservices in action at the Dutch National P...Get There meetup March 2018 - Microservices in action at the Dutch National P...
Get There meetup March 2018 - Microservices in action at the Dutch National P...
 
Dublin JUG February 2018 - Microservices in action at the Dutch National Police
Dublin JUG February 2018 - Microservices in action at the Dutch National PoliceDublin JUG February 2018 - Microservices in action at the Dutch National Police
Dublin JUG February 2018 - Microservices in action at the Dutch National Police
 
Agile infrastructure
Agile infrastructureAgile infrastructure
Agile infrastructure
 
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
 
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
 
Stay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolithStay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolith
 
Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...
Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...
Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...
 
Ansible benelux meetup - Amsterdam 27-5-2015
Ansible benelux meetup - Amsterdam 27-5-2015Ansible benelux meetup - Amsterdam 27-5-2015
Ansible benelux meetup - Amsterdam 27-5-2015
 
Monitoring and tuning your chef server - chef conf talk
Monitoring and tuning your chef server - chef conf talk Monitoring and tuning your chef server - chef conf talk
Monitoring and tuning your chef server - chef conf talk
 
10 Tips for Your Journey to the Public Cloud
10 Tips for Your Journey to the Public Cloud10 Tips for Your Journey to the Public Cloud
10 Tips for Your Journey to the Public Cloud
 
DevOps and AWS
DevOps and AWSDevOps and AWS
DevOps and AWS
 

Mais de Amazon Web Services

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Amazon Web Services
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Amazon Web Services
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateAmazon Web Services
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSAmazon Web Services
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Amazon Web Services
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Amazon Web Services
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...Amazon Web Services
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsAmazon Web Services
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareAmazon Web Services
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSAmazon Web Services
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAmazon Web Services
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareAmazon Web Services
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWSAmazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckAmazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without serversAmazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...Amazon Web Services
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceAmazon Web Services
 

Mais de Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

Último

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 

Último (20)

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 

(APP307) Leverage the Cloud with a Blue/Green Deployment Architecture | AWS re:Invent 2014

  • 1. © 2014 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in partwithout the express consent of Amazon.com, Inc. November 13, 2014 | Las Vegas APP307 -Leveraging the Cloud with a Blue-Green Deployment Architecture Jim Plush, Sr. Director of Engineering, CrowdStrike -@jimplush Sean Berry, Principal Software Engineer, CrowdStrike -@schleprachaun
  • 3. •Founded in September 2011 •~150 employees •Detection/prevention –Advanced cyber threats –Real-time detection –Real-time analytics Cybersecurity startup
  • 5. Event Stream Processing Sensor Targeted Malicious Malware The “CLOUD” {"date":"11/14/2014 08:03", "path": “C:WINDOWSProgramsWord.exe", "id": 49, "parentId": 48} {"date":"11/14/2014 08:03", "path": “C:WINDOWSSystem32cmd.exe", "id": 50, "parentId": 49} {"date":"11/14/2014 08:03", "path": “C:WINDOWSProgramsWord.exe", "id": 51, "parentId": 50} DNS Lookup {"date":"11/14/2014 08:03", “dns": “badapple.cc”, "id": 52, "parentId": 51} TCP Connect {"date":"11/14/2014 08:03", “tcp_connect”: “10.10.10.10”, "id": 53, "parentId": 51} FTP Download {"date":"11/14/2014 08:03", "download": “10.10.10.10/badstuff.exe”, “id": 54, "parentId": 51} Document Exfiltration {"date":"11/14/2014 08:03", "scp": “C:DocumentsTradeSecrets.doc”, “id": 55, "parentId": 54}
  • 6.
  • 8. Data ingestion Service A Service A UI Service A Service A API Sensors Termination server Termination server Termination server Termination server Kafka DynamoDB Redis Amazon RDS Amazon Redshift Amazon Glacier Amazon S3 Data plane Sensors Sensors External service Elastic Load Balancing load balancer Content Router Content Router Service A Service A Processor 1 Service A Service A Processor 2
  • 9. •Fortune 500, Think Tanks, Non-Profits •100K+ events per second –Expected to hit 500K EPS by end of 2015 •Each enterprise customer can generate 2-4 TBs of data per day •Microservice architecture •Polyglot environment High scale, big data
  • 10. Our tech stack is complicated
  • 13. Solving for the problems •OMG, all servers need to be patched?? •I’m afraid to restart that service; it’s been running for 2 years •Large rolling restarts •Deployment fear –Friday night deploys •B/G for event processing?
  • 14. Our primary objectives for deployments •Minimize customer impact –Customers should have no indication that anything has changed •Maximize engineer’s weekends –Avoid burnout •Reduce dependencies of rollouts –Everything goes out together, 50+ services, 1000+ VMS
  • 15. Leveraging AWS •Programmable data centers •Nodes are ephemeral •It should be easier to re-create an environment than to fix it —Think like the cloud
  • 16. What is blue-green? Router Web server App server Application v1 Shared database Web server App server Application v2 x x
  • 17. What is blue-green? •Full cluster BG –Everything goes out together –Indiana Jones: “idol switch” •App-based BG –Each app or team controls their ownblue-green deployments
  • 18. Data plane The data plane can’t blue-green all the things Blue cluster Green cluster Kafka DynamoDB Redis Amazon RDS pgsql Amazon Redshift Amazon Glacier Amazon S3
  • 19. When do we deploy? •Teams deploy end of sprint releases together •Hot-fix/Upgrades are performed via rolling restart deployments frequently •Early on deployments took an entire day –Lack of automation •Deploys today generally take 45 minutes –Everyone has run a deployment
  • 20. Sustaining engineer •Every team member including QA has run deployments •Builds confidence, understanding, and redundancy •Ensures documentation is up to date and all things are automated that can be. Sustaining engineer badge of honor shirt after their tour of duty
  • 21. Deployment day •Apt repo synchronized and locked down •Data plane migrations applied •“Green” cluster is launched (1000s of machines) •IT tests run •Canary customers •Logging and error checks •Active-active •“Blue” marked as inactive, decommissioned
  • 22. Keys to success Pro tip: It’s not just flipping load balancers
  • 23. Keys to success Automate all the things •jr devs should be able to run your deploy system
  • 24. Keys to success Instrumentation & Metrics https://github.com/codahale/metrics https://github.com/rcrowley/go-metrics
  • 25. Keys to success Use a provisioning system •Chef •Puppet •Salt •baked AMIs
  • 26. Keys to success Live integration / regression test suites Test System Send deterministic input values Verify processed state
  • 27. Keys to success Canary Customers V1 App V2 App
  • 28. Keys to success Feature Flags
  • 29. Keys to success Unified app requirements
  • 30. Keys to success Deployment History
  • 31. –every team member “Thank God we have blue-green”
  • 34. Elevator pitch on Kafka •Distributed commit log •Similar to a message queue •Allows for replaying messages from earlier in the stream in case of failure
  • 35. Kafka DynamoDB Redis Amazon RDS Amazon Redshift Amazon Glacier Amazon S3 Data plane Service A Service A Processor 1 Service A Service A Processor 2 Service A Service A Processor 3 Service A Service A Processor 4 Sensors Termination server Termination server Termination server Termination server Content Router Content Router Sensors •Blue is running;normal operation •Content Routers are writing to the “active” topics in Kafka •Blue processors read from the “active” topics Sensors Active topic Active topic External service ELB load balancer It all starts with a running cluster
  • 36. Main management page for blue-green
  • 37. Kafka DynamoDB Redis Amazon RDS Amazon Redshift Amazon Glacier Amazon S3 Data plane External service ELB load balanceer Sensors Termination server Termination server Termination server Termination server Termination server Termination server Termination server Termination server Content Router Content Router Sensors Sensors Service A Service A Processor 1 Service A Service A Processor 2 Service A Service A Processor 3 Service A Service A Processor 4 Active topic Launching new cluster Active topic Active topic Inactive Topic Service A Service A Processor 1 Service A Service A Processor 2 Service A Service A Processor 3 Service A Service A Processor 4 Content Router Content Router •Green cluster is launched •Termination servers are kept out of the ELB load balancer by failing health checks •Content Routers write to the “active” topics •Processors in green read from the “inactive” topics
  • 38. Sizing the new cluster
  • 39. Getting the size right •Sizing of our autoscale groups is determined programmatically –Admin page allows for setting mix / max –Script determines appropriate desired-capacity based on running cluster •Launching is then as simple as updating the autoscale groups to the new sizes defcurrent_counts(region='us-east-1'): proc = Popen( "as-describe-auto-scaling-groups “ “--region {} “ “--max-records=600".format(region), shell=False, stdout=PIPE, stderr=PIPE) out, err = proc.communicate() iferr: raiseException(err) counts = {} forline inout.splitlines(): if"AUTO-SCALING-GROUP"not inline: continue parts = line.split() group = parts[1] current = parts[-2] counts[group] = int(current) returncounts
  • 40. Tuning size before we launch
  • 42. User data and Chef get things rolling •Inside out Chef bootstrapping –Didn’t feel comfortable running `wget … | bash` •Custom version of Chef installer –Version of Chef –Where to find the Chef servers –Which role to run –Which environment (dev, integ, blue, green)
  • 43. Testing the new stuff External service ELB load balancer Sensors Termination server Termination server Termination server Termination server Sensors Active topic Active topic Kafka DynamoDB Redis Amazon RDS Amazon Redshift Amazon Glacier Amazon S3 Data plane Termination server Termination server Termination server Termination server Integration tests Active topic Inactive Topic Content Router Content Router Service A Service A Processor 1 Service A Service A Processor 2 Service A Service A Processor 3 Service A Service A Processor 4 Service A Service A Processor 1 Service A Service A Processor 2 Service A Service A Processor 3 Service A Service A Processor 4 Content Router Content Router •Test customer(s) are *canaried •Integration test suite is run by connecting to a termination server directly •Tests pass; then we canary real customers
  • 45. •Canary information is stored in zookeeper •Fortunately we dogfood our own tech •This affords us the ability to use ourselves as canaries for new code •The inactive processing cluster is set to read from the .inactivetopics •The standard Kafka topics with .inactiveappended •The ingestion layer has a watcher on that znode and routes any canaried customer to a the .inactive topics •Ex. regular traffic goes to foo.bar, canary traffic goes to foo.bar.inactive •When we are ready to test real traffic we mark several customers as canaries and start the monitoring process to determine any issues Canary customers
  • 46. Canary customers Sensors External service ELB load balancer Event ingestor Kafka Green Processors Inactive Topic Regular Traffic Active topic Blue Processors Active topic Inactive Topic Canary Traffic Customer 123 Customer 456
  • 47. Let’s canary some customers
  • 50. IT tests run •Integration tests are run –~3000 tests in total –Test customer must be “canaried” •If any tests fail, we triage and determine if it is still possible to move forward •Testing is only done when we are passing 100%—no exceptions!
  • 51. Sean is mad -we have work to do
  • 52. Sean is happy -so we all arehappy
  • 53. Kafka DynamoDB Redis Amazon RDS Amazon Redshift Amazon Glacier Amazon S3 Data plane Trust, but verify! Sensors Termination server Termination server Termination server Termination server Sensors Active Topic Active Topic Inactive Topic Sensors External service ELB load balancer Service A Service A Processor 1 Service A Service A Processor 2 Service A Service A Processor 3 Service A Service A Processor 4 Content Router Content Router Inactive Topic Service A Service A Processor 1 Service A Service A Processor 2 Service A Service A Processor 3 Service A Service A Processor 4 •Monitor green services •Verify health of the cluster by inspecting graphicaldata and log outputs •Rerun tests with load
  • 55. Logging and errorchecking •Every server forwards its relevant logs to Splunk •Several dashboards have been set up with common things to watch for •Raw logs are streamed in near real-time and we watch specifically for log-level ERROR •This is one of our most important steps, as it gives us the most insight into the health of the system as a whole
  • 57. Moving customers over Termination server Termination server Termination server Termination server Termination server Termination server Termination server Termination server Sensors Sensors Sensors External service ELB load blaancer Kafka DynamoDB Redis Amazon RDS Amazon Redshift Amazon Glacier Amazon S3 Data plane Active topic Active topic Content Router Content Router Service A Service A Processor 1 Service A Service A Processor 2 Service A Service A Processor 3 Service A Service A Processor 4 Service A Service A Processor 1 Service A Service A Processor 2 Service A Service A Processor 3 Service A Service A Processor 4 Content Router Content Router Active topic Active topic •Flip all customers back away from canary •Activate green cluster •Event processors and consuming services in blue and green now write to and consume the “active” topics •We are in a state of active-activefor a few minutes
  • 58. Each node in the data processing layer has a watcher on a particular znode which tells the environment whether it is active (use standard Kafka topics) or inactive (append .inactiveto the topics) Service A Service A Processor 1 Service A Service A Processor 2 Service A Service A Processor 3 Service A Service A Processor 4 Active Topic Kafka Service A Service A Processor 1 Service A Service A Processor 2 Service A Service A Processor 3 Service A Service A Processor 4 Active -active Inactive Topic Ingestion
  • 59. Inactive Topic Active topic When we are ready to make the switch, we start by making the new cluster active and enter into an active-active state where both processing clusters are doing work. Kafka Green, switch to active! Active Topic This is where is it paramount that code is forward compatible since two different code bases will be doing work simultaneously Active -active Service A Service A Processor 1 Service A Service A Processor 2 Service A Service A Processor 3 Service A Service A Processor 4 Service A Service A Processor 1 Service A Service A Processor 2 Service A Service A Processor 3 Service A Service A Processor 4 Ingestion
  • 60. However, blue and green are fully partitioned and there is no intercommunication between the clusters. This allows for things like changes in serialization for inter- service communication. Active Topic Kafka Active Topic Active -active Service A Service A Processor 1 Service A Service A Processor 2 Service A Service A Processor 3 Service A Service A Processor 4 Service A Service A Processor 1 Service A Service A Processor 2 Service A Service A Processor 3 Service A Service A Processor 4 Ingestion
  • 61. Kafka DynamoDB Redis Amazon RDS Amazon Redshift Amazon Glacier Amazon S3 Data plane Flipping the switch Termination server Termination server Termination server Termination server Content Router Content Router Sensors Sensors Sensors External service ELB load balancer Termination server Termination server Termination server Termination server Content Router Content Router Active topic Active topic Service A Service A Processor 1 Service A Service A Processor 2 Service A Service A Processor 3 Service A Service A Processor 4 Service A Service A Processor 1 Service A Service A Processor 2 Service A Service A Processor 3 Service A Service A Processor 4 Inactive topic Active topic •We deactivate Blue, which forces Termination Servers in Blue to fail health checks and all Blue sensors disconnect •Blue processors switch to read from the “inactive” topic •Once all consumers of the “inactive” topic have caught up to thehead of the stream, Blue can be decommissioned
  • 62. Out with the old… Termination server Termination server Termination server Termination server Content Router Content Router Kafka DynamoDB Redis Amazon RDS Amazon Redshift Amazon Glacier Amazon S3 Data plane Active topic Active topic Sensors Sensors Sensors External service ELB load balancer Service A Service A Processor 1 Service A Service A Processor 2 Service A Service A Processor 3 Service A Service A Processor 4 •Green is now the active cluster •If we need to roll back code, we have a snapshot of the repository in Amazon S3 •We haven’t had to roll back code… yet
  • 65. Half-baked AMIs We use a process to create “half-baked” AMIs, which speed up deployments •JVM (for our Scala code base) •Common tools and configurations •Latest updates to make sure patches are up to date •Build plan is run twice daily Green Server Green Server Green Server Green Server Green Server Green server Green Server Green Server Green Server Green Server Green Server Blue server Half-baked-AMI Auto Scaling group 1 AMI Auto Scale Group Amazon S3
  • 67. How code graduates -Development Commit on main Development apt repo Auto deploy changed roles Development cluster
  • 68. How code graduates -Production Create release-X.X.X or hotfix-X.X.X branches Integration apt repo Production apt repo Same exact Binary Integration cluster Integration apt repo Sync specified Packages for integ New production cluster
  • 73. Production is synced from Integ
  • 75. Data plane migrations •Migrations applied to the database are forward only •We have past experiences with two way migrations, but the cost outweigh the benefits. •Code must be forward compatible in case rollbacks are necessary •Database schemas are only modified via migrations even in development and integration environments •We use an in-house migration service(based on flyway) to parallelize the process
  • 76. Final Thoughts •blue-green deployments can be done in many ways •Our requirement of never losing customer data made this the best solution for us •The automation and tooling around our deployment system were built over many months and was a lot of work(built by 2 people –Hi Dennis!) •But it is completely worth it, knowing we have a very reliable, fault-tolerant system