In June, I had the honor of attending the Cloud Foundry Summit Silicon Valley 2017 conference in Santa Clara, CA. My two submissions related to Bluemix UI architecture were selected, and I got the chance to present them as part of the conference’s Cloud Native Node.js track. In this post, I’ll briefly describe my talks as well as share some general takeaways from the conference.

Topic 1: Microservices Architecture of the Bluemix UI

The full title of my first topic was To Kill a Monolith: Slaying the Demons of a Monolith with Node.js Microservices on Cloud Foundry. The intent of the talk to was to trace my team’s journey migrating the Bluemix UI from a monolithic app to a microservices architecture.

The Bluemix UI (which runs on Cloud Foundry) is the front-end to Bluemix, IBM’s open cloud hosting platform. The original implementation as a single-page, monolithic Java web app brought with it many demons, such as poor performance, lack of scalability, inability to push small updates, and difficulty for other teams to contribute code. Over the last 2 years, the team has been on a mission to slay these demons by embracing cloud native principles and splitting the monolith into smaller Node.js microservices. The effort to migrate to a more modern and scalable architecture has paid large dividends, but has also left behind a few battle scars from wrestling with the added complexity cloud native can bring. The team had to tackle problems in a wide variety of areas, including: large-scale deployments, continuous integration, monitoring, problem determination, high availability, and security.

In the talk, I went on to discuss the advantages of microservice architectures, ways that Node.js has increased developer productivity, approaches to phasing microservices into a live product, and real-life lessons learned in the deployment and management of Node.js microservices across multiple Cloud Foundry environments.

If you’d like to see the full presentation, check out the slide deck below:

Or, if you prefer video, you can watch the talk on YouTube:

Topic 2: Monitoring Node.js Microservices

My second topic was called Monitoring Node.js Microservices on Cloud Foundry with Open Source Tools and a Shoestring Budget. During the migration described in my first talk, we learned that while microservice architectures offer lots of great benefits, there’s also a downside. Perhaps most notably, there is an increased complexity in monitoring the overall reliability and performance of the system. In addition, when problems are identified, finding a root cause can be a challenge. To ease these pains in managing the Bluemix UI, we’ve built a lightweight system using Node.js and other opensource tools to capture key metrics for all microservices (such as memory usage, CPU usage, speed and response codes for all inbound/outbound requests, etc.).

In this approach, each microservice publishes lightweight messages (using MQTT) for all measurable events while a separate monitoring microservice subscribes to these messages. When the monitoring microservice receives a message, it stores the data in a time series DB (InfluxDB) and sends notifications if thresholds are violated. Once the data is stored, it can be visualized in Grafana to identify trends and bottlenecks.

In the presentation, I described the details of the Node.js implementation, real-world examples of how this system has been used to keep the Bluemix UI running smoothly without spending a lot of money, and how the system has acted as a “canary in the mine shaft” to find problems in non-UI subsystems before the relevant teams even knew there was an issue!

The slide deck for the presentation is available below:

And, you can also watch it on YouTube:

Takeaways from the Conference

This was my second trip to CF Summit, and in both cases it was a great experience. In my first trip in 2015, I gave a talk with Brian Martin when my team was basically just getting started on our journey to microservices. Then, I was a little naive about what we were getting into, but this time around I was far more battle-hardended and had more in-depth knowledge and experiences to share.

One thing I noticed in the questions afterward this time is that there were more people who came up to me and asked questions specific to their own journeys re-architecting monoliths. This tells me there are a lot of organizations struggling with what to do with their legacy code bases and that they are hungry for guidance. Of course, post talk questions are far from scientific. But, I found it interesting nonetheless.

One thing I emphasized to these folks was to not underestimate the need for robust monitoring as they build out their own microservices. As I went into far more detail in my second talk, I think this was the biggest mistake we made when we started the Bluemix UI migration.

Oh, yeah… Wally World

I stayed at the Hilton across the street from the Santa Clara Convention Center where the conference was held. From my room, I had a great view of Levi’s Stadium and California’s Great America.

Every morning I’d look out from my window and see the vast parking lots for both facilities sitting empty:

Empty Parking at Great America

And, each day I kept hoping the Griswold’s would come driving up in their family truckster and see the park was closed, just like Wally World was in 1983. Smiley Face

We have been listening to your feedback on the Bluemix UI and have used that to design a brand new user experience (UX) that we believe will streamline your workflows. The new experience is now live for your immediate use. When you visit the Bluemix UI, you can choose to opt-in for the new experience via a “Try the new Bluemix” link in the header bar:

Try New Bluemix Screenshot

In this blog, we’ll walk you through the new taxonomy organizing your resources, the redesigned catalog, the updated flows for creating new compute resources, the reorganized app details page, and more!

All Category Cards Screenshot

Original blog post co-authored with Amod Bhise.

Bluemix Updates: First Anniversary Celebration!

It’s hard to believe it’s already been a year since we announced the general availability of Bluemix. But, in honor of our first anniversary, we’ve got some big news to share. The exciting updates that went live late last week include:

  • Official release of IBM Containers making it easier to deliver production applications across hybrid environments
  • Addition of service keys to facilitate connecting to services from outside of Bluemix
  • Usability improvements to the Bluemix UI’s header and dashboard
  • Enhancements to documentation.

Bluemix Updates: IBM Containers in Catalog

Bluemix Updates: Cinco de Mayo!

It’s been a couple months since my last Bluemix Updates blog. But, the team has kept working, and on the eve of Cinco de Mayo I thought it was time to share some great new features and functions that have recently gone live. These include:

  • Unveiling of a new and improved Pricing page.
  • Introduction of a Labs section in the Bluemix Catalog.
  • Overhauled Bluemix Docs, including the ability to leave inline feedback.
  • Improvements to SSL certificate support for custom domains.
  • Ability to communicate with live IBM representatives via text chat and video chat.
  • Addition of Korean to the list of translations for the Bluemix UI and the Bluemix Docs.
  • Enhancements to catalog services (e.g., API Management and IBM Insights for Twitter) and boilerplates (e.g., Node-RED).
  • Updates to IBM Eclipse Tools for Bluemix.
  • Miscellaneous usability improvements and fixed defects.

Bluemix Update: New Pricing Page

Bluemix Updates: IBM InterConnect 2015 (Small)!

I’m writing this edition of the blog from Las Vegas as IBM InterConnect 2015 enters its final day. It’s been a great week with lots of exciting news, and I can’t help but reflect how far we’ve come since Bluemix was first announced about a year ago at IBM Pulse. As Bluemix continues to mature and gain momentum, I’m excited to share details about the awesome Bluemix updates that went live in the UI this week:

  • Integration of Container and Virtual Machines as first-class citizens in the Dashboard.
  • Introduction of a Guided Experience section in the Dashboard to help you get started.
  • Addition of new zone pages for Open Architecture, Hybrid Cloud, Watson, and Internet of Things.
  • Updated landing/home page.
  • Ability to receive billing/usage notifications.
  • Capability to purchase third-party service plans.
  • Improvements to SSL certificate support for custom domains.
  • Miscellaneous usability improvements and squashed bugs.

Bluemix Updates: IBM InterConnect 2015