In the previous chapter, we learned how to make sure the app still works if we make changes. But, this is still not the final step in the application life cycle. Once written and tested, the app has to be deployed somewhere to open it to the rest of the world. Deployment means that you create some sort of build artifact (something that appears after you run a build procedure) and place it on a computer that can take this artifact and reveal it to the internet. The simplest way is to zip all the build/out folder, upload it to a remote server, and extract it. But this is very inconvenient when an update contains deletions, edits, additions, and so on. Moreover, what if the server software has to also be updated during the deployment? There has to be a better way.
In this chapter, you will learn what virtual machine containers are and why they are useful. You will learn...