Join me here :
Mohamed BOUCHENAFA
DevOps - AWS Lead Consultant
Join me here :
DEVOPS : Build youR CI/CD USING
AWS Code* SERVICES
-
DEVOPS & CI/CD
-
CODE SERVICES
-
Control your code
-
Build your BUILDS
-
DEPLOY YOUR APPS
-
MANAGE YOUR CI/CD WORKFLOW
-
DEVOPS FIGURES
Deploy more often
46x
Source: Puppet 2017 State of DevOps Report
440x
Faster changes
Recover
96x faster
Failures changes 5x lower
-21%
less time spent on unplanned work and rework
+44%
more time for new features
Is DEVOPS IMPORTANT ?
Software LiFECYCLE
DevOps = more efficient lifecycle
Developers
Customers
Delivery Pipeline
Feeback Loop
AWS DEVOPS TOOLS
CodeCommit
CodeBuild
CodeDeploy
CodePipeline
CodeStar
CloudFormation
OpsWork
XRay
CloudWatch
CloudTrail
Config
CI/CD
Infrastructure as Code
Logging/Monitoring
CI/CD
CodeCommit
CodeBuild
CodeDeploy
CodePipeline
CodeStar
CI/CD
Secure
Fully Managed
High availability
Store
anything
Source control in the Cloud
- Use standard Git tools
- Secure, scalable, and managed Git source control
- Encryption at rest with customer-specific keys
- No repo size limit
- Post commit hooks to call out to Amazon SNS or Lambda
- $1 per active user per month (first five users free)
AWS CodeCommit
AWS CODECOMMIT
git push
HTTPS or SSH
CodeCommit
Git objects is S3
Git index in DynamoDB
Enkryption keys in KMS
AWS CODEBUILD
- Fully managed service to build apps
-
Scales continuously and processes multiple builds concurrently
- Customization via Docker images
- Pay by the minute for the compute resources you use
- AWS CodePipeline and Jenkins integration
How does it work
Get source
Execute spec steps
Streams output
Store
Artefact
BUILDSPEC.YML
version: 0.1
environment_variables: plaintext:
JAVA_HOME: "/usr/lib/jvm/java-8-openjdk-amd64"
phases:
install:
commands:
- apt-get update -y
- apt-get install -y maven
pre_build:
commands:
- echo Nothing to do in the pre_build phase...
build:
commands:
- echo Build started on `date`
- mvn install
post_build:
commands:
- echo Build completed on `date`
artifacts:
type: zip
files:
- target/messageUtil-1.0.jar discard-paths: yes
AWS CODEBUILD - DETAILS
Source
Runtime
Compute type
OS
3 GB memory, 2 vCPU
7 GB memory, 4 vCPU
15 GB memory, 8 vCPU
AWS CODEDEPLOY
- Automates your apps deployments to any instance
- Handles the complexity of updating your applications
- Avoid downtime during application deployment
- Rollback automatically if failure detected
- Deploy to Amazon EC2 or on-premises servers, in any language and on any operating system
- Integrates with third-party tools and AWS
- Free for EC2 - $0.02 per update to on-premises server
AppSPEC.YML
version: 0.0
os: linux
files:
- source: /target/SampleMavenTomcatApp.war
destination: /tmp/codedeploy-deployment-staging-area/
- source: /scripts/configure_http_port.xsl
destination: /tmp/codedeploy-deployment-staging-area/
hooks:
ApplicationStop:
- location: scripts/stop_application
timeout: 300
BeforeInstall:
- location: scripts/install_dependencies
timeout: 300
ApplicationStart:
- location: scripts/write_codedeploy_config.sh
- location: scripts/start_application
timeout: 300
ValidateService:
- location: scripts/basic_health_check.sh
WORKFlOW - AppSPEC.YML
TARGETS
Group instances by:
- AutoScaling group
- EC2 tag
- On-premises tag
Deploy STRATEGIES
One-at-a-Time
Half-at-a-Time
All-at-Once
or Custom
In Place
or Blue/Green
AWS CodePIPELINE
- Continuous delivery service for fast and reliable application updates
- Model and visualize your software release process
- Trigger any action on your code every time there is a code change
- Integrates with third-party tools and AWS
- $1 per active pipeline per month (first one free)
AWS CODEPIPELINE
Stage
Pipeline
Action
Transition
AWS CODEPIPELINE
Parallel actions
AWS CODEPIPELINE
Sequential actions
AWS CODEPIPELINE
Manual Approval
AWS CODEPIPELINE - Actions
Source
Build
Deploy
Test
Approval
Invoke
AWS CODESTAR
-
A wide variety of project templates
- Quickly setup your CI / CD toolchain on AWS
-
Start developing on AWS in minutes
-
Work across your team, securely
-
Manage software delivery easily
- Integrated issue tracking and project management
- There is no additional charge for AWS CodeStar
AWS CODESTAR - EXAMPLE
AWS CODESTAR - DETAILS
Application
Languages
AWS services
AWS Config Rule
Web application
Web service
Alexa Skill
Static Website
Code Editor
DEMO #1
- Simple Alexa Skill
- Node JS Lambda
- Code Change
- Automatic CodePipeline Trigger
- CodeBuild
- Deploy with Cloudformation
DEMO #2
- Simple Angular App
- CodeBuild
- Manual Approval CodePipeline
- CodeDeploy
- No install, No updates, No upgrade
- No hardware provisioning
- Compatible with a wide range of tools
Create VALUE
WRAP UP
Spend time on your software, not your
software factory
- Gentle learning curve
- Secure and Scalable
AWSomeDay-AWS Code* Tools
By Mohamed BOUCHENAFA
AWSomeDay-AWS Code* Tools
- 3,032