Exploring IBM Bluemix – Part 1: Creating your first web app
Recently when researching on cloud development tools, I came across IBM Bluemix, described as the next generation cloud development platform on its official website. The idea is to allow users to quickly deploy their web or mobile applications, preferably in just a few clicks on their browsers, without having to worry about the underlying infrastructure – servers, databases, firewalls and whatnot. Although at first glance Bluemix seems to be just like any other cloud providers, Amazon AWS, Google Compute Engine or Microsoft Azure, a careful look at its product catalog reveals its unique feature – the ability to integrate third party libraries like NodeJS or even WordPress – something I have not yet seen in other solutions. There is even a Github repository for the community to contribute custom buildpacks to extend the list of supported services!
To further explore Bluemix’s exciting features, I decided to start a new series of articles to explore Bluemix features and shares various tips and tricks, hoping to help other users who are also interested in this new cloud platform. This article will be the first in the series, showing you how to create an account with Bluemix and deploy your first web app, a WordPress blogging site.
Getting started
First register for a free 30-day trial account here. You do not need to provide a credit card now – however one is required to activate the account after 30 days, although you will not be charged until your usage has exceeded the free allowance, which is more than enough for basic testing.
After successful login, you will be presented with the Bluemix dashboard. A dropdown at the top right corner allows you to select the region your Bluemix application will be deployed to. As Bluemix is a fairly new product, only two regions, US South and United Kingdom, are supported at the moment.
You will then need to create a space to host your Bluemix projects. Usually you will be prompted for this – if not, click Create Space on the left menu:
Now you’re ready to deploy your first application. Three different types of infrastructure are available for your application:
- Cloud Foundry: allows you to deploy cloud-based applications based on existing templates
- Virtual Machines: provides Linux-based VPS for you to have full controls over your deployment
- IBM Containers: allows to you port existing cloud applications to Bluemix
For a start, select Cloud Foundry as the app infrastructure and click Create App. You will be offered two types of applications – either Web or Mobile:
For Mobile apps, IBM Bluemix supports iOS and Android. iOS8 is also supported. For Web apps, it supports Java, PHP, Python, Node.js and many others:
There are options to import your existing code (“I Have Code Already”) or to use community-contributed codes (“Community buildpacks”). Some pre-generated code templates, known as Boillerplates, are also available for quick deployment with minimal coding efforts:
For now, the set of boilerplates is actually quite limited, having mostly templates made by IBM. Among the list, perhaps WordPress is the only thing I could click if I were to deploy something that can be immediately useful. In contrast, this is the set of templates provided by the One Click Install feature of Bluehost, one of the most popular PHP web hosting services, with more than 50 templates available, including WordPress, SugarCRM, PHP-Nuke and Joomla:
Apart from those showing in the above screenshot, Bluehost also provides templates for MediaWiki, the platform powering Wikipedia, and phpBB, a popular PHP-based forum. This is a much wider range of templates compared with Bluemix, which has only WordPress. Although one could argue that Bluemix targets cloud app developers who more or less know how to install new open-source platforms whereas Bluehost targets beginners, I personally feel that a having a wider range of boilerplates to choose from would certainly be very helpful, even for advanced users.
Setting up WordPress
Back to our Bluemix tutorial, for now, click on WordPress on Bluemix to create a new WordPress application. You will be prompted for the details:
Type in a name for your application, and a host (actually sub-domain under mybluemix.net), for it. Select a package plans to be used for object storage and for SendGrid, the cloud-based email solution. Also take note of the trial usage limit and the cost beyond the trial period.
In the above screen, I have selected the free plans and the final application will be available at http://toughdevblog.mybluemix.net/.
Select Create and wait a while for your application to be deployed. When done, visit your application home URL and you should be able to see the WordPress installation screen:
Complete the setup and login to WordPress using the configured administrator account. You will be presented with the WordPress dashboard:
These are the default plugins which have been installed. Among them, SendGrid and IBM Object Storage plugins are of note:
And this is the WordPress home page with the first post, the result of all our hard work:
Congratulations, you have successfully created your first IBM Bluemix application – a WordPress blogging site!
In my next tutorial I will show you how to deploy your PHP codes on Bluemix. Stay tunes for more tips and tricks!