© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Harvey Bendaña, Enterprise Solutions Architecture
August 10th, 2017
CI/CD Pipelines for Your Infrastructure…
as Code!
AWS Seattle Meetup
Hi J
What we’ll cover…
What is DevOps?
Infrastructure as Code
CI/CD
Demos J
What is DevOps?
Is it…
• A philosophy? Cultural change? Paradigm shift?
• Alignment of development and IT operations with better communication
and collaboration? Breaking down barriers between development and
IT operations?
• Improvement in software deployment?
• Akin to Agile software development applied to infrastructure and IT
operations?
• …?
Yes…J
Level set…
DevOps is the combination of cultural philosophies,
practices, and tools that increases your organization’s
ability to deliver applications and services at high velocity.
This enables your organization to be more responsive to
the needs of your customers.
Reliability
Benefits of DevOps
Speed
Scale
Rapid DeliveryImproved Collaboration
Security
Infrastructure as Code
Level Set…
Infrastructure as Code is a practice by where traditional
infrastructure management techniques are supplemented
and often replaced by using code based tools and software
development techniques.
AWS CloudFormation
JSON or YAML formatted file
Parameter definition
Resource creation
Configuration actions
Framework
Stack creation
Stack updates
Error detection and rollback
Configured AWS resources
Comprehensive service support
Service event aware
Customizable
Template CloudFormation Stack
This turns into this…
Benefits of IaC with CloudFormation
Templated resource
provisioning
Portable and
reusable
Declarative
and flexible
Easy to use
CI/CD
Level set…
Continuous Integration and Continuous Delivery helps
developers rapidly and reliably release updates for their
applications in a standardized and safe manner. The faster
you can release new features and fix bugs, the quicker you
can innovate and respond to customer needs.
• Integration
tests with
other systems
• Load testing
• UI tests
• Penetration
testing
Release processes have four major phases
Source Build Test Production
• Check-in
source code
such as .java
files.
• Peer review
new code
• Compile code
• Unit tests
• Style checkers
• Code metrics
• Create
container
images
• Deployment
to production
environments
Continuous integration
Continuous delivery
Continuous deployment
AWS Code Services
AWS CodePipeline AWS CodeCommit AWS CodeBuildAWS CodeDeployAWS CodeStar
AWS Code Services
Source Build Test Production
Software Release Steps:
AWS Code Services
Source Build Test Production
Software Release Steps:
AWS CodeCommit
AWS Code Services
Source Build Test Production
Software Release Steps:
AWS CodeBuild
AWS Code Services
Source Build Test Production
Third Party
Tooling
Software Release Steps:
AWS Code Services
Source Build Test Production
Software Release Steps:
AWS CodeDeploy
Source Build Test Production
AWS CodeCommit AWS CodeBuild AWS CodeDeploy
AWS CodePipeline
AWS Code Services
Software Release Steps:
Third Party
Tooling
Source Build Test Production
AWS CodeCommit AWS CodeBuild AWS CodeDeploy
AWS CodePipeline
AWS Code Services
Software Release Steps:
Third Party
Tooling
Use Case: VPC CI/CD Pipeline
lab
system
integration
continuous
integration
staging
production
CloudFormationS3 BucketCodeCommit
CodePipeline
CodeBuild
IAM Service Role
IAM Service Role
IAM Service Role
CloudFormation
Template(s)
Works great…right?
What about…
• Deploying to multiple accounts?
• I’ve hit resource limits in an individual account
• I use AWS Organizations to manage multiple accounts
• Security when deploying to multiple accounts?
• I want to encrypt my data at rest AND in transit
• I want to make sure my artifacts bucket is only accessible
from AWS accounts I own
• ……?
production
staging
system-integration
source
continuous-Integration
lab
Check this out…
AWS Resources
• https://aws.amazon.com/blogs/devops/
• https://aws.amazon.com/cloudformation/
• https://aws.amazon.com/codecommit/
• https://aws.amazon.com/codepipeline/
• https://aws.amazon.com/codebuild/
CloudFormation Linters
• https://github.com/stelligent/cfn_nag
• https://github.com/Versent/cfn-check
• https://github.com/martysweet/cfn-lint
Thank you!
bendanah@amazon.com

