My Blog Has A New Home

Lately I have been spending way too much time maintaining my blog. Something on the server was spiking the CPU causing my blog to become unresponsive throughout the day. To be honest I just don’t have time to investigate issue like that any more so it was time to look into a more hands off solution. A colleague of mine, Jonathan Kaufman, told me he just moved his blog to GitHub and is using GitHub pages. My main concnern about doing this was that I need the export all my content (posts, images, comments, etc.) from WordPress and make sure it would work on GitHub. However, if it was possible, it will allow me to not have to host my own WordPress server and it would save me some money each month :)

Client Libraries For IBM IoT Foundation

If you are familiar with the IBM IoT Foundation, than you know the protocol used for communication between apps and devices is MQTT.  MQTT is an open protocol ideal for IoT solutions due to its lightweight nature.  It works very well when used by devices that might be running on a battery or my have a low bandwidth connection.  In the past when I have worked with the IBM IoT Foundation I have always used an MQTT library from  These libraries work fine with the IBM IoT Foundation as long as they support MQTT 3.1.  However the IBM IoT Foundation offers its own set of client libraries for both devices and applications that make using the IBM IoT Foundation a little bit easier for developers.  Currently there are client libraries for Node.js, Java, Python, C#, Embedded C, and mBedC.  So what is the advantage of using the client libraries provided by the IBM IoT Foundation over the client libraries directly from  One advantage that I am a huge fan of is simplicity of code!  Lets take a look.

Early 2016 Conferences And Sessions

Well it looks like my relaxing break from speaking and attending conferences is quickly coming to and end.  On the one hand I am excited to get back to the “conference circuit” on the other I enjoyed being able to stay home and get a ton of stuff done :) Over the next few weeks I will speaking at several events, so if you are attending any of these conferences be sure to stop by say hi and see whats new with Bluemix!

Building Cloud Native Applications With Spring – Part 8

In my previous blog post I explained how to deploy a Spring Cloud based cloud native app to Bluemix.  However, you may want to deploy our cloud native app to other environments as well.  For example, a testing environment that is inside your own data center.  Or maybe you want to have the ability for developers working on another microservice to easily spin up all the other microservices of the cloud native app so they can easily integrate their service into the mix.  One solution to these problems is to use a Linux container technology called Docker.

Replay Of Docker Session From Qcon San Fran 2015

Last month I gave a talk on deploying Docker containers to the cloud at QCon San Francisco.  In this talk I cover some of the challenges you face deploying Docker containers in a production environment and how using a cloud solution like Bluemix can eliminate those challenges.  I walk through some of the key benefits of using Docker on Bluemix and then dive into a demo showing how some of the features work.  Below is the replay of my session.  Enjoy!

Building Cloud Native Apps With Spring – Part 7

In the last blog post we setup a Git repo and build pipeline for our Eureka server and deployed it to Bluemix.  Now that our Eureka server is deployed to the cloud we can deploy the services which leverage Eureka.  In this blog post I will walk through how to do this for the Participants service, but the process will be the same for the other services as well.  Once you have successfully deployed the Participants service just follow the same steps for the other services (Races, Web, and Hystrix).

Building Cloud Native Apps With Spring – Part 6

After wrapping up part 5 of this tutorial, we had a fairly well rounded, yet simple, microservices application able to run locally on our machine.  However, our ultimate goal is to not run the application locally but instead run it in the cloud, after all we are building a cloud native application.  My cloud of choice is IBM Bluemix.  However, the changes described in this post should work in any Cloud Foundry deployment, but I have only tested them on Bluemix.  (Spring Cloud is not bias to any cloud platform, however the way you configure and deploy your Spring Cloud applications may depend on the cloud you are targeting.)

Building Cloud Native Apps With Spring – Part 5

In this next section of the tutorial we will discuss a very important topic when it comes to microservice apps, circuit breakers.

Building Cloud Native Apps With Spring – Part 4

After completing parts 1, 2, and 3 of this tutorial, we have a basic microservices application setup and running.  It is simple, but incorporates many of the mandates of being a cloud native application, so we are off to a good start.

Building Cloud Native Apps With Spring – Part 3

In Parts 1 and 2 of this tutorial we have built an application which displays upcoming obstacle course races and the participants that will be running them.  We have addressed some common cloud native app challenges list cross domain requests and service discovery by using projects from Spring Cloud and Netflix, namely Eureka and Zuul.  In part 3 we will finish implementing the web UI of our application.