ืื ื• ืžื–ืžื™ื ื™ื ืื•ืชืš ืœืชื›ื ื™ืช ื”ืื™ื ื˜ื ืกื™ื‘ื™ืช ื”ืžืงื•ื•ื ืช "Slurm DevOps: Tools & Cheats"

ืื™ื ื˜ื ืกื™ื‘ื™ ืžืงื•ื•ืŸ ื™ืชืงื™ื™ื ื‘ืชืืจื™ื›ื™ื 19-21 ื‘ืื•ื’ื•ืกื˜ Slurm DevOps: ื›ืœื™ื ื•ืฆ'ื™ื˜ื™ื.

ื”ืื•ื™ื‘ ื”ืขื™ืงืจื™ ืฉืงื•ืจืก DevOps ื ืœื—ื ื‘ื• ื”ื•ื: "ืžืื•ื“ ืžืขื ื™ื™ืŸ, ื—ื‘ืœ ืฉืื ื—ื ื• ืœื ื™ื›ื•ืœื™ื ืœื™ื™ืฉื ืืช ื–ื” ื‘ื—ื‘ืจื” ืฉืœื ื•". ืื ื• ืžื—ืคืฉื™ื ืคืชืจื•ื ื•ืช ืฉืืคื™ืœื• ืžื ื”ืœ ืจื’ื™ืœ ื™ื›ื•ืœ ืœื™ื™ืฉื ื‘ืคืจื•ื™ืงื˜ ืžื“ื•ืจ ืงื•ื“ื.

ื”ืงื•ืจืก ืžื™ื•ืขื“ ืœ:

  • ืžื ื”ืœื™ ืžืขืจื›ืช ืฉืจื•ืฆื™ื ืœื™ื™ืฉื ืฉื™ื˜ื•ืช DevOps ืžืœืžื˜ื”;
  • ื—ื‘ืจื•ืช ื•ืฆื•ื•ืชื™ื ืฉืจื•ืฆื™ื ืœื”ืชืงื“ื ืœืขื‘ืจ ืชืจื‘ื•ืช DevOps ื‘ืฆืขื“ื™ื ืงื˜ื ื™ื ื•ื‘ืจื•ืจื™ื;
  • ืžืคืชื—ื™ื ืฉืจื•ืฆื™ื ืœื”ื‘ื™ืŸ ืืช "ื“ื‘ืจื™ ื”ื ื™ื”ื•ืœ" ืขืœ ืžื ืช ืœืคืชื•ืจ ื‘ืื•ืคืŸ ืขืฆืžืื™ ืžืฉื™ืžื•ืช ื ื™ื”ื•ืœ ืงื˜ื ื•ืช ื•ืœืื˜ ืœืื˜ ืœื”ืชืคืชื— ืœืงืจืืช ืžื•ื‘ื™ืœ ืฆื•ื•ืช ืœืฆื•ื•ืช ื—ื•ืฆื” ืชืคืงื•ื“ื™ื™ื.

ื”ืงื•ืจืก ื—ืกืจ ืชื•ืขืœืช ืœืžื™ ืฉื›ื‘ืจ ืžื›ื™ืจ ื•ืžืฉืชืžืฉ ื‘ื›ืœื™ DevOps. ืœื ืชืœืžื“ ืฉื•ื ื“ื‘ืจ ื—ื“ืฉ.

ื”ืื™ื ื˜ื ืกื™ื‘ื™ ื”ืžืงื•ื•ืŸ ื”ื•ื ืคื•ืจืžื˜ ืฉืœ ืžืฆื™ืื•ื™ื•ืช ื—ื“ืฉื•ืช; ื”ื•ื ืžืกืคืง ื›ืžืขื˜ ืื•ืชื” ื”ืชืขืžืงื•ืช ื›ืžื• ืื™ื ื˜ื ืกื™ื‘ื™ื•ืช ืœื ืžืงื•ื•ื ื•ืช, ืจืง ืœืœื ื ืกื™ืขื” ืœืžื•ืกืงื‘ื” (ืฉื–ื” ื™ืชืจื•ืŸ ืขื‘ื•ืจ ื—ืœืง, ื•ืžื™ื ื•ืก ืขื‘ื•ืจ ืื—ืจื™ื).

