https://mojdigital.blog.gov.uk/2016/03/23/ants-v-elephants-microservices-and-monolithic-systems/

Ants v elephants: microservices and monolithic systems

How microservices made up of small applications can be more effective than big behemoth IT systems.

Most people think elephants or crocs or wolves or whales are the best predators on the planet.

But it is, in fact, ants.

Close up of an ant
'Ant head closeup' by Steve Jurvetson, licensed under Creative Commons www.flickr.com/photos/jurvetson/70704300

Kings of the wild frontier

Ants are probably the most successful living organism in the world. Ever. (Apart from certain highly evolved bacteria.)

And, unlike many other species, they have never faced extinction.

They are the perfect community. The perfect superorganism.

This is because:

  • they work in small groups (division of labour)
  • each group has a clear purpose
  • each group is in constant communication with the rest of the groups in the colony
  • each group can be easily replaced
  • each group adapts to changing needs
  • each group has the ability to solve complex problems

Microservices and sharing data

Working on the Digital Justice project, sharing data across the justice system, we’ve realised that microservices work like colonies of ants.

Using microservices, we create one efficient community to share data:

  • they can work in small groups
  • each microservice can have a defined purpose
  • each can be inter-connected with the others in the system
  • each can be easily updated or replaced
  • each can be easily adapted
  • each can solve complex problems

Endangered elephants

Big systems are highly susceptible to a changing environment. They're big and slow and unwieldy.

Some big systems that work in a slow-moving world just don’t function when faced with the fast-paced, rapidly changing, global times we live in.

They will struggle to survive unless they start to follow more successful models, like microservices.

"Paris Exposition Cambodian Pavilions, Cheri stable, France 1900" by Brooklyn Museum - Flickr: Paris Exposition: unidentified exterior view, Paris, France, 1900. Licensed under No restrictions via Wikimedia Commons - https://commons.wikimedia.org/wiki/File:Paris_Exposition_Cambodian_Pavilions,_Cheri_stable,_France_1900.jpg#/media/File:Paris_Exposition_Cambodian_Pavilions,_Cheri_stable,_France_1900.jpg
A white elephant: 'Paris Exposition Cambodian Pavilions, Cheri stable, France 1900' (Wikimedia Commons).

Safer, faster, cheaper data transfer

So by breaking up the existing system into microservices, we can create a data transfer process that offers:

  • faster access to data/information
  • fewer workarounds due to simpler updates
  • better clarity of ownership
  • less duplication
  • less admin work
  • more provider choice
  • reduced impact of data breach
Leaf-cutting ants carry their piece of leaf back to the nest, where smaller workers cut the leaves into small pieces – courtesy of Wikipedia
Leaf-cutting ants carry their piece of leaf back to the nest, where smaller workers cut the leaves into small pieces (Wikimedia Commons).

An inter-connected ‘ant community’ with 130 million years of evolution behind it isn't a bad place to start.

Don't miss out on future blog posts: sign up for email alerts.

3 comments

  1. Comment by David Durant posted on

    Great blog post that I completely agree with. However several, UK government departments are each building their own separate microservices environments. How can we break down these silos to think of one government-level microservices ecosystem?

    Reply
    • Replies to David Durant>

      Comment by Helen Mott posted on

      We're exploring using data principles for the justice system. A similar approach could be explored across government to ensure new microservices that are built consider the wider system.

      Maybe:
      1. Microservices should meet the service standard (or a slimmed down version of it)
      2. Make open data APIs for public data
      3. Make APIs that can be used by other government departments if the data is private but needed by / useful to other government departments
      4. Make data free to access - ie don't charge government departments for accessing the data you have that they need
      5. Be clear about how to interpret the data you make available and about the risks associated with it
      6. Microservices should be product-managed & promoted like any other top-level product. If people don't know it exists, it may as well not exist! Although a register of services (links to github etc) could be a useful tool to help with this.

      This work from the ODI ties a lot of the thinking together:
      http://theodi.org/what-is-data-infrastructure

      Reply
  2. Comment by Carl May posted on

    Love this model. Makes everything clear. Not just that, it's what IT researchers working around the NHS have been saying for years. They've pointed to successful implementation processes in Denmark and the Netherlands as examples of what can go right, and to the grim realities of the behemoth design/development/implementation of failed NHS information leviathans in the 1990s/2000s. Not just that, it's easy to extend, from groups, to products, to cost centres within the companies and public sector agencies that serve the market place.

    they work in small groups/products/cost centres (division of labour)
    each group/product/cost centre has a clear purpose/route to market/market value
    each group/product/cost centre is in constant communication with the rest of the groups /products/cost centres in the colony/marketplace/
    each group/product/cost centre can be easily replaced/demerged/outsourced
    each group/product/cost centre adapts to changing needs/market conditions/business strategies
    each group/product/cost centre has the ability to solve complex problems/create value/

    Reply

Leave a comment

We only ask for your email address so we know you're a real person