TL; DR
áá
áºááẠáá»áœááºá¯ááºááá¯á·ááẠáááºááœá±á·ááœáẠDevOps áááááá¬áá»á¬ážááᯠááá¯ááºážááŒá¬ážá
áááºááŒá¬áá«áááºá
á¡áá±ážá
áááºááŸáá·áº á¡á
á®á¡á
ááºáá»á¬ážááᯠááŒááºáá±á¬ááºáá¬ážáá¯á¶á¡á±á¬ááºááœááºá
Ivan Kruglov ááŸáá·áºá¡áá° áá®ážááŒá¬áž Slurm SRE ááᯠááŒááºáááºáá±áá±á¬ááŒá±á¬áá·áº SRE ááᯠáááá¯ááááºá០áááºááŸá¬ážáá²á·áááºá ááŒá±áá¬áá»ááºá áá±á¬ááºááŸáá¬áááºá
ááááá¯á¶áž Slurm ááŸá
áááºá áá»áœááºá¯ááºááá¯á·áá
ááœááºáá¬áá»á¬ážááᯠSelectel á០áá»á±ážáá°ážáááºáá«áááºá
áá¿áá ááá áááá á¹áá¬áá²á· ááá»áŸá±á¬áºááá·áºáá¬ážáá²á· á¡á±á¬ááºááŒááºááŸá¯ááœá±á¡ááŒá±á¬ááºáž
á
ááºáááºáá¬ááá¯ááºááœáẠáá±á¬áºá
ááá¯ááœáẠDevOpsConf ááᯠáááºáá±á¬ááºáá²á·áááºá
ááŒá¬ážááá¯ááºááá±á¬ á¡ááŒá±á¬ááºážá¡áᬠá¡áá»ááºážáá»á¯ááº
â DevOps ááẠáááºááá·áºá¡ááœááºá¡á
á¬ážááŸá ááá±á¬áá»ááºá¡áá»á¬ážá
á¯á¡ááœáẠááá¯á¡ááºáááº;
â DevOps ááẠáááºááá·áºáááºáá»á±ážááŸá¯áá²á·ááá¯á·áááºá áááºážááẠáá¯áá¹ááá®á¡ááœááºážá០áááºážáááºáá¬ááááºááŒá
áºáááºá áááºááẠDevOps á¡ááºáá»ááºáá®áá¬ááᯠááŸá¬ážáááºážá áá¯ááºáááºážá
ááºáá»á¬ážááᯠááá¯ááá¯áá±á¬ááºážááœááºá
á±áááºáᯠá¡áááºáááºáááºáá«á
â DevOps á¡ááœááºááŒá±á¬ááºážááŸá¯á¡ááœáẠááá¯á¡ááºááá·áºá¡áá¬áá»á¬ážá
á¬áááºážáá¡áá¯á¶ážááœáẠáááºážááá¬á ááá¯ááá¯áááºááŸá¬ áá»áœááºá¯ááºááá¯á·áááºáá±ážáá±á¬ á¡ááœáẠDevOps áááááá¬áá»á¬ážááŒá
áºáááºá
áá®áááºáááºážááŸá¬ DevOps áá¿ááááá±ááá²á· áááºáá»á±ážááŸá¯ááœá± ááá«áááºáᬠáááŸááºáá°ážááá¯áᬠáá»áœááºáá±á¬áºáá¬ážáááºáá²á·áááºá áá¬ááŒá±á¬áá·áºáá²ááá¯áá±á¬á· áá«ááᯠá áá áºááá» áááºááŒá¬ážááá¯á· áááá«áá°ážá ááá¯á¡ááºáá°ááá¯ááºáž á á¬á¡á¯ááºááœá± ááŸá¬ áááºááŒáá«á áá«ááŸááá¯áẠáá°ááá¯ááºážááᯠáá°á·áá²á· á¡áááºá¡áá»ááºážáá²á· á¡ááœáá·áºá¡á¬áá¬áá²á· ááœá²áá±á¬ááºááá¯ááºááá·áº á¡ááœááºáá±á¬ááºážáá²á· áááºážááŒááᯠáá°ááŸá¬ááœá±á·áááá·áºáááºá
ááá¯ááºááá¯ááºááá¯ááºáá»á áá»áœááºá¯ááºááẠáááááá¬áá»á¬ážááŸáááá·áº áááºáá»á±ážááŸá¯á ááŒá±á¬ááºáá»á¬áž á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯ "á¡á±á¬ááºá០ááŸá¯ááºááŸá¬ážááŸá¯" ááᯠá¡ááŒá²áááºáž áá±á¬ááºáá¶áá°ááŒá áºáááºá The Phoenix Project ááœááºáá±á¬áºááŒáá¬ážááá·áºá¡áá¬ááŸáá·áºáá°áááºá á¡áááºá áá»áœááºá¯ááºááá¯á·ááœáẠGit ááŸáá·áº á¡ááœá²á·ááá¯ááºáá¯ááºáá±á¬ááºááŸá¯ááᯠááŸááºáááºá áœá¬áááºááŸááºáá«áá áá»áœááºá¯ááºááá¯á·ááẠáááºážááᯠá ááºážáá»ááºážáá»á¬ážááŒáá·áº ááŒááºážááŒááºážáá»ááºáž ááŒáá·áºá áœááºááá¯ááºááŒá®ážá ááá¯á·áá±á¬áẠáááºááá¯ážáá»á¬ážááŸááá¬áááºááŒá áºáááºá
á¡áá¬ážáá°áá«áá²á áááááá¬ááœá±á¡ááŒá±á¬ááºáž áá®ážááá·áºááŒá±á¬áá±áá²á· DevOps Slurm ááᯠááŒááºáááºáá±áá»áááºááŸá¬ áá«áááºáá°ááœá±áá²á· áá¯á¶á·ááŒááºááŸá¯ááᯠáá«ááŒá±á¬ááºáá²á·áááº- âáááºážá á¡á¶á·ááŒá áá¬áá±á¬ááºážáá²á· á¡áá¬ááœá±ááᯠááŒá±á¬áá²á·áááºá ááá¬ážá áá¬áá«á á¡á²áá«ááœá±ááᯠáááºáá±á¬á·á០á¡áá±á¬ááºá¡ááẠáá±á¬áºááá¯ááºááŸá¬ ááá¯ááºáá°ážáâ áá¶ááá áááºááœá± á¡áááºážáá»á¬ážáá¬ááá¯á· á¡á á®á¡á ááºááᯠáááºáá«áááºáá« áááºááá·áºáá áºááá¯ááºáááºá
ááá¯á·áá±á¬áºáááºáž á á áºáááºážááœáẠáá«áááºáá°á¡áá»á¬ážá á¯á០áááŸááá¬áá±á¬ á¡ááááá¬ááẠáááºááœá±á·ááœáẠá¡áá¯á¶ážáá»ááá¯ááºááŒá®áž ááá±ážáá±á¬á·áá±á¬ á¡áá¬áááºááœáẠááááááá¯á·ááá¯ááºáá¶á áá áºáá¯áá¯ááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáááºáᯠááŒá±ááá¯áá²á·ááŒáááºá áá áºáá»áááºáááºážááŸá¬áááºá áá»áœááºá¯ááºááá¯á·ááŸááºážááŒáá²á·ááá·áºá¡áá¬á¡á¬ážáá¯á¶ážááẠá¡áá¯á¶ážáááºáá±á¬á¡áá¬áá»á¬ážá á¬áááºážááœááºáá«ááŸááááº- Gitá Ansibleá CI/CD ááŸáá·áº SREá
á¡á ááá¯ááºážááœáẠáááºážááá¯á·ááẠk3s ááᯠá áááºá¡ááœááºáž ááŸááºážááŒááẠáááŒá áºááá¯ááºááŒá±á¬ááºáž Slurm Kubernetes ááŸáááºáž ááŒá±á¬ááŒá¬ážáá²á·áááºááᯠááááááá·áºáá«áááºá
SRE áá±á«ááºážá ááºááᯠáŠážáá±á¬ááºáá° Ivan Kruglov ááŸáá·áºá¡áá° áá®ážááŒá¬ážá¡á á®á¡á ááºáá áºáá¯á¡ááœáẠáá»áœááºá¯ááºááá¯á· ááá±á¬áá°áá®áá²á·ááŒáááºá á¡áá±ážá áááºááᯠáá±á¬áá±á¬ááẠááœá±ážááœá±ážáá±ááŒá®áž áááŒá¬ááẠááŒá±áá¬áá±ážáá«á·áááºá
Slurm DevOps ááŸá¬ áá¬ááœá±ááŒá áºááá²á
á¡á á®á¡á ááº
áá±á«ááºážá áẠ1- Git ááŒáá·áº á¡ááœá²á·ááá¯ááºáá¯ááºáá±á¬ááºááŒááºážá
- á¡ááŒá±áᶠcommand áá»á¬ážááẠgit init, commit, add, diff, log, status, pull, push
- Git á á®ážáááºážááŸá¯á á¡ááá¯ááºážá¡áááºáá»á¬ážááŸáá·áº áááºáá»á¬ážá áá»á°áá¬áá»á¬ážááᯠáá±á«ááºážá ááºážáá«á
- á¡áá±ážááááºážá¡ááœá²á· á¡áá»á¬ážá¡ááŒá¬ážááŸáá·áº á¡áá¯ááºáá¯ááºááŒááºážá
- GitHub á á®ážáááºážááŸá¯
- áááºáááºážá á¡áá±ážááááºážá áá±á¬ááºážááá¯áá»ááº
- áááááá¹ááá»á¬ážá áá¯ááºáá±ááŸá¯áá»á¬ážá Gitflow ááŸáá·áº á¡ááœá²á·áá»á¬ážááŸáá·áº áááºááœáŸááºáá±á¬ á¡ááŒá¬ážá á®ážáááºážááŸá¯áá»á¬ážá¡ááŒá±á¬ááºáž áá±á¬ááºáá áºááŒáááº
áá±á«ááºážá áẠ2- ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯ááŸá¯áá±á¬áá·áºá០á¡ááá®áá±ážááŸááºážááŒáá·áº áá¯ááºáá±á¬ááºááŒááºážá
- Python ááœáẠmicroservice ááá¯áá±ážááŒááºážá
- áááºáááºážáá»áẠá¡ááŒá±á¬ááºážá¡áá²áá»á¬áž
- áá±á«ááºážá ááºááŒááºážááŸáá·áº áá°áá áºá á áºáá±ážááŸá¯áá»á¬áž
- ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯ááœáẠdocker-compose ááá¯á¡áá¯á¶ážááŒá¯ááŒááºážá
áá±á«ááºážá áẠ#3- CI/CD- á¡ááá¯á¡áá»á±á¬ááºá áá áºá¡ááŒá±á¬ááºáž áááá«ááºáž
- Automation áááá«ááºáž
- áááááá¬áá»á¬áž (bashá áá¯ááºá gradle)
- áá¯ááºáááºážá ááºáá»á¬ážááᯠá¡ááá¯á¡áá»á±á¬ááºáá¯ááºáá±á¬ááºááẠgit-hooks ááá¯á¡áá¯á¶ážááŒá¯ááŒááºážá
- á ááºáá¯á¶á ááºážáá±ážááœá²ááá¯ááºážáá»á¬ážááŸáá·áº IT ááœáẠáááºážááá¯á·á áá»áŸá±á¬ááºááœáŸá¬áá»á¬áž
- "á¡ááœá±ááœá±" ááá¯ááºááá¯ááºážáááºáá±á¬ááºááŒááºážáá¥ááá¬
- CI/CD á¡ááœáẠáá±ááºáá®áá±á¬á·ááºáá²ááº- Drone CIá BitBucket Pipelinesá Travis á áááºááá¯á·á
áá±á«ááºážá ááºáá¶áá«áẠ4- CI/CD- Gitlab ááŸáá·áºá¡áá¯ááºáá¯ááºááŒááºážá
- Gitlab CI
- Gitlab Runnerá áááºážááá¯á·á á¡áá»áá¯ážá¡á á¬ážáá»á¬ážááŸáá·áº á¡ááá®áá±ážááŸááºážáá»á¬áž
- Gitlab CIá ááœá²á·á ááºážááŸá¯á¡ááºá¹áá«áááºáá»á¬ážá á¡áá±á¬ááºážáá¯á¶ážá¡áá±á·á¡áá»áá·áºáá»á¬áž
- Gitlab CI á¡ááá·áºáá»á¬áž
- Gitlab CI Variables
- áááºáá±á¬ááºáá«á á ááºážáááºáá«á á¡áá¯á¶ážáá»áá«á
- á á®áá¶ááœááºáá²ááŸá¯ááŸáá·áº ááá·áºáááºáá»ááºáá»á¬áž- áá¬áá»áŸááºá áááºá¡áá»áááº
- áá á¹á ááºážáá»á¬ážááŸáá·áºá¡áá°á¡áá¯ááºáá¯ááº
- .gitlab-ci.yml á¡ááœááºážááŸá ááá°áá¬áá»á¬ážá ááá¯ááºááá¯ááºážá ááá°áá®áá±á¬ á¡á áááºá¡ááá¯ááºážáá»á¬ážááœáẠáá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠááŒááºáááºá¡áá¯á¶ážááŒá¯ááŒááºážá
- ááá¹ááá»á¬áž áá«áááºáá«áááºá
- gitlab-ci.yml á áááá¯áá»á¯ááºááá¯ááºááŸá¯ á á®áá¶ááá·áºááœá²ááŸá¯ (ááá¯ááºáá áºáá¯ááŸáá·áº á¡ááŒá¬ážááá¯ááŸá±á¬ááºáá¬áá»á¬ážááá¯á· á¡ááá¯á¡áá»á±á¬áẠááœááºážááá¯á·áááº)
áá±á«ááºážá áẠ5- á¡ááŒá±áá¶á¡áá±á¬ááºá¡áŠ Code á¡ááŒá áº
- IaC- á¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶ááᯠáá¯ááºá¡ááŒá áºáá»ááºážáááºááŒááºážá
- á¡ááŒá±áá¶á¡áá±á¬ááºá¡áŠáá¶á·ááá¯ážáá±ážáá°áá»á¬ážá¡ááŒá ẠCloud áá¶á·ááá¯ážáá±ážáá°áá»á¬áž
- á áá áºá áááºááŒááºáž áááááá¬áá»á¬ážá áá¯ááºáá¯á¶áááºáá±á¬ááºááŒááºáž (packer)
- á¥ááá¬á¡áá±ááŒáá·áº Terraform ááá¯á¡áá¯á¶ážááŒá¯á IaC
- ááœá²á·á ááºážááŸá¯ááá¯ááŸá±á¬ááºááŸá¯á áá°ážáá±á«ááºážáá±á¬ááºááœááºááŸá¯á á¡ááá®áá±ážááŸááºážá¡ááá¯á¡áá»á±á¬ááºá áá áº
- Ansible playbooks áááºáá®ážááŒááºáž á¡áá±á·á¡áá»áá·áº
- á áááºáá¬ááºáá»ááŒááºážá áá¯ááºáá±á¬áºááŒá±á¬ááá¯ááŒááºáž
- á¥ááá¬á¡áá±ááŒáá·áº Ansible ááá¯á¡áá¯á¶ážááŒá¯á IaC
áá±á«ááºážá ááºáá¶áá«áẠ6- á¡ááŒá±áá¶á¡áá±á¬ááºá¡áŠá ááºážáááºááŒááºážá
- Molecule ááŸáá·áº Gitlab CI ááŒáá·áº á ááºážáááºááŒááºážááŸáá·áº á ááºáááºáááŒáẠáá±á«ááºážá ááºááŒááºážá
- Vagrant ááá¯á¡áá¯á¶ážááŒá¯ááŒááºážá
áá±á«ááºážá ááºáá¶áá«áẠ7- Prometheus ááŒáá·áº á¡ááŒá±áá¶á¡áá±á¬ááºá¡áŠ á á±á¬áá·áºááŒáá·áºááŒááºáž
- á á±á¬áá·áºááŒáá·áºááá¯á· áá¬ááŒá±á¬áá·áº ááá¯á¡ááºáá¬áá²á
- á á±á¬áá·áºááŒáá·áºááŸá¯á¡áá»áá¯ážá¡á á¬ážáá»á¬áž
- á á±á¬áá·áºááŒáá·áºáá±ážá áá áºááœáẠá¡áááá±ážáá»ááºáá»á¬áž
- áá»ááºážáá¬áá±á¬á á±á¬áá·áºááŒáá·áºáá±ážá áá áºáá áºáá¯áááºáá±á¬ááºáááºáž
- áá°ááá¯ááºážá¡ááœáẠáá°áá¬ážáááºááá¯ááºáá±á¬ á¡áááá±ážáá»ááºáá»á¬áž
- áá»ááºážáá¬áá±ážá á áºáá±ážááŒááºáž- áááºááááá¬ážááá·áºáááºáá»á¬áž
- á á±á¬áá·áºááŒáá·áºáá±áá¬á¡áá±á«áºá¡ááŒá±áá¶ááŒá®áž á¡ááá¯á¡áá»á±á¬ááºá áá áº
áá±á«ááºážá áẠ#8- ELK ááŒáá·áº áá»áŸá±á¬ááºááœáŸá¬ááᯠááŸááºáááºážáááºááŒááºážá
- á¡áá±á¬ááºážáá¯á¶áž áá áºáá¯ááºááŒááºáž á¡áá±á·á¡áá»áá·áºáá»á¬áž
- ELK stack
áá±á«ááºážá áẠ#9- ChatOps ááŒáá·áº á¡ááŒá±áá¶á¡áá±á¬áẠá¡á¡á¯á¶á¡ááá¯á¡áá»á±á¬ááºáá¯ááºáá±á¬ááºááŒááºáž
- DevOps ááŸáá·áº ChatOps
- ChatOps- á¡á¬ážáá¬áá»ááºáá»á¬áž
- á¡á¬ážááá¬ááŸáá·áº á¡ááŒá¬ážááœá±ážáá»ááºá áá¬áá»á¬áž
- ChatOps á¡ááœáẠáá±á¬á·ááºáá»á¬áž
- Hubot ááŸáá·áº á¡ááŒá¬ážááœá±ážáá»ááºá áá¬áá»á¬áž
- áá¯á¶ááœá¯á¶ááŸá¯
- á¡áá±á¬ááºážáá¯á¶ážááŸáá·áº á¡ááá¯ážáá¯á¶áž á¡áá±á·á¡áá»áá·áºáá»á¬áž
áá±áá¬á¡áááº: áá±á¬áºá ááá¯á Sevastopol ááá¯áááºáá¡á ááºážá¡áá±ážáááºážá
áááºá áœá²áá»á¬áž: áááºááá«áá® áá á០áá±áá±á¬áºáá«áá® á áááºá¡áá á áááºááŒá¬ á¡áá¯ááºááŒáá¯ážá á¬ážáááºá
source: www.habr.com