SlideShare a Scribd company logo
1 of 21
Download to read offline
Default GitLab CI Pipeline
Bhanuka Mahanama
CS 795
Fall 2020
Outline
● Introduction to CI
● GitLab CI
○ Standard GitLab CI
○ Auto DevOps
● Auto DevOps overview
○ Features
○ Stages
● Configuring Auto DevOps
● Showcase App
Continuous Integration
For every change pushed
to the repository,
application is built,
tested, and deployed for
review automatically and
continuously.
Standard GitLab CI
● Configure everything from scratch
○ Define
■ Pipelines
■ Stages
■ Jobs
○ Setup
■ Clusters
■ Environments
■ Policies
● Define scripts to run
● Many configurations to set up
GitLab Auto DevOps
● Autodiscover from source code
● Jobs based on content
○ Language
○ Frameworks
● Automatically create job structures for
○ Build
○ Test
○ Deploy
● Jobs assigned to stages
● Only selection is Pipeline Strategy
○ Select from common strategies
● Minimal configurations
Enabling Auto DevOps
● Self-managed instances
○ Enabled by default
● GitLab.com
○ Settings -> CI/CD
○ Enable
● Delete “.gitlab-ci.yml”
Features
● Auto Build
● Auto Test
● Auto Code Quality
● Auto Static Application Security
Testing
● Auto Secret Detection
● Auto Dependency Scanning*
● Auto License Compliance*
● Auto Container Scanning*
● Auto Review Apps
● Auto Dynamic Application Security
Testing*
● Auto Deploy
● Auto Browser Performance Testing*
● Auto Monitoring
● Auto Code Intelligence
*Only Available on Paid GitLab Plans
Internals of Auto DevOps
● Docker
○ Containerization
● Kubernetes
○ Container orchestration
○ Deployment and management of containers
● Helm
○ Creating build of kubernetes applications
● Gitlab Runner
○ Executing CI Jobs
● Prometheus
○ Systems monitoring and alerting
Auto DevOps: Features
Auto Builds
● Builds a Docker image
● Dockerfile in repository
○ Expose application to
5000
● Language specific files
○ Heroku Buildpacks
detects the language
○ Python ->
requirements.txt
○ Ruby -> Gemfile
Auto Test
● Detects language and framework
● Runs appropriate tests
● Uses
○ Herokuish
○ Heroku buildpacks
● Some automatically detected
languages
○ Ruby
○ Nodejs
○ Python
○ Java
● Tests included in application
Auto Review Apps
● Temporary application
developments for branches
● Review app for each branch
○ <branch-name>.example.com
● Deleted when branch deleted
● Requires Kubernetes cluster
○ No cluster -> no review apps
Auto Deploy
● Deploy master branch to production,
and staging in Kubernetes
○ Staging:
<project-name>-staging.example.com
○ Production:
<project-name>-production.example.com
● Allows
○ Automatic production deployment
○ Manual production deployment
○ Rollout production deployment
● Deployment strategy options
Configuring Auto DevOps
Configuring Auto DevOps: Kubernetes
● Configure Kubernetes Cluster
○ Get the best of Auto DevOps
○ GCP or AWS
○ GCP offers $300 credit
● Configure through GitLab
GitLab Managed Kubernetes
● GitLab-managed cluster
○ Allow GitLab for
namespacing
Ingress and Prometheus
● Operations -> Kubernetes
● Install Ingress
○ Load balancing
○ Name based virtual hosting
● Install Prometheus
○ Monitoring and altering
Enable Auto DevOps
● Settings -> CI/CD
● Enable Auto DevOps
● Select strategy
Check CI Pipeline
Showcase App
● Branching
○ Review Apps
○ Merging
● Master branch
○ Staging
○ Rollout Deployment
■ Pods in Nodes
● Rollback Deployments
● Cluster monitoring
Summary
● GitLab CI
○ CI Pipeline from scratch
○ Configurations to manage
● Auto DevOps
○ Pre-built pipelines
○ Automated language, framework detection
○ Minimal configurations
● GitLab Docs
○ Auto DevOps: https://docs.gitlab.com/ee/topics/autodevops/
○ Standard CI: https://docs.gitlab.com/ee/ci/
● Hands-on
○ Auto DevOps:
○ Standard CI: https://git-community.cs.odu.edu/bhanuka/gitlab-ci-flask-app.git