ืื ื• ืžื–ืžื™ื ื™ื ืื•ืชืš ืœืชื›ื ื™ืช ื”ืื™ื ื˜ื ืกื™ื‘ื™ืช ื”ืžืงื•ื•ื ืช "Slurm DevOps: Tools & Cheats"

ื›ื‘ืจ ื”ืขื‘ืจื ื• ืงื•ืจืก ืขืœ DevOps ืคืขืžื™ื™ื ื•ืืกืคื ื• ืืช ื›ืœ ื”ืฆื™ืœื•ืžื™ื ื”ื’ื“ื•ืœื™ื ืฉื™ื›ื•ืœื ื•.
ื”ื‘ืขื™ื” ื”ืขื™ืงืจื™ืช ื”ื™ื ืฆื™ืคื™ื•ืช ื ื›ื–ื‘ื•ืช. ืœื›ืŸ, ืžื™ื“ ื ืกืคืจ ืœื›ื ืžื” ืœื ื™ื™ื›ืœืœ ื‘ืงื•ืจืก.

ืœื ื™ื”ื™ื• ืฉื™ื˜ื•ืช ืขื‘ื•ื“ื” ืžื•ืžืœืฆื•ืช. ื™ื”ื™ื” ื ื™ืชื•ื— ืฉืœ ืคืจืงื˜ื™ืงื” ืžื•ืžืœืฆืช ืื—ืช. ืœื“ื•ื’ืžื”, ื ื•ืฉื CI/CD, ืฉื‘ื• ืืชื” ื™ื›ื•ืœ ื‘ืงืœื•ืช ืœืขืฉื•ืช ืงื•ืจืก ืื™ื ื˜ื ืกื™ื‘ื™ ืฉืœ ืฉื‘ื•ืข, ืœื•ืงื— 4 ืฉืขื•ืช. ื‘ืžื”ืœืš ื”ื–ืžืŸ ื”ื–ื”, ืืชื” ื™ื›ื•ืœ ืœื”ืจืื•ืช ืืช ื”ื™ืกื•ื“ื•ืช ื•ืœื‘ื ื•ืช ืฆื™ื ื•ืจ ืคืฉื•ื˜, ืื‘ืœ ืืชื” ืœื ื™ื›ื•ืœ ืœื ืชื— ื—ื‘ื™ืœื” ืฉืœ ืฉื™ื˜ื•ืช ืขื‘ื•ื“ื” ืžื•ืžืœืฆื•ืช ืœืžืงืจื™ื ืฉื•ื ื™ื.

ื’ื ืžืงืจื™ื ืœื ื™ื”ื™ื•. ืžืงืจื™ื ื”ื ื”ื ื•ืฉื ืฉืœ ื”ื›ื ืก. ืฉื ืืคืฉืจ ืœื“ื‘ืจ ืฉืขื” ืขืœ ืื™ืจื•ืข ืื—ื“ ืžื”ื—ื™ื™ื. ื‘-Slurm, ื”ืžืจืฆื” ื™ื›ื•ืœ ืœื•ืžืจ ืฉ"ื”ื“ื•ื’ืžื” ื”ื–ื• ืœืงื•ื—ื” ืžื”ืคืจืงื˜ื™ืงื” ืฉืœื™", ืœื ื™ื•ืชืจ ืžื–ื”.

ืœื ื™ื”ื™ื” ื ื™ืชื•ื— ืคืจื˜ื ื™ ืฉืœ ื”ืชืจื’ื•ืœ. ืชืจื’ื•ืœ ื”ื•ื ืœื ื—ื•ื ื›ื•ืช, ื”ื•ื ื—ื•ื–ืจ ืื—ืจื™ ื”ืžืจืฆื”. ืžื˜ืจืช ื”ืชืจื’ื•ืœ ื”ื™ื ืœืกืคืง ื”ื–ื“ืžื ื•ืช ื‘ื ื™ืกื•ื™ื™ื ืฉืœืš ืœื”ืชื—ื™ืœ ืžืืคืฉืจื•ืช ืขื‘ื•ื“ื” ื™ื“ื•ืขื”. ืœืื—ืจ ื”ืื™ื ื˜ื ืกื™ื‘ื™ื•ืช, ืชื•ื›ืœื• ืœืขื™ื™ืŸ ื‘ื”ืขืจื•ืช ื•ืœื—ื–ื•ืจ ืขืœ ื”ืชืจื’ื•ืœ ื‘ืขืฆืžื›ื. ื–ื” ื™ื™ืชืŸ ืชื•ืฆืื•ืช ืžืงืกื™ืžืœื™ื•ืช.

