Getting To Know Microservices
I decided to kickoff 2018 with a set of activities in Harvee related to Microservices. Here I state that all application components follow the microservice paradigm already but honestly speaking this might be a bit exaggerated.
When talking to clients at work and the topic of Microservices comes up then it seems there is at least always two dimensions to this. The first is a more infrastructure related dimension, which deals with how and where these Microservices are being deployed. Often this leads to talking about containers. Also it seems that new concepts like API gateways are being introduced but I see these also more on the infrastructure side. Finally there seems to be a change on how software should be architected and written these days in order to comply with the microservices paradigm.
All the above is great because with Harvee I can take a swing at all of the above dimensions. Some of this might already exist (e.g. I do run components in Docker containers orchestrated through Rancher) but some of this I have not spent much time on, primarily those new concepts or tools which I mentioned.
During the next few weeks I want to add changes to my platform to make it “more” microservices-like but I expect that I have quite a few things to verify and decide first and finally to implement. So I thought another thing I should do is somehow “project-manage” this a bit and I want to use agile concepts to do so. So in my list of things to do, one of the initial ones would be to document the potential activities as user stories and add them to an epic that focusses on Microservices. By doing that while using an agile project management tool (I decided a while ago to go with Pivotal Tracker) I am hopefully able to make continous progress throughout the next few weeks.
This is how I am seeing my next steps:
- Project management: create the epic and populate it with user stories. The following items in this list will eventually become the user stories as far as I can see them currently (these should then be more specific though).
- Paint a rough target, microservices focussed architecture which should incorporate an API gateway
- Evaluate new tool(s)
- Integrate new tool(s)
I expect the last bullet point to possibly become more complex as it sounds at this point and that it will potentially involve removing existing components as well as re-development of services (if required) will be done as part of this.
Completing this initiative might actually take a while so please be patient with me. However since I want to do this in an agile way I am trying to force myself to most probably a 2 week sprint duration so it should not take too much time before new updates pop up in this blog series. Enjoy !