During the 1992 presidential election, strategist James Carville famously hung a sign in the Little Rock headquarters of then-candidate Bill Clinton, which was meant to keep the campaign on message. It read:
- Change vs. more of the same
- The economy, stupid
- Don't forget health care
“It’s the economy, stupid” became an alternate campaign slogan, and Clinton went on to win two terms. I like the idea of crystalizing your mission in 3 bullet points, so I’m going to steal it. If I were to make a similar sign to hang in the office of my cloud team today, it would read slightly differently.
1. DevOps vs. the old way of doing things
A healthy Continuous Integration and Delivery pipeline is table stakes in the cloud game. The debate over whether to automate deployment ended 10 years ago, and if you’re not already cultivating DevOps, both technically and culturally, you’re behind the eight ball. Manually deploying and configuring machines is simply not a thing anyone should be doing in 2017. The tools to automate things in a repeatable way are out there, they’re battle tested, and they work. The cultural shifts may be more difficult, but keeping developers involved in maintenance and monitoring, and taking responsibility for platform stability and quality is the key element. I want my team to keep ambitious standards for the lifecycle of the application, for automated alert response, and maintenance; to share responsibility; and to promote collaboration within and across teams. (photo credit: Martin Fowler)
2. The platform, stupid
At the end of the day, all businesses are trying to deliver a quality product to the customer consistently. To do that, we need to focus on the platform: both ours, and those we sit atop. Looking at your cloud offerings, whether they are internal or external, web, mobile or IoT, there are important questions to consider:
- Are they delivering the value they need to compete with disruption in the marketplace?
- Are they extensible enough to allow innovation?
- Are they flexible enough to be integrated into other products and services?
Cultivating our products as a platform that customers will continue to use means answering these questions effectively. Looking at the foundations of our products, are they leveraging the strengths of the platforms they’re on? Are we still looking at servers and networks, or are we thinking of the bigger picture of a working system?
Kelsey Hightower, staff developer advocate at Google Cloud Platform (GCP), said on a recent podcast "We know what to do with machines; you configure and you manage that server. When the cloud first came out, people took that exact mindset, and just did it on someone else's cloud. We're stuck in this machine-based mentality, and the onset of cloud didn't fix that." Platforms such as Azure, GCP and Amazon Web Services (AWS) are rapidly expanding their service offerings to meet the needs of the diverse customers who have adopted or are adopting cloud as a primary platform. Managed services expose features we typically think of in a machine context as elements of the platform. Containerization, clustering, and serverless architectures are ways for us to stop thinking about the machines and abstract our services out to what they provide in terms of value.
3. Don’t forget observability
The single biggest time-consumer in the ongoing maintenance of software systems is troubleshooting. As Turbine Labs CEO, Mark McBride observed in a recent medium post, “When customers aren’t happy you want tools that let you quickly isolate the causes of their sadness.” In simple systems, finding the root cause of a problem can be relatively easy, and often the cause can be traced to a single operator. But as the system grows in complexity, it’s important to include mechanisms which help trace the interdependencies of its components and expose what went wrong, and why. And I cannot stress enough that the "why" is going to be the most important factor during an incident.
The combination of DevOps tools and culture, a focus on the platform and an eye toward visibility is a roadmap for success on your cloud campaign trail. These are the factors I will be considering as we work on fortifying our product line and developing new ones for our customers.
Did I overlook something important? Comment and share with me! I’ll be keeping an eye out at AWS Re:Invent in late November for these trends, and reporting from the event on the new platform services, DevOps techniques and observability and troubleshooting tools next time, so come on back.