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.
There are also many wider business benefits and advantages for organsations that adopt software that has leveraged a Microservices approach.
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.
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:
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.
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.
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.