When running Java applications in a cloud, the supporting runtime needs to fit the cloud environment. WebSphere Liberty, with its small runtime size, low memory footprint and fast startup time, is the only Java application server that was designed from the ground up to be a cloud runtime.
And why is WebSphere Liberty the best Java runtime for the cloud?
No one likes a large product download. Platform as a Service (PaaS) clouds typically deploy the runtime with each application update, so the size of the runtime directly affects the speed of application deployment. Liberty provides a Java EE 7 Web Profile installable archive in less than 65MB. This can be further shrunk to provide the right sized runtime for your application. This means that application updates are faster and, in an Infrastructure as a Service (IaaS) environment where you pay directly for filesystem space, it can save you money as well as time.
The total process size will contribute to how many application instances you can run per machine, or how many megabyte-hours you pay for. Liberty has the smallest memory overhead of almost any Java application server: about 55MB for a sample JSP application using a database. Its low resource use is nicely illustrated by some of the cool things we have done with it: take a look at Liberty running on a Raspberry Pi being used to control a model car.
Most cloud environments provide application elasticity: rapid scale-up and scale-down of an application as its workload changes. Behind the scenes this may be achieved simply by starting and stopping application instances; Liberty servers start in just a few seconds so they are ideal for this pattern of use.
Elastic scaling may also involve creating and destroying application instances. Deployment of an instance must be fast to allow the system to respond quickly to an increase in requests. As well as a small runtime, Liberty has a small configuration, typically a single XML file, and can be deployed using one zip file containing runtime, configuration, and application. If you roll your own cloud with scripts, deployment of a self-contained application instance in a single zip file makes things really easy!
For cloud administrators, the Liberty runtime can be upgraded with no migration of the user configuration or application. This means you can keep all the middleware running at the latest version without having to coordinate updates with your users; efficiently delivering new capabilities for one team without disrupting the rest.
Where can I use Liberty in the cloud?
IBM Bluemix has a choice of environments for running Liberty.
Instant Runtimes is a PaaS based on Cloud Foundry which provides the latest Liberty as the runtime for Java applications. All you need is your web application, IBM supplies everything else! You can use a command-line client or lightweight Eclipse tools to deploy your application into the Bluemix PaaS, and it is immediately available over the internet.
IBM Bluemix provides a comprehensive set of services for use by applications, including an HTTP session cache, SQL and non-SQL storage, message queues, social media connectivity, log analysis, and many others. The Liberty runtime is available through the Liberty build pack, which can automatically bind your application to many of the Bluemix services, so they are quick and easy to use. The build pack creates all the server configuration, or you can customize it if you need to.
IBM Containers give you full control of the configuration while providing a completely managed environment for your applications running in Docker containers. Using Docker allows you to have complete portability of your application, runtime, and configuration, in a single package across local and cloud environments for development, test, and production. This is a very efficient way to move applications through different systems and to have the widest choice of deployment target environments.
WebSphere for Bluemix has instances of WebSphere (both Liberty and traditional) available for immediate use, in a range of sizes and both as standalone and managed (collective and cell) topologies. You can “lift and shift” your existing application and automation scripts into this environment and usually see a significant reduction in cost.
If you want more control over the application’s environment, you can still let IBM manage the hardware (and the operating system if you want) and get started immediately on your project with the IBM Softlayer IaaS offering. With flexible billing, on-demand deployment, and single-screen management, it is a great way to build your Liberty cloud.
Deploy your applications in a Liberty package zip file along with Java, unzip and run! It really is that simple. You can set up a complete deployment in a few hours instead of having to wait for hardware.
Other PaaS environments
Liberty can also be used as a developer environment in other PaaS solutions.
Cloud Foundry The Liberty build pack that’s used in Bluemix can also be used by to deploy applications, with full production support, to a Pivotal Cloud Foundry installation or (for development only) to Pivotal Web Services.
OpenShift Enterprise The same build pack also forms the core of the Liberty cartridge for OpenShift v2, providing another option for production systems, also with development allowed in the public OpenShift Online cloud. OpenShift v3 allows deployment of Docker containers so you don’t need to use the cartridge and Liberty is fully supported in Docker.