SlideShare a Scribd company logo
1 of 20
Download to read offline
Continuous Integration &
Delivery Example
1
https://oncoscape.sttrcancer.org
Robert McDermott
rmcdermo@fredhutch.org
Center IT
“Continuous Integration is a software development practice where members of a
team integrate their work frequently; usually each person integrates at least daily –
leading to multiple integrations per day.” --Martin Fowler
“Continuous Delivery is a software development discipline where you build
software in such a way that the software can be released to production at any
time” --Martin Fowler
Continuous Deployment is a third term that’s sometimes confused with Continuous
Delivery. Where Continuous Delivery provides a process to create frequent releases
but not necessarily deploy them, Continuous Deployment means that every change
you make automatically gets deployed through the deployment pipeline.
Continuous Integration, Delivery and Deployment
2
Oncoscape
 Project Overview: Oncoscape is a web application that hosts an integrated suite
of analysis tools for users to explore hypotheses related to molecular and clinical
data in order to better understand cancer biology and treatment options
o Technology stack: JavaScript, R, Angular.js, Node.js, Docker, AWS
o Team: 4 internal developers, 1 part time IT engineer and external developers
 Source Code Management
o GitHub: https://github.com/FredHutch/Oncoscape
o Public repository for external collaboration
 Development Workflow
o Two long running branches “master” and “develop” with a transient number of
feature branches
o Using “GitHub Flow”
o Internal workflow:
 Create a feature branch off of the develop branch
 Commit changes to the feature branch
 Create a “pull request” (PR) targeting the development branch
 Merge PR after it passes CI tests and team review
 Delete feature branch after integration is complete 3
Oncoscape Continuous Integration and Delivery
 Development Workflow (continued)
o External workflow:
 Create a fork of the Oncoscape repository
 Create a feature branch
 Commit changes to the feature branch
 Create a “pull request” (PR ) targeting the development branch
 Merge PR after it passes CI tests and team review
 Delete feature branch after integration is complete
 Continuous Integration
o Using CircleCI: https://circleci.com/
o CircleCI integrated with GitHub via Webhooks
o Any commits, merges or pull requests trigger the CI pipeline
o Oncoscape is automatically built, run and tested on CircleCI
o Merges to Master and Develop branches create and register deployable containers
o Passing CI tests on Master and Develop branches trigger deployment
4
Oncoscape Continuous Integration and Delivery
 Continuous Deployment
o Circle CI triggers deployment services defined in Docker Cloud service
o Docker Cloud service pulls new container image from registry and deploys it to AWS
o The deployment is sequential so only one application server is updated at a time
 Event Notification
o Slack pushes notifications to smart phones
o STTR team notified of every CI event (pass or fail)
o Notifications of service redeployments
o Notifications of service health / recovery status
5
Oncoscape Integration and Deployment Workflow
 All work (commits) happens on feature branches off of the “develop” branch
 Every pushed commit is tested via the CI system
 Feature branches are merged to the “develop” branch via PR workflow
 The “develop” branch is merged to “master” branch via PR workflow
6
CI and SCM Integration
 Pull request status while CI testing is in progress:
 Pull request status after CI testing is complete; ready to merge without fear
7
Oncoscape Integration and Delivery Pipeline
 Fully Automated
 Commits/merges to any branch trigger build and testing
 Commits/merges to Develop or Master branches trigger deployment
8
Oncoscape Integration and Delivery Pipeline
 Fully Automated
 Commits/merges to any branch trigger build and testing
 Commits/merges to Develop or Master branches trigger deployment
9
Oncoscape Integration and Delivery Pipeline
Source Code Management
 Git
 GitHub
10
Oncoscape Integration and Delivery Pipeline
CI Tool
 CircleCI: https://circleci.com/
 Triggered via GitHub webhooks
 Clones repository
 Builds app inside a container
 Runs container
 Connects to Oncoscape application
 Tests Oncoscape application
 Notifies team via Slack of the results
PASS? Master or Develop?
 Push container image to registry
 Trigger deployment
 Notify team via Slack of the status
11
Oncoscape Integration and Delivery Pipeline
Image Registry
 Docker Hub: https://hub.docker.com/
 CircleCI pushes working images to registry
 Images publically available at:
https://hub.docker.com/r/fredhutch/oncoscape/
12
Oncoscape Integration and Delivery Pipeline
Deployment Service
 Docker Cloud: https://cloud.docker.com
 CircleCI triggers deployment via webhook
 Master image deployed to prod env
 Develop image deployed to dev env
 Sequential deployment
 Monitors containers
 Automatically restarts containers if they fail
 Reports events to team via Slack
Docker
Cloud
13
Oncoscape Integration and Delivery Pipeline
Server Environments
 Prod and Dev environments are identical
 Amazon AWS region located in Oregon
 2 Servers per environment; scale out
 Load balancers for load balancing and HA
 Servers running Ubuntu Linux 14.04
 Containers running under Docker Engine
 Containers monitored, deployed, re-
deployed, recovered by Docker Cloud service
14
Oncoscape Integration and Delivery Pipeline
Event Reporting
 Slack: https://slack.com/
 Status/results of CI runs
 Status/results of deployments
 Container health/recovery events
15
CI Build, Test and Deployment Metrics
16
Live Demo
17
 Single environment
 Single branch
 Continuous deployment
1 2
5
3 7
4
8
6Git GitHub
CircleCI
Slack
Docker Hub
Docker Cloud
Amazon AWS
Continuous Integration Tool Options
Solution Site SCM Support
Travis CI https://travis-ci.org GitHub
Circle CI https://circleci.com GitHub
CodeShip https://codeship.com GitHub, Bitbucket
Drone.io https://drone.io GitHub, Bitbucket
Shippable https://app.shippable.com GitHub, Bitbucket
Appveyor http://www.appveyor.com GitHub, Bitbucket, VSTS (visual studio online)
Distelli https://www.distelli.com GitHub, Bitbucket
Jenkins https://jenkins.io/ SVN, GitHub, Bitbucket, CVS, Perforce, TFS, …
Jenkins
18
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 (webhooks) 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
19
20
Thank You!
To learn more about Oncoscape:
 Home page: http://www.sttrcancer.org/en/biotools/oncoscape.html
 Code repository: https://github.com/FredHutch/Oncoscape
 Application: https://oncoscape.sttrcancer.org

More Related Content

What's hot

How to implement DevOps in your Organization
How to implement DevOps in your OrganizationHow to implement DevOps in your Organization
How to implement DevOps in your OrganizationDalibor Blazevic
 
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...Simplilearn
 
DevOps on AWS - Building Systems to Deliver Faster
DevOps on AWS - Building Systems to Deliver FasterDevOps on AWS - Building Systems to Deliver Faster
DevOps on AWS - Building Systems to Deliver FasterAmazon Web Services
 
Build CICD Pipeline for Container Presentation Slides
Build CICD Pipeline for Container Presentation SlidesBuild CICD Pipeline for Container Presentation Slides
Build CICD Pipeline for Container Presentation SlidesAmazon Web Services
 
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar SeriesGetting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar SeriesAmazon Web Services
 
Using Azure DevOps to continuously build, test, and deploy containerized appl...
Using Azure DevOps to continuously build, test, and deploy containerized appl...Using Azure DevOps to continuously build, test, and deploy containerized appl...
Using Azure DevOps to continuously build, test, and deploy containerized appl...Adrian Todorov
 
DevOps 101 - an Introduction to DevOps
DevOps 101  - an Introduction to DevOpsDevOps 101  - an Introduction to DevOps
DevOps 101 - an Introduction to DevOpsRed Gate Software
 
CI and CD with Jenkins
CI and CD with JenkinsCI and CD with Jenkins
CI and CD with JenkinsMartin Málek
 
Modern CI/CD Pipeline Using Azure DevOps
Modern CI/CD Pipeline Using Azure DevOpsModern CI/CD Pipeline Using Azure DevOps
Modern CI/CD Pipeline Using Azure DevOpsGlobalLogic Ukraine
 
Azure DevOps Best Practices Webinar
Azure DevOps Best Practices WebinarAzure DevOps Best Practices Webinar
Azure DevOps Best Practices WebinarCambay Digital
 
CI/CD Overview
CI/CD OverviewCI/CD Overview
CI/CD OverviewAn Nguyen
 

What's hot (20)

Azure DevOps
Azure DevOpsAzure DevOps
Azure DevOps
 
Azure DevOps - Azure Guatemala Meetup
Azure DevOps - Azure Guatemala MeetupAzure DevOps - Azure Guatemala Meetup
Azure DevOps - Azure Guatemala Meetup
 
DevOps and Tools
DevOps and ToolsDevOps and Tools
DevOps and Tools
 
