By Barney Buchan, CEO of Dev2
You already own your company’s technology, but you actually have limited control over the services these provide. The core applications that help run a business aim to address a lot of generic problems and opportunities, but leave little room for the business’ individuality.
Companies have found a way around this by customising applications. This increases competitiveness, since the software services become more uniquely suited to that business. Customisation is great in how it can deliver desired outcomes instead of forcing lines of business to conform to what an application can offer.
But the downsides are big. Customised systems become legacy traps, woefully reliant on aging programming languages and other archaic processes. They also push developers to narrow their skill sets – and when a developer leaves, not only do you lose a lot of valuable knowledge about your systems, but it is very difficult to replace them. Things turn more complicated when introducing new systems to the pool, be it an improved CRM to help boost sales or absorbing the applications from an acquisition.
Over time the entire application ecosystem of a company becomes prohibitively expensive to maintain and replace. The result is either to stay in the quagmire of an aging system or to go for an expensive rip-and-replace approach. No wonder many companies still maintain mainframes.
But a new type of development architecture is taking companies out from between this rock and a hard place. In fact, they can now have their cake and eat it.
Microservices are fairly new, new enough that there is no widely-agreed academic definition for them. But it is easy to distinguish microsystems from monolithic applications. Traditional systems are singular: All of their processes, libraries and services are built into one instance. So if you fire up the application, you pretty much fire up every part inside it. Consequently if you make changes to any part of the system, you impact the entire thing. If demand goes up and you need more than what one system can provide, you have to spawn a duplicate system complete with aspects you don’t need. It is incredibly wasteful.
A microservices-based system is the antithesis of this. Services are not contained in a single application, but built to be independent. Through the use of APIs and other gateways, these services can be called upon when they are needed. They can exist on the same or different machines and when you need more of a service, you only duplicate that one entity – not the entire hog.
One is a lumbering dreadnought, the other a fluid army.
How does this reduce lock-in? Microservices do not need to share any DNA with each other. One service might be better if written in C#, another could get away with some humble Javascript coding. If some of the services are outdated or dysfunctional, they can be updated without rearranging all the chairs on the deck.
The microservice approach is so flexible and intuitive that it has opened the doors for development suites such as Warewolf, where microservices can be designed using visual flow systems and encoded through a large variety of programming languages – yet without the user writing a single line of code. This alters the ownership of services radically. Relying only on highly specialised developers to enhance company applications is no longer the only option. Those developers can also make adaptations faster, again saving resources.
The benefits and challenges of microservices are more involved than could be explained in this little space. It’s not a simple transition, but doing so is worth it – even vital. It is a huge shift forward and aligns beautifully with modern datacentre systems that embrace scale and agility. The revolution is not theoretical: Amazon, The Guardian, Netflix and the UK Government are a few examples of organisations that embrace microservices. Every business needs to have this conversation.
Microservices are rewriting the rules of how applications can be customised and created to meet the demands of business. In turn businesses can adapt their systems to new ideas faster while using fewer resources. Through development tools like Warewolf it frees the world of software from many of its time and technical constraints. The dread of becoming trapped by your core business applications instead becomes the freedom to experiment and grow your technology investments as you want, not as it demands.