Is your stage set for Microservices and do you really have a strategy regarding your goals and the road there?
As mentioned in the previous blog post where I introduced the Redpill Linpro Microservices Model, Microservices has emerged as a buzzword in regards to creating decoupled system architectures and offer agility to pressured IT departments trying to keep up with business requirements.
In some cases this has led to situations were Microservices seems to be the answer to all our prayers and decisions are being made to implement a Microservices architecture that are not always thought through or made for the right reasons. This is why it is worth taking a step back to review the reasons, objectives and approach to why we are going a specific route. This is of course generic advice, but it applies to a Microservices approach as well.
With Microservices currently scoring high in the buzzword bingo, there is an overwhelming risk that we rush into something that hasn’t been analysed properly. This is why we put ”Strategy” as the first concern when defining the Microservices Ready Model.
Define your strategy
To define a strategy before redefining your IT system architecture and development model is advice you will hear from most who deal in IT consultancy hours or System Integrator business. And there is a reason for this. In our experience, Microservice initiatives often fail due to a lack of a properly defined strategy.
But – a strategy is not something where you necessarily have to invest thousands of consultancy hours in order to be presented with a bunch of documents. We think that this is where you define your organisations objectives, overall design guidelines, organisation and steering principles for the initiative. You also need to make sure that you secure management support, resources and competence to deliver on objectives and have the ability to see the initiative through all the way.
Thing Big – Act Small – Scale Fast
Redpill Linpro has always advocated for the approach ”Thing Big – Act Small – Scale Fast”. This can also be applied to a Microservices initiative and starts with the strategy. You don’t need to create a complete strategy document with every aspects of your Microservices initiative. Simply start with the most important basic principles for what you want to achieve, the most fundamental guidelines, suggested organisation, access to competences and the chosen tooling you think will be needed to get there.
When you have these basic things in place, do a Proof of Concept (PoC) to verify that your ideas can be applied in real life. Use the results of the PoC to fine tune the basics of the strategy and use it to create fundamental guidelines to steer your Microservices approach. A well defined and performed PoC is the best way to verify your assumptions and to generate confidence for a larger roll out of your initiative. It may also act as the ”good example” on how to do things going the Microservices way.
Questions to get started
And so before we leave the subject we want to leave you with a few questions that you should ask yourself when defining the Microservices strategy :
- What is the overarching objective with the Microservices?
- Which guidelines should be the really ”no break” rules to ensure Microservices thinking compliance?
- How do we organise ourselves to make sure that competencies are accessible when requested so we don’t get stuck or loose time?
- What platform or architectural decisions do we need to make at an early stage to avoid having architectures that run out of control and creates maintenance nightmares?
- How do we ensure that Microservices continues to be the preferred architectural choice for system development and maintenance?
- How do we promote, inform and spread the word on the benefits of Microservices to the rest of the organisation?
- Microservices Ready model step 2 – Organisation
- Microservices Ready model step 3 – Guidelines
- Microservices Ready model step 4 – Reference Architecture
- Microservices Ready model step 5 – API Management
- Microservices Ready model step 6 – DevOps
- Microservices Ready model step 7 – Test