Is your Application Cloud-Ready


What do every successful software companies like FAANG and others have in common?

  • The cadence of new features.

  • Undisrupted services to customers.

  • Capacity to serve millions and billions of customers at the same time.

  • Device-independent User-Experience.

To develop successful software, with all the capabilities mentioned above, one should follow the cloud-native trail.


Before diving into HOW to achieve the points mentioned above, we should take a step back and try to answer WHY.

Motivation

Cloud-Native doesn’t mean that your app needs to be in the public cloud (Azure, AWS, Google); it can also be on private clouds (VMWare VShphere, OpenStack). The only requirement is that it should have the capability of

  • on-demand scaling

  • resources like Networking, Storage, Security can be provisioned elastically, on-demand.

  • Self-service should be enabled.

Cloud-Native apps have all these characteristics. We can understand the motivation by learning its quirks.

Speed

Imagine, if your app can be deployed multiple times a day, and each deployment only takes a minimal amount of time.


This enables companies to take more risks because they know, if anything went sideways, then we can easily replace it with the stable version, without affecting the business.

Safety

With increased speed, there are more chances of errors, so there should be a safety mechanism that will ensure durability, stability, and availability.


The Cloud-Native app enables all these safety norms by providing:

  • Visibility — way to distinguish between, what is Normal, and what is not in your software.

  • Fault isolation — way to limit the scope of fault.

  • Fault Tolerance — way to avoid failure of the entire app, by avoiding cascading of error, caused by the failure of a single component.

  • Automated Recovery — way to recover automatically from failure.

Scale

With the advent of Mobile, the number of users interacting with the app has increased in a significant amount. The cloud-Native app enables on-demand scaling.


In traditional software, the company used to do vertical scaling. But as the era changed, companies shifted to:

  • Horizontal Scaling ( Creating new instances of your Service.)

  • Virtualization ( Creating smaller servers within the same machine.)

With the advent of Cloud Computing, public and private cloud providers started providing Virtualization, so that companies can only focus on Horizontal scaling.


After a few years only, another prominent shift occurred, companies started moving toward Container As a Service, and away from Virtualization.


By now, we have got an understanding of why companies should start investing in Cloud-Native Apps.

Pathway for Cloud-Native


  • Twelve-factor appfocuses on speed, safety, and scaling by providing declarative configuration, stateless Service, scoped process, loosely coupled components, and horizontal scaling.

  • Microservice Architecturefocuses on developing small services that align with business capabilities. Autonomous development because of small independent units, which in turn speed up the development process and ensures fault isolation.

  • Abstracting Infrastructurefocuses on enabling the development team to interact with the Infrastructure component without requiring the infra team, which in turn increases the speed of the development.

  • DevOps Culturefocuses on allowing companies to move away from Silos, and distributing the work among the cross-functional teams, which result in increased speed of development.

  • Container as Service — focuses on the packaging of the app in its runtime environment that facilitates smooth movement of the app between different environments, and developers.

  • Continuous Delivery focuses on the fast on-demand release of new features.


Tools Required


Many tools can help in developing Cloud-Native Apps, and many others are graduating soon.


There is a separate foundation by the name of the Cloud Native ComputingFoundation(CNCF), which is managing all open source tools facilitating Cloud-Native App development. You can find all tools by clicking this link.

All big players of clouds ( Azure, AWS, Google) are also associated with CNCF.


Comments and feedback are most welcomed.


Please follow me on Linkedin, Github, and join our newsletter to keep yourself updated.


Thanks for reading. Happy Learning 😊


32 views

Recent Posts

See All