Microservices – An Application Revolution Powered by the Cloud
Our new upcoming ebook is the ‘Microservices Cookbook’.
This will provide a general introduction to the new software design model known as ‘Microservices’, also provide a Platform design for their implementation, and describe a number of ‘recipe’ scenarios for how they might be applied, including:
- Internet of Things
- NFV Services
As the Microsoft Azure CTO explains microservices represents a major inflection point for the IT industry – An Application Revolution Powered by the Cloud. They themselves are pioneering the approach through new products like ‘Cognitive Microservices‘.
My personal opinion is that they can be defined as the next major milestone in software engineering ever since, well software was invented and run on mainframes, they are that much of a landmark. They will re-write the agenda of software practices across corporations right through university curriculum.
One critical aspect of course is the commercial opportunity, both in terms of exploiting them and also the vendor marketplace, which has been particularly impressive both in terms of their innovative embrace of the model and also their speed to market with significant plays.
There is a very dynamic relationship with containers, and so all ventures in that segment are hot such as Docker of course, and in particular I have been especially impressed by SAP, launching ‘YaaS’, standing for Hybris-as-a-Service, a marketplace of microservices.
Netflix OSS – Harnessing web-scale IT
To best exploit the web scale capabilities that Amazon Cloud services offer, Netflix entirely re-engineered their approach to building and deploying software, becoming the poster child for the approach.
Not only did they share their experiences of doing so, through blogs and presentations, they also literally published them as reusable Cloud best practices, distributing the components they developed to make this possible as open source software.
This Medium interview provides a comprehensive background that led them through this path.
In a VentureBeat article the author describes ‘the future of enterprise tech‘, describing how pioneering organizations like Netflix are entirely embracing a Cloud paradigm for their business.
Moving away from the traditional approach of owning and operating your own data centres populated with heavy equipment from EMC, Oracle, VMware et al, they are instead implementing ‘web scale’ IT achieved through on demand rental of containers, commodity hardware and NoSQL databases.
Critically it’s not just swapping out the infrastructure component.
The promise of Cloud computing has evolved from just elastic infrastructure, it’s also changing how that software is created through agile DevOps practices, through to re-inventing the very nature of the software itself, breaking up large, single instances of monolith software into an array of Microservices.
This triangulated intersection yields the perfect compliment of disruptive trends. Microservice software components are better able to utilize the elastic features of Cloud capacity and developers are able to sustain a much higher throughput of new release changes, driving the type of innovations that executives are ultimately hoping the Cloud promise will deliver.
Microservices does not dictate one specific software architecture design but instead is mainly described through design principles which we set out to summarize here, and highlight that can differ across different expert opinions. Primarily the distinction is a factor of ‘depends’, meaning the best approach can vary depending on what your particular scenario requires.
It’s often criticized simply as old wine in new bottles, simply re-branding what is an existing architecture, the SOA (Service Oriented Architecture), however as expert Martin Fowler describes in this comprehensive guide that is typically an approach for integrating monolith applications often using an Enterprise Services Bus.
In contrast microservices are an entirely different approach for how these monolith applications are built in the first place, specifically:
“the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API.”
Recipes and a Microservices Platform Design
In addition to sharing these design principles the over-riding goal is one of practical implementation: How might your organization exploit them, today.
This will be achieved through a two-fold approach, of i) a Platform design: What environment are you going to deploy them to, and how will this be configured, and ii) Solution ‘Recipes’: Blueprints for common requirement scenarios such as E-Commerce, IoT and NFV Services.
Where the Recipes will showcase individual projects, how to implementation reference examples, the goal of the ebook is then to define what skills and platform components need to be in place to repeat them.
The ideal articles are those that cover both – An example of a specific microservice implementation, and an explanation of the underlying platform investments required to make them possible. MUCH more on this to follow… 🙂