CI/CD Pipelines for Your Infrastructure...as Code!

  • 1.
    © 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved. Harvey Bendaña, Enterprise Solutions Architecture August 10th, 2017 CI/CD Pipelines for Your Infrastructure… as Code! AWS Seattle Meetup
  • 2.
  • 4.
    What we’ll cover… Whatis DevOps? Infrastructure as Code CI/CD Demos J
  • 5.
  • 6.
    Is it… • Aphilosophy? Cultural change? Paradigm shift? • Alignment of development and IT operations with better communication and collaboration? Breaking down barriers between development and IT operations? • Improvement in software deployment? • Akin to Agile software development applied to infrastructure and IT operations? • …?
  • 7.
  • 8.
    Level set… DevOps isthe combination of cultural philosophies, practices, and tools that increases your organization’s ability to deliver applications and services at high velocity. This enables your organization to be more responsive to the needs of your customers.
  • 9.
    Reliability Benefits of DevOps Speed Scale RapidDeliveryImproved Collaboration Security
  • 10.
  • 11.
    Level Set… Infrastructure asCode is a practice by where traditional infrastructure management techniques are supplemented and often replaced by using code based tools and software development techniques.
  • 12.
    AWS CloudFormation JSON orYAML formatted file Parameter definition Resource creation Configuration actions Framework Stack creation Stack updates Error detection and rollback Configured AWS resources Comprehensive service support Service event aware Customizable Template CloudFormation Stack
  • 13.
  • 14.
    Benefits of IaCwith CloudFormation Templated resource provisioning Portable and reusable Declarative and flexible Easy to use
  • 15.
  • 16.
    Level set… Continuous Integrationand Continuous Delivery helps developers rapidly and reliably release updates for their applications in a standardized and safe manner. The faster you can release new features and fix bugs, the quicker you can innovate and respond to customer needs.
  • 17.
    • Integration tests with othersystems • Load testing • UI tests • Penetration testing Release processes have four major phases Source Build Test Production • Check-in source code such as .java files. • Peer review new code • Compile code • Unit tests • Style checkers • Code metrics • Create container images • Deployment to production environments Continuous integration Continuous delivery Continuous deployment
  • 18.
    AWS Code Services AWSCodePipeline AWS CodeCommit AWS CodeBuildAWS CodeDeployAWS CodeStar
  • 19.
    AWS Code Services SourceBuild Test Production Software Release Steps:
  • 20.
    AWS Code Services SourceBuild Test Production Software Release Steps: AWS CodeCommit
  • 21.
    AWS Code Services SourceBuild Test Production Software Release Steps: AWS CodeBuild
  • 22.
    AWS Code Services SourceBuild Test Production Third Party Tooling Software Release Steps:
  • 23.
    AWS Code Services SourceBuild Test Production Software Release Steps: AWS CodeDeploy
  • 24.
    Source Build TestProduction AWS CodeCommit AWS CodeBuild AWS CodeDeploy AWS CodePipeline AWS Code Services Software Release Steps: Third Party Tooling
  • 25.
    Source Build TestProduction AWS CodeCommit AWS CodeBuild AWS CodeDeploy AWS CodePipeline AWS Code Services Software Release Steps: Third Party Tooling
  • 26.
    Use Case: VPCCI/CD Pipeline
  • 28.
  • 29.
  • 30.
    What about… • Deployingto multiple accounts? • I’ve hit resource limits in an individual account • I use AWS Organizations to manage multiple accounts • Security when deploying to multiple accounts? • I want to encrypt my data at rest AND in transit • I want to make sure my artifacts bucket is only accessible from AWS accounts I own • ……?
  • 31.
  • 32.
    Check this out… AWSResources • https://aws.amazon.com/blogs/devops/ • https://aws.amazon.com/cloudformation/ • https://aws.amazon.com/codecommit/ • https://aws.amazon.com/codepipeline/ • https://aws.amazon.com/codebuild/ CloudFormation Linters • https://github.com/stelligent/cfn_nag • https://github.com/Versent/cfn-check • https://github.com/martysweet/cfn-lint
  • 33.