More Related Content

What's hot

What's hot (20)

GitOps - Operation By Pull Request
GitOps - Operation By Pull RequestGitOps - Operation By Pull Request
GitOps - Operation By Pull Request
 
CI with Gitlab & Docker
CI with Gitlab & DockerCI with Gitlab & Docker
CI with Gitlab & Docker
 
Devops Porto - CI/CD at Gitlab
Devops Porto - CI/CD at GitlabDevops Porto - CI/CD at Gitlab
Devops Porto - CI/CD at Gitlab
 
CD using ArgoCD(KnolX).pdf
CD using ArgoCD(KnolX).pdfCD using ArgoCD(KnolX).pdf
CD using ArgoCD(KnolX).pdf
 
Gitops Hands On
Gitops Hands OnGitops Hands On
Gitops Hands On
 
GitOps 101 Presentation.pdf
GitOps 101 Presentation.pdfGitOps 101 Presentation.pdf
GitOps 101 Presentation.pdf
 
Github - Git Training Slides: Foundations
Github - Git Training Slides: FoundationsGithub - Git Training Slides: Foundations
Github - Git Training Slides: Foundations
 
GitOps w/argocd
GitOps w/argocdGitOps w/argocd
GitOps w/argocd
 
Git and github 101
Git and github 101Git and github 101
Git and github 101
 
Meetup 23 - 03 - Application Delivery on K8S with GitOps
Meetup 23 - 03 - Application Delivery on K8S with GitOpsMeetup 23 - 03 - Application Delivery on K8S with GitOps
Meetup 23 - 03 - Application Delivery on K8S with GitOps
 
CI/CD with Github Actions
CI/CD with Github ActionsCI/CD with Github Actions
CI/CD with Github Actions
 
Introduction git
Introduction gitIntroduction git
Introduction git
 
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCDKubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCD
 
GitLab for CI/CD process
GitLab for CI/CD processGitLab for CI/CD process
GitLab for CI/CD process
 
Gitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCDGitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCD
 
Git advanced
Git advancedGit advanced
Git advanced
 
Gitlab ci e kubernetes, build test and deploy your projects like a pro
Gitlab ci e kubernetes, build test and deploy your projects like a proGitlab ci e kubernetes, build test and deploy your projects like a pro
Gitlab ci e kubernetes, build test and deploy your projects like a pro
 
Git flow Introduction
Git flow IntroductionGit flow Introduction
Git flow Introduction
 
Intro to GitOps & Flux.pdf
Intro to GitOps & Flux.pdfIntro to GitOps & Flux.pdf
Intro to GitOps & Flux.pdf
 
Git One Day Training Notes
Git One Day Training NotesGit One Day Training Notes
Git One Day Training Notes
 

Similar to Default GitLab CI Pipeline - Auto DevOps

Similar to Default GitLab CI Pipeline - Auto DevOps (20)

Is the order code deploy?
Is the order code deploy?Is the order code deploy?
Is the order code deploy?
 
Webinar - Unbox GitLab CI/CD
Webinar - Unbox GitLab CI/CD Webinar - Unbox GitLab CI/CD
Webinar - Unbox GitLab CI/CD
 
Cinder On-boarding Room - Berlin (11-13-2018)
Cinder On-boarding Room - Berlin (11-13-2018)Cinder On-boarding Room - Berlin (11-13-2018)
Cinder On-boarding Room - Berlin (11-13-2018)
 
Paris.py
Paris.pyParis.py
Paris.py
 
Expedia 3x3 presentation
Expedia 3x3 presentationExpedia 3x3 presentation
Expedia 3x3 presentation
 
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
 
