5 min read
Long-standing companies remain viable because they evolve with the times. That’s the case for Maverik, a company committed to building the world’s best convenience store experience. Since its start as a two-pump gas station in 1928, the company has expanded to become the largest independent fuel marketer and convenience store chain in the Intermountain West. Today its more than 5,000 employees help customers fuel adventures in over 300 locations across 11 western states.
As a business in active growth mode, Maverik opens nearly 30 new stores per year and continually adds headcount. As a result of their rapid expansion, Maverik needs infrastructure that enables unimpeded growth. That’s precisely why Jerrie Pineda, Enterprise Architect for Maverik, was tasked with modernizing the company’s monolithic application development process.
Enabling Continued Growth
As part of a development team of seven people – along with network engineers, database administrators and other key IT personnel – Pineda is responsible for launching internal applications. Examples include those for Maverik’s loyalty program, rewards manager, and credit card authorizations.
Previously, it took the team two to three months to launch an application because of the associated steps. For instance, standing up a Virtual Machine environment, provisioning a testing environment, and creating and exposing DNS entries. This approach wasn’t sustainable for a continually growing company that wanted to quickly bring its innovative ideas and new applications to light.
Streamlining Kubernetes Deployment
Before Pineda joined the team, a predecessor had chosen D2iQ’s DC/OS and Mesosphere Kubernetes Engine (MKE) as a way to support the company’s infrastructure demands and hypergrowth. Pineda was given six months to decide whether or not to stick with DC/OS and MKE.
During that time, he and the team set up a Kubernetes environment running some microservices, and piloted an internal app that records gifts employees receive from vendors. “In one day, on DC/OS, I stood up a separate cluster environment mirroring our production environment, whereas it took our entire team 2-3 weeks to deploy a basic Kubernetes instance,” Pineda says. Based on these experiences, Pineda decided DC/OS and Mesosphere Kubernetes Engine was the right approach for enabling a container orchestration platform.
Kubernetes running on DC/OS is the equivalent of running Kubernetes-as-a-Service and provided what Pineda was seeking in a solution:
- Ability to deploy and manage a CNCF-certified, highly available Kubernetes cluster anywhere with a single command or button push
- Zero-touch self-healing that automatically fixes the cluster
- Easy access via the DC/OS service catalog to the numerous monitoring, developer tools, and other solutions required for Kubernetes
- Kubernetes cluster management distilled into a single command line
Because DC/OS makes it easy to administer and manage Kubernetes-as-a-Service, even a new admin at Maverik was able to stand up Kubernetes in two or three hours after familiarizing himself with the DC/OS environment.
From Zero to Production in Hours
To date, the Maverik team has deployed about seven Kubernetes clusters on MKE. “Deployment is much easier with MKE, enabling us to go from zero to production 300-400% faster. We now feel free to tear down a cluster and go at it again,” says Pineda.
Pineda greatly appreciates the ability to manage multiple clusters in the same environment using MKE. “We can create and stand up a cluster in minutes and test batches against it and try new things without affecting production. And once we put the same environment in another data center, we’ll be able to manage it from a single controller,” he says.
Maverik can even easily deploy services from the DC/OS service catalog. For example, it can take down and create a new Jenkins instance within minutes. So far, the company is running about 35 unique services – all with a different number of instances. In fact, it is running over 100 instances in different name spaces on the same cluster at any given time.
In addition to running containerized apps on Kubernetes for both mobile and desktop, Maverik is planning to create another environment outside of its main data center. Plus, it’s running DevOps tools on DC/OS with Jenkins scheduled through Marathon.
“I like running on DC/OS because we can spin up any number of agents when running a build, providing us significant flexibility and power while removing bottlenecks,” says Pineda.
According to Pineda, Maverik’s developers love the new environment. They don’t even containerize their apps. They write code and check it in and it becomes accessible with little or no intervention from anyone.
As Pineda says, “It’s a pretty dramatic shift for our developers. They used to create an app, figure out all the environments, and request one for VMs, another for testing, another for staging, and another for production, and figure out all the DNS names. It involved lots of back and forth. Now they focus on development, not on the infrastructure needed to run their apps.”
Maverik’s managers and directors hear fewer complaints because the company has reduced its deployment timelines. “Our administrators no longer have to be involved with rolling out services. At the same time, we know we’re providing better services three to four times more quickly,” he continues. The vast improvement has triggered more departments making more requests for new services.
Going forward, Maverik will try running MKE and DC/OS on bare metal to avoid VM licenses, which would reduce the company’s on-premise VM infrastructure and could yield a savings.
“In addition to the innovative technology D2iQ provides, we get value from them as a partner on speed dial. They provide the right resources and are very responsive. Technology is technology but the people behind it make the difference, and we can rely on D2iQ at any time,” Pineda concludes.
To learn more about Maverik, click here for the full case study.