If you are keeping your eyes on social, mobile, analytics and cloud (sometimes referred to as SMAC) technologies, one of the most popular subjects in this community must be IBM Bluemix. What is IBM Bluemix? Here is the official description of IBM Bluemix from the webpage:
IBM Bluemix is an open-standards, cloud-based platform for building, managing and running apps and services of all types (web, mobile, big data, new smart devices). Capabilities include Java, mobile backend development, application monitoring, as well as capabilities from ecosystem partners and open source—all through an as-a-service model in the cloud.
Sounds great, right? There have already been a number of blog posts and articles published on the web talking about the infinite possibilities with IBM Bluemix, but the quickest way for us to learn Bluemix is to get the experts teaching you face to face! IBM has organized 200 days of events about IBM Bluemix this year, and I participated in the Hong Kong session conducted on June 18, 2014.
There are three types of events being conducted in the 200 IBM Bluemix days:
- Bluemix advantage: Developers and business leaders alike benefit from hearing how Bluemix and IBM SoftLayer offer a low-risk, secure, cost-sensitive environment using new capabilities and technologies geared toward the cloud. Take advantage of the opportunity to learn how to differentiate and leapfrog your competition with IBM Bluemix and SoftLayer.
- Bluemix hands-on workshops: Workshops provide an opportunity to build and deploy applications and services like DevOps and data in a matter of hours on Bluemix (built on SoftLayer)!
- Bluemix meetups: At meetups, participants can relax, network and listen to IBM experts provide an overview and live demo of Bluemix.
I attended an internal enablement session that included a mixture of all of the above, and I found the event very valuable given the effectiveness of direct, face-to-face communication with our Bluemix expert. Here are my key lessons from the session:
1. The difference between IBM SoftLayer and IBM Bluemix
SoftLayer and Bluemix are two different cloud service models from IBM, and there are quite a number of people mixing them up.
- IBM SoftLayer is considered an IaaS (infrastructure as a service), which manages infrastructure resources as a resource pool featuring self-service provisioning, rapid elasticity and measured services.
- IBM Bluemix is considered a PaaS (platform as a service) built on top of IaaS (in this case SoftLayer). PaaS is an application platform delivered as a service that makes it easier to deploy, run and scale applications. IBM Bluemix also contains cloud services, which bring together operational, development, application, database and third-party services so that developers can quickly build new composable applications.
The following diagram visually illustrates the coverage difference between IaaS and PaaS stacks. With IBM Bluemix as PaaS, developers can focus on developing applications and manage the corresponding data without worrying about the rest of the stack. One of the keys here is that IBM Bluemix sets up integration services that are auto-managed, and developers can save the time of installing the OS, image and middleware before running the application. In one of the demos highlighted during my Bluemix day, we actually got a polling app started from idea to coding within two minutes.
Figure 1: The difference between SoftLayer and Bluemix
2. Bluemix architecture
In short, IBM Bluemix is an implementation of IBM open cloud architecture using Cloud Foundry, which is an open source cloud computing PaaS. IBM has also provided services and runtimes in the ecosystem based on the IBM software portfolio.
The following diagram shows the high-level architecture of IBM Bluemix.
Figure 2: High-level architecture of Bluemix
IBM Bluemix can be accessed by either REST HTTP requests or the Bluemix user interface (UI) from a mobile or web application client or even a browser and command line. By using SoftLayer and its virtual machine (VM) support, Bluemix also provides an application hosting environment for applications running (for example, mobile backend applications) on the server. These applications will be able to connect to Bluemix hosted services (say Cloudant, which is a database as a service, or DaaS, hosted within Bluemix) or any other external services.
For each VM, there is an application manager communicating with the Bluemix infrastructure and managing applications deployed into the same VM. Within the VM, there will be a set of virtual containers that includes the required framework and runtime for your applications. All the applications can be accessed through normal HTTP requests once they are deployed. Bluemix is designed to host scalable applications, and the number of instances of the application will be adjusted based on the loading. In this sense, it is also important to keep in mind that all the persistent data needs to be stored out of the application using hosted or external services.
3. IBM DevOps Services integration
Bluemix has a capability of integrating with IBM DevOps Services. You can link either by creating a new JazzHub project or by connecting your existing JazzHub project to Bluemix to enable the DevOps integration features, which provide an open, integrated, rapid development experience that scales.
The following image shows the quick highlights about the DevOps services that are available on Bluemix at the moment.
Figure 3: Highlights of Bluemix DevOps Services
In response to the demands of an agile development model, which is very popular in mobile application development, Bluemix also has a built-in agile process and tooling support, including the following features:
- Work items to track and plan project activities
- Agile tools for the product backlog, releases and sprints
- Dashboard charts for project status and so forth
In the development perspective, Bluemix supports both browser-based integrated development environments (IDEs) and traditional desktop local development with Eclipse or Microsoft Visual Studio. Bluemix’s browser-based IDE is one of the few IDEs that fully support a touch-based mobile browser, which enables me to code anywhere with my tablet.
Figure 4: Patrick is coding his Node.js mobile flash card application with his iPad on Bluemix during his vacation
The lessons I described above are simply the tip of the iceberg, and there is much more to learn in the IBM 200 Bluemix Days events, including hands-on lab sessions such as creating and deploying mobile backend as a service (MBaaS) in Bluemix. If you are interested in developing applications on cloud and PaaS, please kindly check our 200 IBM Bluemix Days website and search for the events that will be hosted near you!
Please also note that IBM Bluemix is no longer in beta and is now ready for the public. If you are interested in the IBM Bluemix pricing model, please visit the official site for details. And please don’t hesitate to share your thoughts and experiences on Bluemix here or follow me on Twitter @PatrickCSFan.