At WP Engine, our Product & Engineering group applies a steady enchancment course of to take care of an elite stage of software program growth and supply efficiency.
This features a laser deal with agility, represented by DevOps Analysis and Evaluation (DORA) metrics for velocity, stability, and high quality.
To realize their objectives, our engineering colleagues depend on WP Engine’s inner Catalyst Software program Supply Platform (SDP)—and on us, the devoted Catalyst workforce, which develops and maintains that platform—to offer a unified basis for product growth, launch, and administration.
The purpose of the Catalyst SDP is to cut back operational burden and cognitive load on our inner groups whereas considerably bettering service observability, safety, and velocity of supply. Because the platform’s worth to customers has deepened over the previous two years, the number of workloads has expanded to incorporate greater than 30 purposes and companies. New groups and merchandise proceed to onboard each few weeks.
Nevertheless, within the early days of the SDP, engineers who efficiently stood up manufacturing companies on the platform additionally struggled with utility configuration administration. Whereas the Catalyst workforce had settled on a workflow that used declarative configuration instruments, we had not achieved the suitable steadiness between flexibility and ease-of-use.
We wanted to guage SDP customers’ challenges extra intently and take motion. Once we engaged with engineers, we discovered that app growth was certainly slowed by configuration tooling complexity; particularly, customers discovered it troublesome to craft Kubernetes configurations that met WP Engine’s safety necessities.
We understood their burden of utilizing a number of instruments, customized scripts, and complicated configuration patches for customizing sources, as required by our configuration administration resolution. We additionally acknowledged duplicative effort throughout groups independently resolving widespread ache factors.
To revive product groups’ deal with best-in-class software program growth and supply, we had a job to do. We additionally had a status to uphold as winners of Google’s 2021 DevOps Award for “Unleashing the total energy of the cloud”!
Let’s discover the modifications we launched to the configuration administration workflow on SDP, our rollout strategy, and the impression these modifications had on the engineering expertise.
Decreased Complexity
To take away the necessity for overlay patterns, advanced patching, or customized scripting, we consolidated the required tooling for working on configurations. Engineers can now handle primary use instances with a single instrument, kpt, which simplifies practical configuration modifications by its Configuration as Knowledge paradigm.
Shared Features
Our most impactful deliverable was a library of reusable Kubernetes useful resource definitions as kpt features. Engineers can now compose purposes with interoperable practical models of configuration, and may leverage packaged, time-tested k8s configurations, lowering code duplication and growing maintainability.
Documented Examples
To additional streamline implementation of widespread practical use instances, like configuring and authenticating to a database, we supplied documented examples for invoking our kpt features. With the assistance of a constant and dependable place to begin, engineers can confidently and shortly proceed to their value-added work.
Safety by Default
For normal use instances like exposing an utility to the web or routing site visitors between companies inside the mesh, we packaged baseline company safety compliance into the kpt features themselves. When making use of our features to their use instances, product groups profit from the “default-closed” and “least privilege” safety posture that we implement, attaining improved utility safety with out engineering overhead.
Versioning and Pinning
We utilized semantic versioning to our Catalyst cloud builders and kpt features. Now engineers can pin their picture variations and routinely decide up our newest non-breaking modifications with no need to grasp the small print of every modification.
Change Consciousness
As a part of the rollout of our new configuration administration resolution, we supplied a utility for describing the logical variations between the consumer’s prior configuration and the brand new configuration launched by the kpt features. Utilizing the utility, engineers can readily perceive the practical modifications to their purposes.
Person Engagement and Outcomes
We partnered with utility groups to roll out these modifications to 30 workloads on SDP. After making preliminary updates on to consumer pipelines in a dev setting, we invited utility house owners to approve our pull requests after which take a look at their purposes with the updates.
Direct suggestions about these modifications signifies that we’ve efficiently addressed important issues in configuration administration, and that the transition to improved safety and reliability required minimal effort for engineers. In flip, our engineering colleagues have been appreciative of our efforts to simplify their foundational work and restore their deal with creating beneficial merchandise.
“Utilizing the brand new configuration administration tooling with kpt has been an enormous enchancment, it’s method simpler,’ mentioned WP Engine Sr. Employees Software program Engineer Adam Lassek.
“We received a complete setting up and working inside a dash, which I by no means would have anticipated was attainable earlier than.”
Software program Engineer Piotr Purwin additionally praised the modifications, noting that the platform enabled his workforce to implement kubernetes greatest practices with fewer strains of code.
“Typically we really feel like cooking one thing fancy, which in fact requires primary kitchen utensils, but additionally extra advanced and complicated instruments that might not be obtainable to everybody at dwelling,” Purwin mentioned.
“Working inside the SDP is like coming into a giant, fully-equipped kitchen and simply having fun with the method of making ready the dish.”
What’s Forward?
There’s extra we are able to do to optimize utility configuration administration for our customers. We are going to proceed constructing out kpt features for widespread configuration use instances, like including a caching layer to an utility. We additionally need to enhance consumer expertise in different areas, together with observability.
Whereas software program supply improvements roll out to our inner groups by way of the SDP, the profit cascades to WP Engine clients by sooner supply of recent merchandise.
Our imaginative and prescient for SDP is broad and deep, and the leaders of our engineering group have excessive expectations for its future use. With extra reusable software program, out-of-the-box capabilities for purposes, and platform enhancements, the Catalyst SDP will proceed growing engineering workforce velocity and serving to WP Engine clients win on-line on daily basis.
WP Engine Sr. Employees Software program Engineer Rahul Dhir contributed to this text.