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.

Related Blog Posts
Natively Compiled Java on Google App Engine
Google App Engine is a platform-as-a-service product that is marketed as a way to get your applications into the cloud without necessarily knowing all of the infrastructure bits and pieces to do so. Google App […]
Building Better Data Visualization Experiences: Part 2 of 2
If you don't have a Ph.D. in data science, the raw data might be difficult to comprehend. This is where data visualization comes in.
Unleashing Feature Flags onto Kafka Consumers
Feature flags are a tool to strategically enable or disable functionality at runtime. They are often used to drive different user experiences but can also be useful in real-time data systems. In this post, we’ll […]
A security model for developers
Software security is more important than ever, but developing secure applications is more confusing than ever. TLS, mTLS, RBAC, SAML, OAUTH, OWASP, GDPR, SASL, RSA, JWT, cookie, attack vector, DDoS, firewall, VPN, security groups, exploit, […]