May 18, 2017

Building a Microservice Organization

The many advantages of microservices have been well documented. From better team scalability, flexible deployment models and increased reliability to higher-levels of isolation that enforce a better overall application design.

However, moving from a traditional monolithic application to a microservice platform provides many challenges for organizations. In order to realize the many benefits of a microservice platform, organizations must ensure all stakeholders completely understand the platform’s vision and how to effectively deliver solutions under the new paradigms.

Architects

Architects will need the ability to clearly understand and articulate the vision for the platform. This includes ensuring the teams have clear solutions for cross-cutting concerns such as data storage, security, API contract stability, service dependencies, service discovery, test automation, log aggregation, tracing, monitoring, metrics, alerting, deployment automation and documentation. In addition, architects will need to work closely with teams to ensure each team has a clear understanding of microservice design principals.

Developers

Developers will need to understand the technical implications of building services on the platform. This includes a higher-level of focus on application monitoring and metrics as well as a shift from the transactional nature of traditional data stores to an eventually consistent model built upon eventing. In addition, with a move towards continuous delivery, development teams often take on an expanded role in supporting the deployment, rollout and operations of the various services the teams own.

Infrastructure

Infrastructure teams will need to understand the shift from a process built upon tollgates and approvals towards one that supports comprehensive monitoring, alerting, automation, A/B testing and blue-green and canary deployments. In doing so, infrastructure becomes an organization that allows teams to fail-fast and innovate quickly.

IT Leadership

IT Leadership will need to understand how to effectively organize teams to deliver solutions. Often times this means shifting the development team structure towards end-to-end teams vs teams aligned by skill-sets and expertise. This shift in team structures will also include creating new teams focused on platforms, continuous delivery and site reliability engineering.

Product

Product teams will need to understand how to scope, support and educate end-users on small continuous release cycles vs less frequent mass deployments. In addition, the product owners will need to work closely with the architects and development teams to help define the proper bounded context for one or more microservices and to understand the implications of those decisions when introducing and releasing new functionality.

In the right environments, microservice platforms provide many considerable benefits over the traditional monolithic approach. However, these benefits are only fully realized by organizations that can align stakeholders with the vision for the new platform.

About the Author

David Reines profile.

David Reines

VP - Technology

David has led the development efforts of several mission-critical enterprise applications in the Twin Cities area. During this time, he has worked very closely with numerous commercial and open source JEE technologies. David has extensive experience in the architecture, design, implementation, deployment and support of highly scalable business applications.

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Blog Posts
Using Conftest to Validate Configuration Files
Conftest is a utility within the Open Policy Agent ecosystem that helps simplify writing validation tests against configuration files. In a previous blog post, I wrote about using the Open Policy Agent utility directly to […]
SwiftGen with Image & Color Asset Catalogs
You might remember back in 2015 when iOS 9 was introduced, and we were finally given a way to manage all of our assets in one place with Asset Catalogs. A few years later, support […]
Tracking Original URL Through Authentication
If you read my other post about refreshing AWS tokens, then you probably have a use case for keeping track of the original requested resource while the user goes through authentication so you can route […]
Using Spring Beans in a Kafka Streams ExceptionHandler
There are many things to know before diving into Kafka Streams. If you haven’t already, check out these 5 things as a starting point. Bullet 2 mentions designing for exceptions. Ironically, this seems to be […]