Insights

Microservices what is it & why we have adopted this style of architecture

Jul 11, 2016

Microservices architecture has been making waves in the developer world for some time now with some of the largest web applications (Amazon, Google, Netflix) adopting this innovative style of architecture. This new style of architecture is being chosen by these global giants for its ability to provide greater control, flexibility and speed when developing solutions for their end users. We are often asked what exactly is Microservices and why did we choose to implement this style of architecture here at FINNZ. In the following blog we will look to answer these commonly asked questions and also give some insight from our experience of adopting this style of architecture.

In simple terms, a Microservices architecture refers to an application which is constructed from a number of independent services called “Microservices”.  Each microservice is a self-contained module that performs a discrete group of functions. Although the term “micro” does not mean that the modules that make up the system are necessarily small, just independent. In fact they each may have a website, web service, windows service and a database. Communication between each of these modules is achieved via web service calls and messages on a service bus that calls to and collects the relevant data/information from each server. 

The advantage of this style of architecture is that the microservices can easily be reused or removed from the system. Microservices can also be deployed, tweaked, and then redeployed independently without compromising the integrity of an application. Scalability is also easier to achieve as modules can be spread around multiple severs or even multiple data centres.

Business Benefits

There are also many wider business benefits and advantages for organsations that adopt software that has leveraged a Microservices approach.

  • The microservices approach allows for easier integration to other systems enabling organsations to continue working with existing systems without heavy investment in full system replacements.
  • New functions and services can be added at a later date easily and effectively, allowing organisations to stage their upgrades and system changes.
  • Organsations that require solutions that will stand up to substantial long term growth and change, benefit from this style of architecture as the modules allow the system to be easily scaled to effectively meet changing and evolving customer needs and requirements.

FINNZ & Microservices

When we were tasked with developing a new fisheries management solution, one of the key strategic drivers was to provide a platform that would more easily meet the evolving needs of the fisheries sector.  We discovered that the use of Microservices could offer us exactly the foundation we needed to align our software to the strategic needs of the sector. We required a style that could allow us to focus on the core yet independent functions but still enable these independent modules to be connected to other peripheral functions.  Microservices enabled us to do exactly that and furthermore it allowed us to build a solution that had optimal flexibility and scalability. The points below elaborate further on why we chose this style of architecture and why we will continue to use it in the future.

  • The use of microservices and queues allows us to focus on the key requirements and services such as licencing, catch reporting and client management that are required to successfully manage and run a quota management system.
  • We needed an architecture style that could provide a solution that could be easily adapted and changed to support a sector that is continuously evolving.
  • Systems in support of statutory functions need to be steadily available, by this I mean that they that these systems need to be reliable with little or no downtime. Microservices provides the flexibility to change parts of the solution without affecting the solution as a whole which is key in providing a reliable solution to our end users.
  • Each microservice has its own storage so there are no central databases which causes a bottleneck in traditional n-tier systems.
  • The microservices are independently deployable which means they can all sit on one server or be distributed across 10 servers. This allows us to spread the load according to the performance and resource requirement of each microservice.
  • Supports an agile development and management style.
  • The modular aspect of microservices also provides us with a platform that can be easily adapted and applied to meet the needs of businesses with similar functions across sectors.

In the fishery context, microservices enabled us to focus on the core functions required to build a fisheries management solution that could provide the elements needed to successfully manage New Zealand’s fisheries.

These core functions include:

Client Management
Key component of the system used to manage and define the roles of all organsations and people associated with your fishery.

Licenses & Permits
For all fishing licenses, fishing permits, fishing vessel registrations and all other licenses associated with your fishery.

Trading
Platform for administering the trading of fishing rights and catch entitlements.

Quota & Catch Shares
For the management and monitoring of allocated fishing stocks and fishing rights.

Catch Reporting
Collection and reporting of fisheries catch & landing data.

Finance & Accounts
For all cost calculations, levies, payments, invoicing, and integrations with external financial systems.

Microservices also means that these functions are not set in stone and can be customised and changed to fit the different needs and regulatory requirements of fisheries all over the world.

If you have any questions, or just want to chat to someone who has been involved in implementing this style of architecture, please do not hesitate to get in touch.

Back to top