176 lines
5 KiB
Markdown
176 lines
5 KiB
Markdown
|
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||
|
title = "Skynet: LDAP"
|
||
|
date = 2023-10-22
|
||
|
slides = false
|
||
|
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||
|
|
||
|
# CI/CD
|
||
|
|
||
|
-------------------------------------------------------------------------
|
||
|
|
||
|
CI: Continuous Integration
|
||
|
CD: Continuous Delivery/Deployment
|
||
|
|
||
|
-------------------------------------------------------------------------
|
||
|
|
||
|
## CI: Continuous Integration
|
||
|
|
||
|
-------------------------------------------------------------------------
|
||
|
|
||
|
This is regularly testing and merging into the main branch.
|
||
|
|
||
|
-------------------------------------------------------------------------
|
||
|
|
||
|
Anyone contributing to skynet will have seen the test/linter pipelines.
|
||
|
|
||
|
-------------------------------------------------------------------------
|
||
|
|
||
|
Its easier/less painful to test small changes.
|
||
|
|
||
|
-------------------------------------------------------------------------
|
||
|
|
||
|
## CD: Continuous Delivery/Deployment
|
||
|
|
||
|
-------------------------------------------------------------------------
|
||
|
|
||
|
Automatically building or deploying teh final product after CI
|
||
|
|
||
|
-------------------------------------------------------------------------
|
||
|
|
||
|
Builds/deploys in a reliable manner.
|
||
|
|
||
|
-------------------------------------------------------------------------
|
||
|
|
||
|
## Why its so danm good
|
||
|
|
||
|
-------------------------------------------------------------------------
|
||
|
|
||
|
So you have been using Git right?
|
||
|
|
||
|
-------------------------------------------------------------------------
|
||
|
|
||
|
But you have been SSHing into teh server to update the code in production
|
||
|
|
||
|
-------------------------------------------------------------------------
|
||
|
|
||
|
Which is grand but tedious.
|
||
|
|
||
|
-------------------------------------------------------------------------
|
||
|
|
||
|
You forgot to push the new update last ween to the server.
|
||
|
|
||
|
-------------------------------------------------------------------------
|
||
|
|
||
|
Now its Friday and ye got DnD this evening.
|
||
|
|
||
|
-------------------------------------------------------------------------
|
||
|
|
||
|
So ye quicky pull ghe git repo in and run the init script.
|
||
|
|
||
|
-------------------------------------------------------------------------
|
||
|
|
||
|
Then ye quickly leave, thinking of what your Fairy Barbarian will do next
|
||
|
|
||
|
-------------------------------------------------------------------------
|
||
|
|
||
|
You may have forgotten to test it properly though.....
|
||
|
|
||
|
-------------------------------------------------------------------------
|
||
|
|
||
|
```bash
|
||
|
userDir=/home/username
|
||
|
rm -rf $userdir/
|
||
|
```
|
||
|
|
||
|
-------------------------------------------------------------------------
|
||
|
|
||
|
Congratulations!
|
||
|
|
||
|
-------------------------------------------------------------------------
|
||
|
|
||
|
You just wiped everything!
|
||
|
|
||
|
-------------------------------------------------------------------------
|
||
|
|
||
|
Did you spot the typo?
|
||
|
|
||
|
-------------------------------------------------------------------------
|
||
|
|
||
|
So what are the things that went wrong?
|
||
|
|
||
|
-------------------------------------------------------------------------
|
||
|
|
||
|
1. Forgot to deploy the previous release.
|
||
|
2. Forgot to do/skipped testing.
|
||
|
3. It will be Sat that you will get teh dreaded phonecall.
|
||
|
|
||
|
-------------------------------------------------------------------------
|
||
|
|
||
|
CI/CD in this case will test and then deploy, automagically.
|
||
|
|
||
|
-------------------------------------------------------------------------
|
||
|
|
||
|
If it finds an error the pipeline stops.
|
||
|
|
||
|
-------------------------------------------------------------------------
|
||
|
|
||
|
Some pipelines have the option to undo a bad deploy.
|
||
|
|
||
|
-------------------------------------------------------------------------
|
||
|
|
||
|
## CI/CD as a force multiplier.
|
||
|
|
||
|
-------------------------------------------------------------------------
|
||
|
|
||
|
|
||
|
It allows Devs to deploy early and often (feel like making an impact)
|
||
|
|
||
|
-------------------------------------------------------------------------
|
||
|
|
||
|
Gives Ops folks more reliability, same process every time.
|
||
|
|
||
|
|
||
|
-------------------------------------------------------------------------
|
||
|
|
||
|
Handles tediousness.
|
||
|
|
||
|
-------------------------------------------------------------------------
|
||
|
|
||
|
It does require more up front time investment to get set up.
|
||
|
|
||
|
-------------------------------------------------------------------------
|
||
|
|
||
|
Well worth it for piece of mind.
|
||
|
|
||
|
-------------------------------------------------------------------------
|
||
|
|
||
|
Back in 2009 there were [4+ admins][0]
|
||
|
|
||
|
-------------------------------------------------------------------------
|
||
|
|
||
|
They were each responsible for their own servers.
|
||
|
|
||
|
-------------------------------------------------------------------------
|
||
|
|
||
|
Each had their own processes.
|
||
|
|
||
|
-------------------------------------------------------------------------
|
||
|
|
||
|
Handed down like arcane scrolls.
|
||
|
|
||
|
-------------------------------------------------------------------------
|
||
|
|
||
|
Now said scrolls are codified.
|
||
|
|
||
|
-------------------------------------------------------------------------
|
||
|
|
||
|
Since pipeline deploys on our behalf no need to have admin access.
|
||
|
|
||
|
-------------------------------------------------------------------------
|
||
|
|
||
|
|
||
|
//Use this time to explore the nixos repo to explain//
|
||
|
|
||
|
|
||
|
|
||
|
[0]: https://2016.skynet.ie/contacts.html
|