PaaS reviews

Review: IBM Bluemix bulks up Cloud Foundry

IBM's full-featured PaaS wows with Watson and an amazing array of services, but many are not yet ready for prime time

At a Glance
  • IBM Bluemix

When I reviewed the Cloud Foundry PaaS (platform as a service) last summer, I concentrated on the open source, Pivotal, and ActiveState implementations. In this review, I’ll look at IBM Bluemix, a multitenanted PaaS hosted on SoftLayer, which combines Cloud Foundry with an improved online UI and services from IBM and third parties.

The most distinctive services on Bluemix are based on Watson, a cognitive system that provides natural language processing, hypothesis generation and evaluation, and dynamic learning. Several of the other services and integrations in Bluemix fill gaps in the open source version of Cloud Foundry -- for example, autoscaling, mobile, big data, and enterprise integration services.

Note that the gaps have been filled without forking the Cloud Foundry code. In fact, Bala Rajaraman, the CTO of Bluemix, has told me flat out: “We will not fork.” The cf application configuration command-line program I installed for open source Cloud Foundry and Pivotal CF is the same as the one for Bluemix. The bosh PaaS configuration command-line program I installed for open source Cloud Foundry is the same as what the Bluemix engineers use internally – but users of Bluemix will never need to learn bosh, as IBM’s intention with Bluemix is to shield users from PaaS administration, focus on service, and allow users to simply build apps.

I approve of this attitude. As a developer, I found learning bosh a struggle, and I felt the heavy lifting in configuring a PaaS ought to be left to operations. For me, the promise of PaaS and devops is low-friction configuration and management of infrastructure in aid of getting software built and deployed. Making a developer spend a significant portion of his or her time on the operational cruft needed to set up a PaaS defeats the fundamental purpose of having a PaaS. At the same time, I like the ability to run a single-VM “microcloud” PaaS privately on a laptop for experiments, which is why I also see the value of ActiveState Stackato and downloadable PaaS VM images.

Because Bluemix is built on unmodified Cloud Foundry, it shares all of the Cloud Foundry architecture: Droplets, DEAs (Droplet Execution Agents), buildpacks, and so on, running in a virtual machine. The Cloud Foundry portion is shown in the light blue VM box in the lower left of the architecture diagram below (Figure 1).

IBM Bluemix architecture

Figure 1. The Bluemix architecture diagram. Note that Bluemix is basically a stock Cloud Foundry virtual machine plus an improved user interface and additional services.

Bluemix shares more than the Cloud Foundry architecture: it shares the Cloud Foundry buildpacks and services available on the other Cloud Foundry implementations, while adding some of its own. We’ll break all this down into boilerplates, known elsewhere as quick starts or an app store; runtimes, known elsewhere as buildpacks; and services. Bluemix includes services for Watson, mobile, devops, Web and applications, integration, data management, big data, security, business analytics, and IoT (the Internet of things). I'll survey all of them below.

Various parties can support Bluemix services: IBM, a community, or a third-party company. Experimental services are free, unstable, and subject to change that may not be backward compatible. Thus, they're not recommended for production. Beta services are free, but haven’t been extensively tested in the wild. All Watson services are currently classified as beta.

Bluemix boilerplates

As you can see in Figure 2, Bluemix currently offers 13 different “boilerplates” or quick-start packages. While most of these have an IBM flavor, that isn’t necessarily bad.

Some of the boilerplates on offer may require some explanation. For example, the Internet of Things Foundation Starter provides a Cloudant (CouchDB-compatible) NoSQL JSON data layer and a Node-RED application hosted on an SDK for the Node.js runtime. Node-RED is a tool for wiring together hardware devices, APIs, and online services. The Node-RED Starter is similar, but community supported.

The Java Cache Web Starter combines Liberty for Java, a lightweight WebSphere profile, a DataCache service, and a Monitoring and Analytics service. At the free level, the DataCache is only 50MB, and the Monitoring and Analytics service lacks the deeper performance monitoring and diagnostics.

