Blogging for IBM

16 September 2015 » Cloud, Community, IBM, Writing

Hello all, it’s been a while since I posted content here on my own blog, but I do regularly write for several other blogs, including IBM developerWorks Open, IBM OpenTech, Bluemix Dev, and Thoughts on Cloud.

Here are a few recent entries:

If you’re interested on my take in various areas of cloud computing – particularly in the realm of open source – add those feeds to your reader.

Cross-origin resource sharing on IBM Bluemix

Update: A newer version of this post has been published to the IBM Bluemix blog.

The IBM Bluemix Platform-as-a-Service (based on Cloud Foundry) naturally supports applications that are composed of many services that are in turn deployed to different hostnames.

For example, if you push an application to Bluemix, the name you provide will be prepended to .mybluemix.net resulting in an address such as:

  • http://my-sample-app.mybluemix.net

If your cloud-native app follows the best practices of a microservices architecture you’ll probably have two or more subcomponents that live on discrete hostnames like this.

But what if you have a JavaScript based front-end that needs to aggregate information from the disparate hosts? By default you won’t have access to data on these other subdomains.

The solution is to take advantage of the HTTP headers that are available to allow you to control cross-origin resource sharing (CORS).

To illustrate the problem and the solution, consider the simple Ajax application here:

If you click the red box, you’ll initiate an asynchronous HTTP call in JavaScript to a servlet on another host at:

The source of this servlet shows that no particular HTTP headers are set, thus the JavaScript call never reaches it.

However, if you click the blue box, you’ll initiate a call to a different servlet on that host:

This time the Ajax call will successfully consume data from the service, because the HTTP headers allow services from a different domain to access the servlet.

response.setHeader(
  "Access-Control-Allow-Origin",
  "http://krook-service-consumer.mybluemix.net"
);

response.setHeader(
  "Access-Control-Allow-Methods",
  "POST, GET, DELETE, PUT"
);

response.setHeader(
  "Access-Control-Allow-Headers",
  "x-requested-with,Content-Type"
);

If you need to allow access to all client hostnames, replace the whitelist with a wildcard:

response.setHeader(
  "Access-Control-Allow-Origin",
  "*"
);

There you have it; a simple way to build dynamic JavaScript applications composed of several microservices on IBM Bluemix (or any other Cloud Foundry PaaS).

I used Java in this example, but the same HTTP headers apply whether you’re using Ruby, Node.js, PHP, Python or any other runtime.

Please vote for my OpenStack talk proposals

27 February 2014 » Cloud, Cloud Foundry, OpenStack

I’ve submitted two abstracts for the OpenStack Atlanta conference that happens in May.

The OpenStack project is interesting in that it allows members of the community to weigh in on the topics they’d like to see at the conference.

If you like my presentation topics, please consider voting for them (ideally with 3 stars: “Would Love To See This!”).

To vote, you need to be a member of the OpenStack Foundation. You can join as an individual member for free.

The community review period ends on March 3rd, so please vote today!

IBM forges its new PaaS with Cloud Foundry

29 July 2013 » Cloud, Cloud Foundry, OpenStack

IBM recently announced an open cloud architecture, based on OpenStack at the Infrastructure-as-a-Service (server, storage, and network) level, and on Cloud Foundry at the Platform-as-a-Service (runtime, framework, and database) level.

The partnership follows a fifteen year trend at IBM. This strategy to start with – and contribute back to – open source projects benefits IBM, its customers, and the community itself.

  • By building on top of an existing open source foundation, IBM can focus its efforts on higher level services tailored to specific customers.
  • By generating interest in the technology – and dedicating employees to the open source project – the community and its software is strengthened.

I’m proud to be a part of the work at IBM to build our next generation PaaS on top of Cloud Foundry. We’ve already got 1,000 IBMers running 1,200 apps on it, and we’re growing fast.

As with Apache, Linux, Eclipse, and OpenStack before it, I have have high hopes for Cloud Foundry. It’s good news for IBM customers, and everyone else who can benefit from a free, open source PaaS.

This post is my own and doesn’t necessarily represent IBM’s positions, strategies or opinions.

Zend on IBM private/public clouds at NYPHP

21 June 2012 » Cloud, DB2, IBM, New York PHP, PHP, Zend

Next Tuesday, June 26th, I’ll be speaking at the New York PHP user group about the project I led to bring the Zend Application Fabric onto IBM’s on-premise private cloud rack, PureSystems, and onto IBM’s public cloud, SmartCloud Enterprise.

I’ll describe the Zend Application Fabric for highly available PHP clusters, and show how its topology is supported by scaling and failover policies built into the IBM platform. I’ll also show how it integrates with the DB2 based Database-as-a-Service.

Zend Application Fabric

At the core of the Zend/IBM system is an IBM virtual application pattern (based on the TOSCA standard) that specifies how virtual machines are layed out, which other VMs they should link (or react) to based on life cycle events, and when they should scale up or down.

You will learn how to activate the Zend pattern, customize the topology, set a scaling policy, monitor the infrastructure, tweak the Zend configuration, view IBM elasticity and fault tolerance in action, and perform repeatable deployments using a template.

RSVP now, or make a note to catch the live stream.

Zend phpcloud.com at NYPHP

26 March 2012 » Cloud, New York PHP, PHP, Zend

Tomorrow night we’ll again host Edward Kietlinski at New York PHP.

He’ll talk about the latest offerings from Zend to bring your PHP applications to their developer cloud.

Soon, you’ll also be able to deploy your production-ready applications to the IBM SmartCloud.

RSVP now for Tuesday night’s meeting at IBM in midtown Manhattan.

Or, if you can’t make it in person, watch online with Cal Evans.

Use the IBM Cloud to build your PHP apps

14 March 2011 » Cloud, DB2, developerWorks, New York PHP, PHP, Zend

IBM developerWorks just published an article I wrote about using the Development and Test Cloud to create PHP applications.

The tutorial covers some scenarios that make the cloud compelling for PHP developers and then takes the reader through the installation of Zend Server with DB2 on the IBM Cloud.

If the content looks familiar, you may have seen an earlier version in a print copy I handed out at New York PHP (PDF) late last year.

Speaking of the cloud and NYPHP, don’t forget to join us next week to look at an alternative way to use the cloud to develop PHP applications using Amazon and RightScale.

Move from MySQL to DB2 via the Cloud

24 November 2010 » Cloud, DB2, developerWorks, Linux, PHP, Zend

IBM developerWorks has just published the first article in a series that Mark Nusekabel, Yan Li Mu and I wrote about our experience migrating a large PHP and MySQL application to DB2.

In the four part series we look at preparation, switching databases, porting code, and finally deploying the application. This first installment covers the steps to plan and resources to consult when starting a migration project.

Along with the MySQL to DB2 migration Redbook, a key technology supplementing each step in the process is the IBM Smart Business Development and Test Cloud.

If you already have access to the Development and Test pilot, the PHP developer’s guide (PDF) can give you some tips for configuring Zend Server along with DB2 using virtual machines in that cloud.

The article series and the developer’s guide may also be useful to those who have a contract for the GA version of Development and Test.

Another option to evaluate DB2 for a migration is to use the Amazon EC2 AMIs pre-configured with IBM software individually.

Or, if you’re interested in managing several instances or more complex configurations, RightScale and IBM have collaborated (PDF) to bridge the Amazon and IBM clouds.

So, if you’re considering a new relational backend for your application, the developerWorks migration series, the PHP developer’s guide for the IBM cloud, and the images within the Amazon and IBM clouds will give you a new set of tools to make evaluating the move and executing the switchover much easier.

Next page »