ืœื ื™ื”ื™ื• Kubernetes - ืœืžืจื•ืช ืฉื–ื”ื• ื›ืœื™ DevOps, ื™ืฉ ืœื ื• ืื™ื ื˜ื ืกื™ื‘ื™ ื ืคืจื“.

ื•ืžื” ื™ืงืจื”?

ื•ื•ื™ืœ ืœื”ื›ื™ืจ ืืช ื”ื›ืœื™ื ืžืืคืก ื•ืžื’ื•ื•ืŸ ืžืœื ืฉืœ ืคืชืจื•ื ื•ืช ืœื‘ื ื™ื™ืช ืชืฉืชื™ืช ื‘ืกื™ืกื™ืช.

ื™ื”ื™ื” ืกื™ืคื•ืจ ืฉืœ ืžืชืจื’ืœื™ื ืขืœ ืฉื™ืžื•ืฉ ืืžื™ืชื™ ื‘ื›ืœื™ื ื•ืžืฉื™ืžื•ืช ื—ื™ื™ื. ื–ื” ื”ื‘ืกื™ืก ืฉืืœื™ื• ืืชื” ืชืžื™ื“ ื™ื›ื•ืœ ืœื”ื•ืกื™ืฃ ืžื—ืงืจ ืขืฆืžืื™ ืฉืœ ืชื™ืขื•ื“ ื•ื ื™ืชื•ื— ืžืงืจื™ื.

ื™ื”ื™ื• ืžื“ื™ ื™ื•ื ืชืฉื•ื‘ื•ืช ืœืฉืืœื•ืช, ืฉื‘ื• ืืชื” ื™ื›ื•ืœ ืœืฉืื•ืœ ืขืœ ื”ืคืจื•ื™ืงื˜ื™ื ืฉืœืš.

ื•ื•ื™ืœ ืขื‘ื•ื“ื” ืขื ืžืฉื•ื‘: ืื ื• ืžื‘ืงืฉื™ื ืžืฉื•ื‘ ืžื“ื™ ื™ื•ื. ื›ืชื•ื‘ ืขืœ ื›ืœ ืžื” ืฉืืชื” ืœื ืื•ื”ื‘, ืื ื—ื ื• ื ืชืงืŸ ืืช ื–ื” ืชื•ืš ื›ื“ื™.

ื•ืชื”ื™ื” ื”ื–ื“ืžื ื•ืช ืžืกื•ืจืชื™ืช ืœืงื—ืช ืืช ื”ื›ืกืฃ ื•ืœืขื–ื•ื‘ ืื ืืชื” ืœื ืื•ื”ื‘ ืืช ื”ืงื•ืจืก ื‘ื›ืœืœ.

ืชื•ื›ื ื™ืช ืื™ื ื˜ื ืกื™ื‘ื™ืช

ื ื•ืฉื ืžืก' 1: ืขื‘ื•ื“ืช ืฆื•ื•ืช ืขื Git

  • ืคืงื•ื“ื•ืช ื‘ืกื™ืกื™ื•ืช git init, commit, add, diff, log, status, pull, push
  • ื–ืจื™ืžืช Git, ืขื ืคื™ื ื•ืชื’ื™ื, ืืกื˜ืจื˜ื’ื™ื•ืช ืžื™ื–ื•ื’
  • ืขื‘ื•ื“ื” ืขื ืžืกืคืจ ื—ื–ืจื•ืช ืžืจื—ื•ืง
  • ื–ืจื™ืžืช GitHub
  • ืžื–ืœื’, ืฉืœื˜, ื‘ืงืฉื” ืœืžืฉื•ืš
  • ืงื•ื ืคืœื™ืงื˜ื™ื, ืฉื—ืจื•ืจื™ื, ืฉื•ื‘ ืขืœ Gitflow ื•ื–ืจื™ืžื•ืช ืื—ืจื•ืช ื‘ื™ื—ืก ืœืฆื•ื•ืชื™ื

