It is safe to say that Cloud Computing has already made its way from a buzzword to a widely adopted technology in the world of software development.
Cloud computing allows developers to overcome a limit of computing and data-storing resources in a local IT environment and eliminates the need for large-scale in-house IT infrastructure to host various applications, in the same time reducing development costs and shortening deployment cycle. Today’s numerous cloud hosting providers enable software engineers to develop and deploy their applications utilizing almost any popular programming language they require, including one of the most widely used of them — Java, together with its extensive JVM languages family.
With a proper choice of a cloud services provider, Java app code can be seamlessly and rapidly deployed, run and autoscaled in the cloud environment. It is hard to compare dozens of Java cloud hosting providers across the hundreds of development process related axes, but we still hope that this small overview of major present-day Cloud Hosting Providers will be helpful for you.
Amazon Web Services (AWS) is a cloud computing platform delivered by Amazon. It provides software developers with a complete set of Java environment infrastructure and application services. AWS allows to run almost any kind of applications in the cloud including scalable Big Data projects, diverse enterprise-class applications and mobile applications. For Java developers Amazon provides AWS Toolkit for Eclipse and a versatile AWS SDK for Java — a set of Java interfaces that significantly eases the task of tying your application with the extensive list of popular AWS services such as Amazon EC2, Amazon S3 cloud storage, DynamoDB NoSQL database and many others.
BitNami is a cloud hosting solution built on top of AWS and possessing an extensive library of environments and popular web-application stacks that allow quick deployment of over 30 diverse applications including WordPress, Drupal, SugarCRM, Redmine, Alfresco, etc. BitNami applications library of apps and development environments includes a fully configured Java environment available as a Windows installer, VMware image or AWS/Azure cloud server. While BitNami environments are thoroughly tested and configured, they, of course, allow developers to add any optional components such as PostgreSQL, Tomcat, etc.
Google App Engine (GAE) was one of the first Platform-as-a-Service (PaaS) solutions to hit the mass market with a preview version of the cloud service released in April 2008. Written in Java itself (with some Python and Go), GAE Java environment uses a Java 6 JVM, a Java Servlets interface and has a very comprehensive set of tools and interfaces that allow Java developers to access App Engine’s platform scalable datastore and services: JDO and JPA as a datastore interfaces, JavaMail Mail API, JCache — Java interface for Memcache, and others. App Engine Java SDK greatly helps to manage applications testing and deployment. GAE also provides development plugins for popular Java IDEs.
Jelastic is a relatively new player in the field of Java cloud hosting providers. It came out of closed beta just in October 2011, and only a year later, in September 2012, won Duke’s Choice Technology Leader Award, becoming over the same time a very popular solution for rapid deployment of large-scale Java applications. One of the main reasons for such popularity is the relative easiness of using Jelastic: unlike GAE or AWS, with Jelastic a software developer doesn’t have to code to a service-specific API, which enables (almost) platform-independent development. It’s enough to upload a Java application, and Jelastic will run and autoscale it with almost no additional server configuration or messing with virtual machines on developer’s side. Jelastic supports all kinds of Java-development related software stacks, the most popular servers (Tomcat, GlassFish, Jetty, Apache, Nginx) and various databases including PostgreSQL, MySQL, MariaDB, MongoDB and CouchDB.
Windows Azure is a cloud computing platform by Microsoft that, together with other IT giants like Amazon and Google, strives to establish itself in the growing market of PaaS/IaaS solutions providers. Despite having вЂ?Windows’ in its name, Azure allows developers to fire up any number of virtual machines running Windows or Linux (several distributions are available for both choices) and create scalable applications and services inside flexible environments of your liking. Windows Azure now fully supports using Java for writing Cloud Services and interacting with infrastructure of Azure platform. Microsoft provides a well documented Windows Azure SDK for Java, Windows Azure Plugin for Eclipse and Java stack support to help with development and deployment of your future Java applications, along with a nice set of tutorials and a 90-days trial to familiarize yourself with Azure before making a final decision about which Java cloud hosting to choose.
Heroku was a pioneer of the whole cloud PaaS field. It’s been in development since 2007, received all kinds of industry recognition and awards, and presently is one of the top PaaS choices when reliability, support and a good set of options are of the main concern. Initially Heroku was designed and used to host Ruby apps, but today it supports Java stack just as well: developers can use Java frameworks and some of the most popular JVM languages such as Scala and Clojure, with many of the widely used Java app servers (Tomcat, Jetty, Netty), frameworks (Spring, Grails and others) and libraries (Hibernate, Jersey, etc.) Heroku is also known for its attention to Agile-style deployment: developers can quickly deploy apps without leaving their IDEs and having to deal with cumbersome and time-consuming server management. Heroku also provides a large catalog of add-ons — additional cloud services to integrate with your applications. Using add-ons, developers can easily extend their apps with MongoDB or PostgreSQL database support, RabbitMQ messaging, WebSolr indexing and many other features, all tightly integrated and available instantly from within Heroku development environment.
There’s a big number of other cloud hosting providers for Java and JVM languages, both large and small — EngineYard, CloudBeesm OpenShift by RedHat and Cloud Foundry by VMware, to name a few. Almost all of them have great Java development core stack support and offer flexible pricing plans.
We hope that you’ll be able to use this short overview as a start point for further research when you decide to use the Cloud for your next big Java project. Feel free to contact Abto Software if you need an experienced and reliable Java software development outsourcing team.