SlideShare a Scribd company logo
© 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

More Related Content

What's hot

Apache Kafka Fundamentals for Architects, Admins and Developers
Apache Kafka Fundamentals for Architects, Admins and DevelopersApache Kafka Fundamentals for Architects, Admins and Developers
Apache Kafka Fundamentals for Architects, Admins and Developers
confluent
 
Apache Kafka - Martin Podval
Apache Kafka - Martin PodvalApache Kafka - Martin Podval
Apache Kafka - Martin Podval
Martin Podval
 
Common issues with Apache Kafka® Producer
Common issues with Apache Kafka® ProducerCommon issues with Apache Kafka® Producer
Common issues with Apache Kafka® Producer
confluent
 
MSA ( Microservices Architecture ) 발표 자료 다운로드
MSA ( Microservices Architecture ) 발표 자료 다운로드MSA ( Microservices Architecture ) 발표 자료 다운로드
MSA ( Microservices Architecture ) 발표 자료 다운로드
Opennaru, inc.
 
AWS tutorial-Part54:AWS Route53
AWS tutorial-Part54:AWS Route53AWS tutorial-Part54:AWS Route53
AWS tutorial-Part54:AWS Route53
SaM theCloudGuy
 
Apache Hadoop and Spark on AWS: Getting started with Amazon EMR - Pop-up Loft...
Apache Hadoop and Spark on AWS: Getting started with Amazon EMR - Pop-up Loft...Apache Hadoop and Spark on AWS: Getting started with Amazon EMR - Pop-up Loft...
Apache Hadoop and Spark on AWS: Getting started with Amazon EMR - Pop-up Loft...
Amazon Web Services
 
Getting Started with Serverless Architectures
Getting Started with Serverless ArchitecturesGetting Started with Serverless Architectures
Getting Started with Serverless Architectures
Amazon Web Services
 
A visual introduction to Apache Kafka
A visual introduction to Apache KafkaA visual introduction to Apache Kafka
A visual introduction to Apache Kafka
Paul Brebner
 
Apache Kafka
Apache KafkaApache Kafka
Apache Kafka
Diego Pacheco
 
Aws route 53
Aws route 53Aws route 53
Introduction to AWS Lambda and Serverless Applications
Introduction to AWS Lambda and Serverless ApplicationsIntroduction to AWS Lambda and Serverless Applications
Introduction to AWS Lambda and Serverless Applications
Amazon Web Services
 
The Patterns of Distributed Logging and Containers
The Patterns of Distributed Logging and ContainersThe Patterns of Distributed Logging and Containers
The Patterns of Distributed Logging and Containers
SATOSHI TAGOMORI
 
Stream processing using Kafka
Stream processing using KafkaStream processing using Kafka
Stream processing using Kafka
Knoldus Inc.
 
AWS S3 | Tutorial For Beginners | AWS S3 Bucket Tutorial | AWS Tutorial For B...
AWS S3 | Tutorial For Beginners | AWS S3 Bucket Tutorial | AWS Tutorial For B...AWS S3 | Tutorial For Beginners | AWS S3 Bucket Tutorial | AWS Tutorial For B...
AWS S3 | Tutorial For Beginners | AWS S3 Bucket Tutorial | AWS Tutorial For B...
Simplilearn
 
Deep Dive on AWS Lambda
Deep Dive on AWS LambdaDeep Dive on AWS Lambda
Deep Dive on AWS Lambda
Amazon Web Services
 
Kafka Tutorial - Introduction to Apache Kafka (Part 1)
Kafka Tutorial - Introduction to Apache Kafka (Part 1)Kafka Tutorial - Introduction to Apache Kafka (Part 1)
Kafka Tutorial - Introduction to Apache Kafka (Part 1)
Jean-Paul Azar
 
Apache kafka
Apache kafkaApache kafka
Apache Kafka
Apache KafkaApache Kafka
Apache Kafka
Saroj Panyasrivanit
 
Elastic Stack Introduction
Elastic Stack IntroductionElastic Stack Introduction
Elastic Stack Introduction
Vikram Shinde
 
Kafka Streams: What it is, and how to use it?
Kafka Streams: What it is, and how to use it?Kafka Streams: What it is, and how to use it?
Kafka Streams: What it is, and how to use it?
confluent
 

What's hot (20)

Apache Kafka Fundamentals for Architects, Admins and Developers
Apache Kafka Fundamentals for Architects, Admins and DevelopersApache Kafka Fundamentals for Architects, Admins and Developers
Apache Kafka Fundamentals for Architects, Admins and Developers
 
