SlideShare a Scribd company logo
28Ahmed Samir
DevOps on
Agenda
DevOps Overview
Why AWS ?
Deployment Strategies
Developer Tools
Demo
DevOps Overview
DevOps Overview
DevOps is :
Culture philosophies + Practices + Tools
Help Organizations to deliver apps and services in high velocity
Faster Product Improvements
Development + Operations = DevOps
Andon Line
https://www.youtube.com/watch?v=r_-Pw49ecEU
DevOps Goal
A Continuous Delivery Model with this characteristics
Secure
Reliable
Repeatable
Resilient
Stable
DevOps Benefits
A Continuous Delivery
Model with this
characteristics
Speed
Rapid Delivery
Reliability
Scale
Improved Collaboration
Security
DevOps Culture
Remove barrier between Dev. and Ops
Work together to increase Dev. Productivity and Ops Reliability
Why?
Why AWS for DevOps?
AWS provides a set of flexible services designed to enable companies to more rapidly and
reliably build and deliver products using AWS and DevOps practices. These services
simplify provisioning and managing infrastructure, deploying application code, automating
software release processes, and monitoring your application and infrastructure
performance.
• Get Started Faster
• Fully Managed Services
• Built for Scale
• Programmable
• Pay-As-You-Go
• Secure
• Automation
AWS Tool chain
Component of DevOps Practices
CI > Continuous Integration
Code Build Test
Continuous integration is a DevOps software development practice where developers regularly
merge their code changes into a central repository, after which automated builds and tests are
run.
• Use Code Repos
• Test and Commit Frequently
• Automate AWS CodeCommit to trigger build phase
CD > Continuous Delivery
Provision Deploy Monitor
Code changes are automatically prepared for a release to production.
deploying all code changes to a testing environment and/or a production environment after the build stage.
developers will always have a deployment-ready build artifact that has passed through a standardized test process.
CD > Continuous Delivery
Automate build and test
Push code to non production environment
Deploy it to production (automatic or with manual approval)
CI-CD
Continuous Monitoring & Improvement
Infrastructure as Code
CI/CD Tools on AWS
Scan me!
AWS CLI
• AWS Command Line Interface (CLI) is a unified tool to manage AWS Services
• Control multiple AWS services and automate them through script
• We can use it in :
o Linux Shell like common shell programs on linux,unix and macOS
o Windows Command Line like PowerShell
o Remotely like PuTTy/SSH
AWS CLI
Command Core Structure
$ aws <service> <operation>
Example
$ aws ec2 describe-instances
AWS CLI Configure
AWS CLI Command Samples
aws s3 ls
aws s3 mb s3://bucket-name
aws s3 rb s3://bucket-name
aws s3 cp file.txt s3://my-bucket/
aws iam create-group --group-name MyIamGroup
aws iam create-user --user-name MyUser
Deployment Strategies
Deployment Strategies
In-Place
Rolling
Rolling Updates Benefits over In-Place
Blue / Green
Blue / Green
Blue / Green Benefits
Red / Black
Immutable (Disposable) Upgrade
Cost Considerations
How many instances do you need to replace?
How many times per day are you deploying changes?
Cost of Blue/Green is fairly low
Cost of Red/Black and immutable are expensive
Cost can be minimized if you will use In-Place upgrade
Developer Tools for CI/CD
Developer Tools
AWS Cloud9 is a cloud-based integrated development environment (IDE) that
lets you write, run, and debug your code with just a browser.
It includes a code editor, debugger, and terminal
AWS Cloud9
• CODE WITH JUST A BROWSER
• Collaborative Editing and Chat
• BUILD SERVERLESS APPLICATIONS WITH EASE
• DIRECT TERMINAL ACCESS TO AWS
• START NEW PROJECTS QUICKLY
• Continuous Delivery Toolchain
• File Revision History
• Supports over 40 programming languages, including Node.js (JavaScript),
Python, PHP, Ruby, Go, and C++
• recent versions of Google Chrome, Safari, Firefox, and Microsoft Edge
There is no additional charge for AWS Cloud9. you pay only for the compute and storage resources (i.e., an EC2
instance, an EBS volume) that are used to run and store your code
is a highly scalable, managed source control service that hosts
private Git repositories.
AWS CodeCommit
• No Repo size limit (up to 1,000 repositories)
• Supports pull requests (no limits upon request)
• Repos are automatically encrypted through AWS KMS
• Data redundancy across Availability Zones
• Data at rest Encryption
• Fully Integrated with IAM (Identity & Access Management)
• Notifications and Custom Scripts
AWS CodeBuild
• Build and test your code
• Preconfigured build environments
• Customize build environments
• Continuous integration and delivery workflows
• Security and permissions
• Monitoring
• Configurable settings
Is a service that compiles source code, runs tests, and produces software packages
that are ready to deploy. With CodeBuild, you don’t need to provision,
manage, and scale your own build servers
AWS CodeDeploy is a service that automates application deployments to
a variety of compute services including Amazon EC2, AWS Fargate,
AWS Lambda, and on-premises instances.
AWS CodeDeploy
• Support Multiple strategies such as in-plac,blue/green..
• Reduces Deployment Time
• Automate Application Deployment between (dev,test,production)
Environments
• Support File Handling to deal with conflict of existing files
• Option to Stop/Rollback if any error
• Restrict and Control Access to Deployment via IAM
• Integrate with monitoring tools like Amazon Cloudwatch for health
check
• Supports local testing and debugging
• Tool chain integration
is a Continuous Delivery service that helps you automate your release pipelines
for fast and reliable application and infrastructure updates. CodePipeline automates
the build, test, and deploy phases of your release process every time there is a
code change, based on the release model you define
AWS CodePipeline
• Workflow modeling
• AWS integrations
• Pre-built plugins
• Custom plugins
• Declarative templates
• Access control
Quickly develop, build, and deploy
applications on AWS.
Provides a unified user interface, enabling
you to easily manage your software
development activities in one place.
With AWS CodeStar, you can set up your
entire continuous delivery toolchain in
minutes, allowing you to start releasing
code faster.
AWS CodeStar makes it easy for your
whole team to work together securely,
allowing you to easily manage access and
add owners, contributors, and viewers to
your projects.
AWS CodeStar
• Project templates
• Team access management
• Hosted Git repository
• Fully managed build service
• Automated continuous delivery pipeline
• Automated deployments
• IDE integrations
• Central project dashboard
Scan me!
Demo
Devops on AWS
See You Next Meetup
AWS Riyadh User Group