ื ื•ืฉื ืžืก' 2: ืขื‘ื•ื“ื” ืขื ื”ืืคืœื™ืงืฆื™ื” ืžื ืงื•ื“ืช ืžื‘ื˜ ืฉืœ ืคื™ืชื•ื—

  • ื›ืชื™ื‘ืช ืžื™ืงืจื•-ืฉื™ืจื•ืช ื‘ืคื™ื™ืชื•ืŸ
  • ืžืฉืชื ื™ ืกื‘ื™ื‘ื”
  • ืื™ื ื˜ื’ืจืฆื™ื” ื•ื‘ื“ื™ืงื•ืช ื™ื—ื™ื“ื”
  • ืฉื™ืžื•ืฉ ื‘-docer-compose ื‘ืคื™ืชื•ื—

ื ื•ืฉื ืžืก' 3: CI/CD: ืžื‘ื•ื ืœืื•ื˜ื•ืžืฆื™ื”

  • ืžื‘ื•ื ืœืื•ื˜ื•ืžืฆื™ื”
  • ื›ืœื™ื (ืœื‘ืฉ, ื”ืคื•ืš, ืžื“ื•ืจื’)
  • ืฉื™ืžื•ืฉ ื‘-git-hooks ืœืื•ื˜ื•ืžืฆื™ื” ืฉืœ ืชื”ืœื™ื›ื™ื
  • ืคืกื™ ื™ื™ืฆื•ืจ ื‘ืžืคืขืœ ื•ื™ื™ืฉื•ืžื ื‘-IT
  • ื“ื•ื’ืžื” ืœื‘ื ื™ื™ืช ืฆื™ื ื•ืจ "ื›ืœืœื™".
  • ืชื•ื›ื ื” ืžื•ื“ืจื ื™ืช ืœ-CI/CD: Drone CI, BitBucket Pipelines, Travis ื•ื›ื•'.

ื ื•ืฉื #4: CI/CD: ืขื‘ื•ื“ื” ืขื GitLab

  • GitLab CI
  • GitLab Runner, ื”ืกื•ื’ื™ื ื•ื”ืฉื™ืžื•ืฉื™ื ืฉืœื”ื
  • GitLab CI, ืชื›ื•ื ื•ืช ืชืฆื•ืจื”, ืฉื™ื˜ื•ืช ืขื‘ื•ื“ื” ืžื•ืžืœืฆื•ืช
  • GitLab CI Stages
  • ืžืฉืชื ื™ GitLab CI
  • ืœื‘ื ื•ืช, ืœื‘ื“ื•ืง, ืœืคืจื•ืก
  • ื‘ืงืจืช ื‘ื™ืฆื•ืข ื•ื”ื’ื‘ืœื•ืช: ืจืง, ืžืชื™
  • ืขื‘ื•ื“ื” ืขื ื—ืคืฆื™ื
  • ืชื‘ื ื™ื•ืช ื‘ืชื•ืš .gitlab-ci.yml, ืฉื™ืžื•ืฉ ื—ื•ื–ืจ ื‘ืคืขื•ืœื•ืช ื‘ื—ืœืงื™ื ืฉื•ื ื™ื ืฉืœ ื”ืฆื™ื ื•ืจ
  • ื›ืœื•ืœ - ืงื˜ืขื™ื
  • ื ื™ื”ื•ืœ ืžืจื›ื–ื™ ืฉืœ gitlab-ci.yml (ืงื•ื‘ืฅ ืื—ื“ ื•ื“ื—ื™ืคื” ืื•ื˜ื•ืžื˜ื™ืช ืœืžืื’ืจื™ื ืื—ืจื™ื)