How to implement DevOps in your Organization
How to implement DevOps in your OrganizationHow to implement DevOps in your Organization
How to implement DevOps in your Organization
 
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
 
DevOps on AWS - Building Systems to Deliver Faster
DevOps on AWS - Building Systems to Deliver FasterDevOps on AWS - Building Systems to Deliver Faster
DevOps on AWS - Building Systems to Deliver Faster
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
 
DevOps Culture at Amazon
DevOps Culture at AmazonDevOps Culture at Amazon
DevOps Culture at Amazon
 
Build CICD Pipeline for Container Presentation Slides
Build CICD Pipeline for Container Presentation SlidesBuild CICD Pipeline for Container Presentation Slides
Build CICD Pipeline for Container Presentation Slides
 
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar SeriesGetting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
 
Introduction to devops
Introduction to devopsIntroduction to devops
Introduction to devops
 
Using Azure DevOps to continuously build, test, and deploy containerized appl...
Using Azure DevOps to continuously build, test, and deploy containerized appl...Using Azure DevOps to continuously build, test, and deploy containerized appl...
Using Azure DevOps to continuously build, test, and deploy containerized appl...
 
DevOps 101 - an Introduction to DevOps
DevOps 101  - an Introduction to DevOpsDevOps 101  - an Introduction to DevOps
DevOps 101 - an Introduction to DevOps
 
Azure DevOps
Azure DevOpsAzure DevOps
Azure DevOps
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
CI and CD with Jenkins
CI and CD with JenkinsCI and CD with Jenkins
CI and CD with Jenkins
 
Modern CI/CD Pipeline Using Azure DevOps
Modern CI/CD Pipeline Using Azure DevOpsModern CI/CD Pipeline Using Azure DevOps
Modern CI/CD Pipeline Using Azure DevOps
 
Azure DevOps Best Practices Webinar
Azure DevOps Best Practices WebinarAzure DevOps Best Practices Webinar
Azure DevOps Best Practices Webinar
 
CI/CD Overview
CI/CD OverviewCI/CD Overview
CI/CD Overview
 

Viewers also liked

Yale Jenkins Show and Tell
Yale Jenkins Show and TellYale Jenkins Show and Tell
Yale Jenkins Show and TellE. Camden Fisher
 
Build and use a DevOps driven Migration Pipeline
Build and use a DevOps driven Migration PipelineBuild and use a DevOps driven Migration Pipeline
Build and use a DevOps driven Migration PipelineVedanta Barooah
 
Continuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous DeploymentContinuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous DeploymentChristopher Read
 
Commonwealth Bank of Australia's Private Cloud Implementation
Commonwealth Bank of Australia's Private Cloud ImplementationCommonwealth Bank of Australia's Private Cloud Implementation
Commonwealth Bank of Australia's Private Cloud ImplementationVishal Sharma
 
IBM 클라우드플랫폼 DM 2017
IBM 클라우드플랫폼 DM 2017IBM 클라우드플랫폼 DM 2017
IBM 클라우드플랫폼 DM 2017HyunHwa Myoung
 
The Path to Open Banking
The Path to Open BankingThe Path to Open Banking
The Path to Open BankingMuleSoft
 

Viewers also liked (6)

Yale Jenkins Show and Tell
Yale Jenkins Show and TellYale Jenkins Show and Tell
Yale Jenkins Show and Tell
 
Build and use a DevOps driven Migration Pipeline
Build and use a DevOps driven Migration PipelineBuild and use a DevOps driven Migration Pipeline
Build and use a DevOps driven Migration Pipeline
 
Continuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous DeploymentContinuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous Deployment
 
Commonwealth Bank of Australia's Private Cloud Implementation
Commonwealth Bank of Australia's Private Cloud ImplementationCommonwealth Bank of Australia's Private Cloud Implementation
Commonwealth Bank of Australia's Private Cloud Implementation
 
IBM 클라우드플랫폼 DM 2017
IBM 클라우드플랫폼 DM 2017IBM 클라우드플랫폼 DM 2017
IBM 클라우드플랫폼 DM 2017
 
The Path to Open Banking
The Path to Open BankingThe Path to Open Banking
The Path to Open Banking
 

Similar to Anatomy of a Continuous Integration and Delivery (CICD) Pipeline

Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...eleksdev
 
Presentation 1 open source tools in continuous integration environment v1.0
Presentation 1   open source tools in continuous integration environment v1.0Presentation 1   open source tools in continuous integration environment v1.0
Presentation 1 open source tools in continuous integration environment v1.0Jasmine Conseil
 
Cloud continuous integration- A distributed approach using distinct services
Cloud continuous integration- A distributed approach using distinct servicesCloud continuous integration- A distributed approach using distinct services
Cloud continuous integration- A distributed approach using distinct servicesAndré Agostinho
 
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with ConcourseContinuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with ConcourseVMware Tanzu
 
Continous integration and delivery for single page applications
Continous integration and delivery for single page applicationsContinous integration and delivery for single page applications
Continous integration and delivery for single page applicationsSunil Dalal
 
CICD Pipeline - AWS Azure
CICD Pipeline - AWS AzureCICD Pipeline - AWS Azure
CICD Pipeline - AWS AzureRatan Das
 
CNCF: Cross-cloud CI v1.0.0 Dashboard Release 2018-01-26
CNCF: Cross-cloud CI v1.0.0 Dashboard Release 2018-01-26CNCF: Cross-cloud CI v1.0.0 Dashboard Release 2018-01-26
CNCF: Cross-cloud CI v1.0.0 Dashboard Release 2018-01-26Vulk Coop
 
DevOps Days Boston 2017: Developer first workflows for Kubernetes
DevOps Days Boston 2017: Developer first workflows for KubernetesDevOps Days Boston 2017: Developer first workflows for Kubernetes
DevOps Days Boston 2017: Developer first workflows for KubernetesAmbassador Labs
 
CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018Krishna-Kumar
 
CI and CD with Spinnaker
CI and CD with SpinnakerCI and CD with Spinnaker
CI and CD with SpinnakerVMware Tanzu
 
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkitThe DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkitMarco Ferrigno
 
The DevOps Paradigm
The DevOps ParadigmThe DevOps Paradigm
The DevOps ParadigmNaLUG
 
Spring boot microservice metrics monitoring
Spring boot   microservice metrics monitoringSpring boot   microservice metrics monitoring
Spring boot microservice metrics monitoringOracle Korea
 
Spring Boot - Microservice Metrics Monitoring
Spring Boot - Microservice Metrics MonitoringSpring Boot - Microservice Metrics Monitoring
Spring Boot - Microservice Metrics MonitoringDonghuKIM2
 
JCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxJCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxGrace Jansen
 
Part 2 improving your software development v1.0
Part 2   improving your software development v1.0Part 2   improving your software development v1.0
Part 2 improving your software development v1.0Jasmine Conseil
 
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...Ajeet Singh Raina
 

Similar to Anatomy of a Continuous Integration and Delivery (CICD) Pipeline (20)

Azure DevOps in Action
Azure DevOps in ActionAzure DevOps in Action
Azure DevOps in Action
 
DevOps & DevEx
DevOps & DevExDevOps & DevEx
DevOps & DevEx
 
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
 
Presentation 1 open source tools in continuous integration environment v1.0
Presentation 1   open source tools in continuous integration environment v1.0Presentation 1   open source tools in continuous integration environment v1.0
Presentation 1 open source tools in continuous integration environment v1.0
 
Cloud continuous integration- A distributed approach using distinct services
Cloud continuous integration- A distributed approach using distinct servicesCloud continuous integration- A distributed approach using distinct services
Cloud continuous integration- A distributed approach using distinct services
 
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with ConcourseContinuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
 
Continous integration and delivery for single page applications
Continous integration and delivery for single page applicationsContinous integration and delivery for single page applications
Continous integration and delivery for single page applications
 
CICD Pipeline - AWS Azure
CICD Pipeline - AWS AzureCICD Pipeline - AWS Azure
CICD Pipeline - AWS Azure
 
CNCF: Cross-cloud CI v1.0.0 Dashboard Release 2018-01-26
CNCF: Cross-cloud CI v1.0.0 Dashboard Release 2018-01-26CNCF: Cross-cloud CI v1.0.0 Dashboard Release 2018-01-26
CNCF: Cross-cloud CI v1.0.0 Dashboard Release 2018-01-26
 
DevOps Days Boston 2017: Developer first workflows for Kubernetes
DevOps Days Boston 2017: Developer first workflows for KubernetesDevOps Days Boston 2017: Developer first workflows for Kubernetes
DevOps Days Boston 2017: Developer first workflows for Kubernetes
 
CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018
 
