As my usual ritual of going through technology tweets over
the weekend, I got interested in exploring IBM Bluemix (which is based on Cloud
Foundry) and decided to have first-hand experience of the same.
For those who do not have context of IBM Bluemix, a very
short description is – Bluemix is implementation of IBM's Open Cloud
Architecture, built on Cloud Foundry, which enables rapid development, deployment
and management of cloud applications.
4 Key Takeaways - I have summarized key takeaways based on my
experience with Bluemix:
Takeaway # 1 – A complete
lifecycle for cloud-based software development
- Bluemix does not provide only PAAS but also integrates seamlessly with IBM DevOps Services (which is completely cloud-based for continuous delivery).
- Bluemix can support web application, mobile application, middle-tier services (e.g. cache service) and backend services (e.g. IBM Watson for Cognitive Applications) or system-of-record (e.g. NoSQL database like Mongo or MySQL)
Takeaway # 2 – A seamless
integration of Paas & DevOps
- DevOps in true sense - It facilitates you to code online, track & plan and build & deploy applications completely on cloud platform. Also, it helps to automate unit testing & configure any build tool (Maven, Ant, Grunt, Gradle, npm, shell script) in few steps.
- Workflow driven (aka delivery pipeline) to automatically control build & deploy your application to single/multiple cloud-based environments.
Takeaway # 3 – An
open-source based platform to avoid vendor lock-in
- Bluemix is an implementation of IBM's Open Cloud Architecture based on Cloud Foundry, an open source platform as a service (PaaS). Cloud Foundry is not vendor specific & does not lock you into any proprietary or custom cloud implementation.
- You can choose to run Cloud Foundry in Public, Private, VMWare & OpenStack based clouds.
Takeaway # 4 – A
future-ready extensible enterprise-level platform for Mobile, Big Data & IoT
- Quickly scale-up like any cloud platform for your tenth or millionth user leveraging cloud services
- Provides ready-made templates (aka boilerplates), which provides configured runtime environment & predefined services for mobile apps & web apps. Also, scripts (aka buildpacks) available to support targeted PaaS (e.g. Java, Node.js)
- Can be extended to leverage current & future trends like Mobile, Cognitive Apps, Big Data & IoT (Internet-of-things) based applications.
For people interested in getting their hands dirty, here are
detailed set of instructions to experience a sample web application using data
cache service:
Step 1 – Get
registered on IBM Bluemix & IBM DevOps Services
- I got registered with IBM Bluemix (trial account for 30 days) at https://ace.ng.bluemix.net
- I got registered on IBM DevOps (use existing IBM id or you can link different userid) at https://hub.jazz.net/
- You can explore Bluemix dashboard, which is very user friendly and I liked the UX (though at times, it tends to respond slowly).
Step 2 – Add
DataCache Service using Bluemix Dashboard
- Click on “Add A Service”
- Choose “Web And Application” category from left-hand pane
- Click on “Create”. You can notice that it is free service with terms & conditions (100 MB usage is free).
- Data Cache dashboard is up & running now
Step 3 – Create & Deploy Web Application in Bluemix
- You need to install Cloud Foundry CLI tool from here: http://www.ng.bluemix.net/docs/BuildingWeb.jsp#install-cf
- You can also fork a project from sample web apps in IBM DevOps Services and build WAR completely from Cloud Environment
- You can also refer to IBM link : http://www.ibm.com/developerworks/cloud/library/cl-datacache-app/index.html
- See snapshot of Web Application - mycachewebbeta (generates WAR using Maven) below, which I created:
- You need to download json-org.jar from IBM site: ftp://public.dhe.ibm.com/cloud/bluemix/datacache/
(There is also dependency on orgclient.jar but as default runtime for IBM Bluemix is Liberty, it will be available automatically)
- Deploy WAR using following commands:
o
Login to IBM Cloud: cf login
o
Deploy your app:
cf push mycachewebbeta -p
target\mycachewebbeta-0.0.1-SNAPSHOT.war
- Bluemix dashboard gets updated with new application:
Step 5 – Bind Web
Application & Bind Service
- Click on “mycachewebbeta” web application on dashboard
- Click on “Bind A Service” link
- Choose previously created data service
Step 6 – Test the
web application for Cache Put/Get
- I have put 2 cache entries using my JSP based utility: http://mycachewebbeta.mybluemix.net/cachetest.jsp?operation=put&value=ankur&key=test2
- To get cache entry value: http://mycachewebbeta.mybluemix.net/cachetest.jsp?operation=get&key=test2
- You can also look at data cache service dashboard by clicking on “Data Cache – qs” on Bluemix dashboard
References
- IBM Bluemix overview - https://www.ng.bluemix.net/docs/#overview/overview.html
- IBM Bluemix Available Services - https://ace.ng.bluemix.net/#/store
- IBM DevOps Services - http://www.ibm.com/developerworks/devops/
- Using IBM DevOps with JAZZ - https://hub.jazz.net/tutorials/jazzeditorjava/
All data
and information provided on this site is for informational purposes only. This
site makes no representations as to accuracy, completeness, correctness,
suitability, or validity of any information on this site and will not be liable
for any errors, omissions, or delays in this information or any losses,
injuries, or damages arising from its display or use. All information is
provided on an as-is basis.This is a personal weblog. The opinions expressed
here represent my own and not those of my employer or any other organization.