Wikimedia Technology/Annual Plans/FY2019/TEC3: Deployment Pipeline/Goals

=Program Goals and Status for FY18/19=

TEC3 Deployment Pipeline
 * Goal Owner: Greg Grossmeier
 * Program Goals for FY18/19: We will streamline and integrate the delivery of services, by building a new production platform for integrated development, testing, deployment and hosting of applications. Wikimedia developers experience a tooling parity between our Continuous Integration (CI) and production environments which enables them to release code more frequently by continuously reducing risk.
 * Annual Plan: TEC3 Deployment Pipeline
 * Primary Goal is Knowledge as a Service: Evolve our systems and structures
 * Tech Goal: Sustaining





= Q1 Goals =

Outcome 1 / Output 1.1
Continuous Integration is unified with production tooling and developer feedback is faster
 * Convert current CI builds to use the new tooling (Blubber).

Dependencies on: SRE team

Goal(s)

 * Move verify stage from Minikube to CI k8s namespace in production context

Status
July 2018

August 10, 2018
 * Discussed that work on a patch is still ongoing, need to refactor the pipeline job to the new namespace. This will be a change to the existing service but will need to be refactored when we get to the shared library.

September 14, 2018
 * This is now ✅!



=Q2 Goals =

Outcome 1 / Output 1.2
Continuous Integration is unified with production tooling and developer feedback is faster


 * Setup test execution time profiling with a report, make a prioritized list of improvements to how tests are run.

Goal

 * Formalize the collection of CI infrastructure and tooling metrics -

Status
October 2, 2018
 * This is now

November 7, 2018
 * dduvall gave a presentation Monday looking at CI performance percentiles
 * Work continues on automating the collection of these metrics.
 * Work continues on automating the collection of these metrics.

December 6, 2018
 * This goal is but we need to expose the interface of the metrics that we're collecting.

Outcome 2 / Output 2.3
Deployers have a better assessment of risk with each deploy


 * Improve our incident response, post-mortem, and follow-up management tooling.

Goal

 * Develop set of metrics to assess incident reports/post mortems.

Status
October 2, 2018
 * This work has not yet been started at this time

November 7, 2018
 * This is now with Zeljko's analysis of the past year's worth of incident reports.

December 6, 2018
 * We can now determine how associated commits, repos, etc are connected to the incident reports and consider this goal ✅. There is more work that we can do to further refine the metrics.

Outcome 3 / Output 3.1
Deployments happen through percentage based stages (eg: canaries, 10%, 100%)


 * Migration of services currently on our "shared service cluster" into Kubernetes (k8s) deployments with staged rollout

Primary teams: Service Operations, Release Engineering

Goal(s)

 * Adopt more services into Deployment pipeline
 * Migrate graphoid to the Deployment pipeline ❌
 * Deploy zotero v2 to the Deployment pipeline ✅
 * Deploy blubberoid ✅
 * Reprise the work on the logging infrastructure

Status
October 2, 2018
 * This is now

November 7, 2018
 * Deploy zotero v2 to the Deployment pipeline
 * Currently living in k8s staging
 * Plan to go live next week
 * Deploy blubberoid
 * liw working on changes to internal data structuring as a prerequisite to creating OpenAPI spec required for pipeline — on track.

December 6, 2018
 * Zotera is ✅, Graphoid will be recommended for stewardship review ❌, Blubber will be ✅ in the next week. Reprise the work on the logging infrastructure is still.



=Q3 Goals =

Outcome 1 / Output 1.2
Continuous Integration is unified with production tooling and developer feedback is faster


 * Setup test execution time profiling with a report, make a prioritized list of improvements to how tests are run.

Goal

 * Instrument Quibble for data collection
 * Create a graph where time is spent and make a prioritized list for improvements.

Status
January 2019
 * Discussed...

February 2019
 * Discussed...

March 2019
 * Discussed...

Outcome 2 / Output 2.1
Deployers have a better assessment of risk with each deploy


 * Create a deployments report with metrics from the Code Health Group.

Goal(s)

 * Select and integrate a code health metric solution into our tooling.

Status
January 2019
 * Discussed...

February 2019
 * Discussed...

March 2019
 * Discussed...

Outcome 3 / Output 3.1
Deployments happen through percentage based stages (eg: canaries, 10%, 100%)


 * Migration of services currently on our "shared service cluster" into Kubernetes (k8s) deployments with staged rollout

Primary teams: Service Operations, Release Engineering, Core Platform

Goal(s)
Adopt more services in the pipeline


 * cxserver, ORES (partially), citoid, changeprop, cpjobqueue (stretch)
 * Deploy eventgate

Status
January 2019
 * Discussed...

February 2019
 * Discussed...

March 2019
 * Discussed...

Outcome 4 / Output 4.1
Developers are able to create services that achieve production level standards with minimal overhead


 * Developers get a service creating experience that is on par with production level standards with regard to logging, monitoring, security and configuration

Goal(s)

 * Evaluate helm charts management solutions

Outcome 5 / Output 5.1
Services and the deployment pipeline are hosted on production-level infrastructure


 * Adequately maintain the service infrastructure according to production standards. Upgrade the platform to new upstream versions to benefit from bug fixes and new features.

Goal(s)

 * Aim for a better resilient, scalable, easier to manage and upgrade Kubernetes cluster service
 * Upgrade cluster components to a newer version
 * Improve docker registry architecture

Outcome 6 / Output 6.1
Developers and deployers are aware of the platform, its benefits and how to make use of it


 * Create a developer portal for the Deployment Pipeline platform with documentation and instructions

Goal(s)

 * Create a developer portal with Deployment Pipeline documentation

Outcome 6 / Output 6.2
Developers and deployers are aware of the platform, its benefits and how to make use of it


 * Promote the platform's adoption

Goal(s)

 * Conduct Promotion and Training events for Wikimedia developers



=Q4 Goals =

Outcome X / Output X
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
 * Nullam interdum, elit in malesuada aliquam, libero lorem auctor lacus, eu mattis lacus velit vitae mauris.

Dependancies on: ___________

Goal(s)

 * Ut eget sodales odio. Maecenas a varius leo.

Status
April 2019
 * Discussed...

May 2019
 * Discussed...

June 2019
 * Discussed...