10 27, 2016
Choosing which architecture is right for your project is a very complex task. Flexibility, size, time frames, diversity of the team and specific conditions of the project are just some of the factors that need to be considered when deciding which software architecture is the best for your project.
Microservices architecture is one of the newest styles to emerge on the IT scene in and has been adopted by some of the world’s largest web applications such as Amazon, Google and Netflix. 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 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 module.
1. Easy integration: The modular design of the Microservices approach enables existing systems to be easily integrated to work alongside the new solution. This enables organisations to choose if they would like a full system replacement or just the areas they require.
2. Future-proofed: New functions and services can be added at a later date easily and effectively, allowing organisations to stage their upgrades and system changes.
3. No bottlenecks: Each microservice has its own storage so there are no central databases which causes a bottleneck in traditional n-tier systems.
4. Agile compliant: The modular approach of Microservices architecture works well with an agile management style as it supports the slicing and splitting up of smaller work increments and tasks which goes hand-in-hand with projects using an agile methodology.
5. Reduced system 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 without downtime for end users.
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.
We also realised that the New Zealand commercial fishing industry and its associated registers and licencing regimes share a common set of needs with many other registers - accurate, secure, reliable and compliant. The flexibility of our Microservices design allows us to easily reuse common elements and apply the specialist register functions into almost any context. The opportunities this creates for FINNZ is just another reason why we took on the challenge of using this innovative style of architecture.
For information on how our platform could be used to manage and operate your register, please get in touch.