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
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