Anand Bhadouria, CTO, Hewlett Packard EnterpriseI wish I had one of those deep, booming TV narrator voices. Then, I could go around saying things like “Since the dawn of time, man has sought to emulate birds in flight” or “Most historians who specialize in the early to mid-late Medieval era agree that …” or “Unicorns: are they myth or simply mysteriously elusive?”

I thought of the voice thing when I was watching a documentary on monolithic structures the other day. They were all very impressive. They had stood the test of time and were all lasting monuments to the societies that built them. However, the fact that they were monoliths– inflexible and immovable–now made them useless relics. Impressive relics; but relics nonetheless.

A similar process is happening today with monolithic IT architecture in most major corporations. Useful back in the “dawn of time,” they are also now relics that cannot keep up with the rapid changes occurring in all major corporations. All major corporations’ ultimately aim to operate their IT environments and applications in the way newer companies operate Twitter, Facebook, Airbnb, Netflix and many more.

All major corporations want to respond to their clients’ needs very fast and want to make frequent changes in their key IT applications based on those needs. They want to deploy new services and features very frequently, even multiple times a day, but unfortunately, they cannot do due to the monolithic foundation their architecture is built on. They are single systems that are closely depended on various services. This dependency is a major weakness, as one service being down can influence the entire architecture due to their tight integration. To make any changes to the system, an application developer must build and deploy an updated version of the server-side application.

Monolithic applications have various challenges. For example, it is very difficult to re-use any code, very difficult to scale and very difficult to get operational efficiencies and maintenance.
The alternative architecture to this is microservices. Applications with microservices architecture consist of a set of narrowly focused, independently deployable services. Microservices architecture also follows a more agile methodology vs. the monolithic waterfall model.

What is the BIG deal with microservices?

Microservices represent the next step in an evolution from physical to virtual to cloud-to-cloud native. They are a set of small, narrowly focused, and independently deployed services that communicate with each other in a language-agnostic manner. Their architectures are highly scalable and highly available. They also easily support frequent updates and can be made available on a Software as a Service (SaaS) basis.

When the marketplace changes, it generates new customer needs that open up more opportunities. Your cloud-native environment changes just as quickly to allow you to respond to the change and capitalize on the opportunities. What would take forever on monolith architecture, can happen now in no time with microservices architecture.

Combined with the flexibility and power of cloud computing, microservices architecture delivers several capabilities and benefits.

Taking the big step to microservices

A number of best practices have been established to help ensure that SaaS, also called web apps, deliver maximum benefits. For example, the twelve-factor app is a methodology for building Software-as-a-Service apps that:

Use declarative formats for setup automation, to minimize time and cost for new developers joining the project;

Have a clean contract with the underlying operating system, offering maximum portability between execution environments;

Are suitable for deployment on modern cloud platforms, obviating the need for servers and systems administration;

Minimize divergence between development and production, enabling continuous deployment for maximum agility;

In addition, can scale up without significant changes to tooling, architecture, or development practices.

The twelve-factor methodology can be applied to applications written in any programming language and use any combination of backing services (database, queue, memory cache, etc.).

Microservices architecture has significant business advantages over monolithic architecture and time to market is one of them.