CI and CD with Spinnaker
CI and CD with SpinnakerCI and CD with Spinnaker
CI and CD with Spinnaker
 
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkitThe DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
 
The DevOps Paradigm
The DevOps ParadigmThe DevOps Paradigm
The DevOps Paradigm
 
Spring boot microservice metrics monitoring
Spring boot   microservice metrics monitoringSpring boot   microservice metrics monitoring
Spring boot microservice metrics monitoring
 
Spring Boot - Microservice Metrics Monitoring
Spring Boot - Microservice Metrics MonitoringSpring Boot - Microservice Metrics Monitoring
Spring Boot - Microservice Metrics Monitoring
 
JCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxJCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptx
 
Part 2 improving your software development v1.0
Part 2   improving your software development v1.0Part 2   improving your software development v1.0
Part 2 improving your software development v1.0
 
Tour of Azure DevOps
Tour of Azure DevOpsTour of Azure DevOps
Tour of Azure DevOps
 
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...
 

Recently uploaded

一比一原版(UNK毕业证)内布拉斯加州立大学科尼分校毕业证成绩单
一比一原版(UNK毕业证)内布拉斯加州立大学科尼分校毕业证成绩单一比一原版(UNK毕业证)内布拉斯加州立大学科尼分校毕业证成绩单
一比一原版(UNK毕业证)内布拉斯加州立大学科尼分校毕业证成绩单tuuww
 
NO1 Pandit Black Magic Removal in Uk kala jadu Specialist kala jadu for Love ...
NO1 Pandit Black Magic Removal in Uk kala jadu Specialist kala jadu for Love ...NO1 Pandit Black Magic Removal in Uk kala jadu Specialist kala jadu for Love ...
NO1 Pandit Black Magic Removal in Uk kala jadu Specialist kala jadu for Love ...Amil baba
 
Lect 2 - Design of slender column-2.pptx
Lect 2 - Design of slender column-2.pptxLect 2 - Design of slender column-2.pptx
Lect 2 - Design of slender column-2.pptxHamzaKhawar4
 
Paint shop management system project report.pdf
Paint shop management system project report.pdfPaint shop management system project report.pdf
Paint shop management system project report.pdfKamal Acharya
 
Low rpm Generator for efficient energy harnessing from a two stage wind turbine
Low rpm Generator for efficient energy harnessing from a two stage wind turbineLow rpm Generator for efficient energy harnessing from a two stage wind turbine
Low rpm Generator for efficient energy harnessing from a two stage wind turbineAftabkhan575376
 
The battle for RAG, explore the pros and cons of using KnowledgeGraphs and Ve...
The battle for RAG, explore the pros and cons of using KnowledgeGraphs and Ve...The battle for RAG, explore the pros and cons of using KnowledgeGraphs and Ve...
The battle for RAG, explore the pros and cons of using KnowledgeGraphs and Ve...Roi Lipman
 
Introduction to Machine Learning Unit-4 Notes for II-II Mechanical Engineering
Introduction to Machine Learning Unit-4 Notes for II-II Mechanical EngineeringIntroduction to Machine Learning Unit-4 Notes for II-II Mechanical Engineering
Introduction to Machine Learning Unit-4 Notes for II-II Mechanical EngineeringC Sai Kiran
 
A CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdf
A CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdfA CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdf
A CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdfKamal Acharya
 
RM&IPR M5 notes.pdfResearch Methodolgy & Intellectual Property Rights Series 5
RM&IPR M5 notes.pdfResearch Methodolgy & Intellectual Property Rights Series 5RM&IPR M5 notes.pdfResearch Methodolgy & Intellectual Property Rights Series 5
RM&IPR M5 notes.pdfResearch Methodolgy & Intellectual Property Rights Series 5T.D. Shashikala
 
BRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWING
BRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWINGBRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWING
BRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWINGKOUSTAV SARKAR
 
School management system project report.pdf
School management system project report.pdfSchool management system project report.pdf
School management system project report.pdfKamal Acharya
 
KIT-601 Lecture Notes-UNIT-3.pdf Mining Data Stream
KIT-601 Lecture Notes-UNIT-3.pdf Mining Data StreamKIT-601 Lecture Notes-UNIT-3.pdf Mining Data Stream
KIT-601 Lecture Notes-UNIT-3.pdf Mining Data StreamDr. Radhey Shyam
 
Teachers record management system project report..pdf
Teachers record management system project report..pdfTeachers record management system project report..pdf
Teachers record management system project report..pdfKamal Acharya
 