The Mobile Cloud boilerplate combines Node.js, Mobile Application Security, IBM Push messaging, and Mobile Data (with a multitenant Cloudant back end). It includes SDKs for Android, iOS, and JavaScript. At the free level, it is limited to 2GB of storage, 1 million push notifications a month, and 375GB-hours per month. The MobileFirst Services Starter is similar, but includes push notifications and security specifically for iOS 8.

The three User Modeling Web starters couple the Watson User Modeling service with a runtime and some sample code. Watson User Modeling uses linguistic analytics to extract a set of personality and social traits from the way a person communicates, with a goal of personalizing communications.

Vaadin is an open source Web application framework for rich Internet applications. The Vaadin starter runs the framework in Liberty for Java and uses a DB2 database.

IBM Bluemix boilerplates

Figure 2. The current selection of Bluemix boilerplates, known elsewhere as quick starts or as an app store. 

Bluemix runtimes, aka buildpacks

The selection of runtimes offered on Bluemix includes the seven named buildpacks shown in Figure 3, plus any other buildpack that is approved for Cloud Foundry. Six of the runtimes shown should be familiar to you; the seventh, Sinatra, is a DSL (domain-specific language) for creating Web applications in Ruby quickly and with minimal effort.

The PHP buildpack supports PHP 5.4, 5.5, and 5.6; Nginx 1.5, 1.6, and 1.7; and Apache HTTPD 2.4. The Python version supported in the PHP buildpack is 2.6.6, which is not really current. The Python buildpack, on the other hand, supports a dozen versions of Pypy, as well as a couple dozen versions each of Python 2 and Python 3.

The community buildpacks for Cloud Foundry include Clojure, Haskell, Mono, and Erlang runtimes. Practically the only popular Linux-compatible application server language I didn’t find supported on Cloud Foundry is Perl.

IBM Bluemix runtimes

Figure 3. The selection of runtimes offered on Bluemix includes the seven named buildpacks above, plus any other buildpack that is approved for Cloud Foundry. Six of the runtimes shown should be familiar to you; the seventh, Sinatra, is a domain-specific language for creating Web applications in Ruby with minimal effort.

Watson services

The seven Watson services currently offered in Bluemix (Figure 4) are Concept Expansion, Language Identification, Machine Translation, Message Resonance, Question and Answer, Relationship Extraction, and User Modeling. All are still in beta. I described User Modeling earlier. I'll cover the rest here.

Concept Expansion analyzes text and interprets its meaning based on usage in other, similar contexts. For example, it could interpret "The Big Apple" as meaning "New York City." It can be used to create a dictionary of related words and concepts so that euphemisms, colloquialisms, or otherwise unclear phrases can be better understood and analyzed. This free Bluemix beta service has a predefined data set and domain, so it's useless for production.

The Language Identification service detects the language in which text is written. This helps inform next steps such as translation, voice to text, or direct analysis. The service can be used in tandem with the Machine Translation service. Today, the service can identify 25 languages.

The Machine Translation service converts text input in one language into a destination language for the user. Translation is available among English, Brazilian Portuguese, Spanish, French, and Arabic.

IBM Bluemix services

Figure 4. Bluemix offers seven Watson services and eight mobile services. Many of the Watson services are currently constrained to one domain. 

The Message Resonance service analyzes draft content and scores how well it is likely to be received by a specific target audience. This analysis is based on content that's been written by the target audience itself, such as fans of a specific sports team or new parents. Although future versions will let users provide their own community data, today analysis can be done only against people active in cloud computing or cloud computing discussions; this makes the beta service useless for production in domains other than cloud computing.

The Question and Answer service interprets and answers user questions directly based on primary data sources (brochures, Web pages, manuals, records) that have been selected and gathered into a body of data or "corpus." The service returns candidate responses with associated confidence levels and links to supporting evidence. The current data on Bluemix focuses on the travel and health care industries, rendering it useless for other domains.

