Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Features, benefits, and implementation of GitLab at Pole Star

Features, benefits, and implementation of GitLab at Pole Star

Radu Potop

July 12, 2019
Tweet

More Decks by Radu Potop

Other Decks in Technology

Transcript

  1. Main Features Source Code Management (SCM) Built-in Continuous Integration (CI)

    and Continuous Delivery (CD) WebIDE Powerful runners infrastructure Docker Container Registry Performance and Health Monitoring Auto devops(*)
  2. Source Code Management (SCM) Review, track, approve code changes with

    Merge Requests. Branch code, make changes, then quickly merge code. Robust WebIDE enables quick edits, e.g. solving conflicts Git based repositories Simplify auditing and compliance with granular access controls and reporting. (*) Automatically scan for code quality and security with every commit. (**)
  3. CI / CD is built-in to GitLab Continuous Integration Developers

    share their new code in a Merge (Pull) Request, which triggers a pipeline to build, test, and validate the new code before merging the changes in your repository. Continuous Delivery delivers CI validated code to your application. Together CI and CD accelerate how quickly your team can deliver results for your customers and stakeholders. CI helps you catch and reduce bugs early in the development cycle, and CD moves verified to your applications faster.
  4. Continuous Integration Detects errors as quickly as possible: fix problems

    while fresh in developers mind Reduces integration problems: smaller problems are easier to digest Avoid compounding problems: allows teams to develop faster, with more confidence
  5. Continuous Delivery Ensures every change is releasable: test everything, including

    deployment, before calling it done Lowers risk of each release: makes releases "boring" Delivers value more frequently: reliable deployments mean more releases Tight customer feedback loops: fast and frequent customer feedback on changes
  6. Runners A GitLab Runner is an application which processes builds.

    Very configurable runners: Multi-platform ( ) and Multi-language ( ) Parallel builds Multiple runners for different repos ( shared and specific runners). Flexible pipelines: you can define multiple parallel jobs per stage and you can trigger other builds. Realtime logging
  7. Runners (continued) Autoscaling: we can automatically spin VMs up and

    down to make sure builds get processed immediately Docker support: we can use custom Docker images, spin up services as part of testing, build new Docker images, even run on Kubernetes (*) Versioned pipelines: the .gitlab-ci.yml file contains the tests and overall process steps Runners can be deployed separately and works with GitLab through an API.
  8. Case study From a previous company: Gitlab Community Edition (CE)

    running on AWS EC2 (from a pre-built gitlab-ce AMI image) Runners executing on the local high-spec devbox (actual box in the office!! ) Different runners for different repos, some shared, some specific (dedicated) Auto deployment to Testing. One click deployment to Staging and Production!
  9. Benefits to developers Great integration between SCM and CI/CD Simplified

    deployment to Testing, Staging, Production Flexible pipelines with automated and one-click deployments Multiple runners, autoscaling Docker Container Registry Container debugging with an integrated web terminal Prometheus monitoring (*)
  10. Benefits to business Two variants: Community Edition (open source, self

    hosted, AMI images) Enterprise Edition (managed by Gitlab, various pricing levels) The Enterprise Edition lowers the entry barrier - no need to setup an instance or the runners The Community Edition supports the purchase of a Commercial License - which switches on enterprise features. Cycle Analytics (*) Better overview of the current state of the pipeline Great integration with Slack