ENCODERS & DECODERS - Digital Electronics - diu swe
ENCODERS & DECODERS - Digital Electronics - diu sweENCODERS & DECODERS - Digital Electronics - diu swe
ENCODERS & DECODERS - Digital Electronics - diu sweMohammadAliNayeem
 
Planetary Gears of automatic transmission of vehicle
Planetary Gears of automatic transmission of vehiclePlanetary Gears of automatic transmission of vehicle
Planetary Gears of automatic transmission of vehicleahmedmostafa941217
 
Research Methodolgy & Intellectual Property Rights Series 2
Research Methodolgy & Intellectual Property Rights Series 2Research Methodolgy & Intellectual Property Rights Series 2
Research Methodolgy & Intellectual Property Rights Series 2T.D. Shashikala
 
Natalia Rutkowska - BIM School Course in Kraków
Natalia Rutkowska - BIM School Course in KrakówNatalia Rutkowska - BIM School Course in Kraków
Natalia Rutkowska - BIM School Course in Krakówbim.edu.pl
 
Attraction and Repulsion type Moving Iron Instruments.pptx
Attraction and Repulsion type Moving Iron Instruments.pptxAttraction and Repulsion type Moving Iron Instruments.pptx
Attraction and Repulsion type Moving Iron Instruments.pptxkarthikeyanS725446
 
Online resume builder management system project report.pdf
Online resume builder management system project report.pdfOnline resume builder management system project report.pdf
Online resume builder management system project report.pdfKamal Acharya
 
KIT-601 Lecture Notes-UNIT-5.pdf Frame Works and Visualization
KIT-601 Lecture Notes-UNIT-5.pdf Frame Works and VisualizationKIT-601 Lecture Notes-UNIT-5.pdf Frame Works and Visualization
KIT-601 Lecture Notes-UNIT-5.pdf Frame Works and VisualizationDr. Radhey Shyam
 

Recently uploaded (20)

一比一原版(UNK毕业证)内布拉斯加州立大学科尼分校毕业证成绩单
一比一原版(UNK毕业证)内布拉斯加州立大学科尼分校毕业证成绩单一比一原版(UNK毕业证)内布拉斯加州立大学科尼分校毕业证成绩单
一比一原版(UNK毕业证)内布拉斯加州立大学科尼分校毕业证成绩单
 
NO1 Pandit Black Magic Removal in Uk kala jadu Specialist kala jadu for Love ...
NO1 Pandit Black Magic Removal in Uk kala jadu Specialist kala jadu for Love ...NO1 Pandit Black Magic Removal in Uk kala jadu Specialist kala jadu for Love ...
NO1 Pandit Black Magic Removal in Uk kala jadu Specialist kala jadu for Love ...
 
Lect 2 - Design of slender column-2.pptx
Lect 2 - Design of slender column-2.pptxLect 2 - Design of slender column-2.pptx
Lect 2 - Design of slender column-2.pptx
 
Paint shop management system project report.pdf
Paint shop management system project report.pdfPaint shop management system project report.pdf
Paint shop management system project report.pdf
 
Low rpm Generator for efficient energy harnessing from a two stage wind turbine
Low rpm Generator for efficient energy harnessing from a two stage wind turbineLow rpm Generator for efficient energy harnessing from a two stage wind turbine
Low rpm Generator for efficient energy harnessing from a two stage wind turbine
 
The battle for RAG, explore the pros and cons of using KnowledgeGraphs and Ve...
The battle for RAG, explore the pros and cons of using KnowledgeGraphs and Ve...The battle for RAG, explore the pros and cons of using KnowledgeGraphs and Ve...
The battle for RAG, explore the pros and cons of using KnowledgeGraphs and Ve...
 
Introduction to Machine Learning Unit-4 Notes for II-II Mechanical Engineering
Introduction to Machine Learning Unit-4 Notes for II-II Mechanical EngineeringIntroduction to Machine Learning Unit-4 Notes for II-II Mechanical Engineering
Introduction to Machine Learning Unit-4 Notes for II-II Mechanical Engineering
 
A CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdf
A CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdfA CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdf
A CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdf
 
RM&IPR M5 notes.pdfResearch Methodolgy & Intellectual Property Rights Series 5
RM&IPR M5 notes.pdfResearch Methodolgy & Intellectual Property Rights Series 5RM&IPR M5 notes.pdfResearch Methodolgy & Intellectual Property Rights Series 5
RM&IPR M5 notes.pdfResearch Methodolgy & Intellectual Property Rights Series 5
 
BRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWING
BRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWINGBRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWING
BRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWING
 
School management system project report.pdf
School management system project report.pdfSchool management system project report.pdf
School management system project report.pdf
 
KIT-601 Lecture Notes-UNIT-3.pdf Mining Data Stream
KIT-601 Lecture Notes-UNIT-3.pdf Mining Data StreamKIT-601 Lecture Notes-UNIT-3.pdf Mining Data Stream
KIT-601 Lecture Notes-UNIT-3.pdf Mining Data Stream
 
Teachers record management system project report..pdf
Teachers record management system project report..pdfTeachers record management system project report..pdf
Teachers record management system project report..pdf
 
ENCODERS & DECODERS - Digital Electronics - diu swe
ENCODERS & DECODERS - Digital Electronics - diu sweENCODERS & DECODERS - Digital Electronics - diu swe
ENCODERS & DECODERS - Digital Electronics - diu swe
 
Planetary Gears of automatic transmission of vehicle
Planetary Gears of automatic transmission of vehiclePlanetary Gears of automatic transmission of vehicle
Planetary Gears of automatic transmission of vehicle
 
Research Methodolgy & Intellectual Property Rights Series 2
Research Methodolgy & Intellectual Property Rights Series 2Research Methodolgy & Intellectual Property Rights Series 2
Research Methodolgy & Intellectual Property Rights Series 2
 
Natalia Rutkowska - BIM School Course in Kraków
Natalia Rutkowska - BIM School Course in KrakówNatalia Rutkowska - BIM School Course in Kraków
Natalia Rutkowska - BIM School Course in Kraków
 
Attraction and Repulsion type Moving Iron Instruments.pptx
Attraction and Repulsion type Moving Iron Instruments.pptxAttraction and Repulsion type Moving Iron Instruments.pptx
Attraction and Repulsion type Moving Iron Instruments.pptx
 
Online resume builder management system project report.pdf
Online resume builder management system project report.pdfOnline resume builder management system project report.pdf
Online resume builder management system project report.pdf
 
KIT-601 Lecture Notes-UNIT-5.pdf Frame Works and Visualization
KIT-601 Lecture Notes-UNIT-5.pdf Frame Works and VisualizationKIT-601 Lecture Notes-UNIT-5.pdf Frame Works and Visualization
KIT-601 Lecture Notes-UNIT-5.pdf Frame Works and Visualization
 

