Guest blog by Bob Johnson Vice President & Principal Analyst at IDG Connect
Fighting for space in the world of web based services and applications needs a quick eye and a strong software development arm, and companies everywhere are looking at new ways to boost agility and shorten their time to market.
One of these is microservices, a software based system architecture which supports the construction of complex applications out of smaller independent processes that exist as standalone mini-applications in their own right. These individual components communicate with each other through language agnostic application programming interfaces (APIs) and simple protocols such as Remote Method Invocation (RMI), Restful Web Services or Push Messaging, for example.
This modular approach can make it easier for companies to spread their workloads across multiple development teams spanning different departments or businesses, offering a greater degree of flexibility and helping to speed up the project lifecycle.
Each component has its own allocated storage, memory or CPU resources, which makes hardware utilization simple to provision and track, particularly in cloud based platform as a service (PaaS) environments. Development teams can use whichever standards or technology stacks they prefer as long as they make sure they are interoperable with the components that make up the final application.
While management complexity is sometimes reduced with microservices architecture, there is still a driving requirement for extensive team communication particularly when it comes to monitoring the production process and making sure updates to one component do not have an adverse effect on any other. But the need for meticulous formal documentation also makes it easier for those new to the project to get to grips with the code base more quickly.
Early users of microservices architecture include Amazon Web Services (AWS), Google, eBay and Netflix, all of which have sought to improve continuous delivery of frequently updated applications and services they provide over the web to their customers’ PCs, tablets and smartphones.
With such high profile proponents, it is not surprising that familiarity with the microservices concept appears widespread. Of one hundred senior IT staff based in the US, the UK, Israel and India polled by a recent IDG Connect survey, only 6 percent said they had no knowledge of microservices architecture at all. And though only a minority (10%) said they had already deployed some form of microservices architecture, over a quarter (28%) revealed plans to deploy in the next year and another 27 percent at some point in the future.
With so much application and service development activity centred on cloud hosted environments, microservices architecture has come to depend heavily on the use of containerization technology. Containers isolate microservice processes and applications into smaller instances that utilize only the virtualized operating system rather than the full virtual machine and the entire complement of abstracted hardware that VM includes.
Common and widely employed examples of containers include Docker, a Linux based open source implementation supported by software companies such as Canonical, Red Hat and Parallels. Established PaaS services including Google App Engine, Red Hat Open Shift, and VMware’s Cloud Foundry also make use of Linux Containers (LXC) technology.
Though still an emerging technology, plans for containers also look to be well advanced in many companies. The IDG Connect survey revealed that 18 percent of organisations have already deployed some form of containerization platform for example, with another 57 percent planning to do so at some point in the future. Only three percent said they had no plans for containers at all, indicating that the combination of microservices and containers will become a staple and widespread ingredient of application and service development activity in the very near future.