CI/CD: From Zero To Full Build, Test and Deployment Automation - A complete step-by-step walk-through implementing CI/CD for a Microservice with Jenkins, CloudFormation and Lambda
2016 07-21 AdvancedAws Meetup - San Francisco
We’ll start with what CI/CD is all about, but since you probably already know all about this we'll dive right into the interesting part: Watch me implement a simple 2-tier web app and set up both the CI pipeline infrastructure using Jenkins' brand new native pipeline features, and the actual app's immutable infrastructure from scratch via CloudFormation and Lambda. I'll show you some tools, how to organize the infrastructure code and how to set up IAM, VPC and the other resources required for the app. We'll talk about service discovery, settings injection, green/blue deployments and much more. If you enjoyed my presentation in March join this presentation to see some of that and much more in action.
GitHub: https://github.com/fbrnc/cd-demo
CI/CD: From Zero To Full Build, Test and Deployment Automation - A complete step-by-step walk-through implementing CI/CD for a Microservice with Jenkins, CloudFormation and Lambda
8. is a software development practice
where members of a team integrate their work frequently, usually each person
integrates at least daily - leading to multiple integrations per day. Each integration is
verified by an automated build (including test) to detect integration errors as quickly
as possible. Many teams find that this approach leads to significantly reduced
integration problems and allows a team to develop cohesive software more rapidly.”
- Martin Fowler, ThoughtWorks Chief Scientist
is the natural extension of Continuous
Integration: an approach in which teams ensure that every change to the system is
releasable, and that we can release any version at the push of a button. Continuous
Delivery aims to make releases boring, so we can deliver frequently and get fast feedback
on what users care about.” https://www.thoughtworks.com/continuous-delivery
9. is a software development practice
where members of a team integrate their work frequently, usually each person
integrates at least daily - leading to multiple integrations per day. Each integration is
verified by an automated build (including test) to detect integration errors as quickly
as possible. Many teams find that this approach leads to significantly reduced
integration problems and allows a team to develop cohesive software more rapidly.”
- Martin Fowler, ThoughtWorks Chief Scientist
is the natural extension of Continuous
Integration: an approach in which teams ensure that every change to the system is
releasable, and that we can release any version at the push of a button. Continuous
Delivery aims to make releases boring, so we can deliver frequently and get fast feedback
on what users care about.” https://www.thoughtworks.com/continuous-delivery
28. GET /
Get current counter value
PUT /
Increase counter and return increased value
DELETE /
Reset counter to 0
29. (yes, that would be
a perfect use-case
for Lambda
+ API Gateway
+ ElastiCache/DynamoDB…)
Load
Balancer
S3 Bucket
www.example.com
Auto Scaling group
…
MySQL
Database
api.example.com
static html