Relationship Extraction parses sentences into their various components and detects relationships between the components. It can process new terms (such as people's names in a news feed) that it has never analyzed before through contextual analysis. Sentence components include parts of speech (noun, verb, adjective, conjunction) and functions (subjects, objects, predicates). The service maps the relationships between the components so that users or analytics engines can more easily understand the meaning of individual sentences and documents.

The beta service is optimized for news articles or other news-related text in English or Spanish, via separate APIs; you can’t use it for an arbitrary domain and expect to get good answers. As you can see in Figure 5, it doesn’t always return good answers even for news articles; presumably, once you can supply your own training set, you’ll be able to tune the service to your domain of interest.

Overall, the beta Watson services on Bluemix look tantalizing, but they are not yet ready for prime time. This is consistent with the way they’ve been presented.

IBM Bluemix relationship extraction

Figure 5. I tested the Relationship Extraction service on a news article I picked at random. As you can see, not all of the extracted relationships are accurate.

Mobile and application services

We’ve already discussed six of the eight mobile services available on Bluemix. Another is Mobile Quality Assurance, which enables mobile app testing, user validation, and streamlined quality feedback with sentiment analysis; over-the-air build distribution; automated crash reporting; and in-app bug reporting and user feedback. And there's Twilio, a third-party voice, messaging, and VoIP service.

There are 19 Web and application services in Bluemix. That’s too many to discuss here, but a couple of them bear mentioning. RapidApps is a limited-functionality beta service that claims to let you “quickly develop data-centric Web and mobile apps using visual tools – without coding.” RapidApps is supposed to be aimed at business analysts; it appears to be far from cooked at this point, but could be interesting in the future.

The Business Rules service takes natural language rules that you create in a Rule Designer and executes them when invoked by your app. This also seems to be aimed at business analysts, but it’s in better shape than RapidApps at this point.

Devops services

The eight devops services on BlueMix include five from IBM and three from third parties. The Track and Plan service allows you to create stories, tasks, and defects to describe and track project work, as well as use agile planning tools for the product backlog, releases, and sprints. This service essentially gives you Rational Team Concert for your Git or Jazz repository.

The Delivery Pipeline service lets you automate builds and deployments, test execution, configure build scripts, and automate execution of unit tests. I like the way these two services integrate the Jazz interface with Bluemix.

We discussed the Monitoring and Analytics service in the context of the Java Cache Web starter. The Auto-Scaling for Bluemix Add-on enables you to automatically increase or decrease the compute capacity of your application. The App User Registry lets you protect your resource application or develop your client application based on OAuth 2.0. The three third-party devops services are BlazeMeter, Load Impact, and New Relic.

Other services

There are only two integration services in Bluemix, but they’re both interesting. Cloud Integration enables users to integrate cloud services with enterprise systems of record; it exposes the back-end systems as REST APIs to be used by applications. The experimental Containers Service allows you to run Docker containers on Bluemix, which potentially opens Bluemix up to almost anything.

Of the 10 data management services on Bluemix, two are for MySQL (one open source, one fault-tolerant), two for Postgres (ditto), three for NoSQL databases, and one for DB2. The remaining two data management services are Object Storage (beta, based on OpenStack Swift) and DataWorks; the latter includes APIs that load data, cleanse U.S. postal addresses, and classify data.

InfoWorld Scorecard
Ease of use (20%)
Breadth of support (20%)
Management (20%)
Documentation (15%)
Installation and setup (15%)
Value (10%)
Overall Score
IBM Bluemix 9 9 9 8 9 9 8.9
At a Glance
  • IBM Bluemix has filled a number of gaps in Cloud Foundry without forking the code. It offers a compelling lineup of IBM and third-party services, including Watson cognitive services, but many of these services are currently in a limited and/or beta form.

    Pros

    • Multitenant hosted PaaS builds on Cloud Foundry code but does not fork the code
    • Adds many capabilities from IBM and other vendors, including Watson services and autoscaling
    • Includes MBaaS, big data, and devops services
    • Has easy ways to integrate legacy enterprise applications, databases, and services
    • Offers Docker containers as a service

    Cons

    • No private cloud or on-premise/hybrid options yet
    • Not yet certified for compliance with security standards such as FIPS
1 2 Page 1
Page 1 of 2