You are browsing a read-only backup copy of Wikitech. The primary site can be found at wikitech.wikimedia.org
Deployment pipeline/Components: Difference between revisions
(→PipelineLib: Link to PipelineLib documentation)
No edit summary
|Line 27:||Line 27:|
$ helmfile apply
$ helmfile apply
Latest revision as of 15:01, 5 January 2022
Blubber creates Dockerfiles from a higher level description expressed as YAML. The Deployment pipeline relies on an application's Blubberfile(s) to build images for testing and production.
PipelineLib is a library of code that consumes an application's
.pipeline/config.yaml. This configuration directs the pipeline through integration telling it:
- What unit tests to run
- What integration tests to run
- Which tests can be run in parallel
- What container image is to be used in production
- Config files
- Resource limits
- What ports your application uses
- Smoke tests for your application
In short, Helm allows the easy management of mapping deployment resources to an environment. If you need a different configuration for local development and production, chances are it'll be easy to configure with Helm.
Helmfile is what you will use to deploy your application in production. Helmfile uses the environments and values in the deployment charts repository to define a deployment to a specific environment. A deployment of an existing production service looks like:
$ cd /srv/deployment-charts/helmfile.d/staging/blubberoid $ source .hfenv $ helmfile apply
Kubernetes is the execution framework that the pipeline works on. See Kubernetes
Application Metrics monitoring
Monitoring in the pipeline happens via prometheus and exposing via Grafana.
Applications need to either provide Prometheus native endpoints (recommended), or emit Statsd (deprecated) compatible metrics to a local prometheus-statsd-exporter instance. In the latter case, SRE provides a ready to use component as part of any Helm chart in the deployment-charts repo.
In all cases, applications are discovered automatically and scraped by Prometheus.