Derek Collison’s first cloud platform might have sterling credentials, but he now calls it a tarnished effort.
“I see the writing on the wall. A couple years ago, I started saying PaaS is dead. I’m arguing that Cloud Foundry has not been able to keep up. At KubeCon [Google’s conference for the Kubernetes container orchestration tool], IBM was not on a panel. Docker’s been a thing now for a year, and they’re just announcing support. Developers went through the PaaS revolution; now they’re saying, ‘We want our opinion back,’ ” he said.
Opinions about operating systems, language versions and the like are more important to developers now, he believes, given the DevOps point solutions available and the tremendous compute power at their fingertips.
It might be hyperbole, but then Collison does pack a credible punch as the man behind the open-source Cloud Foundry PaaS, which now underpins IBM Bluemix, HP Helion and Pivotal Web Services. As CEO and founder of San Francisco-based Apcera, itself a cloud application platform (though, he argues, not a PaaS), he’s not alone in seeing the rise of containers as a direct hit to the promise of PaaS. And he doesn’t buy the argument that, conceptually, PaaS was simply a method of container orchestration.
“I wrote most of the original stuff,” Collison said. “We didn’t use containers [until Warden Linux container management was built]. The point was, that was a means to an end. ‘Hey developer, give me access, give me the right to some of the opinion about VM, memory, networking, and for that I will trade you a massive speedup.’ ”
Will the rapid deployment of modern applications be dominated by the elegant orchestration of containers on cloud resources? Or will microservices breathe new life into PaaS?
“Everybody needs a PaaS; everyone needs an automated infrastructure for deploying your application,” said Chris Richardson, who wrote a Java PaaS for Amazon EC2 that was acquired by SpringSource in May 2009. “Where the question mark is is whether people are going to be widely adopting any of the PaaS products, or what tech will people be adopting; will it be PaaS or Docker clustering?”
But there’s much more to consider, in light of the Amazon Re:Invent conference in October. Could Internet of Things applications spur order-of-magnitude complexities (scale, security, streaming data and storage) that launch a new PaaS boom? Will “serverless” apps, practically sentient, navigate a programmable Web on their own terms?
But first, a simpler question: What is a PaaS?
The trouble with definitions
While both Infrastructure- and Software-as-a-Service seem relatively easy to define (one offers compute resources, the other offers standalone apps, both via the cloud), PaaS, by its nature, sits between these two extremes. Does a cloud-based IDE, or any form of cloud-based coding, fit into the PaaS picture? Not according to Richardson, who says that a cloud IDE like Xamarin (for cross-platform mobile development) or Orion (a version of the Eclipse IDE) are definitely not a PaaS. But a tool that deploys and manages your uploaded code is.
Not everyone agrees.
“Honestly, I struggle with the exact definition of all these terms,” said Paulo Rosado, Lisbon-based CEO and founder of OutSystems, which makes a PaaS optimized for visual rapid application development. “The typical Infrastructure-as-a-Service providers, when they incrementally add higher level services—I ask, are they now PaaS?”
Conversely, when he looks at similar offerings that are code-focused, he sees them adding platform services.
“Appcelerator has Mobile Back-end-as-a-Service,” said Rosado. “Xamarin is adding that same capability and moving out of the IDE-only tool space, because it makes sense. It’s needed for the mobile tool. You need to cover the full application life cycle. If you miss one piece, your promise of fast change isn’t there.”
Serverless doesn’t mean serverless
Adding to the confusion are Amazon’s “serverless architectures,” which it calls a motivation for its Lambda tool. Lambda, which has a predecessor in IronWorker by Iron.io, automatically runs tasks in response to modifications to objects in Amazon S3 buckets, messages in Kinesis streams, or updates in DynamoDB, among other events.
In a white paper from October 2015 titled “AWS Well-Architected Framework,” Amazon advises: “Use server-less architectures: In the cloud, server-less architectures remove the need for you to run and maintain servers to carry out traditional compute activities. For example, storage services can act as static websites, removing the need for Web servers; and event services can host your code for you. This not only removes the operational burden of managing these servers, but also can lower transactional costs because these managed services operate at cloud scale.”
Does this serverless approach actually leapfrog containers and PaaS? Probably not, since “serverless” translates to “Don’t worry about servers, let us do that for you.” So capacity, scaling, fault tolerance, updates, logging and the like are AWS’ concerns, while you enjoy event-driven scale at sub-second performance—and sub-second metering.
“I’m super excited about AWS Lambda,” said Richardson. “That’s the ultimate PaaS, albeit in constrained ways. You give it your mini node.js app, say ‘Connect to a Kinesis stream or S3 bucket or other input stream,’ and say ‘Invoke this every five minutes,’ and you don’t have to worry about deployment at all. With the API gateway, I can say, ‘When a request comes in from this URL, invoke this Lambda.’ It’s quite flexible.
“I’ve just started using it. For this platform that I’m building [that] has an API, I have a Lambda. After three consecutive failures, I get an e-mail saying I have a problem, so it’s trivial transaction monitoring and I don’t have to set up a service or run a Docker container.”
It’s not the only game in town, however: The aforementioned IronWorker, launched four years ago, can run tasks in all major programming languages on any cloud (even private). But Amazon may win once again on cost, since with [AWS] Lambda, you pay only for the compute time you consume.”
Azure and AWS
Amazon managed to swoop in and control the cloud business before anyone else had a chance, but Microsoft has done a bang-up job of gaining traction with Azure. But is Azure more popular as a PaaS or as IaaS?
There aren’t definitive numbers on how popular the higher-level elements of the stack are, but it’s not a stretch to imagine that Redmond would succeed at building a developer tool set. Perhaps more impressive is that it has quickly bulked up its deployment muscle to become the second-place IaaS provider. It continues to add elements to its PaaS, however, such as Cloud Foundry, an IoT suite, the Azure Service Fabric, Azure Security Center, and, of course, Docker.
Like every other PaaS out there, Azure has worked to incorporate Docker natively in response to developer demands. At its September 2015 virtual conference, AzureCon, Redmond announced a prototype Azure Container Service, which continues the company’s work with Docker for container creation and Mesosphere for orchestration.
The Azure Container Service Resource Provider for Azure Resource Manager lets you create and manage clusters of hosts preconfigured with Docker, Apache Mesos, Marathon, and Docker Swarm. “This open approach to container application management means you can choose the technologies you prefer and layer them on top of the Azure Container Service,” wrote Ross Gardler, program manager for Microsoft Azure, on the Azure blog. “Furthermore, by supporting community-defined APIs at every level of the service, we ensure that you can maintain portability of your code from developer workstations, to on-premises private clouds, and to Azure.”
Managing a cluster of containers is no easy task, however. According to Gardler, “At present this configuration requires thousands of lines of code, not to mention a deep understanding of the technologies involved. Our Resource Provider will abstract away much of this complexity. Those thousands of lines will be reduced to tens of lines for default configurations. This simplification means fewer configuration errors when deploying and managing these complex clusters.”
Collison: What I learned from writing Cloud Foundry
When he looks at Cloud Foundry, Derek Collison sees four points that could underlie the future of application deployment. “I can say ‘This is what I did right with [Cloud Foundry] and this is what I missed.’ What I missed first was trust issues: having a platform that we can trust,” he said.
Trust, he explained, means defining what is allowed to run inside a workload and by whom, checking for Zero Day exploits and the like.
“Second, you need to orchestrate diverse workloads, not just greenfield apps,” said Collison. “What can a workload consume, that’s largely a solved problem. Pick your flavor of tech: VM [or] container.
“Third, where can the workload run? It’s less about the underlying technology that drives it—Marathon or Mesos or Kubernetes. It’s about, is it technology-aware?
“Fourth, what kind of workload access do you have to a truly programmable network? All of this ecosystem turnover, it’s not about containers. They will eventually get to this: Those four things have to be what makes up the solution. No matter what everyone says, that’s where we’re going to end up.”
Cloud Foundry enjoys Netflix innovations
Collison’s claim notwithstanding, Cloud Foundry does appear to have a healthy level of growth in services. One that was recently announced is based on the popular Spring Cloud OSS, used by Netflix for video streaming. According to a Pivotal announcement, “Spring Cloud Services for Pivotal Cloud Foundry goes one step further to provide opinionated provisioning and life-cycle management to these components.”
And Cloud Foundry continues to spread the OSS joy to include popular IaaS vendors. In November 2015, Microsoft upgraded its preview of Cloud Foundry on Azure to general availability. Customers can run either the open-source Cloud Foundry or the Pivotal Cloud Foundry, with features like:
- Provisioning resources required for BOSH and Cloud Foundry via Azure Resource Manager template
- Using Azure CPI to provision and manage VMs for Cloud Foundry
- Using all standard Cloud Foundry features such as availability sets and persistent disk snapshots
- Integrating service brokers
“The [General Availability] of Cloud Foundry on Azure is a major milestone for both the open-source community and our enterprise customers,” said James Watters, vice president and general manager, Cloud Platform Group, Pivotal. “The demand for Azure was so high that we already have Fortune 100 customers building their next-generation applications with Pivotal Cloud Foundry on Azure.”
PaaS is dead. Long live PaaS
The semantic arguments around PaaS and containers could ultimately cost some companies money if they misunderstand the differences, according to Simon Wardley, a researcher for Leading Edge Forum and a frequent keynoter at OSCON, the O’Reilly Open Source Convention. “PaaS has a bright future when we’re talking about Heroku, [Google App Engine], Azure, Cloud Foundry and equivalent systems,” he blogged, going on to praise “underlying components” such as Docker.
But the argument that containers change everything goes back to Collison’s claim that containers weren’t in the original Cloud Foundry, and weren’t the point of the framework at all. Containers did make it into Cloud Foundry and other PaaSes, but it wasn’t until Docker that anyone cared. The current excitement, Wardley posits, shouldn’t color the historical facts.
“Unfortunately there’s a lot of stuff out there trying to pass itself off as PaaS and a lot of misunderstanding on componentization,” wrote Wardley. “While components like Docker are extremely useful (and deserve to spread), there are those trying to portray it as a key defining characteristic of a PaaS. Forget it; Docker will become a highly useful but also invisible component of PaaS, and the success of PaaS will depend upon the limitation of choice and certainly not the exposure of underlying systems like Docker to end users.”
Further, the tricky business of orchestrating containers may be a little too ops-oriented for the same developers who are enthusing about containers. Marathon, Mesos, Diego and Kubernetes are, by nature, meant to do much more complex work than Docker. But the business value of what Pivotal Cloud Foundry calls “opinionated provisioning and life-cycle management” will be enormous if it helps build a microservices-based application, which is not synonymous with a container-based application.
According to Richardson, “These days, microservices and containers are very much intertwined, which is unfortunate. Microservices are an application architecture issue. Is it a monolith or is it a set of collaborating services? Then the question you have to answer is how do I deploy it? Containers are just one of the possible deployment options.”
Head: AWS Lambda gets developers excited
The Lambda functions that Amazon launched in 2014 were rapidly expanded in 2015, Amazon CTO Werner Vogels announced in his keynote at the company’s October 2015 Re:Invent conference.
“Remember, no server is easier to manage than no server, yeah? So it makes it simple for you to build applications for which before this you had to run sometimes a whole fleet of EC2 instances,” he said.
One customer case study Vogels mentioned was AdRoll, which “needed to run a whole fleet of EC2 instances to continuously monitor their S3 bucket, and then take that data and push it out to six different regions around the world. Now, with Lambda, they can actually remove that whole EC2 fleet, and just have simple functions that have been triggered by the arrival of that simple data.”
In summary, said Vogels: “We see a whole set of innovative applications being built because now you no longer have to worry about where to run them. We will do that for you.”
New features in Lambda include:
- SES inbound rules
- CloudWatch Log processing
- Python 2.7 support
- Longer-running functions up to five minutes
- Resource sizing
- Scheduled functions
- Functions versioning
- IoT back ends
- VPC support
Amazon’s stealth cloud market grab
Few people saw it coming—and when they did, it was already too late. Microservices consultant Chris Richardson recalls his first encounter with AWS.
“I remember a presentation at our East Bay Java user group,” he said. “This was in 2006. I first heard about EC2 when we had a guy from Amazon come. We thought he was going to talk about selling books, but instead he talked about provisioning 20 servers for 10 cents an hour. At this time, servers were precious resources—none of my clients ever had enough hardware. I ended up getting an AWS account and writing a Java PaaS for it. That was what became Cloud Foundry [his version, which ended up being the name for the completely different PaaS written by Derek Collison, when both Richardson’s and Collison’s companies were ultimately acquired by VMware].”
Richardson expresses admiration for how thoroughly Amazon went on to not only dominate the cloud market but also have lasting influence on DevOps practices.
Today, Amazon Web Services’ cloud IaaS market share is some 28%, according to estimates by Synergy. That’s compared to Microsoft at 10%, IBM at 7%, Google at 5%, Salesforce at 4%, and Rackspace at 3%.