As the year draws to the close I have decided to resume an activity that I really enjoyed i.e. Blogging. To this end this marks my first blog spot in six months.
As the microservices (MS) buzzword catches fire in the industry I have tried to dig underneath the surface and understand they why, how and when of microservices. When is it a suitable approach and when it is not. Why should you adopt a MS architecture. Is it simply a SOA implementation concern of a radical rethink of software architecture. As 2015 progresses I intend to blog more about this topic and get into the nitty-gritty that will help regular software developers sort out the hype from the reality and understand what it takes to implement a MS based system.
Thoughtworks Technology Radar Dec 2014
We remain convinced that microservices can offer significant advantages to organizations, in terms of improving team autonomy and faster frequency of change. The additional complexity that comes from distributed systems requires an additional level of maturity and investment. We are concerned that some teams are rushing in to adopting microservices without understanding the changes to development, test, and operations that are required to do them well. Our general advice remains simple. Avoid and start with one or two services before rushing headlong into developing more, to allow your teams time to adjust and understand the right level of granularityI encourage all software developers to form their own opinion on this subject. I have compiled a core list of books that are prerequisite reading to understand MS deeply. This list is to be delved into once you have done an initial reading of the microservices article and related videos.
- Implementing DDD
- Refactoring Databases
- Cloud Design Patterns: Prescriptive Architecture Guidance for Cloud Applications
- Lean Enterprise: How High Performance Organizations Innovate at Scale
- Reactive Enterprise with Actor Model: Application and Integration Patterns for Scala and Akka
- Big Data Principles and best practices of scalable realtime data systems