Deploying enterprise applications

Over the course of this book, we have seen how to develop an enterprise application using different principles, be it a monolithic way of application development or through the use of small microservices for developing the application. But these things converge at a common point. For our applications to be made available for general use, they need to be deployed at some place outside the development environment that is accessible to the general users.

This infrastructure and the type of deployment chosen for a particular application need to offer a certain set of features for the deployment to be successful:

  • High uptime: Any infrastructure where an application is deployed needs to provide high uptime so as to provide a near interruption free service of the application to its users. If the infrastructure is vulnerable to frequent downtimes, then it might cause severe downtimes in the availability of the application, and can cause the processes that are dependent upon the application to come to a halt until the infrastructure on which the application is running comes back online.
  • Low latency: The latency of the infrastructure serving the application should be low so as to enable adequate response times to the users. If the infrastructure latency is high, the users may keep waiting to interact with the application, or the response to be generated by the application may severely impact their productivity.
  • Fault tolerance: The deployment infrastructure should be fault tolerant and should be able to recover from an occasional failure of a few nodes. In case of the absence of fault tolerance, even a single issue inside the infrastructure will be enough to bring the whole application down, causing severe reliability issues for the users of the application.

These are just a basic set of requirements that need to be present for an infrastructure to be considered for the deployment of the application. There could be additional requirements that might get imposed as a result of the choice of a particular deployment strategy for the infrastructure, but the discussion of those requirements is beyond the scope of this book.

Untill now, we have heard the words Deployment strategies a lot, but what exactly do we mean when we say we need to choose an appropriate deployment strategy for the application? Let's spend some time exploring this.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.116.118.229