Deploying your application

There is no point in writing code that won't be brought to production. Regardless of whether you deploy your application to the cloud or in your on-premise environment, you can use some techniques and tools to automate the deployment process. This will help you to reduce the amount of effort required.

During the deployment process of a software system some years ago, the whole team writing the application had to sit with the operations team, just in case something went wrong. Consequently, the deployment date used to be scary for both technical and business people involved in the project. Fortunately, this has changed. Let's review how this change occurred.

Automation is a must when we are entering this field. There are many CI tools available for creating pipelines that will help you to automate deployments. The most widely used of these are Jenkins, Travis CI, Go CD, Codeship, and Bamboo, among others. With the help of these tools, you can create a pipeline that often involves the following:

  1. Downloading the source code
  2. Compiling the code
  3. Running a defined set of tests
  4. Deploying the code

The main step is the third one, which involves different sorts of tests, such as those listed here:

  • Unit tests
  • Integration tests
  • Functional tests
  • Performance tests

The more tests you include as a part of your application, the more confidence you'll gain. This is the only way to get rid of the fear caused by deployment. After all, if your tests verify that the functionality is working as expected, there is no reason to be worried about the deployment.

These CI tools also include support for sending notifications about the pipelines, generating metrics around the code, executing configuration scripts, and completing some other steps inherent to deployment. These pipelines are often triggered by commits, and they can also be scheduled.

The adoption of a CI tool is the first step toward automating and managing your deployments in a better way. At this point, you will want to adopt practices like Continuous Integration, Continuous Delivery, and DevOps, which we will explain in depth in Chapter 11, DevOps and Release Management.

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

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