Developers need tools that will help them test and safely roll out new features to users without compromising their business, says Adam Seligman, VP or developer relations at Google.
And not surprisingly, Seligman believes Google is well placed to offer developers the tools and support they need.
The Google man says organizations need to think about their application needs in terms of individual features, rather than think in terms of complete apps. To help them think that way, developers need to be confident that they can turn an idea into a feature that can be tested in a simple, quick and secure way, says Seligman, who joined Google (Nasdaq: GOOG) in January after more than six years at Salesforce.com Inc. . (Prior to joining Salesforce, Seligman also worked in developer relations for Microsoft, where he spent eight years.)
A fast, incremental upgrade development model is one that Google follows internally, he says. "We have a model where individual developers are incredibly empowered to ship code into production," Seligman says. "And to do that, you have to have things like automated testing, test builds, code review process, a collaborative source environment, and then push a little feature to production and route a small amount of traffic to it, to get data to see what happens."
He continues, "That's opposed to the old waterfall approach, where you wait six months, you come up with a giant release, you test it as best you can, and you ship it. And then everybody gets it and then things don't work... Google believes stubbing your toe shouldn't be fatal," Seligman states.
This fast development process is "a totally different way to think about development," claims Seligman, though it may sound familiar to many.
Last month, Google launched several new services and software designed to help developers adopt such a process. The web services giant debuted Cloud Services Platform, a hybridized platform for running containerized and serverless apps that combines Kubernetes container management with Istio open source software for connecting containerized applications. Additionally, Google launched Cloud Build, a Continuous Integration/Continuous Delivery (CICD) platform, which integrates with the GitHub developer collaboration service. (See Google Launches Cloud Services Platform, a Toolkit for Kubernetes & Serverless Apps, Google Pushes Enterprise Strategy Beyond the Cloud and Google Builds Bridge With Microsoft in GitHub Partnership.)
This change in business processes applies to traditional organizations as well as born-in-the-cloud startups. Traditional businesses -- and Google Cloud customers -- like HSBC, Airbus and Target are all transforming with software and AI, and need to be able to ship code safely, Seligman says. "Many times the best way to do that is not by taking a giant leap but by taking many small steps," he says.
Google's Cloud Services Platform and the open source Istio standard for container management make it easier to implement small changes to services and get feedback, he says. "You can easily move forward. Or if you have to move backward, it's a small step back."
This change in business process requires both cultural and technological change, Seligman says. Agile development is the methodology -- the human element -- to allow developers to move in sprints, while CICD is the technology to quickly turn code into product. Businesses also requires a "mindset to empower developers to release products quickly and safely," Seligman says.
"Canaries are a key element of that empowerment," Seligman says. In this context, a 'canary' refers to a real production build that is only deployed to a small number of users, so that if it fails it does very little damage and the organization can collect data on how the feature works. Canaries that succeed are pushed out to a wider base for further testing, until (hopefully) they become standard features of a service, available to all users.
"You could probably do that with any CICD system, but to have the cultural approach where developers are empowered to test canaries and get data, that can be a radical shift in how people think about software," Seligman says.
CICD is a hot developer technology. Google and Netflix launched Kayenta, an open source tool for continuous software delivery at cloud scale, in April. Mirantis launched its own continuous delivery product and services based on Netflix's Spinnaker at about the same time. And GitLab provides CICD as a service as part of its platform for open source development collaboration. (See Google & Netflix Launch 'Kayenta' for Cloud-Scale Continuous Software Delivery and Mirantis Has Seen the Future (Again) & This Time It's Spinnaker.)
Seligman discusses Google's fast development philosophy in a brief video interview with Light Reading:
And here's Frank Zappa describing the same principles as Seligman talks about, applied to a different industry, in an interview from 25 or more years ago.
The point Zappa makes complements Seligman's point: Businesses that believe they know what the customer wants are wrong, even when those busiensses have good reason to believe they know what they're doing. Businesses succeed when they are realistic about their own ignorance about the customer, and try different things to see what works, in such a way that the cost of failure is minimal.
Canary testing is starting to get more vendor attention recently, but the concept isn't new -- a quick web search turned up this explainer from 2013. And Google has been using the word for years to describe its public test builds of the Chrome browser. The word comes from the idea of coal miners bringing canaries with them to detect the presence of carbon monoxide and other poison gases (which sounds like an urban legend but was in fact a real practice that continued to 1986, one of multiple examples of sentinel species used to detect dangerous environmental conditions).
— Mitch Wagner Executive Editor, Light Reading