Apache Kafka - Martin Podval
Apache Kafka - Martin PodvalApache Kafka - Martin Podval
Apache Kafka - Martin Podval
 
Common issues with Apache Kafka® Producer
Common issues with Apache Kafka® ProducerCommon issues with Apache Kafka® Producer
Common issues with Apache Kafka® Producer
 
MSA ( Microservices Architecture ) 발표 자료 다운로드
MSA ( Microservices Architecture ) 발표 자료 다운로드MSA ( Microservices Architecture ) 발표 자료 다운로드
MSA ( Microservices Architecture ) 발표 자료 다운로드
 
AWS tutorial-Part54:AWS Route53
AWS tutorial-Part54:AWS Route53AWS tutorial-Part54:AWS Route53
AWS tutorial-Part54:AWS Route53
 
Apache Hadoop and Spark on AWS: Getting started with Amazon EMR - Pop-up Loft...
Apache Hadoop and Spark on AWS: Getting started with Amazon EMR - Pop-up Loft...Apache Hadoop and Spark on AWS: Getting started with Amazon EMR - Pop-up Loft...
Apache Hadoop and Spark on AWS: Getting started with Amazon EMR - Pop-up Loft...
 
Getting Started with Serverless Architectures
Getting Started with Serverless ArchitecturesGetting Started with Serverless Architectures
Getting Started with Serverless Architectures
 
A visual introduction to Apache Kafka
A visual introduction to Apache KafkaA visual introduction to Apache Kafka
A visual introduction to Apache Kafka
 
Apache Kafka
Apache KafkaApache Kafka
Apache Kafka
 
Aws route 53
Aws route 53Aws route 53
Aws route 53
 
Introduction to AWS Lambda and Serverless Applications
Introduction to AWS Lambda and Serverless ApplicationsIntroduction to AWS Lambda and Serverless Applications
Introduction to AWS Lambda and Serverless Applications
 
The Patterns of Distributed Logging and Containers
The Patterns of Distributed Logging and ContainersThe Patterns of Distributed Logging and Containers
The Patterns of Distributed Logging and Containers
 
Stream processing using Kafka
Stream processing using KafkaStream processing using Kafka
Stream processing using Kafka
 
AWS S3 | Tutorial For Beginners | AWS S3 Bucket Tutorial | AWS Tutorial For B...
AWS S3 | Tutorial For Beginners | AWS S3 Bucket Tutorial | AWS Tutorial For B...AWS S3 | Tutorial For Beginners | AWS S3 Bucket Tutorial | AWS Tutorial For B...
AWS S3 | Tutorial For Beginners | AWS S3 Bucket Tutorial | AWS Tutorial For B...
 
Deep Dive on AWS Lambda
Deep Dive on AWS LambdaDeep Dive on AWS Lambda
Deep Dive on AWS Lambda
 
Kafka Tutorial - Introduction to Apache Kafka (Part 1)
Kafka Tutorial - Introduction to Apache Kafka (Part 1)Kafka Tutorial - Introduction to Apache Kafka (Part 1)
Kafka Tutorial - Introduction to Apache Kafka (Part 1)
 
Apache kafka
Apache kafkaApache kafka
Apache kafka
 
Apache Kafka
Apache KafkaApache Kafka
Apache Kafka
 
Elastic Stack Introduction
Elastic Stack IntroductionElastic Stack Introduction
Elastic Stack Introduction
 
Kafka Streams: What it is, and how to use it?
Kafka Streams: What it is, and how to use it?Kafka Streams: What it is, and how to use it?
Kafka Streams: What it is, and how to use it?
 

Similar to (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 Delivery
XebiaLabs
 
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 DevOps
Eklove Mohan
 
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
Bert Jan Schrijver
 
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
 
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
Bert 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 Police
Bert 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 Police
Bert 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 Police
Bert Jan Schrijver
 
Agile infrastructure
Agile infrastructureAgile infrastructure
Agile infrastructure
Tarun 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_monolith
Markus 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-2015
Pavel 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 Cloud
Intuit Inc.
 
DevOps and AWS
DevOps and AWSDevOps and AWS
DevOps and AWS
Shiva Narayanaswamy
 

Similar to (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
 
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
 
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...
 
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
 

More from 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 Fargate
Amazon Web Services
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
Amazon 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
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
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 Workloads
Amazon Web Services
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
Amazon 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 sfatare
Amazon 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 NodeJS
Amazon 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 web
Amazon 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 sfatare
Amazon 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 Service
Amazon Web Services
 

More from 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
 

Recently uploaded

GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 

Recently uploaded (20)

GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 

(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