As the data center continues to evolve from being a high-tech, cloud-based environment, to one that’s built from the ground up to embrace a modular and microservices-based architecture. Microservices are small, interactive modules that allow a server to communicate directly and efficiently with other layers in the architecture.
The What Why, and How of a Microservices Architecture
Microservices have been a topic discussed quite a bit in the technology community lately. With microservices projects no longer being niche, I thought this would be a good time to review how these technologies work and what they bring to an organization.
Microservices are a design technique that your organization should think about implementing. There are varying sizes of microservices including small, medium, and large. While you are in the planning stage, this microservices tool should be completed.
Here are a few examples of Microservices that we can relate to our daily work:
On Platform Information Architecture (IPaaS)
This is one of the ways I started my career and how I have been steadily building on my tools with the help of a great employee, Gavin Considine. From work I did with Frank Thomas at Polycom back in 2012-2013, you can see the origin of the line that brought me to microservices.
He had had worked with Mike Bohnett on the IPaaS architecture work that Dennis Miller worked on for Polycom and had helped improve this functionality. While many of his new colleagues were working with a monolithic (long) product release, he was involved in a large iterative development effort where he worked closely with clients on architectural decisions.
Our business has grown over the years and most recently, we were exploring a new product release and looking for a solution for day one reporting and audits. What eventually helped us in this journey was showing clients how all of the functionality was delivered in one integrated architecture.
This was a big time sink at first, but also motivated us to change the type of development we did. We needed to do things in a different way and faster.
This is when Mike and I first shared the work we were doing on this innovation with Gavin. Gavin and I shared the following ideas and we were fortunate to have Rob Traber as well as Chris Hendricks come through and guide us through this journey.
Even with the biggest of companies being able to do these kind of deep dives quickly, they can sometimes wait months to implement microservices. It takes time for people to change. When we were able to do this collaboration and change in a short time, we were able to make things happen faster.
This microservices process completely changed how we work at our company. Now, we share work and teams not only outside the office, but also in the field. We are able to work seamlessly together to deliver solutions more quickly.
Our company started a blog and announced at SXSW the microservices project for small teams of 2-5 people in the lab and what we had done so far. We were using IBM Ariba to create a supply chain, where we shared the functional teams and did live testing.
What has been really impressive for us is the variety of responses we have seen to our blog and other social media updates. Our clients see how we are moving fast and how they can participate in the process.
Also, to show our support to other companies who are experiencing this change and time constraints, we started a #microservicefast community where we share insights and advice along with good resources.
Back end Platform Information Architecture (PIA)
When many think of platforms, they think infrastructure. Most people think about platforms that host the customer data, the apps, and the content that they do business with.
This is a very standard requirement. You want to have an infrastructure that is supporting all of that. Maybe your company uses a cloud infrastructure or you had employees working with Hadoop to collect structured and unstructured data that they needed to ingest and analyze. This type of information architecture isn’t always trivial to implement or to support within your business.
We decided it would be helpful to have a microservices model for our back end platform development. This included a shared development project between us and our customer on how they want to use the platform. We designed a project on a new back end that we could then test in live production. We use a container architecture and ran this on Hortonworks, MongoDB, and Amazon Web Services.
This allowed us to do some of the heavy lifting that would normally require thousands of man hours. It also allowed us to be more flexible with our software architect and get a new capability into production faster.
This was a very humbling project for us as well. We hired these incredible developers and took a leap of faith that they could execute successfully. We believe they’ve been able to deliver much faster that expected, not only with this solution, but with the new design and data architecture we built for our platform. We know it has been a worthwhile and important project for us.
In summary, technology has evolved and here are my 8 keys to how microservices are important to companies today.