Top Providers of Platform as a Service
by Svitla Team
Today we often hear that this or that application was made on PaaS but what exactly does it mean and what profit can an IT company gain from using PaaS in their development process?
PaaS is a cloud application platform that automates the hosting, configuration, deployment, and administration of application stacks in an elastic cloud environment. In simple words, you actually rent virtualized space and services for running, developing or testing new or existing applications.
PaaS has several advantages for developers. First of all, this method of developing applications allows you to augment the infrastructure and tools by means of an already established cloud company and the expanses on the PaaS infrastructure are much less (some PaaS are even free) than on the real hardware.
PaaS gives you the ability to quickly make your app available to a wide audience. With PaaS, geographically distributed development teams can work together on software development projects. Services can be obtained from diverse sources that cross international boundaries. There is no need to maintaining multiple hardware facilities that often perform duplicate functions or suffer from incompatibility problems as all your teams use a single vendor infrastructure.
On the downside, choosing a PaaS you should be aware that each of them provides only specific tools and programming languages. Moreover, the some functions, flexibility and performance may be limited. One of the simpler examples of PaaS is Facebook. Developers can create specific applications for the Facebook platform using proprietary APIs and make that app available to any Facebook user. The popularity Platform as a Service grows each year. Though such huge companies as Google, Microsoft and Salesforce are dominating in this sphere, the smaller independent teams like Engine Yard, Caspio, and Appfog enlarge their portfolios of PaaS-projects and can become a decent competitors.
Google App Engine
Google App Engine is created for developers using such programming languages as Python, Java (and, by extension, other JVM languages such as Groovy, JRuby, Scala, Clojure),Go, and PHP. Go and PHP are in experimental status. The Java environment supports other languages and there is a SDK for each of the them as well as a plugin for Eclipse. Google App Engine uses a sandbox model which isolates processes thereby reducing the risk that a rogue process on a physical server will disrupt operations of other processes on that server.
- Automatically handles and balances all instances and data centers for web applications
- If Google servers go down, applications will not run properly
- Not flexible for future opt-out. If you leave GAE, it is not possible to port your app and you will need to develop your application from scratch again.
Azure by Microsoft is a combination of IaaS and PaaS. Windows Azure allows developers to build sites using ASP.NET, PHP, Node.js, or Python and deploy using FTP, Git, Mercurial or Team Foundation Server. In addition to software development kits, developers can use Visual Studio for creating and deploying applications. Data management is fulfilled with SQL Database, Tables or Blobs.
- Since Azure is an IaaS and PaaS in one, developers can mix and match IaaS components with PaaS options giving you more flexibility.
- Only Windows centric applications are supported by Azure and you cannot change the OS as it is already pre-installed.
Amazon Web Services
Amazon Web Services is largely an IaaS, however, many of the services of AWS are much in common with PaaS systems. Founded in 2006, Amazon.com started with its IaaS services Elastic Compute Cloud (EC2) and Simple Storage Service (S3), which are able to host any application environment. AWS is highly portable and customizable as code can be written in open source languages like PHP, Java, Python, Ruby. Oracle, MySQL and SQL Server can be set up and managed, but AWS offers RDS web service as well, which eliminates database administration tasks. One more product of AWS is Elastic Beanstalk. It can be used for automatic load balancing, auto-scaling, and application health monitoring. There is no additional charge for Elastic Beanstalk – you pay only for the AWS resources needed to store and run your applications.
- Customized, highly scalable and stable technology architectures can be built on Amazon cloud serving US, Europe and Asia pacific.
- A lot of management overhead comparing to the provided PaaS possibilities
- Poor performance level
Force.com from Salesforce1 Platform family (that also includes Heroku and ExactTarget) is called by its owner “a social and mobile app development platform”. Force.com is different from other PaaS solutions as it focuses on business applications. The Force.com PaaS executes the strongly-typed programming language Apex. The language uses similar to Java and C# syntax but approaches architectural elements, object-oriented programming and database access a bit differently. You can use REST and SOAP APIs to access, modify and report on your organization’s data and to create notifications when it changes.
- Force.com apps can be built a lot faster than other PAAS apps and they can be built 5x faster than traditional on-premise development solutions.
- Only Apex can be used.
One more product from Salesforce family is Heroku. This PaaS supports Ruby, Python, Java, Scala, Cloture and Node.js. The platform provides abstract computing environments called “dynos”, which are virtualized Unix-style containers that run processes in isolated environments. Based on the number and size of dynos deployed ($0.05/hour – $0.10/hour), the size of the Postgres database and addons used.
- Heroku is ideal for quick deployments and fits a wide range of distributed applications.
- Starter databases with up to 10,000 rows are free.
- Heroku fits better the individual Ruby developer rather than a big company. However, there are big corporations who use Heroku for their development needs as well.
- Heroku has the read-only file system which makes it difficult to handle bulky file uploads such as videos or high resolution images. But, that can be easily overcome using Amazon S3 or something similar.
Engine Yard is one of the pioneers of PaaS that has been running cloud-based platforms for more than five years and with more 2000 successful production customers. Engine Yard provides a set of services on top of Amazon AWS. Though supported languages of Engine Yard are limited to Ruby, JRuby, REE, Rubiniu, Node.js, and PHP, it can use a range of database and caching options including MySQL, PostgreSQL, memcached, and Redis. Engine Yard takes care of key operations tasks such as performing backups, managing snapshots, managing clusters, administering databases and load balancing. Engine Yard is based on a “pay as you go” model with standard and premium support options.
- A key advantage of Engine Yard’s offerings is superior customer service (top-caliber Ruby and PHP experts available to you 24 hours a day, seven days a week).
- Limited range of supported languages.
- Really multi-language PaaS.
- Open-source platform.
- Works well with Git, but non-Git deployments might require additional steps.
AppFog is a Platform-as-a-Service used for a range of languages such as PHP, Ruby, NodeJS, Java, Python, Scala and Erlang and offers MySQL, PostgreSQL, Redis and RabbitMQ along with third party add-on services. When you deploy an application, you can also select the cloud provider – Amazon, Microsoft, Rackspace, and more. It can be used as a DaaS (Data as a Service) with ClearDB, MongoHQ, MongoLab, Redis Cloud and Xeround. AppFog is based on the open source Cloud Foundry platform and supports Git, SVN and Mercurial for code management.
- Ability to deploy to several cloud providers at once.
- Possibility to configure how much memory is needed to allocate to application
- Not identified yet.
Caspio seriously differs from the other PaaS providers on this list. Caspio’s main designation is creating basic databases, providing data entry forms and generating reports. It includes a point-and-click visual development tool requiring almost no coding. Caspio applications are deployed by copying snippets of code to a web page or by accessing a URL to an application page. Caspio also has a range of preconfigured applications.
- Intuitive graphical UI and wizard driven development environment helps to easily start an application development in the cloud.
- As Caspio is not a true PaaS, application integration with existing software can become difficult and it is best suited for small businesses with limited development resources.
Stay informed - subscribe!
Join our newsletter and get the latest content right in your inbox once or twice per week.