Containers are booming, but still require developers to bother with servers. This is paving the way for more enterprise adoption of serverless.
Even as KubeCon Europe got off to a rollicking start with over 4,000 attendees, Brian Leroux, founder of Begin and erstwhile PhoneGap developer, was quietly coding at home in San Francisco, happy to not have to be bothered with containers at all.
"Things I won't be doing today," he wrote on Twitter, "Provision[ing] an instance, spawn[ing] additional instances, us[ing] ssh to investigate an instance, [or] roll[ing] upgrades to a fleet of instances."
His secret? Serverless.
Today, the furor over Kubernetes (and containers, generally) is loud, and rightly so: Containers mark a demonstrably better way to build applications, with Kubernetes the runaway leader for making it easy to manage those containers at scale. And yet, as Cloud Native Computing Foundation (CNCF) data suggests, Kubernetes, despite making containers easier, is still too hard for some, with plenty of enterprises jumping straight to serverless to get all the benefits of containers without having to think about containers.
Don't provision, don't roll upgrades, what do you do?
With all his newfound freedom, what is Leroux doing with his time? He detailed those act ivies in a later tweet:
- Pay only for services utilized
- Focus on business logic only
- Know immediately where any issues are because of per function isolation
- Deploy upgrades seamlessly in seconds
Redmonk's James Governor thought he spotted a trolling of KubeCon attendees in Leroux's post, but Leroux was pointing out "just the facts!," as he tweeted. Those facts are that while serverless comes with its own learning curve and problems, it frees developers from having to think about infrastructure and instead focus on business logic.
For an enterprise world steeped in virtual machines, containers have been a revelation, in large part because, while different, they still use familiar metaphors. Containers deploy in minutes instead of hours, taking far less time to boot up--among other things--but they leave developers working with servers.
Serverless breaks that server metaphor. As Leroux told me in a 2017 interview, "As soon as you take that metaphorical leap, you get a huge degree of isolation and in that isolation you get more durability. It's a lot like building static websites (effectively uploading a file)."
SEE: Special report: Riding the DevOps revolution (free PDF) (TechRepublic)
Again, for developers who have had to live in VM land, the container shift is evolutionary, not revolutionary. That's a good thing, overall. But, as enterprises try to embrace microservices, the container approach starts to show its limitations. In Kubernetes, after all, you can absolutely compose a microservices architecture, but you have to take care of the plumbing yourself. AWS Lambda and other serverless approaches take care of all of that for you.
No, really, this is easy!
This is, of course, anathema to some, given that Kubernetes only recently emerged as the container darling. Even so, Kubernetes is by no means simple, and the server metaphor remains one of its greatest strengths (tying developers to the VM past) and greatest weaknesses (making it harder for developers to get to the future). For many enterprises today, however, that link to the past is a big deal, and shows itself in how many companies are also deploying containers on-premises, as a CNCF survey has revealed:
Clearly, Kubernetes is one way that enterprises are choosing to upgrade development without shifting paradigms too drastically. Even so, it's not easy. When asked about key challenges, complexity, networking, security, monitoring, and storage topped the list:
Some of these seem to be getting better as Kubernetes, in particular, matures. But it's not clear that they will improve faster than the time it takes serverless to go mainstream.
Will the Kubernetes party end?
This is not to suggest that serverless will bowl over the Kubernetes crowd. Enterprise tech, even when it moves fast (and adoption of serverless has been lightning fast, with 41% of the developers surveyed by CNCF indicating that they already use serverless, with another 28% planning to do so in the next 18 months), doesn't move that fast. Companies like Red Hat will make a great deal of money for many years to come helping enterprises shift to containers.
SEE: Why containers are critical to successful DevOps projects (Tech Pro Research)
And yet...AWS Lambda grew 300% over the past year, according to AWS chief Andy Jassy, with "laggards" driving its adoption, according to Governor. As he wrote:
Containers can help with IT cost reduction, but the main driver of adoption is velocity and the efficient management of infrastructure. The problem with container infrastructures is that this efficient management also calls for highly skilled developers and operators. Talent is a scarce resource. Even if you can afford the people, they may prefer to work for cooler companies.
That drive for developer productivity is pushing some companies to avoid the "distraction" of containers and instead wholly focus on writing business logic. As such, we're likely to see enterprises embrace both Kubernetes and serverless, as different areas of the company move at different paces, with different levels of legacy to forklift into the future.
But if you're a betting sort of person, the smart money is always on whatever makes developers most productive. That's serverless, and, yes, it's a risk to the container evolution, as Rishidot analyst Krishnan Subramanian has called out.
- Special report: The art of the hybrid cloud (free PDF) (TechRepublic)
- DevOps: The smart person's guide (TechRepublic)
- Simple ways to instill more quality into DevOps (Tech Pro Research)
- VMware snaps up cloud startup CloudCoreo (ZDNet)
- What is Docker and why is it so darn popular? (ZDNet)