After a lot of work by many talented people we can now continuous deployments during business outage with no customer impact. But since this is fairly new to us we still have a few manual controls in place until we flesh processes out and build up our automated test suites.
To create a little bit of spectacle for our first deployments to production I was commissioned to build a launch system. The box and a bunch of buttons where given to me with the request to make it awesome and make it work. The idea of the business people for multiple buttons was that we could use it to deploy different applications once they would also have deployment pipelines. But how do I integrate with all these systems, controlled by restricted credentials? At this stage we don't want just anyone to kick of a deployment. Simply, we don't integrate with these systems and just use smoke and mirrors.
All the big push buttons are wired in parallel. Push any of them and a signal will go to the micro-controller which emulates a USB computer mouse and send a mouse click event. So on the big day a user will log into the deployment system, get everything ready and hover the mouse pointer over the deployment button on the UI. Than someone can use the "launch control system" to start the deployment. The toggle switches control the LED in the dome buttons. Flick the switch and the corresponding dome button will have a breathing light effect,
Because I wasn't sure of the emulated mouse would work on a company computer I added a buzzer to the build. The idea being that someone could press the button on the launch control system and someone at a computer would get an audible signal to start a deployment.
George Timmermans, Research Toolmaker, Software Engineer and Tinkerer