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 experience.
2. What is DevOps?
DevOps = efficiencies that speed up this lifecycle
developers customers
releasetestbuild
plan monitor
delivery pipeline
feedback loop
Software development lifecycle
7. Things went much
better under this
model and teams
were releasing faster
than ever, but we felt
that we could still
improve
8. We were just waiting…..
WaitWrite
Code WaitBuild
Code WaitDeploy
to Test
Deploy
to Prod
Weeks
Mins Days Mins Days Mins Days Mins
9. We found out that we had a tooling gap:
Missing tools
developers
delivery pipeline
services
???
So….We built tools to
automate our software
release process
10. Automated actions and
transitions; from check-
in to production
Development benefits:
• Automated release
process
• Faster and Safer
• Simplification &
standardization
• Visualization of the
process
Pipelines
14. Setting up a delivery pipeline
Testing Staging Production
deploy
deploy
deploy
Source Build
release
AWS CodeDeploy
AWS CodePipeline
AWS
CodeCommit
15. 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. 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
18. 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
20. 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
21. 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
27. Extensible – AWS Lambda Custom Resources
for cross-stack reference
Cross-stack reference: VPC
ID
Cross-stack reference:
Security Group
Cross-stack reference:
Subnet ID
Look up AMI ID
Utility function – e.g., string
reversal, VPC peering
request
IaC Template
28. Summary: Integration in CI/CD Pipelines
AWS
CloudFormation
App Developers
AWS CodePipeline
Dev
Staging
Prod
Infrastructure of Code
template
Story
AWS CodeCommit
Source Control
Code Updates
AWS CodeDeploy
App Source
Code
29. 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
31. OpsWorks Application Configuration Management
New or
Stopped
Requested
or Booting Setup Configure
Online
Configure
Terminating or
Shutting Down
setup
configure
configure
deploy
shutdown
undeploy
34. FRS team Challenges
Dev
Ops
• Gaps between Dev and Ops
• Developers
• Mostly concerned about faster
feature delivery time
• Operations
• Mostly concerned about system
stability and impact from changes
• The left hand doesn’t know what
the right hand is doing
• Slow hardware acquisition
• Difficult capacity planning
41. What do we maintain now — Templates
Template
Network
Infra.Admin
VPC
Subnets
IGW
Routing Table
Rout
VPN
Shared S3
IAM
Security Group
Engineers
ELB
Application
EC2
DynamoDB
OpsWorks
App Deployment
AutoScaling
Recipe
Template
42. Trend Micro’s DevOps Lessons Learned
• CloudFormation
• Use CloudFormation to manage all of your resources if
possible (Not all AWS resources supported yet)
• Difficult dynamic referencing between stacks
• Parameterize as much as possible
• Keep an eye on your limits
• Opsworks
• Need to be familiar with Chef
• Limited built-in Windows support
• Limited auto-scaling support
43. Wait! one more… The last KEY Takeaway…
• Leverage the tools that fit your CI/CD practices
• Keep innovating and evolving on cloud
• Microservices, Serverless, Blue-Green deployment,…
Next Time, Your Story is here!!