GeoServer Developers Workshop
GeoServer Developers WorkshopGeoServer Developers Workshop
GeoServer Developers Workshop
 
Deploy Multinode GitLab Runner in openSUSE 15.1 Instances with Ansible Automa...
Deploy Multinode GitLab Runner in openSUSE 15.1 Instances with Ansible Automa...Deploy Multinode GitLab Runner in openSUSE 15.1 Instances with Ansible Automa...
Deploy Multinode GitLab Runner in openSUSE 15.1 Instances with Ansible Automa...
 
OpenStack Cinder On-Boarding Room - Vancouver Summit 2018
OpenStack Cinder On-Boarding Room - Vancouver Summit 2018OpenStack Cinder On-Boarding Room - Vancouver Summit 2018
OpenStack Cinder On-Boarding Room - Vancouver Summit 2018
 
OpenStack Cinder On-Boarding Education - Boston Summit - 2017
OpenStack Cinder On-Boarding Education - Boston Summit - 2017OpenStack Cinder On-Boarding Education - Boston Summit - 2017
OpenStack Cinder On-Boarding Education - Boston Summit - 2017
 
Php Inspections (EA Extended): The Cookbook
Php Inspections (EA Extended): The CookbookPhp Inspections (EA Extended): The Cookbook
Php Inspections (EA Extended): The Cookbook
 
Gitlab Commit: How Containerized GitLab CI Pipelines Can Help You Streamline ...
Gitlab Commit: How Containerized GitLab CI Pipelines Can Help You Streamline ...Gitlab Commit: How Containerized GitLab CI Pipelines Can Help You Streamline ...
Gitlab Commit: How Containerized GitLab CI Pipelines Can Help You Streamline ...
 
Modern Web-site Development Pipeline
Modern Web-site Development PipelineModern Web-site Development Pipeline
Modern Web-site Development Pipeline
 
Дмитрий Лемешко. Comaqa Spring 2018. Continuous mobile automation in build pi...
Дмитрий Лемешко. Comaqa Spring 2018. Continuous mobile automation in build pi...Дмитрий Лемешко. Comaqa Spring 2018. Continuous mobile automation in build pi...
Дмитрий Лемешко. Comaqa Spring 2018. Continuous mobile automation in build pi...
 
Cinder Project On-Boarding - OpenInfra Summit Denver 2019
Cinder Project On-Boarding - OpenInfra Summit Denver 2019Cinder Project On-Boarding - OpenInfra Summit Denver 2019
Cinder Project On-Boarding - OpenInfra Summit Denver 2019
 
Python Linters at Scale.pdf
Python Linters at Scale.pdfPython Linters at Scale.pdf
Python Linters at Scale.pdf
 
Enhance Your Kubernetes CI/CD Pipelines With GitLab & Open Source
Enhance Your Kubernetes CI/CD Pipelines With GitLab & Open SourceEnhance Your Kubernetes CI/CD Pipelines With GitLab & Open Source
Enhance Your Kubernetes CI/CD Pipelines With GitLab & Open Source
 
Security in CI/CD Pipelines: Tips for DevOps Engineers
Security in CI/CD Pipelines: Tips for DevOps EngineersSecurity in CI/CD Pipelines: Tips for DevOps Engineers
Security in CI/CD Pipelines: Tips for DevOps Engineers
 
Multiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for PublishersMultiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for Publishers
 
Heroku to Kubernetes & Gihub to Gitlab success story
Heroku to Kubernetes & Gihub to Gitlab success storyHeroku to Kubernetes & Gihub to Gitlab success story
Heroku to Kubernetes & Gihub to Gitlab success story
 

Recently uploaded

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 

