As software teams transition to cloud-based architectures and adopt more agile processes, the tools they need to support their development cycles will change. In this session, we'll take you through the transition that Amazon made to a service-oriented architecture over a decade ago. We will share the lessons we learned, the processes we adopted, and the tools we built to increase both our agility and reliability. We will also introduce you to AWS CodeCommit, AWS CodePipeline, and AWS CodeDeploy, three new services born out of Amazon's internal DevOps.
2. Agenda
• Amazon DevOps Story
• AWS DevOps Technology
• Customer story
• How Trend Micro (FRS team) runs DevOps on AWS
3. What is DevOps?
DevOps = efficiencies that speed up this lifecycle
developers customers
releasetestbuild
plan monitor
delivery pipeline
feedback loop
Software development lifecycle
8. Things went much
better under this
model and teams
were releasing faster
than ever, but we felt
that we could still
improve
9. We were just waiting…..
WaitWrite
Code WaitBuild
Code WaitDeploy
to Test
Deploy
to
Prod
Weeks
Mins Days Mins Days Mins Days Mins
10. We found out that we had a tooling gap –
Missing Tools
developers
delivery pipeline
services
???
So….We decided to built
tools to automate our
software release process
11. Automated actions and
transitions; from check-
in to production
Development benefits:
• Automated release
process
• Faster and safer
• Simplification &
standardization
• Visualization of the
process
Pipelines
15. Setting up a delivery pipeline
Testing Staging Production
deploy
deploy
deploy
Source Build
release
AWS CodeDeploy
AWS CodePipeline
AWS
CodeCommit
16. AWS CodeDeploy
Easy and reliable deployments
Avoid downtime during application deployment
Deploy to any server, including your on-premises servers
Test
CodeDeployv1, v2, v3
Production
Dev
application
revisions
deployment groups
Agent
17. “appspec.yml” (Example)
version: 0.0
os: linux
files:
- source: /
destination: /var/www/html
permissions:
- object: /var/www/html
pattern: “*.html”
owner: root
group: root
mode: 755
hooks:
ApplicationStop:
- location: scripts/deregister_from_elb.sh
BeforeInstall:
- location: scripts/install_dependencies.sh
ApplicationStart:
- location: scripts/start_httpd.sh
ValidateService:
- location: scripts/test_site.sh
- location: scripts/register_with_elb.sh
• Remove/add instance to ELB
• Install dependency packages
• Start Apache
• Confirm successful deploy
• More!
• Send application files to one
directory and configuration
files to another
• Set specific permissions on
specific directories & files
18. v2 v2 v2 v2 v2 v2
one at a time
half at a time
all at once
v2 v2 v2 v1 v1 v1
v2 v1 v1 v1 v1 v1 Agent Agent
Dev Deployment group
OR
Prod Deployment group
Agent
AgentAgent
Agent Agent
Agent
Choose Deployment Speed and Group
19. Continuous delivery service for fast and
reliable application updates
Model and visualize your software release
process
Builds, tests, and deploys your code every time
there is a code change
Integrates with 3rd party tools and AWS
AWS CodePipeline
21. AWS CodeCommit
Use standard Git tools
Scalability, availability, and durability of Amazon S3
Encryption at rest with customer-specific keys
git pull/push CodeCommit
Git objects in
Amazon S3
Git index in
Amazon
DynamoDB
Encryption key
in AWS KMS
SSH or HTTPS
22. We have a strong partner list, and it’s growing
Source Build Test Deploy
25. Infrastructure as Code
Create templates of your infrastructure
CloudFormation provisions AWS resources
based on dependency needs
Version control/replicate/update templates like
code
Integrates with development, CI/CD,
management tools
AWS
CloudFormation
26. Sample Integration in CI/CD Pipelines
AWS
CloudFormation
App Developers
AWS CodePipeline
Dev
Staging
Prod
Infrastructure of Code
template
Story
AWS CodeCommit
Source Control
AWS CodeDeploy
App Source
Code
27. AWS OpsWorks
• Configuration Management with Chef
• Easy to start with built-in recipes
• Model, manage, automate scalable and complex
infrastructure
• Deploy quickly, frequently, and safety by OpsWorks Life
Cycle Event
28. AWS OpsWorks Application Configuration
Management
New or
Stopped
Requested
or Booting
Setup Configure
Online
Configure
Terminating or
Shutting Down
setup
configure
configure
deploy
shutdown
undeploy