CI/CD Pipeline -
AWS & Azure
By
R a t a n D a s
r a t a n _ d a s @ d i a l o g . c o m . a u
1 0 A M , 2 2 F e b r u a r y 2 0 1 9
Agenda
• Introduction: CI , CD , Continuous
Delivery Pipeline
• Different Stages of Pipeline
• CICD Pipeline and DevOps
• DevOps Lifecycle
• CI/CD Pipeline-AWS
• CI/CD Pipeline-Azure
• Periodic Table Of DevOps Tools
• Examples of CICD in Real Projects
• Demo
Continuous Integration, Delivery and Deployment
• Continuous Integration: It focuses on blending the software work products of individual
developers together into a repository. This can be done several times a day, with the primary
purpose being to enable early detection of integration bugs while also allowing for tighter
cohesion and more development collaboration.
• Continuous Delivery: This is to minimize the friction points that are inherent in the deployment
or release processes. Typically, a team's implementation involves automating each of the steps
for build deployments so that a safe code release can be done at any moment in time.
• Continuous Deployment: It is a higher degree of automation, in which a build/deployment
occurs automatically whenever a major change is made to the code.
Difference :Continuous Integration, Delivery and Deployment
Continuous Integration is a part of both Continuous Delivery and Continuous Deployment. And
Continuous Deployment is like Continuous Delivery, except that releases happen automatically.
The Continuous Delivery Pipeline
Continuous Delivery Pipeline is what enables the continuous delivery to flow
constantly via an automated software delivery process which are divided into stages
or phases. Each stage is aimed at verifying the quality of new features from a
different angle to validate the new functionality and prevent errors from affecting
end users. The pipeline also provide feedback to the team and visibility into the
flow of changes to everyone involved in delivering the new feature/s.
CI/CD Pipeline Phases
CICD Pipeline and DevOps
DevOps Lifecycle
CI/CD Pipeline -AWS
CI/CD Pipeline -AWS
CI/CD Pipeline –AWS Example
CI/CD Pipeline -Azure
CI/CD Pipeline –Azure Example
Data Source Ingest Store Prep& Train
Model &
Service
Publish -
Intelligence
Structured
Data Factory
Data Factory
Azure Storage
Azure
Databricks
Azure SQL Data
Warehouse
Power BI-
Analytical
Dashboards
Business/Custom Apps
Unstructured
polybase
Batch
Analytics
Or
Azure
Analysis
Services
Azure Data Factory Orchestrates pipeline
CI/CD Pipeline –Azure Data Factory
Azure DevOps Git
or GitHub
Working Branches
(Dev Branches)
Collaboration
Branch (master
Branch)
Publish Branch
(adf_publish
Branch)
Pull
Requests
Release Management
Release Definition
Release
Create
Release
(Manual
Or CD )
Azure
ADF Dev
ADF Test
ADF Prod
ADF UAT
ADF Pre-Prod
Publish
Created and Updated by ADF
Pulled as RM Artefact
DeployasRMEnvironment
CI & CD Principles
 Automate everything: build, test and deployment
 Keep everything in a source code management system (use GitHub)
 Keep absolutely everything in a source code management system
 Use a CI tool that integrates tightly with your source code repository
 Commit your code to the repository frequently
 Don’t commit directly to a delivery branch; use a feature branch and PR workflow
 Don’t ignore failing CI tests even on feature branches
 Don’t merge broken code to a delivery branch; it must pass the CI system first
 Deploy the same way to every environment
 No-downtime deployments; stateless frontend, load balancer and sequential
deployment
 Automated feedback on the entire process
 Use a container technology (Docker) if possible as makes deployment simple
 If the process is painful, you’re doing it wrong
Examples of CI/CD in Real Projects
Now a day’s almost every organization is pushing their solution using CICD pipeline.
Usually, its as easy as finding some colorful badges linked at the top of a Github README.
For example:
https://github.com/facebook/react
AWS:
https://www.youtube.com/watch?v=jJ4WgX2aOcs
Azure:
https://www.youtube.com/watch?v=jRgLSMlp28U
https://www.youtube.com/watch?v=NuYDAs3kNV8
Demo
What Next?
For DevOps Engineers
Now that you hopefully have a better idea of what CICD actually is and
how it is woven into the way modern software is built, you can take those
considerations into mind when working on your next project. Lets put your
focus on learning following standard DevOps tools:
• Jenkins
• Chef
• Terraform
• Cloudformation
• Ansible
• Azure DevOps
• Docker, Swarm
• Kubernetes
• AWS CodePipeline, CodeBuild, CodeDeploy, Codestar, Lambda
• AWS EC2 Container Services(ECS), AWS Elastic Beanstalk
• Microservices,
• Google app engine
• Google Container Engine
What Next?
For Customers
References
• https://dzone.com/articles/learn-how-to-setup-a-cicd-pipeline-from-
scratch
• https://aws.amazon.com/getting-started/projects/set-up-ci-cd-pipeline/
• https://xebialabs.com/periodic-table-of-devops-tools/
• https://xebialabs.com/the-ultimate-devops-tool-chest/
• https://aws.amazon.com/getting-started/tutorials/continuous-
deployment-pipeline/
• https://medium.com/@tomershaiman/building-a-ci-cd-pipeline-on-
azure-kubernetes-service-aks-part-1-5d2b3a7968ca
• http://microservices.today/CI-CD-Solution-with-AWS/
Questions?
Thank you