Default GitLab CI Pipeline - Auto DevOps

  • 1. Default GitLab CI Pipeline Bhanuka Mahanama CS 795 Fall 2020
  • 2. Outline ● Introduction to CI ● GitLab CI ○ Standard GitLab CI ○ Auto DevOps ● Auto DevOps overview ○ Features ○ Stages ● Configuring Auto DevOps ● Showcase App
  • 3. Continuous Integration For every change pushed to the repository, application is built, tested, and deployed for review automatically and continuously.
  • 4. Standard GitLab CI ● Configure everything from scratch ○ Define ■ Pipelines ■ Stages ■ Jobs ○ Setup ■ Clusters ■ Environments ■ Policies ● Define scripts to run ● Many configurations to set up
  • 5. GitLab Auto DevOps ● Autodiscover from source code ● Jobs based on content ○ Language ○ Frameworks ● Automatically create job structures for ○ Build ○ Test ○ Deploy ● Jobs assigned to stages ● Only selection is Pipeline Strategy ○ Select from common strategies ● Minimal configurations
  • 6. Enabling Auto DevOps ● Self-managed instances ○ Enabled by default ● GitLab.com ○ Settings -> CI/CD ○ Enable ● Delete “.gitlab-ci.yml”
  • 7. Features ● Auto Build ● Auto Test ● Auto Code Quality ● Auto Static Application Security Testing ● Auto Secret Detection ● Auto Dependency Scanning* ● Auto License Compliance* ● Auto Container Scanning* ● Auto Review Apps ● Auto Dynamic Application Security Testing* ● Auto Deploy ● Auto Browser Performance Testing* ● Auto Monitoring ● Auto Code Intelligence *Only Available on Paid GitLab Plans
  • 8. Internals of Auto DevOps ● Docker ○ Containerization ● Kubernetes ○ Container orchestration ○ Deployment and management of containers ● Helm ○ Creating build of kubernetes applications ● Gitlab Runner ○ Executing CI Jobs ● Prometheus ○ Systems monitoring and alerting
  • 10. Auto Builds ● Builds a Docker image ● Dockerfile in repository ○ Expose application to 5000 ● Language specific files ○ Heroku Buildpacks detects the language ○ Python -> requirements.txt ○ Ruby -> Gemfile
  • 11. Auto Test ● Detects language and framework ● Runs appropriate tests ● Uses ○ Herokuish ○ Heroku buildpacks ● Some automatically detected languages ○ Ruby ○ Nodejs ○ Python ○ Java ● Tests included in application
  • 12. Auto Review Apps ● Temporary application developments for branches ● Review app for each branch ○ <branch-name>.example.com ● Deleted when branch deleted ● Requires Kubernetes cluster ○ No cluster -> no review apps
  • 13. Auto Deploy ● Deploy master branch to production, and staging in Kubernetes ○ Staging: <project-name>-staging.example.com ○ Production: <project-name>-production.example.com ● Allows ○ Automatic production deployment ○ Manual production deployment ○ Rollout production deployment ● Deployment strategy options
  • 15. Configuring Auto DevOps: Kubernetes ● Configure Kubernetes Cluster ○ Get the best of Auto DevOps ○ GCP or AWS ○ GCP offers $300 credit ● Configure through GitLab
  • 16. GitLab Managed Kubernetes ● GitLab-managed cluster ○ Allow GitLab for namespacing
  • 17. Ingress and Prometheus ● Operations -> Kubernetes ● Install Ingress ○ Load balancing ○ Name based virtual hosting ● Install Prometheus ○ Monitoring and altering
  • 18. Enable Auto DevOps ● Settings -> CI/CD ● Enable Auto DevOps ● Select strategy
  • 20. Showcase App ● Branching ○ Review Apps ○ Merging ● Master branch ○ Staging ○ Rollout Deployment ■ Pods in Nodes ● Rollback Deployments ● Cluster monitoring
  • 21. Summary ● GitLab CI ○ CI Pipeline from scratch ○ Configurations to manage ● Auto DevOps ○ Pre-built pipelines ○ Automated language, framework detection ○ Minimal configurations ● GitLab Docs ○ Auto DevOps: https://docs.gitlab.com/ee/topics/autodevops/ ○ Standard CI: https://docs.gitlab.com/ee/ci/ ● Hands-on ○ Auto DevOps: ○ Standard CI: https://git-community.cs.odu.edu/bhanuka/gitlab-ci-flask-app.git