To agility and beyond: How Lowe’s evolved app dev and deployment with Google Cloud services
Director, Information Security Architecture, Lowe’s
Editor’s note: In this article, Kyle Amboyer, Director of Information Security Architecture at Lowes, explains how Google Cloud services enabled the home improvement giant to create a platform for engineering that transformed not only ecommerce but how it deploys all its software.
If you need a washer and dryer, hardwood flooring, or a pallet of bricks, you can visit Lowe’s website or launch Lowe’s mobile app. You can see your options, compare prices and order what you need. You can even let Lowe's know if you’re going to pick up the item, if you want it sent to your home, or if you need a truck delivery. But have you ever thought about the technology it takes to offer you this convenience?
At Lowe’s, we’ve given it a lot of thought, and it has paid off. Last year, we saw sales through our ecommerce offerings grow by more than 18 percent, on top of 111 percent growth in 2020. This didn’t happen overnight, of course. In my early years at the company’s North Carolina headquarters, roughly six or seven years ago, we knew that customer demand and expectations for online shopping would soon outgrow the capabilities of our packaged ecommerce software. Something had to be done.
This is the story about how Google Cloud services enabled us to create a platform for engineering that transformed not only ecommerce but how we deploy all our software.
Chipping away at the buy vs. build monolith leads to a new approach
Back in the early days, Lowe’s mostly ran commercial software-vendor provided solutions. In the question of buy versus build, buy was the general approach. IT was viewed as a support function, rather than as a contributor of business value. So, when we knew we had to address the limitations of our packaged ecommerce software, we started by trying to re-architect it. We chipped away at the monolith, and eventually reached the point where we had done everything we could do behind the scenes. But it wasn’t enough.
At about that time, we had new leadership come in, and those leaders brought an appetite for change that included new technology stacks and an evolution to the build vs. buy mentality. With leadership support, we made it our goal to move a lot faster, create a much shorter software development lifecycle and enable our operations to drive more reliability and predictability to the business. We decided on a microservices-based architecture. We were going to containerize those microservices. We knew we were going to leverage Kubernetes for container orchestration at scale. We were primed, but the question became how could we accomplish such a lofty set of goals in a timeframe that worked for the business?
Google’s open API-tude wins the day… and the business
When you’re planning a microservices architecture with containers and your goal is to improve velocity, speed and reliability, the public cloud just makes sense. When we started talking to Google, we shared our plans to transform our architecture, build a new culture and move into the cloud. They really seemed to have the most to offer us as a partner.
For one, Google Cloud had more investments in open source than the other providers. Many of their products and services maintain open APIs, so enterprise lock-in was less of a concern for us. Also, Google Cloud was best equipped to handle the hundreds of microservices we had to build, deploy and operationalize, and they provided everything from monitoring to logging. Also, Google Cloud services would help us not just transform our tech, but support our move to DevOps.
Laying a foundation to provide a frictionless path from dev to prod
As part of our new “build” approach, we wanted our development teams to be in control but still have a frictionless path to production. That’s how we came to the conclusion that we needed a platform layer for integrating multiple tools and promoting best practices for CI/CD, security and operations. It could stitch together logging and monitoring and tracing, so that the development teams that were building these microservices could use this platform while still really focusing on their business logic and their business goals.
Working with Google Cloud services and our security team, we laid out our foundation, an internal platform called Carbon. Google Kubernetes Engine(GKE) is at the core of Carbon, and we’ve integrated other open-source technologies into it for telemetry and logging, CI/CD and deployment pipeline management. We incorporated Istio and Hashicorp’s open source offerings of Consul and Vault for security and service mesh control with Google Cloud's operations suite (formerly Stackdriver) for diagnostics.
We built Carbon from the ground up on infrastructure as code, and automation has been its primary driver. The Carbon team bootstrapped the Lowe's Google Cloud tenant, everything from the organization, projects, networking and permissions. Terraform played a big role in the bootstrapping. Once built, it wasn’t long before it faced the toughest test in retail…Black Friday!
Three successful Black Fridays make a major impact on software delivery
Black Friday ecommerce on Carbon was a success its first year—its second—and its third —with record sales and traffic, along with needed stability. The first Black Friday changed things for Carbon, and for Lowe’s. After reducing ecommerce and mobile app development and deployment time from weeks to hours, word got out.
People from other parts of the company would come to us and say, “I have this app, and I just need to test it quickly." Or, "This code has been sitting on the shelf for a few months, and we’re waiting for infrastructure." They had seen how easy it was to get onboarded through Carbon and into the development environment. And soon, they were coming to us from all over—teams from merchandising, marketing, supply chain, data science, and so on.
Over the next year, we converted all of Lowes.com to run through Google Cloud and for the most part on the Carbon platform. This introduced a need for higher availability and continuity. We adopted multi-region, and now we run Carbon and all its workloads in both East and Central regions. We had to integrate a little deeper with our own data center, bridging more hybrid communication. Eventually we scaled to the point where Carbon became the enterprise platform for software delivery. Carbon is now on-premises, in stores and on Google Cloud, and it has more than 1,000 independent workloads supporting all areas of the business.
Carbon has been an amazing success story. It has grown beyond our expectations in unlocking our technical transformation in addition to serving as a key enabler of our evolving culture toward DevOps. For everyone at Lowe’s who has a workload and is looking for the path of least resistance, Carbon is there. Like water—microservices will find the path of least resistance, and this platform established the low friction path for our microservices to flow to production. And Google Cloud was a critical part of our success.