Team: Technical Operations, Release Engineering, Services
Strategic Priorities: Community
Time Frame: This program will take longer than 12 months. The objectives below represent the work expected to complete within FY17-18.
Summary
We will streamline and integrate the delivery of services, by building a new production platform for integrated development, testing, deployment and hosting of applications.
Goal
We will build a new production platform for integrated development, testing, deployment, and hosting of applications. This will greatly reduce the complexity and speed of delivering a service and maintaining it throughout its lifecycle, with fewer dependencies between teams and greater automation and integration. The platform will offer more flexibility through support for automatic high-availability and scaling, abstraction from hardware, and a streamlined path from development through testing to deployment. Services will be isolated from each other for increased reliability and security.
Wikimedia developers, as well as third-party users, benefit from the ability to easily replicate the stack for development or their own use cases.
This work also represents an investment in the future; although this will not yet significantly materialize within FY17-18, this project will eventually result in significant cost savings on both capital expenditure (through consolidation of hardware capacity) and staff time (by streamlining development, testing, deployment and maintenance).
Outcomes, Objectives, and Milestones
- Outcome 1: We have seamless productization and operation of (micro)services.
- Objective 1: Set up production-ready Kubernetes cluster(s) with adequate capacity
- Objective 2: Create a standardized application environment for running applications in Kubernetes
- Outcome 2: Developers are able to develop and test their applications through a unified pipeline towards production deployment.
- Objective 1: Create guidelines and abstractions for building and testing applications in containers
- Objective 2: Set up a continuous integration and deployment pipeline to publish new versions of an application to production via testing and staging environments that reliably reproduce production
- Objective 3: Provide a lightweight integrated development environment that lets developers test their code against a local miniature copy of the production stack