App development made easy with microservices
Modern businesses understand the benefits of agile work practices and have begun implementing agile methods to become more competitive.
Nick Durrant, managing director of Bluegrass Digital
The three major driving forces behind this development are; reduction of risk, delivery of the right product through early feedback, and opportunity for change.
A different approach
The industry is moving towards a more jigsaw puzzle approach to development instead of trying to scale and maintain monolithic platforms that tend to become a legacy platform very quickly, making scalability and cost of ownership very difficult.What most businesses miss when adopting an agile approach is that it includes everything from system architecture, process, and routines around deployment – which often means that an organisation goes from quarterly or monthly deployments to fully automated deliveries several times a day, if needed, with automated tests.
What are the problems?
The biggest problem, many businesses today have applications that are often a monolithic packaged solution which comprise a number of purchased applications integrated with each other over time. These applications were often acquired and implemented individually through other business systems, ERP, CRM, CMS or e-commerce solutions.
It is also quite common to purchase a so-called ‘ready’ solution to save time, but this still requires investing a lot of time in adapting the complete solution to unique needs, which often limits the benefits of being able to get product updates. These separate applications with unique adjustments have then been integrated with each other to streamline flows.
This kind of monolithic architecture means it takes time to introduce changes, and it is associated with high risks, as changes in one place can have consequences that are hard to predict elsewhere.
Monolithic packages have introduced processes for making changes, processes that often mean that you have to go through a number of steps to even begin making the changes. After that, the changes are prioritised and planned to determine when a given change can be introduced. Quarterly or monthly queries often take place, which can mean system downtime on the weekends.
Several risks
This is no longer useful and there are several business risks associated with this kind of architecture. Time to market becomes more and more important if you want to keep up with the market, which means that this type of architecture does not face this challenge. More importantly, it takes a long time to get a return on your investment because the changes often take a long time to build and introduce the solution.In order to work successfully with change and innovation, the ability to measure and follow-up is required. It is also difficult to quickly adapt and expand to new channels when they can’t be added directly since the monolith often misses a standardized method to communicate and exchange data with other systems.
Early feedback saves time
The ability to test smaller parts faster requires a more modern technology and system architecture that is flexible and quick to further develop. The solution is to continually introduce small improvements that take you toward a final goal, such as retiring existing systems or building components that replace functionality in the existing platform.
The advantage of this approach is that it will continuously deliver value to the business and continuously measure and evaluate whether you are on the right track. This also means that you can change and prioritize on a regular basis, based on what you learn.
You can also ensure that you are prioritising the elements that create the most value for the business and are not spending time on less critical or time-consuming components.
Microservices architecture separates features into smaller systems, which means that each system has a clear purpose and it becomes much easier to automate tests, streamline, create secure deployments and reduce dependency on a large team.
The rate of development
It becomes possible to scale the team and allocate those resources to new horizons, thus increasing the rate of development even more. Instead of risks, there are benefits:
- Continuous delivery: Time to market with modern architecture enables deployment at any time with full automation and automated test flows.
- ROI: By building smaller parts and releasing continuously, it is possible to deliver value continuously, which means ROI can be measured faster.
- Change and innovation: Modern architecture creates the prerequisites for innovation, and quickly testing and measuring what works.
- Omnichannel: Modern architecture is scalable and not built for a specific device, so it can be easily adapted to different devices.
In order to transform a business, it is not enough to use agile methods. The architecture must also be agile, and the way forward is to test, measure and learn.
Essentially, microservice architecture is a method of developing software applications as a suite of independently deployable, small, modular services in which each service runs a unique process and communicates through a well-defined, lightweight mechanism to serve a business goal.