Anatomy of a Continuous Integration and Delivery (CICD) Pipeline

  • 1. Continuous Integration & Delivery Example 1 https://oncoscape.sttrcancer.org Robert McDermott rmcdermo@fredhutch.org Center IT
  • 2. “Continuous Integration is a software development practice where members of a team integrate their work frequently; usually each person integrates at least daily – leading to multiple integrations per day.” --Martin Fowler “Continuous Delivery is a software development discipline where you build software in such a way that the software can be released to production at any time” --Martin Fowler Continuous Deployment is a third term that’s sometimes confused with Continuous Delivery. Where Continuous Delivery provides a process to create frequent releases but not necessarily deploy them, Continuous Deployment means that every change you make automatically gets deployed through the deployment pipeline. Continuous Integration, Delivery and Deployment 2
  • 3. Oncoscape  Project Overview: Oncoscape is a web application that hosts an integrated suite of analysis tools for users to explore hypotheses related to molecular and clinical data in order to better understand cancer biology and treatment options o Technology stack: JavaScript, R, Angular.js, Node.js, Docker, AWS o Team: 4 internal developers, 1 part time IT engineer and external developers  Source Code Management o GitHub: https://github.com/FredHutch/Oncoscape o Public repository for external collaboration  Development Workflow o Two long running branches “master” and “develop” with a transient number of feature branches o Using “GitHub Flow” o Internal workflow:  Create a feature branch off of the develop branch  Commit changes to the feature branch  Create a “pull request” (PR) targeting the development branch  Merge PR after it passes CI tests and team review  Delete feature branch after integration is complete 3
  • 4. Oncoscape Continuous Integration and Delivery  Development Workflow (continued) o External workflow:  Create a fork of the Oncoscape repository  Create a feature branch  Commit changes to the feature branch  Create a “pull request” (PR ) targeting the development branch  Merge PR after it passes CI tests and team review  Delete feature branch after integration is complete  Continuous Integration o Using CircleCI: https://circleci.com/ o CircleCI integrated with GitHub via Webhooks o Any commits, merges or pull requests trigger the CI pipeline o Oncoscape is automatically built, run and tested on CircleCI o Merges to Master and Develop branches create and register deployable containers o Passing CI tests on Master and Develop branches trigger deployment 4
  • 5. Oncoscape Continuous Integration and Delivery  Continuous Deployment o Circle CI triggers deployment services defined in Docker Cloud service o Docker Cloud service pulls new container image from registry and deploys it to AWS o The deployment is sequential so only one application server is updated at a time  Event Notification o Slack pushes notifications to smart phones o STTR team notified of every CI event (pass or fail) o Notifications of service redeployments o Notifications of service health / recovery status 5
  • 6. Oncoscape Integration and Deployment Workflow  All work (commits) happens on feature branches off of the “develop” branch  Every pushed commit is tested via the CI system  Feature branches are merged to the “develop” branch via PR workflow  The “develop” branch is merged to “master” branch via PR workflow 6
  • 7. CI and SCM Integration  Pull request status while CI testing is in progress:  Pull request status after CI testing is complete; ready to merge without fear 7
  • 8. Oncoscape Integration and Delivery Pipeline  Fully Automated  Commits/merges to any branch trigger build and testing  Commits/merges to Develop or Master branches trigger deployment 8
  • 9. Oncoscape Integration and Delivery Pipeline  Fully Automated  Commits/merges to any branch trigger build and testing  Commits/merges to Develop or Master branches trigger deployment 9
  • 10. Oncoscape Integration and Delivery Pipeline Source Code Management  Git  GitHub 10
  • 11. Oncoscape Integration and Delivery Pipeline CI Tool  CircleCI: https://circleci.com/  Triggered via GitHub webhooks  Clones repository  Builds app inside a container  Runs container  Connects to Oncoscape application  Tests Oncoscape application  Notifies team via Slack of the results PASS? Master or Develop?  Push container image to registry  Trigger deployment  Notify team via Slack of the status 11
  • 12. Oncoscape Integration and Delivery Pipeline Image Registry  Docker Hub: https://hub.docker.com/  CircleCI pushes working images to registry  Images publically available at: https://hub.docker.com/r/fredhutch/oncoscape/ 12
  • 13. Oncoscape Integration and Delivery Pipeline Deployment Service  Docker Cloud: https://cloud.docker.com  CircleCI triggers deployment via webhook  Master image deployed to prod env  Develop image deployed to dev env  Sequential deployment  Monitors containers  Automatically restarts containers if they fail  Reports events to team via Slack Docker Cloud 13
  • 14. Oncoscape Integration and Delivery Pipeline Server Environments  Prod and Dev environments are identical  Amazon AWS region located in Oregon  2 Servers per environment; scale out  Load balancers for load balancing and HA  Servers running Ubuntu Linux 14.04  Containers running under Docker Engine  Containers monitored, deployed, re- deployed, recovered by Docker Cloud service 14
  • 15. Oncoscape Integration and Delivery Pipeline Event Reporting  Slack: https://slack.com/  Status/results of CI runs  Status/results of deployments  Container health/recovery events 15
  • 16. CI Build, Test and Deployment Metrics 16
  • 17. Live Demo 17  Single environment  Single branch  Continuous deployment 1 2 5 3 7 4 8 6Git GitHub CircleCI Slack Docker Hub Docker Cloud Amazon AWS
  • 18. Continuous Integration Tool Options Solution Site SCM Support Travis CI https://travis-ci.org GitHub Circle CI https://circleci.com GitHub CodeShip https://codeship.com GitHub, Bitbucket Drone.io https://drone.io GitHub, Bitbucket Shippable https://app.shippable.com GitHub, Bitbucket Appveyor http://www.appveyor.com GitHub, Bitbucket, VSTS (visual studio online) Distelli https://www.distelli.com GitHub, Bitbucket Jenkins https://jenkins.io/ SVN, GitHub, Bitbucket, CVS, Perforce, TFS, … Jenkins 18
  • 19. 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 (webhooks) 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 19
  • 20. 20 Thank You! To learn more about Oncoscape:  Home page: http://www.sttrcancer.org/en/biotools/oncoscape.html  Code repository: https://github.com/FredHutch/Oncoscape  Application: https://oncoscape.sttrcancer.org