ื ื•ืฉื ืžืก' 5: ืชืฉืชื™ืช ื›ืงื•ื“

  • IaC: ื”ืชืงืจื‘ื•ืช ืœืชืฉืชื™ืช ื›ืงื•ื“
  • ืกืคืงื™ ืขื ืŸ ื›ืกืคืงื™ ืชืฉืชื™ืช
  • ื›ืœื™ ืืชื—ื•ืœ ื”ืžืขืจื›ืช, ื‘ื ื™ื™ืช ืชืžื•ื ื” (ืคืืงืจ)
  • IaC ืžืฉืชืžืฉ ื‘- Terraform ื›ื“ื•ื’ืžื”
  • ืื—ืกื•ืŸ ืชืฆื•ืจื”, ืฉื™ืชื•ืฃ ืคืขื•ืœื”, ืื•ื˜ื•ืžืฆื™ื” ืฉืœ ื™ื™ืฉื•ืžื™ื
  • ืชืจื’ื•ืœ ืฉืœ ื™ืฆื™ืจืช ืกืคืจื™ ืžืฉื—ืง ืฉืœ Ansible
  • ื—ื•ืกืจ ื™ื›ื•ืœืช, ื”ืฆื”ืจืชื™ื•ืช
  • IaC ืžืฉืชืžืฉ ื‘-Ansible ื›ื“ื•ื’ืžื”

ื ื•ืฉื ืžืก' 6: ื‘ื“ื™ืงืช ืชืฉืชื™ืช

  • ื‘ื“ื™ืงื” ื•ืื™ื ื˜ื’ืจืฆื™ื” ืžืชืžืฉื›ืช ืขื Molecule ื•- GitLab CI
  • ื‘ืืžืฆืขื•ืช Vagrant

ื ื•ืฉื #7: ื ื™ื˜ื•ืจ ืชืฉืชื™ื•ืช ืขื ืคืจื•ืžืชืื•ืก

  • ืžื“ื•ืข ื™ืฉ ืฆื•ืจืš ื‘ืžืขืงื‘
  • ืกื•ื’ื™ ื ื™ื˜ื•ืจ
  • ื”ื•ื“ืขื•ืช ื‘ืžืขืจื›ืช ื”ื ื™ื˜ื•ืจ
  • ื›ื™ืฆื“ ืœื‘ื ื•ืช ืžืขืจื›ืช ื ื™ื˜ื•ืจ ื‘ืจื™ืื”
  • ื”ืชืจืื•ืช ืงืจื™ืื•ืช ืœืื“ื, ืœื›ื•ืœื
  • ื‘ื“ื™ืงืช ื‘ืจื™ืื•ืช: ืœืžื” ื›ื“ืื™ ืœืฉื™ื ืœื‘
  • ืื•ื˜ื•ืžืฆื™ื” ื”ืžื‘ื•ืกืกืช ืขืœ ื ืชื•ื ื™ ื ื™ื˜ื•ืจ

ื ื•ืฉื #8: ืจื™ืฉื•ื ืืคืœื™ืงืฆื™ื” ืขื ELK

  • ืฉื™ื˜ื•ืช ืจื™ืฉื•ื ืžื•ืžืœืฆื•ืช
  • ืžื—ืกื ื™ืช ELK

ื ื•ืฉื ืžืก' 9: ืื•ื˜ื•ืžืฆื™ื” ืฉืœ ืชืฉืชื™ื•ืช ืขื ChatOps

  • DevOps ื•-ChatOps
  • ChatOps: ื—ื•ื–ืงื•ืช
  • ืจืคื™ื•ืŸ ื•ื—ืœื•ืคื•ืช
  • ื‘ื•ื˜ื™ื ืขื‘ื•ืจ ChatOps
  • Hubot ื•ื—ืœื•ืคื•ืช
  • ืื‘ื˜ื—ื”
  • ื”ืฉื™ื˜ื•ืช ื”ื˜ื•ื‘ื•ืช ื•ื”ื’ืจื•ืขื•ืช ื‘ื™ื•ืชืจ

ื”ืชื•ื›ื ื™ืช ื‘ืขื™ืฆื•ืžื” ื•ืขืฉื•ื™ื” ืœื”ืฉืชื ื•ืช ืžืขื˜.

ืžื—ื™ืจ: 30 โ‚ฝ

ื”ืจืฉืžื”

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”