Thanks to a growing group of PaaS (Platform as a Service) providers, cloud computing is becoming more prominent as a mechanism for developers to seamlessly deploy applications. Whereas IaaS providers offer bare compute cycles, SaaS providers offer access to such apps as CRM online, PaaS offerings provide turnkey services for developers to get their apps up and running quickly, with no infrastructure concerns needed.
Offered as a service, PaaS runs the gamut from development tools to middleware to database software to any ‘application platform’ functionality that developers might require to construct applications. Developers looking to cash in on this trend would do well to experiment with the following cloud application development platform offerings.
- Microsoft Windows Azure
Windows Azure lets developers deploy applications across a global network of Microsoft-managed data centers, offering a 99.5 percent uptime SLA. Applications can be developed via technologies like ASP.net, PHP, and Node.js. Developers can also host Apache Tomcat servers and JVMs via worker roles, while an Azure SDK for Java enables Java development. Microsoft recently added a video delivery service, Windows Azure Media Services, to its Azure arsenal. Azure also features SQL Azure database services, as well as services for storage, business analytics, caching, identity secure messaging, and content delivery. The Windows Azure HPC Scheduler eases development of compute-intensive parallel applications. Also, developers can list Windows Azure applications on the Windows Azure Marketplace.
- Amazon Elastic Beanstalk
Elastic Beanstalk provides a way to deploy and manage applications on the Amazon Web Services cloud. AWS services, such as Amazon Simple Storage Service, Amazon Simple Notification Service, and Auto Scaling, are used as infrastructure, and PHP and Java programming are supported. The platform is built with such software stacks as Apache HTTP Server for PHP and Apache Tomcat for Java. Developers retain control over AWS resources and can deploy new application versions to running environments or roll back to a previous version. CloudWatch provides monitoring metrics, such as CPU utilization, request count, and average latency. To deploy apps to AWS via Elastic Beanstalk, developers can use the AWS management console, Git, or an IDE like Eclipse.
- Google App Engine
Google App Engine enables developers to run Web apps on Google’s infrastructure. It features dynamic web serving; persistent storage with queries, sorting, and transactions; and automatic scale and load balancing. It supports Java and languages using a JVM-based interpreter or compiler, as well as Python and Google’s Go. The development environment enables developers to simulate App Engine on local machines. Applications run in a secure sandbox with limited access to the underlying OS, and Web requests can be distributed across multiple servers. For storing data, App Engine Datastore offers a NoSQL schema-less object datastore, the Google Cloud SQL relational SQL database service, and Google Cloud Storage, for storing objects and files up to terabytes in size. App Engine features APIs for authenticating users.
- VMware Cloud Foundry
EMC VMware has positioned its open source Cloud Foundry as Linux for the cloud, providing a level of application portability across clouds. According to VMware, Cloud Foundry does not lock developers into a single framework, a single set of application services, or a single cloud. Cloud Foundry is available via public instances and private distributions. It features CloudFoundry.com, a hosted environment; CloudFoundry.org, for collaborating and contributing to the project; and Micro Cloud Foundry, a VM version of Cloud Foundry to run on a Mac or PC. CloudFoundry.com supports development in Spring Java, Ruby on Rails, Node.js, and other JVM languages. Also supported via partners on CloudFoundry.org are PHP, Python, .Net, and others.
- Engine Yard Orchestra
Built on Amazon Web Services, Engine Yard Orchestra is for deploying PHP apps to the cloud. Developers can build applications with popular PHP frameworks and deploy from Git or Subversion. Applications can also be deployed with built-in content management systems, such as Joomla, Drupal, and WordPress. The core platform is built on PHP 5.3 and the Nginx Web server. Applications automatically scale with traffic and resource usage. A load balancer distributes loads across available instances, and an HTTP caching-mesh capability enables faster loading and response time. The platform is good for running APIs, Web services, and mobile and Facebook apps alike, according to Engine Yard.