What it is
Production is the live version of a service that real people use (as opposed to a test one). Deploying is the process of shipping a new version of the code to the server.
How we use it
We deploy through CI/CD โ automatically, with no manual file copying and no risk of shipping the wrong version.
Where it matters to a business
- A new version of a website or bot must not bring down the running service.
- You need to know exactly which version your customers are using right now.
- A test version must not accidentally become "production" or end up in search.
How we use it
- A ready image. The studio website image is built on a workstation and uploaded to the server ready-made. After a deploy the site tells search engines about changed pages by itself.
- One command. The migration of the packaging manufacturer's sites is reproducible by script: containers, dumps, import, styling and redirects deploy with one command. On the VPN route a domain change is also one command, with no live sessions dropped.
- The version in sight. Bots write their version to the log on every start, and a hidden command shows it to the administrator. In the voice transcription bot the version is also in the admin panel header, so you can see what is actually deployed.
- Staging kept apart. A test site is closed to indexing by one environment variable, and the production domain is switched on at the move.
Common problems
- The wrong version was deployed. Without a version in the log and a CHANGELOG, nobody knows what is running or what changed in it.
- The build does not fit in the server's memory. Solved by building on another machine.
- No way back. Before deploying you need to know how to return to the previous version: the previous image, a database copy.
- Copying files by hand. Every manual step is a chance to forget something. Deploys should be scripts.
When you do not need it
A static page that changes once a year does not need an elaborate deploy process: the file can be replaced by hand. Anything that touches customer data is deployed by script.