The concepts and applications of platform-as-a-service infrastructure have come a long way since Heroku pioneered the field in 2008. At the DeveloperWeek conference in San Francisco, Adam Gross, CEO of Heroku -- now a subsidiary of Salesforce -- elaborated on how PaaS has changed over the last decade. He discussed data-driven apps and what to expect in the next 10 years.
The history of application development has been about leveraging different abstraction layers, whether it was a Java virtual machine or web browser. Gross said he believes these abstractions are becoming more sophisticated, and that will allow developers to spend more time coding business logic and less time configuring services. A key part of this transition is PaaS providers and tool-makers are becoming more opinionated in how they configure complex offerings. "If you don't approach stacks and tools with a reasonably good sense of how to put them together, it will be difficult for developers to consume and orchestrate this complexity," Gross said.
Gross said he sees it as an almost spiritual call to making software development easier. Even today, developers don't have to think about burning their own Linux distributions. "We have come a long way in reducing that -- and, hopefully, not just making it easier, but, hopefully, in increasing the possibility of the numbers that can build great applications."
Greater focus on teams
Gross said he expects three key changes for developers around team development experience, data-driven apps, and making governance and compliance fun. "The heart of PaaS, spiritually, is creating beautiful development experiences," he said. "The origin of Heroku was that [a] developer could take an app running on a laptop and deploy it on the cloud. A lot of that initial work was centered on the individual developer. Now, there is more emphasis on improving team development."
Relatively few apps are written by a single developer. Enterprises are starting to implement continuous integration and continuous deployment models. However, enterprises have had to work out the best strategy for putting these processes into place on their own.
The next phase of team development will lie in more opinionated PaaS infrastructure platforms that proscribe best practices from the beginning. This environment will automatically facilitate a smooth flow between development, testing and deployment. This means software development managers will need to do less work to stitch together these different components.
The rise of data-driven apps
Organizations are just now figuring out how to weave data and events into new applications. The first generation of data-driven apps relied on getting Postgres databases operational, which could be challenging at scale. Now, developers have a choice of SQL and NoSQL technologies, and large data storage fabrics like Hadoop and Cassandra are much easier to set up. In addition, event management tools, like Kafka, and data processing engines, like Apache Spark and Storm, are seeing tremendous improvements in tooling and ease of use.
"We are moving from a traditional web app model to more of an event-based model that has implications for architectures. It used to be a challenge to set up applications to handle thousands of events per second. And now, enterprises are building apps able to handle millions and even billions of events per second," Gross said.
This is leading to new data-oriented applications, which are a different kind of modality than traditional relational server apps. Today, organizations can set up the complex infrastructure required for this style of apps in hours. The three biggest use cases for these data-driven apps include processing inbound streams, managing data pipelines and establishing microservice backbones.
Simplifying governance and compliance
Gross said security and compliance concerns are the big challenge that legacy enterprises face as they look at these new technology stacks. These are issues that only increase as the cloud becomes more central to operations. "The question is: How do we make it easier for organizations to implement policy and compliance control to earn those trust levels?" Gross said. The thought that an app needs to be Payment Card Industry-compliant can send chills up an app developer's spine. There are few things developers like to do less than create apps in response to government requirements or new software controls.
The future of PaaS lies in finding better ways to bake compliance and controls into cloud infrastructure. PaaS providers can set up services for providing an audit trail of how source code gets converted into code and executed. Gross said he expects much of this to happen automatically behind the scenes, so developers spend less time implementing services for maintain logging controls and providing an auditing history during the development process.
"A lot of this stuff is, at times, a little unsexy," Gross said. "But it is really powerful for being able to allow developers to take the tools, languages, frameworks and skills further and deeper into the enterprises and provide more opportunities for careers and applications."
From DeveloperWeek: AI and deep learning
DeveloperWeek: Where Docker Swarm architecture is heading
Choosing a PaaS vendor