An increasing number of executives are turning to microservices in an attempt to streamline a new product to market, or implement organizational change. Here at Digital Foundry, we have worked with many Fortune 1000 companies to kickstart their microservice initiatives. We leverage our deep experience in product strategy, system architecture, and solution design to execute a quality software development project. Here are a few thoughts to consider before including microservices in your next project.
Do some investigation before you start
How do you know whether a microservice is the right approach for your initiative? If you are a product owner, Chief Digital Officer, or a stakeholder in between, we have some advice. Put in some work to validate the feasibility of building microservices at your organization, and it will save you the risk down the line to properly execute this change. This involves taking a hard look at your existing resources, infrastructure, and the internal appetite for change.
Below you will find a brief background of what microservices are and the key touch points we hit during initial analysis. In the next section we have identified the core benefits for pulling the trigger on a microservice approach.
First off, what’s a microservice again?
Martin Fowler (the leading expert on this topic) sums up microservice architecture as:
“an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms.”
Compare this to a more traditional monolithic architecture, in which all code is deployed as one unit. In this common scenario, a change to anything requires a time consuming and often risky deployment. As Fowler notes, “Any changes to the system involves building and deploying a new version of the server-side application.”
This approach has gained more and more momentum, and as InfoQ’s Mark Little points out in his Virtual Panel on the subject, “Microservices have gone from internal development practices for the select few so-called ‘Unicorns’ to something many developers in a wider range of organizations are embracing, or considering for their next project.”
So how do you know where your risks lie when switching from your traditional development structure to a microservice approach? Through the years, Digital Foundry has helped clients analyze the feasibility in various ways. Here are a few tips:
Microservice Validation: Steps to a successful feasibility analysis
How is your application packaged? How does the code function? How does it interact with back-end data sources? If you hail from the development side of the product, these may seem like obvious and unnecessary questions but they need to be asked. When you zoom out, the goal is twofold: (1) discern which major pieces of your product have the most to gain or lose from this approach, and (2) identify which parts can afford to be exposed to the new service. In addition, this mapping will inform which 3rd party software or tools will be used in the build phase to best implement the microservice.
Incorporating a software microservice development project into your team’s workflow can be disruptive. Take a look at how it lines up with existing deadlines and set reasonable expectations for the offset of resources to support the microservice. Create a process plan by which the team building the microservice (whether internal or contracted out) knows who they can rely on for APIs, database questions, etc. If there are blockers in that ecosystem, what can be done to get around or mend those weak points of operations? Once this is fleshed out, the rest is much easier.
In our work with a major regional bank, our team here at Digital Foundry conducted a feasibility analysis, building a roadmap for the microservice development after key interviews with the client’s operational team. This created a workflow that made sense throughout the engagement.
When all is said and done, how will this service be shipped out? Who is responsible for deployment, and what hiccups might this cause for the core application? Maintainability and reliability after deployment must be planned for. Coming up with a thoughtful strategy around the consumption of the microservice will ensure success.
You’ve determined that a microservice is feasible! Next step is to justify why it is not only possible, but a better solution for your digital project. Digital Foundry has helped clients build various microservices throughout the years. Here are a few benefits we have gleaned from our experience:
Containing the work:
What trips up most large enterprise organizations is not competency, it’s the process. Microservices allow you to contain a prioritized project to a set team, and not disrupt other teams as you get it done.
Embracing new technology without the risk:
Leverage the latest and greatest tools and technology to build your new service without the headache of making it work with the entirety of your legacy back-end architecture. Microservice development is technology agnostic, which means you can push your boundaries on your contained project, without hanging up the whole system.
Architecting a microservice allows your team to independently deploy and respond to increased volume quickly. As many companies on the cutting edge of technology have realized, you will inevitably experience the need to scale up specific areas of your product. Netflix, Uber, and Amazon are just a few that take advantage of microservices to continue providing a stable product while scaling up specific features.
Consider these guidelines when deciding whether to move forward with a microservice approach or contact us if you need assistance. Digital Foundry can help you whether you’re interested in a detailed feasibility study, or when you’re ready to start planning and building your solution.