With a PaaS, developers of cloud-hosted applications should be able to free themselves from the burden of infrastructure provisioning, configuration, and management. Vendors quickly promised them that they could focus on administration and writing code.
Organizations are increasingly seeing the value of this approach, with the latest estimates from Gartner indicating that PaaS is a $60 billion business. Instead of driving the OS, middleware and application code – which is the case with dedicated hosts and VM instances – a PaaS platform also differs from CaaS (Containers as a Service) services, since the management of OS binaries is the responsibility of the cloud provider.
Additionally, with support for compiled container images, almost any application that can be deployed on an IaaS is compatible with a PaaS framework. AWS Elastic Beanstalk and Google Cloud App Engine are two such offerings.
This comparison between AWS Elastic Beanstalk and Google Cloud App Engine looks at key features and typical use cases.
The AWS Elastic Beanstalk platform is used to deploy web applications. Initially, Elastic Beanstalk supported Apache Tomcat as a J2EE runtime environment. Google App Engine (GAE) is a similar framework for web applications. It supports multiple web technologies as well as persistent storage. To do this, it uses a network file system and a database (Datastore, FireStore, Cloud SQL).
Over time, AWS and Google Cloud have expanded the supported languages and runtimes, which has increased the benefits of these PaaS products.
Beanstalk supports several frameworks for Go, PHP, Python, Ruby, Node.js and Java (J2EE and Java SE) languages. As an option, it is possible to integrate an RDS database and to integrate a MySQL, PostgreSQL, Oracle or SQL Server DBMS. But AWS recommends adopting an external RDS or DynamoDB database in production. Google App Engine supports Go, Java, Node.js, PHP, Python, Ruby and has customizable returns for other languages.
Despite this, these two PaaS services help in developing and deploying dynamic, mobile web applications and packaged API back-ends.
Advantages of the PaaS offer
For developers and IT Ops teams, the primary benefit of using a cloud service like Elastic Beanstalk or App Engine is the elimination of configuration, deployment, scaling, security, or overhead. infrastructure management. Other benefits include:
- automatic load balancing, traffic splitting and routing;
- traffic splitting to simplify hosting multiple versions of an application;
- moving users from canary to beta and then to production as needed;
- integration with cloud logging, monitoring and diagnostic tools;
- automatic application version control
- automatic runtime updates; and
- pre-certified compliance with many regulatory standards.
Elastic Beanstalk vs App Engine: Feature Comparison
Elastic Beanstalk and App Engine have so much in common that differences in functionality or implementation will rarely be a deciding factor in choosing one or the other. Instead, developers will be influenced by reasons such as their existing cloud computing relationship and expertise, as well as cost.
Most users on Gartner Peer Insights and various forums/blogs (Reddit, Medium) welcome the advantages cited above, but some criticize the too steep learning curves of these two services. Others consider Beanstalk a “bad wrapper for EC2”, while App Engine is singled out for a few limitations. The best thing to do? Make up your own mind by testing the two solutions, once a use case has been correctly defined.
Financially speaking, the case of Elastic Beanstalk is special: AWS only charges for the underlying services used, such as EC2, S3, and RDS instances.
App Engine pricing depends on two types of environments, standard or flexible. Standard instances have a fixed cost of $0.05 to $0.40 per hour. Outgoing traffic is charged 12 cents per gigabyte, incoming traffic is free. Flexible instances claim to pay for vCPU units ($0.0526 per core/hour) and amount of RAM ($0.0071 per core/hour) per hour. Outbound network traffic and persistent storage volumes are counted as Compute Engine usage. Calling services (Cloud Storage, Cloud Logging, Cloud Tasks, Pub/Sub, etc.) incurs additional charges.
The following table compares the two products across a series of key features.
Both AWS Elastic Beanstalk and Google App Engine are optimized for dynamic web applications. These types of applications combine static and dynamic content, control logic, and back-end data stores. All modern websites use dynamic content created by built-in scripts and plugins.
These PaaS offers accommodate private and public applications. But they’re especially good for outward-facing applications with fluctuating workloads that benefit from load balancers, autoscaling, and multizone capabilities. They also work with compiled code and non-standard runtimes, now that both services host custom Docker images. Workload variability is common on e-commerce, social networking, or collaboration sites. This is also the case with any enterprise application that processes data in batches at regular intervals, such as financial reporting and invoicing software.
While AWS Elastic Beanstalk and Google App Engine are products that can run on demand, they’re not ideal for event-driven applications. These types of applications are best suited for serverless solutions such as AWS Lambda, AWS Fargate, Google Cloud Functions, and Google Cloud Run. These PaaS integrate with pub/sub services and are billed on demand.