Microservices is emerging as the next generation strategy for application development and programming. So, what are microservices anyway?
Microservice architecture, or simply microservices, is a distinctive method of developing software systems. Thanks to its scalability, this architectural method is considered particularly ideal when you have to enable support for a range of platforms and devices – spanning web, mobile, Internet of Things, and wearables – or simply when you are not sure what kind of devices you will need to support in an increasingly cloudy future. 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.
Monolithic Architecture versus Microservices Architecture
To begin to understand microservices architecture, it helps to consider its opposite: the monolithic architectural style. Unlike microservices, a monolith application is always built as a single, autonomous unit. In a client-server model, the server-side application is a monolith that handles the HTTP requests, executes logic, and retrieves/updates the data in the underlying database. The problem with a monolithic architecture, though, is that all change cycles usually end up being tied to one another. A modification made to a small section of an application might require building and deploying an entirely new version. If you need to scale specific functions of an application, you may have to scale the entire application instead of just the desired components. This is where creating microservices can come to the rescue.
Microservices: Speed, Agility, and Choice
Microservices can be viewed as an outgrowth of SOA (Service Oriented Architecture), but there are differences and distinctions that separate these two approaches sufficiently to make them discrete from one another. Pure SOA is dependent upon an Enterprise Services Bus (ESB) and this approach has lots of overhead in the form of a large database and customized coding to make it all work. In SOA, it is still modular but all the pieces are tightly coupled and intertwined to make up the whole solution. In microservices, the messaging aspect is open and far simpler. Each module can stand-alone and are not dependent upon the others. They are all uncoupled. Each microservices module perform an unrelated function, and if other microservices elect to use data from the initial microservices modules, then so be it, but it is not critical to the functionality of the initial microservice. Think of it as an array of services that can make and break upon demand and can share or not share as is necessary.
Microservices Model for IoT and Smarter City
Microservices is akin to the Internet of Things (IoT) federated model and is ideal for collaboration between these two emerging technologies. Microservices are cloud based implementations. Since each module is stand-alone, modules can be updated, replaced, or modified as needed. Microservices are vendor agnostic, so selecting the best vendor for each microservice is a smart approach to optimize performance. The modularity permits change and scalability, so you can start out small and build up as demand for services increases. It is cost effective with a classic “crawl, walk, run” approach. However, it may be smarter to think of microservices as possessing a “creep, pace, track” approach instead, since microservices can align or map exactly to the business needs. This is so much better than in the past when costly, large scale system deployments where invested in before the needs where actually realized. Microservices are built around the business and not the other way around.
Microservices: An Array of Disparate Services Operating in Harmony
In summary, microservice architecture uses services to componentize and is usually organized around business capabilities; focuses on products instead of projects; has smart end points but not-so-smart info flow mechanisms; uses decentralized governance as well as decentralized data management; is designed to accommodate service interruptions; and, last but not least, is an evolutionary model.
References:
Eid, A. (2015). A New Way to Build and Deliver: Selected Cloud Offerings. IBM Corporation. Retrieved on December 16, 2016 from, http://slideplayer.com/slide/7439944/
Green. J. (2015). Building the Internet of Things. Internet of Things world forum, Cisco Systems.
Hilwa, A. (2015). Analyst Watch: Macro confusion about microservices. SD Times. Retrieved on December 16, 2016 from, http://sdtimes.com/analyst-watch-macro-confusion-about-microservices/
LinkedIn. (2016). Microservices. Retrieved on December 16, 2016 from, https://www.google.ca/search?q=microservices&source=lnms&tbm=isch&sa=X&ved=0ahUKEwi-kq_AmIXRAhUL1oMKHV1QBPwQ_AUICSgC&biw=1440&bih=718#tbm=isch&q=microservices+ibm+smart+city&imgrc=RygwgWbKWyNLQM%3A
Smartbear Software. (2016). What is Microservices Architecture? Retrieved on December 16, 2016 from, https://smartbear.com/learn/api-design/what-are-microservices/
Wolff, E. (2015). Microservices – Why Would I even Care? JAXenter. Retrieved on December 16, 2016 from, https://jaxenter.com/microservices-why-would-i-even-care-119045.html
About the Author:
Michael Martin has more than 35 years of experience in broadband networks, optical fibre, wireless and digital communications technologies. He is a Senior Executive Consultant with IBM Canada’s GTS Network Services Group. Over the past 11 years with IBM, he has worked in the GBS Global Center of Competency for Energy and Utilities and the GTS Global Center of Excellence for Energy and Utilities. He was previously a founding partner and President of MICAN Communications and before that was President of Comlink Systems Limited and Ensat Broadcast Services, Inc., both divisions of Cygnal Technologies Corporation (CYN:TSX). Martin currently serves on the Board of Directors for TeraGo Inc (TGO:TSX) and previously served on the Board of Directors for Avante Logixx Inc. (XX:TSX.V). He served on the Board of Governors of the University of Ontario Institute of Technology (UOIT) and on the Board of Advisers of four different Colleges in Ontario as well as for 16 years on the Board of the Society of Motion Picture and Television Engineers (SMPTE), Toronto Section. He holds three Masters level degrees, in business (MBA), communication (MA), and education (MEd). As well, he has diplomas and certifications in business, computer programming, internetworking, project management, media, photography, and communication technology.