This document discusses continuous delivery and how AWS can help with implementing it. It defines continuous delivery as automatically deploying all code changes to a testing environment, production environment, or both after tests have passed. The benefits of continuous delivery include automated software releases, improved developer productivity, improved code quality, and lower lead times. AWS services like automation, built-in scalability, partner ecosystem, programmable infrastructure, and pay-as-you-go model can help with implementing continuous delivery practices.
2. Until code is in
production, no value is
actually being generated,
because it’s merely WIP
stuck in the system.
”
Gene Kim, Phoenix Project
3. The Steamhaus devops
maturity model
Plan
Agile planning & management
Develop
App development & build automation
Test
functional/integration testing
Deploy
deployment automation & release
orchestration
Monitor
Infrastructure, APM, analytics
& log management
4. What is continuous delivery?
Continuous Integration
developers regularly merge their code changes into a central
repository, after which automated builds and tests are run.
Continuous Delivery and Deployment
automatically deploying all code changes to a testing environment,
production environment, or both after the tests have passed.
Continuous Delivery Is Not Continuous Deployment
the decision to go live becomes a business decision, not a technical
one. technical validation happens on every commit.
5. What are the Benefits of
continuous delivery?
Automated software releases
code is automatically built, tested, and prepared for release,
ensuring your software delivery is efficient, resilient, rapid, and
secure.
Improved Developer Productivity
developers are freed from manual tasks and untangling complex
dependencies. Allowing them to focus on delivering features.
Improved Code Quality
With the discipline of more testing more frequently, teams can iterate
faster with immediate feedback on the impact of changes.
Lower lead times
440 times faster lead time from commit to deploy,
according to the Puppetlabs state of devops report.
6. Why use AWS for
continuous delivery?
Fully Managed Services
take advantage of AWS
resources quicker and
focus on your core
product.
Automation
Automate processes such as
development & test
workflows and
deployments.
Built for scale
manage a single instance or
scale to thousands with no
additional overheads.
Partner Ecosystem
use Consulting Partners to
help achieve agility by
leveraging the AWS platform
and DevOps principles.
Programmable
model and provision your
entire infrastructure using
declarative orchestration
tooling.
Pay-As-You-Go
purchase services as you
need them and only for the
period when you plan to use
them.
7. With our Site Reliability
Engineering (SRE) service,
we not only become your
complete outsourced
operations partner, but a
genuine extension of your
team.
implementing
Continuous
delivery with
AWS
8. Declarative infrastructure
orchestration your cloud
environments using terraform,
CloudFormation or CDK.
Infrastructure automation
Automated deployments
Use the same deployment process
for every environment, including
production.
Package applications
Build a single package at build-
time. Keep environment-specific
configuration separate.
Role-based access controls
Allow anyone with the necessary
credentials to deploy any version
to any environment.
9. Trunk based development
divides work into small batches
and merge into trunk at least
once (and potentially several
times) a day.
Continuous delivery
Canary deployments
Reduce the risk of deployments by
incrementally making new
features visible to new users and
monitoring impact.
pipelines with code
build and version pipelines in
code and store them alongside
application code.
Shift left on security
Integrate security reviews into
every phase of software delivery,
from design to operations.
10. Software delivery metrics
Track the average time a change
takes to reach production,
number of deploys per day and
Change failure rate.
Monitoring & Logging
automated rollbacks
roll back deployments
automatically using latency and
error rate metrics.
visualised deployments
Overlay deployment events onto
infrastructure monitoring
dashboards to easily visualise
impact.
request behaviour
trace user requests as they
travel through your entire
application.
11. With our Site Reliability
Engineering (SRE) service,
we not only become your
complete outsourced
operations partner, but a
genuine extension of your
team.
Thank you.