Establishing the Deployment Workflow

Get familiar with the basics of the deployment process.

When we discuss deployment, we are assuming that we’re happy enough with what we have developed so far. This could be when we run our app for the first time or after having introduced some changes or fixed some bugs. So, our data and code are ready to go. Our focus will be to set up the required infrastructure to enable us to run the code online.

The setup we’ll be going through is going to be simple and straightforward. We will be using Linode as an example for our hosting provider. An important feature of Linode, which was rebranded as Akamai Connected Cloud in early 2023, is that it follows a philosophy of “open cloud.” This means that the server we’ll be working with will be a plain Linux server using open source components and packages that we can customize the way we want and migrate to and from with ease. The potential challenge here is that with more freedom comes more complexity and responsibility. Earlier we discussed the trade-off involved in choosing between higher- and lower-level software, and in this case, we’ll be working with a lower-level system to run our app.

Note: If you’re experienced in running and managing servers, then you’ll have the full flexibility that you need, and you can skip most of the section. The good news for beginners is that even though you’ll be “on your own,” we will be running a very simple setup with simple defaults. This should enable you to easily deploy your app, and you can gradually learn more about how you might want to customize your setup, knowing that you have full access to some of the top tools.

Deployment workflow

Our deployment workflow will contain three main components, outlined as follows:

  • Our local workstation: This has been extensively covered so far. It is the local setup that we’ve been working with.
  • A source code management system: We don’t really need this to get our app to run, but it’s a very good practice to follow, especially when our app grows in size and when more people are involved in its maintenance.
  • A server with the required infrastructure and setup: Our code and data will be running and served to the public from here.

To make things clearer, the following illustration shows the elements we’re discussing and, following that, a brief description of them and how they relate to each stage in the development and deployment cycle.

Get hands-on with 1400+ tech skills courses.