Using a PaaS is a proven way to decrease costs, speed the time to market and removes the burden of supporting a physical infrastructure if one wants to deploy a java app without worrying about computing resources, tracking licenses, cost of installation and configuration/administration of the software. Business owners and IT executives are increasingly looking for PaaS that will be the backbone of their java app deployment. However, there are many challenges on the way.
PaaS should serve as a long-term solution that is able to lower the total cost of ownership, provide scalability as well as security. In addition, one should not neglect such things as return on investment and the ability to leverage current staff skills. There are many products on the market and each one has its strengths and weaknesses. It is important to leverage the capabilities based on the needs of the team, business and product developed.
Most popular platforms to deploy your Java app
When you choose a reliable cloud platform for deploying Java app it is easy to get lost in all the options. In this article, we chose some of the most popular products on the market to look at their strengths and weaknesses.
AWS Elastic Beanstalk
Amazon’s AWS Elastic Beanstalk has been one of the first players in the market and has managed to leverage a great portion of popularity in the market of Web and mobile Java SE app development. It provides solid native PaaS and IaaS capabilities, support for a wide range of databases, strong scalability and a very flexible “pay-as-you-go” pricing that is one of the lowest on the market. Amazon provides its own AWS CodeDeploy to automate code deployments to Amazon EC2 instances. It also offers third-party continuous integration tools, such as Jenkins, hosted on AWS.
While AWS is great for starting apps from scratch is still lags behind in hybrid cloud, which is essential for enterprises that have to worry about a bunch of legacy infrastructure and users that you have to accommodate during your transition to the cloud. Amazon is well aware of the problem and will keep improving to keep up with one of its main competitors in a similar price-range – Microsoft’s Azure.
Microsoft, being one of the first PaaS on the market, alongside Amazon, also accumulated a big market-share. Azure Cloud has a deep bench of popular development and system administration tools and includes the database, middleware, data grid and mobile services. Azure’s hybrid cloud capabilities are strong and they give Azure a greater footprint in the private and hybrid cloud markets. It is renowned for its security features and bundles nearly “everything a developer would need”. Although Microsoft’s development offerings are focused on those organizations using its own .NET framework, it has also built strong bridges to the non-Microsoft developer community through solid support for Linux open-source tools and middleware.
Unfortunately, it forces developers to manually create their own Java servers, unlike its more automated provisioning of servers using Microsoft’s own .NET framework. Unlike the competitors, autoscaling is not available in all price tiers.
IBM has the potential to leverage its legacy technology in areas such as databases and middleware, but it is relatively new to PaaS and has yet to deliver on or prove some capabilities. Alongside Microsoft Azure, it is one of the leaders in PaaS adoption. It is very beneficial for applications leveraging IBM’s DB2 database, its established middleware options or its emerging Watson analytics capabilities. Among other features, it allows Bluemix users to link their projects to GitHub’s collaboration, code review and code management platform.
IBM is still integrating legacy tools with Bluemix and it is not compatible with Java EE6. Some apps built for IBM WebSphere cannot run on its Bluemix PaaS and it is still lacking in scaling its IaaS offerings. Potential delays and learning curves may happen as new capabilities are added. IBM works to integrate its underlying SoftLayer open-source platform with its Bluemix PaaS, so there’s a lot to come out of IBM Bluemix in the near future.
Oracle Cloud Platform
Oracle service breaks its pricing down into a monthly fee, meaning if you are only planning on occasional use, then this platform may be too robust for your casual development needs. Oracle private clouds are not delivered “as-a-service”. This solution is a rental, which can be modified, but is at the same time bound by hardware and software parameters, for a specified rental period. If you wish to overlook these complications it is one of the most solid choices of PaaS on the market.
Red Hat OpenShift
Red Hat OpenShift offers a wide range of development tools. It supports a wide variety of application servers, such as Tomcat, and a variety of IDEs. OpenShift also has complete support for Red Hat’s popular JBoss Application Server. Currently, the company is integrating its PaaS, IaaS and hybrid cloud management offerings in Red Hat Cloud Suite for Applications. Applications developed on OpenShift can be easily moved to other environments supporting the same open-source languages. Each application or database runs within its own Linux container equipped with security features of SELinux. Red Hat OpenShift is generally considered a solid Low-cost model for open-source software.
Unfortunately, its reliance on AWS for its supporting infrastructure may limit enterprise-class capabilities and make management more complex and costly. Lack of a tightly integrated stack of development and management tools may increase operational costs, but it is still a solid choice for organizations that want maximum portability among cloud and on-premises platforms and enterprises skilled in, and comfortable with, the use of open-source platforms.
Heroku, one of the first cloud platforms, has been in development since June 2007, when it supported only the Ruby programming language, but now supports Java, Node.js, Scala, Clojure, Python, PHP, and Go. In addition to language options, Heroku offers flexibility in terms of its add-ons and third-party extensions. Several third-party features are designed to integrate seamlessly with this platform, particularly extensions that are notoriously difficult to integrate with existing code. This means you can add these features with a single click of a mouse. The system is also completely scalable.
When it comes to storage, it is important to remember that Heroku is actually a true cloud computing platform, meaning you will not be able to access additional local storage outside of your database.
Overall, Heroku is a powerful platform as a service. With a scalable and customizable dyno system that allows you to pay for only what you need and one-click add-on features, this PaaS is both easy enough for hobbyists to use and powerful enough to handle large companies’ apps.
Before choosing a PaaS platform, organizations should consider a variety of factors including the types of applications, data sources, services and end-user devices (such as mobile platforms) on which their applications will run, will need to scale, the cost of such scaling and whether a provider enables your costs to shrink dynamically with your resource usage. With everything from the enabling technologies to customer needs evolving rapidly, customers face a challenging task in evaluating PaaS providers. While Oracle Cloud is a great overall solution it may be better for a smaller enterprise to look at such options as Heroku, and if your aim is to implement cloud to your legacy infrastructure using hybrid cloud Azure might be a choice for you.