Untitled
Untitled
Untitled
Agenda
2
Why GitOps?
3
About me
Daniel Marquard
Sr. Defense Solutions Architect
@danielmarquard
gitlab.com/danielmarquard
linkedin.com/in/danielmarquard
4
What is GitOps?
5
IaC...why bother?
6
Repeatability
● Automation
● Deploy to 1 environment
or 1,000
● Consistency
7
IaC is self-documenting
● Manually-configured resources
are black boxes
8
IaC enables idempotence
9
GitOps = IaC + MRs + CI/CD
10
GitOps vs IaC
GitOps IaC
● Code is stored in git repository ● Code may/may not be version
controlled
● Change is enacted via Merge Request ● Code changes may or may not go
through a review/approval process.
● Code is scanned for security and best
practices ● Changes can be applied many ways
(FTP or SSH to the server, command
● Infrastructure updates are line manual runs, etc.) They may or
automated may not be automated.
11
Components of GitOps
12
GitOps: Environments stored as code in Git
IaC
● Infrastructure as Code (IaC) or
X-as-Code (XaC- infra, config, policy,
etc.)
13
GitOps: MRs as the agent of change
MRs
● Merge Requests (MRs) or Pull
Requests (PRs) are the “gate”
14
GitOps: Automated Reconciliation
16
GitLab and GitOps
17
GitLab is the most popular solution for the Enterprise
COMPANY
- Incorporated in 2014
- 1300+ employees across 65 countries
- GitLab Federal entity est. in 2018
BROAD ADOPTION
- 100,000+ organizations
- Millions of users
- 70% share of self
-managed DevOps
repository market
STRONG COMMUNITY
- Open source model
- 2,500+ code contributors
- 10,000+ total contributors
18
GitLab recognized as a Leader
Forrester: CI Forrester: Cloud Native CI
The only non cloud provider to be a leader
“GitLab’s vision is to serve enterprise -scale,
integrated software development teams - The
Forrester WaveTM: Continuous Integration Tools, Q3 2017 report
GitLab
GitLab
Jenkins
The Forrester Wave™ is copyrighted by Forrester Research, Inc. Forrester and Forrester Wave™ are trademarks of Forrester
Research, Inc. The Forrester Wave™ is a graphical representation of Forrester's call on a market and is plotted using a detailed
spreadsheet with exposed scores, weightings, and comments. Forrester does not endorse any vendor, product, or service depicted in
the Forrester Wave. Information is based on best available resources. Opinions reflect judgment at the time and are subject to change. 19
Today’s Mission Challenge- Complex Toolchains Reinforce Silos
Manage Plan Create Verify Package Secure Release Configure Monitor Defend
20
Say hello to GitLab- an entirely new thing
Store
Collaborate
Manage Plan Create Verify Package Secure Release Configure Monitor Defend
Automate
22
How GitLab does GitOps
Testing/Lab
Lint/Syntax
Validate
Dry Run
Production Configuration
23
GitLab Secure Capabilities
- Continuous Application Security
Container
Scanning
🔎🔎 Secrets Detection
Static Application Security Dynamic Application
Testing (SAST) Security Testing (DAST)
25
Code Repository
Source code management is where development team sharing and
collaboration begins. GitLab is a Git-based fully integrated platform for
software development.
● Collaborate
○ Review, comment, and improve each other’s code
○ Share code, enable re-use and ‘innersourcing’.
○ File locking prevents conflicts
○ Included WebIDE enables development on any platform
● Accelerate
○ Git base repository, enabling developers to work from their local
copy of the code
○ Branch code, make changes and then quickly merge code
● Compliant & Secure
○ Review, track and approve code changes with powerful merge
requests
○ Automatically scan for code quality and security with every commit.
○ Simplify auditing and compliance with granular access controls and
reporting
26
CI/CD
GitLab Continuous Integration (CI) & Continuous Delivery / Deployment (CD).
● Advantages of GitLab CI/CD
○ Integrated: CI/CD is part of GitLab, enabling a single conversation from
planning to deployment.
○ Open source: CI/CD is a part of both the open source GitLab Community
Edition and the proprietary GitLab Enterprise Edition.
○ Easy to learn: Well documented with examples and our Quick Start
guide.
○ Seamless: Single great UI/UX for your team.
○ Scalable: Test run distributed on separate machines of which you can
add as many as you want.
○ Faster results: Each build can be split into multiple jobs that run in
parallel or multiple machines.
○ Optimized for delivery: Multiple stages, manual deploy gates,
environments, and variables.
27
CI/CD
GitLab Continuous Integration (CI) & Continuous Delivery (CD).
● One Application for the entire DevSecOps lifecycle
○ Built your app using GitLab Runners
■ GitLab Runner is an application which processes builds. It
can be deployed separately and works with GitLab CI/CD
through an API.
● Works on any platform the can build Go binaries
including Linux, macOS, Windows, FreeBSD and Docker.
● Test programming languages .Net, Java, Python, C,
PHP, and others.
● Feature rich with Autoscaling, great Docker support, run
multiple jobs concurrently.
○ Run unit and integration tests to check that code is valid
○ Live preview of development branches with Review Apps before
merging into stable.
○ Deploy to multiple environments like staging and production, and
support advanced features such as a canary deployments.
○ Monitor performances and status of your application
○ Built for Cloud Native with Kubernetes integration
○ See the status of each build within the Merge Request
28
Issue Management
Plan and manage projects. GitLab enables lean and agile project
management from basic issue tracking to Scrum and Kanban style project
management that scales from small teams to large complex organizations.
30
Use Cases
31
Cloud Operating Model - Automated at Scale
32
GitLab Architecture Sample
33
GitLab Demo Systems
34
GitLab Demo Systems
Cloud Platform
GitLab repository for
playbooks / configurations Project demosys-mgmt Project demosys-saas
and CI pipeline. Issues and
Merge requests to manage Compute Engine Compute Engine
changes / iterations. TF- Ansible- Laravel App Server (Portal) TF- Ansible- GitLab Omnibus
TF- Ansible- MySQL Database Server TF- Ansible- GitLab Runners
TF- Ansible- Jenkins Instance
Terraform is used to create Module for instances
infrastructure Module for instances Module for clusters
Top-level TF directory for future apps and services Top-level TF directory for future apps and services
35
Embedded Systems
36
OPENSHIFT FOR EMBEDDED CI/CD
FIELD-
WORTHY?
☒
☑
OPENSHIFT
CI/CD PIPELINE
(GitLab)
IMAGE BUILD PROMOTE PROMOTE PROMOTE
& DEPLOY TO DIGITAL TWIN TO HW-IN THE LOOP TO HARDWARE
37
OPENSHIFT FOR EMBEDDED CI/CD
FIELD-
WORTHY?
☒
☑
OPENSHIFT
● Scop e is shift e d CI/CD PIPELINE
(GitLab)
38
38
OPENSHIFT FOR EMBEDDED CI/CD
☒ ☒
- Ma nua l (via CD)
- Tra d it iona l file t ra nsfe r
☑ ☑ - Ansib le Aut oma t ion
- Host - b a se d cont a ine r
Ap p lica t ion
ma na g e me nt ut ilit ie s
Co nt a ine r
(P od ma n,
HW-IN-THE-
OPENSHIFT LOOP
CLUSTER TEST Re a l- Tim e Re a l- Tim e
Re a l- Tim e
39
39
5 ● Aircraft promotion workflow of
POC Workflow
● Minimally adapt the existing development / can be written to a CD, secure
packaging workflow to use GitLab and laptop or via a guard/CDS
OpenShift to output a container image as directly to flightline / near
the final product. flightline maintenance
systems).
AIRCRAFT ● Via the above mechanisms,
EXISTING AP P LICATION PROMOTION the fully tested and approved
WORKFLOW application container image is
pulled from the GitLab
ARTIFACT/CONTAINER PROMOTE container repository and
DEVELOPER GITLAB SERVER
REPOSITORY (GITLAB) TO HARDWARE transferred to the aircraft’s
☒ ☒
☑ ☑
APPLICATION BUILD /
HW-IN-THE-
HARDENING PIPELINE WITH
GITLAB AND OPENSHIFT LOOP
TESTS
41
GitLab & Ansible - Configuration Management
Site A Site E
Site B Site D
+
Site C.1 Site F
Site C.2
42
Q&A
43