Monoliths to Microservices: The Journey to Cloud Native

BrainBlog for Lightstep by Jason Bloomberg

Programs in PASCAL, a procedural programming language popular in the 1970s and 1980s, required a single period at the end of each program.

Computer programs, after all, were discrete. Self-contained. And above all, monolithic.

Smalltalk, and later C++ and finally Java, brought a new programming paradigm: object orientation. Instead of a block of procedural code, these languages supported classes, objects, interfaces, and eventually more advanced constructs like JavaBeans.

Compared to procedural programs written in languages like PASCAL and early COBOL, object-oriented applications were refreshingly modular. Collaborative development became more straightforward, and software became more flexible.

Object orientation, however, had one severe limitation: it favored a single execution context. Getting objects on one computer to call methods of objects on a different computer proved overly complex and difficult to implement.

Distributed computing had arrived – and object orientation alone wasn’t up to the task.

The Rise and Fall of SOA

The rise of the Extensible Markup Language (XML) in the early 2000s gave rise to a new approach to distributed computing: Web Services. Web Services provided XML-based endpoints to various software objects and other programs, giving them a language independent way of interacting with each other.

Web Services, in turn, led to the development of Service Oriented Architecture (SOA), an approach to abstracting Web Services in order to provide greater reuse, interoperability, and orchestration of software endpoints.

This vision for SOA treated the underlying software as monolithic, despite its often object-oriented nature.

As a result, the only practical way to provide the flexibility Web Services promised was to implement Enterprise Service Buses (ESBs) – on-premises middleware that connected such monoliths while exposing Web Services endpoints.

Meanwhile, Web Services proved to be unwieldy in practice, giving way to the lighter weight, Web- centric RESTful approach to implementing software endpoints. Soon, companies began moving to REST- based SOA – a lighter weight implementation of Service endpoints, but SOA nonetheless.

And then the cloud came along, and everything changed.

Read the entire BrainBlog here.

SHARE THIS: