In this article, I will take you through the basics of Platform as a Service (PaaS) and explain some key features of IBM Bluemix which is the Platform as a Service offering from IBM.
You can treat this article as a ‘Bluemix for dummies’. The idea is see if the non technical folks can also understand this.
Now before going to PaaS explanation, I would like to distinguish what is the difference between Infrastructure as a Service (IaaS) and PaaS.
What is Infrastructure as a Service (IaaS)?
When you go to Cloud provider such as Softlayer (I would put IBM the first here for obvious reasons), Amazon, Azure, Google etc., you would order a Server, say with 4 Cores, 16 GB RAM and 200 GB Storage on SAN. The same gets provisioned for you to start using this. That is a classic example of IaaS, where you are getting the Infrastructure such as the Servers, Storage, Firewalls, Load Balancers provisioned for you. Once they are provisioned to you, you would go about installing the necessary software on top of it, and then deploy your application.
What is Platform as a Service (PaaS)?
In Platform as a Service, you would get the Platforms such as the Application Servers, Databases, Mobile Backend as a Service etc, provisioned for you on top of the IaaS.
To illustrate this better, let me explain how a Web application works. And post that will relate to what is PaaS. A typical Web Application requires an Application Server and a Database (at least to start with). Without going into the finer details, the Application Server will understand the incoming HTTP requests (when you type http://www.ibm.com in the browser is an HTTP request), process it, and give the response back to the browser. Now the database is where all the data is stored. So now imagine you are going to a Banking site. You would put your login and then you would get things related to Account information such as the Amount in Savings, Fixed Deposits, last 5 transactions etc. Here the processing is done by the Application server and the data of your Account is stored in a Database.
In a PaaS, you would have the Application Server, Database etc provisioned for you. Without you going through the hassles of finding out the OS version, the fix packs, download the Software, install it, and configure it.
Once the Platform is provisioned, you would deploy your application in it and offer the services of your application as Software as a Service (SaaS).
Enter IBM Bluemix
IBM Bluemix is the PaaS offering from IBM.
To continue from the above thread of Application Server and Database, an example of an Application Server would be WebSphere Liberty Profile. Yes that is an IBM Software, and please again pardon my inclination towards IBM. (14 years in the company, you can’t blame me.)
An example of Database would be MySQL (I know about Database outside IBM too).
Bluemix would offers the Services such as MySQL, Postgress Database, Node.js, Ruby on Rails, Map Reduce etc in a Catalogue. You click on the WebSphere Liberty Profile node in the Catalogue, and a WebSphere Liberty Profile is created for you and is up and running in the Cloud. You click on the MySQL node, the MySQL server is created and running in the Cloud. You need to bind them together and push your Application to them. Yes, even if you are non techie you can try that out.
I gave just two examples, but there are many in the Bluemix which you can avail of. There are IBM provided Services (WebSphere Liberty Profile, Internet of Things, Cloudant, Node.js, Map Reduce, BLU Acceleration, TimeSeries Database, are few examples), there are Open Source Services (MySQL, Postgres, Ruby on Rails, Ruby on Sinatra, Rabbit MQ, MongoDB are few examples) and there are third party services as well (location based services from Pitney Bowes, VOIP-based services on Web and Mobile from Twilio are a few examples).
New Services are added on a regular basis. But there are very interesting services such as Auto Scaling, Application Monitoring which one can explore.
For interacting with Bluemix there are many ways, one is through the Bluemix Portal itself. But you can use commands from a command line. These commands are specifying to Cloud Foundry standards. I know I have now introduced one more jargon. So Cloud Foundry is an Open Source PaaS. And Bluemix complies to the Cloud Foundry specifications. Another advantage is that if you find services missing in Bluemix, you can get that from the Cloud Foundry (though w/o IBM support).
You can also interact with Bluemix from Eclipse as well. So you have your app developed in Eclipse and can push that app into the Platform running in Bluemix.
There is another way in which Bluemix one can interact with Bluemix. Which is the DevOps platform provided by IBM.
Now you might be wondering what is DevOps. DevOps is a short form of Development and Operations. It is a software development method that helps collaboration and integration between software developers and IT operations professionals. Its goal is to help an organization rapidly produce software products and services. This is a topic on its own. I will not delve deep into it. For those who want to learn more about DevOps, may go through the link http://www.ibm.com/ibm/devops/us/en/.
IBM also provides its DevOps Platform, https://hub.jazz.net. This runs on Softlayer Cloud. In a nutshell, what you get in IBM DevOps is a Web based Integrated Development Environment (to contrast Eclipse is a Local Development Environment sitting in one`s Desktop or Laptop machine), Version Control (eg : if version 1 code has ‘System.out.print (Hello World)’ and if version 2 of the code has ‘System.out.print (Hello My World)’, the developer would like to keep a track of what was the change in every version), create work items (eg: if there is a bug in the code, it would be possible to assign that to a developer to resolve it), keep a track of the work items, plan release dates of the code to production, keep a track of the release dates, and automatically deploy the code from IBM DevOps to the Bluemix.
Some Use Cases
Startups who use Global Entrepreneur Program Partners are already working in Bluemix. Mentioning a few below:
ePoise is using Bluemix cloud infrastructure to deploy it's NextGen hiring product that automates the first round interviewing. Companies use this cloud-based solution to save cost, improve quality of hire and gain added revenues by reducing their time to hire.
Algo Engines is a wind turbine portfolio management and performance improvement solution. Algo Engines uses the data generated by a turbine to help wind turbine owners/operators/investors increase turbine performance. They are leveraging time series db and mapreduce for data management and Elastic MQ for real time data processing.
Ineosoft is developing a product on Bluemix for monitoring the ambient environmental parameters of the manufacturing facility like temperature, humidity CO2 levels, noise level, the aggregation of people at specific points, the consumable factors like power, water and LPG consumption.
Esenzit is deploying its product Evidencer, which is digitized recording solution that captures and archives live happenings in court rooms, in Bluemix. Evidencer has a hardware integrated software product that captures audio/video live happenings in the court room and playback whenever needed.
So now, the next step would be to go to www.bluemix.net, play around and explore the Beta version. And if you are a Startup (as per IBM <5 years) and have your application tested on Bluemix do let me know.