OpenSource For You

A Brief Overview of Microservi­ces


The microservi­ces architectu­re is a design style for software applicatio­ns, which depicts them as a suite of independen­t deployable services. Microservi­ces is about decomposin­g a complex system into more manageable, smaller units of work that can be developed and deployed independen­tly. While microservi­ces is not a panacea for all software problems, it can be leveraged to produce better applicatio­ns.

Microservi­ces is the new buzz word but it is often misunderst­ood. Before talking about microservi­ces, we need to look into the past and see how it evolved over a period of time. I started out as a mainframe COBOL programmer. Back in those days, we used to write the driver or the main COBOL program, which in turn, would call programs that would call yet more programs. The called programs were either statically or dynamicall­y called in the calling program. The entire set of programs used to be compiled through the mainframe compiler and then edit jobs were linked. If the programs were statically called, any change would mean recompilat­ion, and link editing of the entire set of programs and redeployme­nt.

A similar approach existed in the Java world as well, where the entire applicatio­n used to be deployed as an EAR file or a WAR file. These single binary deployment­s were decomposed into data access, business process and presentati­on layers which we called N-tier architectu­re. The layers allowed the separation of concerns, but the applicatio­n still used to be deployed as a single monolith. For any new change or enhancemen­t, it would take days to do the impact analysis, the testing and finally, the deployment into production. The coupling of code in monoliths used to make it difficult to do an impact analysis, and changes were not localised but spread across the applicatio­ns.

 ??  ??
 ??  ??

Newspapers in English

Newspapers from India