It's been almost six years since AWS Elastic Beanstalk hit the market, and that was when PaaS tools were a hot commodity. Times, however, have changed.
AWS introduced Elastic Beanstalk on its infrastructure as a service (IaaS) platform, and its intended use was somewhat different than similar products from standalone platform-as-a-service providers. According to AWS, developers commonly use Elastic Beanstalk to build websites, API back ends, mobile back ends and asynchronous workers -- all of which are more closely related to system-level development than business application development.
Beanstalk has continued to evolve, adding support for technologies such as containers. The service now supports Docker and integrates with both the Amazon Elastic Compute Cloud Container Registry and Docker's repository. Beanstalk can also launch multi- or single-container instances through the use of container orchestration tools, such as Kubernetes.
Other new Beanstalk features include support for Application Load Balancers, .NET and managed updates. But while AWS continues to invest in Elastic Beanstalk, businesses need to understand the service's intended purpose -- as well as its future outlook -- before they invest.
PaaS tools take a hit
PaaS technologies, in general, have not done well in the last two or three years. The biggest reason for this is that developers often prefer native development tools -- even on an IaaS provider -- versus PaaS tools, which they often find constraining.
For instance, with PaaS tools, there's an inability to get to the underlying resources, which limits the number and types of databases available to developers. Many enterprises also find PaaS tools to have limitations around management layers and static security models. These businesses have shifted toward more traditional tools and technologies in the cloud, such as the Azure development tools that are part of Azure IaaS, as well as common platform tools, like the traditional LAMP stack -- Linux, Apache, MySQL and Python. Developers generally choose either emerging or traditional development platforms that run in IaaS clouds, including containers, serverless, LAMP and Windows.
The rise of serverless computing has also had a negative effect on PaaS. Serverless development systems, such as AWS Lambda, provide many of the same benefits as PaaS tools, such as developer freedom from instance deployment. For some organizations, serverless has become the preferred way to deal with IaaS complexities.
What this all means for Elastic Beanstalk
While the overall outlook for PaaS tools might be grim, Beanstalk is not really a pure PaaS technology. AWS has paired Beanstalk with the other hundreds of cloud services it offers, including AWS Lambda. AWS does a good job integrating emerging technology with other services and tools in its stack. This makes it easier for developers to build serverless subsystems directly from the tool, and this integration on its own could be the single reason that Beanstalk survives.
If you follow AWS' point of view, Beanstalk is a systems-level programming engine that can better interact with native AWS cloud services than non-native tools could. In other words, while other tools are perhaps a better choice for core business application development, Beanstalk provides the ability to extend API services, as well as build back ends.
Elastic Beanstalk does not seem to be on the same downward trajectory as PaaS, as it is not a part of the core PaaS market. Beanstalk could be a good fit for those that are all-in on AWS. But the service is unlikely to fit workloads outside of the AWS universe -- which might be exactly what AWS intended.
IaaS users can build apps in Beanstalk
Amazon keeps up evolution of PaaS and IaaS with Beanstalk
What are some warning signs for Beanstalk apps?