CICD Pipeline - AWS Azure

  • 1.
    CI/CD Pipeline - AWS& Azure By R a t a n D a s r a t a n _ d a s @ d i a l o g . c o m . a u 1 0 A M , 2 2 F e b r u a r y 2 0 1 9
  • 2.
    Agenda • Introduction: CI, CD , Continuous Delivery Pipeline • Different Stages of Pipeline • CICD Pipeline and DevOps • DevOps Lifecycle • CI/CD Pipeline-AWS • CI/CD Pipeline-Azure • Periodic Table Of DevOps Tools • Examples of CICD in Real Projects • Demo
  • 3.
    Continuous Integration, Deliveryand Deployment • Continuous Integration: It focuses on blending the software work products of individual developers together into a repository. This can be done several times a day, with the primary purpose being to enable early detection of integration bugs while also allowing for tighter cohesion and more development collaboration. • Continuous Delivery: This is to minimize the friction points that are inherent in the deployment or release processes. Typically, a team's implementation involves automating each of the steps for build deployments so that a safe code release can be done at any moment in time. • Continuous Deployment: It is a higher degree of automation, in which a build/deployment occurs automatically whenever a major change is made to the code.
  • 4.
    Difference :Continuous Integration,Delivery and Deployment Continuous Integration is a part of both Continuous Delivery and Continuous Deployment. And Continuous Deployment is like Continuous Delivery, except that releases happen automatically.
  • 5.
    The Continuous DeliveryPipeline Continuous Delivery Pipeline is what enables the continuous delivery to flow constantly via an automated software delivery process which are divided into stages or phases. Each stage is aimed at verifying the quality of new features from a different angle to validate the new functionality and prevent errors from affecting end users. The pipeline also provide feedback to the team and visibility into the flow of changes to everyone involved in delivering the new feature/s.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
    CI/CD Pipeline –AzureExample Data Source Ingest Store Prep& Train Model & Service Publish - Intelligence Structured Data Factory Data Factory Azure Storage Azure Databricks Azure SQL Data Warehouse Power BI- Analytical Dashboards Business/Custom Apps Unstructured polybase Batch Analytics Or Azure Analysis Services Azure Data Factory Orchestrates pipeline
  • 14.
    CI/CD Pipeline –AzureData Factory Azure DevOps Git or GitHub Working Branches (Dev Branches) Collaboration Branch (master Branch) Publish Branch (adf_publish Branch) Pull Requests Release Management Release Definition Release Create Release (Manual Or CD ) Azure ADF Dev ADF Test ADF Prod ADF UAT ADF Pre-Prod Publish Created and Updated by ADF Pulled as RM Artefact DeployasRMEnvironment
  • 16.
    CI & CDPrinciples  Automate everything: build, test and deployment  Keep everything in a source code management system (use GitHub)  Keep absolutely everything in a source code management system  Use a CI tool that integrates tightly with your source code repository  Commit your code to the repository frequently  Don’t commit directly to a delivery branch; use a feature branch and PR workflow  Don’t ignore failing CI tests even on feature branches  Don’t merge broken code to a delivery branch; it must pass the CI system first  Deploy the same way to every environment  No-downtime deployments; stateless frontend, load balancer and sequential deployment  Automated feedback on the entire process  Use a container technology (Docker) if possible as makes deployment simple  If the process is painful, you’re doing it wrong
  • 17.
    Examples of CI/CDin Real Projects Now a day’s almost every organization is pushing their solution using CICD pipeline. Usually, its as easy as finding some colorful badges linked at the top of a Github README. For example: https://github.com/facebook/react AWS: https://www.youtube.com/watch?v=jJ4WgX2aOcs Azure: https://www.youtube.com/watch?v=jRgLSMlp28U https://www.youtube.com/watch?v=NuYDAs3kNV8 Demo
  • 18.
    What Next? For DevOpsEngineers Now that you hopefully have a better idea of what CICD actually is and how it is woven into the way modern software is built, you can take those considerations into mind when working on your next project. Lets put your focus on learning following standard DevOps tools: • Jenkins • Chef • Terraform • Cloudformation • Ansible • Azure DevOps • Docker, Swarm • Kubernetes • AWS CodePipeline, CodeBuild, CodeDeploy, Codestar, Lambda • AWS EC2 Container Services(ECS), AWS Elastic Beanstalk • Microservices, • Google app engine • Google Container Engine
  • 19.
  • 20.
    References • https://dzone.com/articles/learn-how-to-setup-a-cicd-pipeline-from- scratch • https://aws.amazon.com/getting-started/projects/set-up-ci-cd-pipeline/ •https://xebialabs.com/periodic-table-of-devops-tools/ • https://xebialabs.com/the-ultimate-devops-tool-chest/ • https://aws.amazon.com/getting-started/tutorials/continuous- deployment-pipeline/ • https://medium.com/@tomershaiman/building-a-ci-cd-pipeline-on- azure-kubernetes-service-aks-part-1-5d2b3a7968ca • http://microservices.today/CI-CD-Solution-with-AWS/
  • 21.

Editor's Notes

  • #2 Confidential – Not to be reproduced without permission from Dialog Information Technology