Martin Fowler expands on what a microservices architecture is all about.
A lot of the concepts are similar to SOA, so I’m gradually trying to understand what the practical and philosophical differences (and similarities) are. Here’s one:
When building communication structures between different processes, we’ve seen many products and approaches that stress putting significant smarts into the communication mechanism itself. A good example of this is the Enterprise Service Bus (ESB), where ESB products often include sophisticated facilities for message routing, choreography, transformation, and applying business rules.
The microservice community favours an alternative approach: smart endpoints and dumb pipes. Applications built from microservices aim to be as decoupled and as cohesive as possible – they own their own domain logic and act more as filters in the classical Unix sense – receiving a request, applying logic as appropriate and producing a response. These are choreographed using simple RESTish protocols rather than complex protocols such as WS-Choreography or BPEL or orchestration by a central tool.
Also I’ve been pondering services granularity and RPC vs the coarse grained calls of SOA. In this regard microservices seem closer to the SOA approach if anything:
In a monolith, the components are executing in-process and communication between them is via either method invocation or function call. The biggest issue in changing a monolith into microservices lies in changing the communication pattern. A naive conversion from in-memory method calls to RPC leads to chatty communications which don’t perform well. Instead you need to replace the fine-graining communication with a coarser -grained approach.
Are microservices made of the clear design principles of SOA but without all the heavyweight implementation details of SOAP, WS* standards, XML and all the rest of it. More reading needed!
Paul Downey at the Government Digital Service shares a interesting and visually appealing view of a proposed microservices architecture. The mix of web, APIs and systems of records looks sensible to me. Funny how we’ve gone from fine-grained RPC style webservice calls, to the coarse-grained services of SOA, back to ‘microservices‘ over the course of a few years (at least where I work …).
I do find myself wondering if the business function of the services that are exposed in a micro-architecture is actually much different from a well defined SOA service. Either way, being freed from the painful overhead of SOAP / WS-standards surely makes it much easier to contemplate building or integrating with a microservices architecture!
UniLever CEO, huge industrial resource-processor, makes most important sustainability statement I've read this year http://t.co/NRei20kYir
— Rick Robinson (@dr_rick) October 8, 2013
An impressive environmental statement from Paul Polman, CEO of Unilever, muses on the limitations of our current capitalist approach and considers how we can sustainably build on this.
Quit dreaming big and start achieving. The fabulous @rainypixels explains. http://t.co/sOie6OXuI1
— Jeffrey Zeldman (@zeldman) September 9, 2013
A great article on the always reliable A List Apart on how to achieve your aims, rather than being deterred by over-ambitious goals. The to it all, paraphrasing it to keep the carrot just far enough in front of you to keep on moving onwards and upwards. Set a target that’s just about manageable if you stretch yourself a bit, achieve it, rinse and repeat.
The recent Microsoft acquisition of Nokia’s device division is visualised in this diagram by Luke Millar, which shows just how small a piece of the mobile pie this deal covers.
An excellent slide deck describing experiences, common pitfalls and good practices of developing responsive websites: Pragmatic Responsive Design on Slideshare.
I was quite encouraged to see a number of my own practices being mentioned such as designing in the browser and augmenting the initial mobile stylesheet with additional rules only.
The BBC have been gradually investigating and adopting responsive web-design techniques to their news website, focussing on the mobile variant of the site. Initially I thought they were missing a trick by excluding desktop users from the benefits of responsive web-design. The reality seems much subtler however.
The BBC team describe their responsive approach on the Responsive News site.