More Related Content

Devops on AWS

  • 2. Agenda DevOps Overview Why AWS ? Deployment Strategies Developer Tools Demo
  • 4. DevOps Overview DevOps is : Culture philosophies + Practices + Tools Help Organizations to deliver apps and services in high velocity Faster Product Improvements
  • 7. DevOps Goal A Continuous Delivery Model with this characteristics Secure Reliable Repeatable Resilient Stable
  • 8. DevOps Benefits A Continuous Delivery Model with this characteristics Speed Rapid Delivery Reliability Scale Improved Collaboration Security
  • 9. DevOps Culture Remove barrier between Dev. and Ops Work together to increase Dev. Productivity and Ops Reliability
  • 10. Why?
  • 11. Why AWS for DevOps? AWS provides a set of flexible services designed to enable companies to more rapidly and reliably build and deliver products using AWS and DevOps practices. These services simplify provisioning and managing infrastructure, deploying application code, automating software release processes, and monitoring your application and infrastructure performance. • Get Started Faster • Fully Managed Services • Built for Scale • Programmable • Pay-As-You-Go • Secure • Automation
  • 13. Component of DevOps Practices
  • 14. CI > Continuous Integration Code Build Test Continuous integration is a DevOps software development practice where developers regularly merge their code changes into a central repository, after which automated builds and tests are run. • Use Code Repos • Test and Commit Frequently • Automate AWS CodeCommit to trigger build phase
  • 15. CD > Continuous Delivery Provision Deploy Monitor Code changes are automatically prepared for a release to production. deploying all code changes to a testing environment and/or a production environment after the build stage. developers will always have a deployment-ready build artifact that has passed through a standardized test process.
  • 16. CD > Continuous Delivery Automate build and test Push code to non production environment Deploy it to production (automatic or with manual approval)
  • 17. CI-CD
  • 18. Continuous Monitoring & Improvement
  • 22. AWS CLI • AWS Command Line Interface (CLI) is a unified tool to manage AWS Services • Control multiple AWS services and automate them through script • We can use it in : o Linux Shell like common shell programs on linux,unix and macOS o Windows Command Line like PowerShell o Remotely like PuTTy/SSH
  • 23. AWS CLI Command Core Structure $ aws <service> <operation> Example $ aws ec2 describe-instances
  • 25. AWS CLI Command Samples aws s3 ls aws s3 mb s3://bucket-name aws s3 rb s3://bucket-name aws s3 cp file.txt s3://my-bucket/ aws iam create-group --group-name MyIamGroup aws iam create-user --user-name MyUser
  • 30. Rolling Updates Benefits over In-Place
  • 33. Blue / Green Benefits
  • 36. Cost Considerations How many instances do you need to replace? How many times per day are you deploying changes? Cost of Blue/Green is fairly low Cost of Red/Black and immutable are expensive Cost can be minimized if you will use In-Place upgrade
  • 39. AWS Cloud9 is a cloud-based integrated development environment (IDE) that lets you write, run, and debug your code with just a browser. It includes a code editor, debugger, and terminal AWS Cloud9 • CODE WITH JUST A BROWSER • Collaborative Editing and Chat • BUILD SERVERLESS APPLICATIONS WITH EASE • DIRECT TERMINAL ACCESS TO AWS • START NEW PROJECTS QUICKLY • Continuous Delivery Toolchain • File Revision History • Supports over 40 programming languages, including Node.js (JavaScript), Python, PHP, Ruby, Go, and C++ • recent versions of Google Chrome, Safari, Firefox, and Microsoft Edge There is no additional charge for AWS Cloud9. you pay only for the compute and storage resources (i.e., an EC2 instance, an EBS volume) that are used to run and store your code
  • 40. is a highly scalable, managed source control service that hosts private Git repositories. AWS CodeCommit • No Repo size limit (up to 1,000 repositories) • Supports pull requests (no limits upon request) • Repos are automatically encrypted through AWS KMS • Data redundancy across Availability Zones • Data at rest Encryption • Fully Integrated with IAM (Identity & Access Management) • Notifications and Custom Scripts
  • 41. AWS CodeBuild • Build and test your code • Preconfigured build environments • Customize build environments • Continuous integration and delivery workflows • Security and permissions • Monitoring • Configurable settings Is a service that compiles source code, runs tests, and produces software packages that are ready to deploy. With CodeBuild, you don’t need to provision, manage, and scale your own build servers
  • 42. AWS CodeDeploy is a service that automates application deployments to a variety of compute services including Amazon EC2, AWS Fargate, AWS Lambda, and on-premises instances. AWS CodeDeploy • Support Multiple strategies such as in-plac,blue/green.. • Reduces Deployment Time • Automate Application Deployment between (dev,test,production) Environments • Support File Handling to deal with conflict of existing files • Option to Stop/Rollback if any error • Restrict and Control Access to Deployment via IAM • Integrate with monitoring tools like Amazon Cloudwatch for health check • Supports local testing and debugging • Tool chain integration
  • 43. is a Continuous Delivery service that helps you automate your release pipelines for fast and reliable application and infrastructure updates. CodePipeline automates the build, test, and deploy phases of your release process every time there is a code change, based on the release model you define AWS CodePipeline • Workflow modeling • AWS integrations • Pre-built plugins • Custom plugins • Declarative templates • Access control
  • 44. Quickly develop, build, and deploy applications on AWS. Provides a unified user interface, enabling you to easily manage your software development activities in one place. With AWS CodeStar, you can set up your entire continuous delivery toolchain in minutes, allowing you to start releasing code faster. AWS CodeStar makes it easy for your whole team to work together securely, allowing you to easily manage access and add owners, contributors, and viewers to your projects. AWS CodeStar • Project templates • Team access management • Hosted Git repository • Fully managed build service • Automated continuous delivery pipeline • Automated deployments • IDE integrations • Central project dashboard
  • 46. Demo
  • 48. See You Next Meetup AWS Riyadh User Group

Editor's Notes

  1. You can safely remove this slide. This slide design was provided by SlideModel.com – You can download more templates, shapes and elements for PowerPoint from http://slidemodel.com