My First Experiences Deploying Things
Tags: beginners, deployments
Published: 2019-10-14 23:37:25

This is my response to the following tweet, asking about developer's first experiences deploying something. 
{% twitter 1183708646871449600 %}

# Very First Personal Websites (2010)

**What:** Several PHP websites, built completely from scratch.

**Why:** I wanted to learn how to make dynamic websites.

**Deployment Process:** 
- Collect an old PC from school
- Wipe it and install Windows 7 onto it
- Set up WAMP (Windows, Apache, MySQL, PHP) Server
- DynDNS set up on our home router
- .tk domains hiding the DynDNS domain

**Things that went wrong:**
- The network cable rang across the bathroom door which made my parents unhappy with the trip hazard
- WAMP was hard to set up and run
- OS Patching? What's that!

# C# IRC Bot (2010/11)

**What:** An IRC bot that I wrote without any libraries that could sit in a server with me and around 5 other people and their bots. All it would do is respond to commands (and log messages).

**Why:** Everyone else in the server had one and I wanted to learn some C#.

**Deployment Process:**
- Compile code on my machine
- Copy it to the server from before
- Run the executable

**Things that went wrong:**
- It would occasionally crash and I would need to start it again
- Still not OS patching

# Stocktake System (2011/12)

**What:** A rewrite of my works stocktake system, with the aim of making it easier/faster.

**Why:** Stocktake would take an entire day because you had to print off a sheet, find all the items that we had and mark them off, and then go and select all the items that didn't exist on the web interface and select them. New system was to enter the IDs of every item we could find, and then press "complete stocktake" which would take all of the items we didn't find and mark them as lost.

**Deployment Process:**
- Write code on the in-house developers machine
- Copy it to the web server
- Test it

**Things that went wrong:**
- Accidentally screwed up the entire production database (Thank goodness I took a backup first)
- No one else wanted to use the software I wrote even though it was faster (writing it, testing it and doing a stocktake only took me a Saturday morning)

# Websites for myself and others (2012-2015)

**What:** Several websites (static and PHP)

**Why:** People wanted websites and I knew how to make them.

**Deployment Process:** 
- Set up an account with a hosting provider
- Configure databases in cPanel if I needed them
- FTP the code to the server
- Check it all
- Quickly fix anything that I needed to fix
- Zip up the website locally and keep it as a backup

**Things that went wrong:**
- One hosting provider I was required to use didn't stop you from being able to see others websites code (and therefore their database passwords) so I had to convert one website from wordpress to static. All 300+ pages of it
- I would occasionally have links set wrong
- To save money on hosting providers I was writing PHP to split all my domains to different folders on the hosting provider. And that would regularly have edge cases

# How I do deployments now

Looking back all of my deployments were manual, poorly tested, and very low impact if something went wrong (with the exception of both 300+ static page sites). Last week I wrote about one deployment I did, and so much has improved in them. You can read about that below:

{% link mitchpommers/halloween-story-the-friday-deploy-1f6a %}