ื”ืžืžืฆืื™ื ืฉืœื ื• ืžืฉื ื” ืฉืœ ื”ืขื‘ืจืช GitLab.com ืœ-Kubernetes

ื”ืขืจื”. ืชืจื’ื•ื: ืื™ืžื•ืฅ Kubernetes ื‘-GitLab ื ื—ืฉื‘ ืœืื—ื“ ืžืฉื ื™ ื”ื’ื•ืจืžื™ื ื”ืขื™ืงืจื™ื™ื ื”ืชื•ืจืžื™ื ืœืฆืžื™ื—ืช ื”ื—ื‘ืจื”. ืขื ื–ืืช, ืขื“ ืœืื—ืจื•ื ื”, ื”ืชืฉืชื™ืช ืฉืœ ืฉื™ืจื•ืช ื”ืžืงื•ื•ืŸ GitLab.com ื ื‘ื ืชื” ืขืœ ื’ื‘ื™ ืžื›ื•ื ื•ืช ื•ื™ืจื˜ื•ืืœื™ื•ืช, ื•ืจืง ืœืคื ื™ ื›ืฉื ื” ื”ื—ืœื” ื”ื”ื’ื™ืจื” ืฉืœื• ืœ-K8s, ืฉืขื“ื™ื™ืŸ ืœื ื”ื•ืฉืœืžื”. ืื ื• ืฉืžื—ื™ื ืœื”ืฆื™ื’ ืชืจื’ื•ื ืฉืœ ืžืืžืจ ืขื“ื›ื ื™ ืžืืช ืžื”ื ื“ืก GitLab SRE ืขืœ ืื™ืš ื–ื” ืงื•ืจื” ื•ืžื” ื”ืžืกืงื ื•ืช ืฉืœ ื”ืžื”ื ื“ืกื™ื ื”ืžืฉืชืชืคื™ื ื‘ืคืจื•ื™ืงื˜.

ื”ืžืžืฆืื™ื ืฉืœื ื• ืžืฉื ื” ืฉืœ ื”ืขื‘ืจืช GitLab.com ืœ-Kubernetes

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

ืžื”ื”ืชื—ืœื” ืฉืœ GitLab.com, ื”ืฉืจืชื™ื ืฉืœื” ืจืฆื• ื‘ืขื ืŸ ื‘ืžื›ื•ื ื•ืช ื•ื™ืจื˜ื•ืืœื™ื•ืช. ืžื›ื•ื ื•ืช ื•ื™ืจื˜ื•ืืœื™ื•ืช ืืœื• ืžื ื•ื”ืœื•ืช ืขืœ ื™ื“ื™ Chef ื•ืžื•ืชืงื ื•ืช ื‘ืืžืฆืขื•ืช ืฉืœื ื• ื—ื‘ื™ืœืช ืœื™ื ื•ืงืก ืจืฉืžื™ืช. ืืกื˜ืจื˜ื’ื™ื™ืช ืคืจื™ืกื” ื‘ืžืงืจื” ืฉื”ื™ื™ืฉื•ื ืฆืจื™ืš ืœื”ืชืขื“ื›ืŸ, ืžื•ืจื›ื‘ ืคืฉื•ื˜ ืžืขื“ื›ื•ืŸ ืฆื™ ื”ืฉืจืชื™ื ื‘ืื•ืคืŸ ืžืชื•ืื ื•ืจืฆื™ืฃ ื‘ืืžืฆืขื•ืช ืฆื™ื ื•ืจ CI. ื”ืฉื™ื˜ื” ื”ื–ื• - ืื ื›ื™ ืื™ื˜ื™ืช ื•ืงืฆืช ืžืฉืขืžื - ืžื‘ื˜ื™ื— ืฉ-GitLab.com ืžืฉืชืžืฉ ื‘ืื•ืชื ื ื•ื”ืœื™ ื”ืชืงื ื” ื•ืชืฆื•ืจื” ื›ืžื• ืžืฉืชืžืฉื™ื ืœื ืžืงื•ื•ื ื™ื (ื‘ื ื™ื”ื•ืœ ืขืฆืžื™) ื”ืชืงื ื•ืช GitLab ื‘ืืžืฆืขื•ืช ื—ื‘ื™ืœื•ืช ืœื™ื ื•ืงืก ืฉืœื ื• ืœืฉื ื›ืš.

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

ืฆืขื“ื™ื ืจืืฉื•ื ื™ื ืœ-Kubernetes ื•ืœ-GitLab ื”ืžื‘ื•ืกืก ืขืœ ืขื ืŸ

ื”ืคืจื•ื™ืงื˜ ื ื•ืฆืจ ื‘ืฉื ืช 2017 ืชืจืฉื™ืžื™ื ืฉืœ GitLab ืœื”ื›ื™ืŸ ืืช GitLab ืœืคืจื™ืกืช ืขื ืŸ, ื•ื›ื“ื™ ืœืืคืฉืจ ืœืžืฉืชืžืฉื™ื ืœื”ืชืงื™ืŸ ืืช GitLab ื‘ืืฉื›ื•ืœื•ืช Kubernetes. ื™ื“ืขื ื• ืื– ืฉื”ืขื‘ืจื” ืฉืœ GitLab ืœ-Kubernetes ืชื’ื“ื™ืœ ืืช ื”ืžื“ืจื’ื™ื•ืช ืฉืœ ืคืœื˜ืคื•ืจืžืช ื”-SaaS, ืชืคืฉื˜ ืืช ื”ืคืจื™ืกื” ื•ืชืฉืคืจ ืืช ื”ื™ืขื™ืœื•ืช ืฉืœ ืžืฉืื‘ื™ ื”ืžื—ืฉื•ื‘. ื™ื—ื“ ืขื ื–ืืช, ืจื‘ื•ืช ืžื”ืคื•ื ืงืฆื™ื•ืช ืฉืœ ื”ืืคืœื™ืงืฆื™ื” ืฉืœื ื• ื”ื™ื• ืชืœื•ื™ื•ืช ื‘ืžื—ื™ืฆื•ืช NFS ืžื•ืชืงื ื•ืช, ืžื” ืฉื”ืื˜ ืืช ื”ืžืขื‘ืจ ืžืžื›ื•ื ื•ืช ื•ื™ืจื˜ื•ืืœื™ื•ืช.

ื”ื“ื—ื™ืคื” ืœืขื‘ืจ ืžืงื•ืจื™ ืขื ืŸ ื•-Kubernetes ืืคืฉืจื” ืœืžื”ื ื“ืกื™ื ืฉืœื ื• ืœืชื›ื ืŸ ืžืขื‘ืจ ื”ื“ืจื’ืชื™, ืฉื‘ืžื”ืœื›ื• ื ื˜ืฉื ื• ื—ืœืง ืžื”ืชืœื•ืช ืฉืœ ื”ืืคืœื™ืงืฆื™ื” ื‘ืื—ืกื•ืŸ ืจืฉืช ืชื•ืš ื”ืžืฉืš ืคื™ืชื•ื— ืคื™ืฆ'ืจื™ื ื—ื“ืฉื™ื. ืžืื– ืฉื”ืชื—ืœื ื• ืœืชื›ื ืŸ ืืช ื”ื”ื’ื™ืจื” ื‘ืงื™ืฅ 2019, ืจื‘ื•ืช ืžื”ืžื’ื‘ืœื•ืช ื”ืœืœื• ื ืคืชืจื•, ื•ืชื”ืœื™ืš ื”ืžืขื‘ืจ ืฉืœ GitLab.com ืœ-Kubernetes ื ืžืฆื ื›ืขืช ื‘ืขื™ืฆื•ืžื•!

ืชื›ื•ื ื•ืช ืฉืœ GitLab.com ื‘-Kubernetes

ืขื‘ื•ืจ GitLab.com, ืื ื• ืžืฉืชืžืฉื™ื ื‘ืืฉื›ื•ืœ GKE ืื–ื•ืจื™ ื™ื—ื™ื“ ืฉืžื˜ืคืœ ื‘ื›ืœ ืชืขื‘ื•ืจืช ื”ื™ื™ืฉื•ืžื™ื. ื›ื“ื™ ืœืžื–ืขืจ ืืช ื”ืžื•ืจื›ื‘ื•ืช ืฉืœ ื”ื”ื’ื™ืจื” (ืฉื›ื‘ืจ ืžืกื•ื‘ืš), ืื ื• ืžืชืžืงื“ื™ื ื‘ืฉื™ืจื•ืชื™ื ืฉืื™ื ื ืžืกืชืžื›ื™ื ืขืœ ืื—ืกื•ืŸ ืžืงื•ืžื™ ืื• NFS. GitLab.com ืžืฉืชืžืฉ ื‘ื‘ืกื™ืก ืงื•ื“ Rails ืžื•ื ื•ืœื™ื˜ื™, ื•ืื ื• ืžื ืชื‘ื™ื ืชืขื‘ื•ืจื” ืขืœ ืกืžืš ืžืืคื™ื™ื ื™ ืขื•ืžืก ืขื‘ื•ื“ื” ืœื ืงื•ื“ื•ืช ืงืฆื” ืฉื•ื ื•ืช ื”ืžื‘ื•ื“ื“ื•ืช ืœืชื•ืš ืžืื’ืจ ื”ืฆืžืชื™ื ืฉืœื”ืŸ.

ื‘ืžืงืจื” ืฉืœ ื”-frontend, ื”ืกื•ื’ื™ื ื”ืœืœื• ืžื—ื•ืœืงื™ื ืœื‘ืงืฉื•ืช ืœืื™ื ื˜ืจื ื˜, API, Git SSH/HTTPS ื•-Registry. ื‘ืžืงืจื” ืฉืœ ื”-backend, ืื ื• ืžืคืฆืœื™ื ืืช ื”ืขื‘ื•ื“ื•ืช ื‘ืชื•ืจ ืœืคื™ ืžืืคื™ื™ื ื™ื ืฉื•ื ื™ื ื‘ื”ืชืื ื’ื‘ื•ืœื•ืช ืžืฉืื‘ื™ื ืžื•ื’ื“ืจื™ื ืžืจืืฉ, ื”ืžืืคืฉืจื™ื ืœื ื• ืœื”ื’ื“ื™ืจ ื™ืขื“ื™ ืฉื™ืจื•ืช ื‘ืจืžืช ืฉื™ืจื•ืช (SLOs) ืขื‘ื•ืจ ืขื•ืžืกื™ ืขื‘ื•ื“ื” ืฉื•ื ื™ื.

ื›ืœ ืฉื™ืจื•ืชื™ GitLab.com ื”ืœืœื• ืžื•ื’ื“ืจื™ื ื‘ืืžืฆืขื•ืช ืชืจืฉื™ื GitLab Helm ืœืœื ืฉื™ื ื•ื™. ื”ืชืฆื•ืจื” ืžืชื‘ืฆืขืช ื‘ืชืจืฉื™ืžื™ื, ืฉื ื™ืชืŸ ืœื”ืคืขื™ืœื ื‘ืื•ืคืŸ ืกืœืงื˜ื™ื‘ื™ ื›ื›ืœ ืฉืื ื• ืžืขื‘ื™ืจื™ื ืฉื™ืจื•ืชื™ื ื‘ื”ื“ืจื’ื” ืœืืฉื›ื•ืœ. ืœืžืจื•ืช ืฉื”ื—ืœื˜ื ื• ืœื ืœื›ืœื•ืœ ื—ืœืง ืžื”ืฉื™ืจื•ืชื™ื ื”ืžืžืœื›ืชื™ื™ื ืฉืœื ื• ื‘ื”ืขื‘ืจื”, ื›ืžื• Redis, Postgres, GitLab Pages ื•-Gitaly, ื”ืฉื™ืžื•ืฉ ื‘-Kubernetes ืžืืคืฉืจ ืœื ื• ืœืฆืžืฆื ื‘ืื•ืคืŸ ืงื™ืฆื•ื ื™ ืืช ืžืกืคืจ ื”-VMs ืฉืฉืฃ ืžื ื”ืœ ื›ื™ื•ื.

ื ืจืื•ืช ื•ื ื™ื”ื•ืœ ืฉืœ ืชืฆื•ืจืช Kubernetes

ื›ืœ ื”ื”ื’ื“ืจื•ืช ืžื ื•ื”ืœื•ืช ืขืœ ื™ื“ื™ GitLab ืขืฆืžื”. ืœืฉื ื›ืš, ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืฉืœื•ืฉื” ืคืจื•ื™ืงื˜ื™ ืชืฆื•ืจื” ื”ืžื‘ื•ืกืกื™ื ืขืœ Terraform ื•- Helm. ืื ื—ื ื• ืžื ืกื™ื ืœื”ืฉืชืžืฉ ื‘-GitLab ืขืฆืžื• ื‘ื›ืœ ืคืขื ืฉืืคืฉืจ ื›ื“ื™ ืœื”ืคืขื™ืœ ืืช GitLab, ืื‘ืœ ืœืžืฉื™ืžื•ืช ืชืคืขื•ืœื™ื•ืช ื™ืฉ ืœื ื• ื”ืชืงื ื” ื ืคืจื“ืช ืฉืœ GitLab. ื–ื” ื ื—ื•ืฅ ื›ื“ื™ ืœื”ื‘ื˜ื™ื— ืฉืื™ื ืš ืชืœื•ื™ ื‘ื–ืžื™ื ื•ืช ืฉืœ GitLab.com ื‘ืขืช ื‘ื™ืฆื•ืข ืคืจื™ืกื•ืช ื•ืขื“ื›ื•ื ื™ื ืฉืœ GitLab.com.

ืœืžืจื•ืช ืฉื”ืฆื™ื ื•ืจื•ืช ืฉืœื ื• ืขื‘ื•ืจ ืืฉื›ื•ืœ Kubernetes ืคื•ืขืœื™ื ืขืœ ื”ืชืงื ืช GitLab ื ืคืจื“ืช, ื™ืฉ ืฉื™ืงื•ืคื™ื ืฉืœ ืžืื’ืจื™ ื”ืงื•ื“ ื”ื–ืžื™ื ื™ื ืœืฆื™ื‘ื•ืจ ื‘ื›ืชื•ื‘ื•ืช ื”ื‘ืื•ืช:

  • k8s-workloads/gitlab-com - ืžืกื’ืจืช ื”ืชืฆื•ืจื” ืฉืœ GitLab.com ืขื‘ื•ืจ ืชืจืฉื™ื GitLab Helm;
  • k8s-workloads/gitlab-helmfiles - ืžื›ื™ืœ ืชืฆื•ืจื•ืช ืœืฉื™ืจื•ืชื™ื ืฉืื™ื ื ืžืฉื•ื™ื›ื™ื ื™ืฉื™ืจื•ืช ืœืืคืœื™ืงืฆื™ื™ืช GitLab. ืืœื” ื›ื•ืœืœื™ื ืชืฆื•ืจื•ืช ืœืจื™ืฉื•ื ื•ื ื™ื˜ื•ืจ ืืฉื›ื•ืœื•ืช, ื›ืžื• ื’ื ื›ืœื™ื ืžืฉื•ืœื‘ื™ื ื›ืžื• PlantUML;
  • Gitlab-com-infrastructure - ืชืฆื•ืจืช Terraform ืขื‘ื•ืจ Kubernetes ื•ืชืฉืชื™ืช VM ืžื“ื•ืจ ืงื•ื“ื. ื›ืืŸ ืืชื” ืžื’ื“ื™ืจ ืืช ื›ืœ ื”ืžืฉืื‘ื™ื ื”ื“ืจื•ืฉื™ื ืœื”ืคืขืœืช ื”ืืฉื›ื•ืœ, ื›ื•ืœืœ ื”ืืฉื›ื•ืœ ืขืฆืžื•, ืžืื’ืจื™ ืฆืžืชื™ื, ื—ืฉื‘ื•ื ื•ืช ืฉื™ืจื•ืช ื•ื”ื–ืžื ื•ืช IP.

ื”ืžืžืฆืื™ื ืฉืœื ื• ืžืฉื ื” ืฉืœ ื”ืขื‘ืจืช GitLab.com ืœ-Kubernetes
ืชืฆื•ื’ื” ืฆื™ื‘ื•ืจื™ืช ืžื•ืฆื’ืช ื›ืืฉืจ ืžืชื‘ืฆืขื™ื ืฉื™ื ื•ื™ื™ื. ืกื™ื›ื•ื ืงืฆืจ ืขื ืงื™ืฉื•ืจ ืœ-diff ื”ืžืคื•ืจื˜ ืฉ-SRE ืžื ืชื— ืœืคื ื™ ื‘ื™ืฆื•ืข ืฉื™ื ื•ื™ื™ื ื‘ืืฉื›ื•ืœ.

ืขื‘ื•ืจ SRE, ื”ืงื™ืฉื•ืจ ืžื•ื‘ื™ืœ ืœื”ืคืจืฉ ืžืคื•ืจื˜ ื‘ื”ืชืงื ืช GitLab, ื”ืžืฉืžืฉืช ืœื™ื™ืฆื•ืจ ื•ื”ื’ื™ืฉื” ืืœื™ื• ืžื•ื’ื‘ืœืช. ื–ื” ืžืืคืฉืจ ืœืขื•ื‘ื“ื™ื ื•ืœืงื”ื™ืœื”, ืœืœื ื’ื™ืฉื” ืœืคืจื•ื™ืงื˜ ื”ืชืคืขื•ืœื™ (ืฉืคืชื•ื— ืจืง ืœ-SREs), ืœืฆืคื•ืช ื‘ืฉื™ื ื•ื™ื™ ืชืฆื•ืจื” ืžื•ืฆืขื™ื. ืขืœ ื™ื“ื™ ืฉื™ืœื•ื‘ ืฉืœ ืžื•ืคืข GitLab ืฆื™ื‘ื•ืจื™ ืขื‘ื•ืจ ืงื•ื“ ืขื ืžื•ืคืข ืคืจื˜ื™ ืขื‘ื•ืจ ืฆื™ื ื•ืจื•ืช CI, ืื ื• ืฉื•ืžืจื™ื ืขืœ ื–ืจื™ืžืช ืขื‘ื•ื“ื” ืื—ืช ืชื•ืš ื”ื‘ื˜ื—ืช ืขืฆืžืื•ืช ืž-GitLab.com ืขื‘ื•ืจ ืขื“ื›ื•ื ื™ ืชืฆื•ืจื”.

ืžื” ื’ื™ืœื™ื ื• ื‘ืžื”ืœืš ื”ื”ื’ื™ืจื”

ื‘ืžื”ืœืš ื”ืžื”ืœืš, ื ืฆื‘ืจ ื ื™ืกื™ื•ืŸ ืฉืื ื• ืžื™ื™ืฉืžื™ื ืขืœ ื”ืขื‘ืจื•ืช ื•ืคืจื™ืกื•ืช ื—ื“ืฉื•ืช ื‘-Kubernetes.

1. ืขืœื•ื™ื•ืช ืžื•ื’ื‘ืจื•ืช ืขืงื‘ ืชื ื•ืขื” ื‘ื™ืŸ ืื–ื•ืจื™ ื–ืžื™ื ื•ืช

ื”ืžืžืฆืื™ื ืฉืœื ื• ืžืฉื ื” ืฉืœ ื”ืขื‘ืจืช GitLab.com ืœ-Kubernetes
ืกื˜ื˜ื™ืกื˜ื™ืงื•ืช ื™ืฆื™ืื” ื™ื•ืžื™ื•ืช (ื‘ืชื™ื ืœื™ื•ื) ืขื‘ื•ืจ ืฆื™ ืžืื’ืจ Git ื‘-GitLab.com

ื’ื•ื’ืœ ืžื—ืœืงืช ืืช ื”ืจืฉืช ืฉืœื” ืœืื–ื•ืจื™ื. ืืœื”, ื‘ืชื•ืจื, ืžื—ื•ืœืงื™ื ืœืื–ื•ืจื™ ื ื’ื™ืฉื•ืช (AZ). ืื™ืจื•ื— Git ืžืฉื•ื™ืš ืœื›ืžื•ื™ื•ืช ื’ื“ื•ืœื•ืช ืฉืœ ื ืชื•ื ื™ื, ื•ืœื›ืŸ ื—ืฉื•ื‘ ืœื ื• ืœืฉืœื•ื˜ ื‘ื™ืฆื™ืืช ื”ืจืฉืช. ืขื‘ื•ืจ ืชืขื‘ื•ืจื” ืคื ื™ืžื™ืช, ื”ื™ืฆื™ืื” ื”ื™ื ื‘ื—ื™ื ื ืจืง ืื ื”ื™ื ื ืฉืืจืช ื‘ืื•ืชื• ืื–ื•ืจ ื–ืžื™ื ื•ืช. ื ื›ื•ืŸ ืœื›ืชื™ื‘ืช ืฉื•ืจื•ืช ืืœื•, ืื ื• ืžื’ื™ืฉื™ื ื›-100 TB ืฉืœ ื ืชื•ื ื™ื ื‘ื™ื•ื ืขื‘ื•ื“ื” ื˜ื™ืคื•ืกื™ (ื•ื–ื” ืจืง ืขื‘ื•ืจ ืžืื’ืจื™ Git). ืฉื™ืจื•ืชื™ื ืฉืฉื›ื ื• ื‘ืื•ืชืŸ ืžื›ื•ื ื•ืช ื•ื™ืจื˜ื•ืืœื™ื•ืช ื‘ื˜ื•ืคื•ืœื•ื’ื™ื” ื”ื™ืฉื ื” ืฉืœื ื• ืžื‘ื•ืกืกืช VM ืคื•ืขืœื™ื ื›ืขืช ื‘ืชืจืžื™ืœื™ื ืฉื•ื ื™ื ืฉืœ Kubernetes. ื”ืžืฉืžืขื•ืช ื”ื™ื ืฉื—ืœืง ืžื”ืชื ื•ืขื” ืฉื”ื™ื™ืชื” ื‘ืขื‘ืจ ืžืงื•ืžื™ืช ืœ-VM ืขืฉื•ื™ื” ืœื ืกื•ืข ืžื—ื•ืฅ ืœืื–ื•ืจื™ ื–ืžื™ื ื•ืช.

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

2. ืžื’ื‘ืœื•ืช, ื‘ืงืฉื•ืช ืžืฉืื‘ื™ื ื•ืงื ื” ืžื™ื“ื”

ื”ืžืžืฆืื™ื ืฉืœื ื• ืžืฉื ื” ืฉืœ ื”ืขื‘ืจืช GitLab.com ืœ-Kubernetes
ืžืกืคืจ ื”ืขืชืงื™ื ื”ืžืขื‘ื“ื™ื ืชืขื‘ื•ืจืช ื™ื™ืฆื•ืจ ื‘-registry.gitlab.com. ืฉื™ื ื”ืชื ื•ืขื” ื‘-~15:00 UTC.

ืกื™ืคื•ืจ ื”ื”ื’ื™ืจื” ืฉืœื ื• ื”ืชื—ื™ืœ ื‘ืื•ื’ื•ืกื˜ 2019, ื›ืืฉืจ ื”ืขื‘ืจื ื• ืืช ื”ืฉื™ืจื•ืช ื”ืจืืฉื•ืŸ ืฉืœื ื•, GitLab Container Registry, ืœ-Kubernetes. ืฉื™ืจื•ืช ืงืจื™ื˜ื™ ืœืžืฉื™ืžื”, ื‘ืขืœ ืชืขื‘ื•ืจื” ื’ื‘ื•ื”ื”, ื”ื™ื” ื‘ื—ื™ืจื” ื˜ื•ื‘ื” ืขื‘ื•ืจ ื”ื”ื’ื™ืจื” ื”ืจืืฉื•ื ื” ืžื›ื™ื•ื•ืŸ ืฉื”ื•ื ื™ื™ืฉื•ื ื—ืกืจ ืžื“ื™ื ื” ืขื ืžืขื˜ ืชืœื•ืช ื—ื™ืฆื•ื ื™ืช. ื”ื‘ืขื™ื” ื”ืจืืฉื•ื ื” ืฉื ืชืงืœื ื• ื‘ื” ื”ื™ื™ืชื” ืžืกืคืจ ืจื‘ ืฉืœ ืชืจืžื™ืœื™ื ืฉืคื•ื ื• ืขืงื‘ ื—ื•ืกืจ ื–ื™ื›ืจื•ืŸ ื‘ืฆืžืชื™ื. ื‘ื’ืœืœ ื–ื”, ื ืืœืฆื ื• ืœืฉื ื•ืช ื‘ืงืฉื•ืช ื•ืžื’ื‘ืœื•ืช.

ื”ืชื’ืœื” ืฉื‘ืžืงืจื” ืฉืœ ืืคืœื™ืงืฆื™ื” ืฉื‘ื” ืฆืจื™ื›ืช ื”ื–ื™ื›ืจื•ืŸ ืขื•ืœื” ืขื ื”ื–ืžืŸ, ืขืจื›ื™ื ื ืžื•ื›ื™ื ืœื‘ืงืฉื•ืช (ืฉื™ืžื•ืจ ื–ื™ื›ืจื•ืŸ ืœื›ืœ ืคื•ื“) ื™ื—ื“ ืขื ืžื’ื‘ืœื” ืงืฉื” "ื ื“ื™ื‘ื”" ืขืœ ื”ืฉื™ืžื•ืฉ ื”ื•ื‘ื™ืœื• ืœืจื•ื•ื™ื” (ืจึดื•ึผื•ึผื™) ืฆืžืชื™ื ื•ืจืžื” ื’ื‘ื•ื”ื” ืฉืœ ืคื™ื ื•ื™ื™ื. ื›ื“ื™ ืœื”ืชืžื•ื“ื“ ืขื ื”ื‘ืขื™ื” ื”ื–ืืช, ื–ื” ื”ื™ื” ื”ื•ื—ืœื˜ ืœื”ื’ื“ื™ืœ ืืช ื”ื‘ืงืฉื•ืช ื•ืœื”ื•ืจื™ื“ ื’ื‘ื•ืœื•ืช. ื–ื” ื”ื•ืจื™ื“ ืืช ื”ืœื—ืฅ ืžื”ืฆืžืชื™ื ื•ื”ื‘ื˜ื™ื— ืฉืœืชืจืžื™ืœื™ื ื™ืฉ ืžื—ื–ื•ืจ ื—ื™ื™ื ืฉืœื ื”ืคืขื™ืœ ื™ื•ืชืจ ืžื“ื™ ืœื—ืฅ ืขืœ ื”ืฆื•ืžืช. ื›ืขืช ืื ื• ืžืชื—ื™ืœื™ื ื‘ื”ื’ื™ืจื•ืช ืขื ืขืจื›ื™ ื‘ืงืฉื” ื•ื’ื‘ื•ืœ ื ื“ื™ื‘ื™ื (ื•ื›ืžืขื˜ ื–ื”ื™ื), ืชื•ืš ื”ืชืืžืชื ืœืคื™ ื”ืฆื•ืจืš.

3. ืžื“ื“ื™ื ื•ื™ื•ืžื ื™ื

ื”ืžืžืฆืื™ื ืฉืœื ื• ืžืฉื ื” ืฉืœ ื”ืขื‘ืจืช GitLab.com ืœ-Kubernetes
ื—ื˜ื™ื‘ืช ื”ืชืฉืชื™ื•ืช ืžืชืžืงื“ืช ื‘ื”ืฉื”ื™ื”, ืฉื™ืขื•ืจื™ ืฉื’ื™ืื•ืช ื•ืจื•ื•ื™ื” ืขื ื”ืชืงื ื” ื™ืขื“ื™ ืจืžืช ื”ืฉื™ืจื•ืช (SLO) ืžืงื•ืฉืจ ืœ ื–ืžื™ื ื•ืช ื›ืœืœื™ืช ืฉืœ ื”ืžืขืจื›ืช ืฉืœื ื•.

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

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

ื”ื’ืฉืช ืื•ืชืŸ ื‘ืงืฉื•ืช ื‘ืžืงื‘ื™ืœ ื‘ืชืฉืชื™ืช ื”-VM ื”ื™ืฉื ื” ื•ื‘ืชืฉืชื™ืช ื”ื—ื“ืฉื” ืžื‘ื•ืกืกืช Kubernetes ื”ืฆื™ื’ื” ืืชื’ืจ ื™ื™ื—ื•ื“ื™. ื‘ื ื™ื’ื•ื“ ืœื”ื’ื™ืจื” ืฉืœ ื”ืจืžื” ื•ื”ื™ืœื•ืš (ื”ืขื‘ืจื” ืžื”ื™ืจื” ืฉืœ ื™ื™ืฉื•ืžื™ื "ื›ืžื•ืช ืฉื”ื" ืœืชืฉืชื™ืช ื—ื“ืฉื”; ืคืจื˜ื™ื ื ื•ืกืคื™ื ื ื™ืชืŸ ืœืงืจื•ื, ืœืžืฉืœ, ื›ืืŸ - ืžืฉื•ืขืจ. ืชืจื’ื•ื), ืขื‘ื•ื“ื” ืžืงื‘ื™ืœื” ืขืœ VMs "ื™ืฉื ื™ื" ื•-Kubernetes ื“ื•ืจืฉืช ืฉื›ืœื™ ื ื™ื˜ื•ืจ ื™ื”ื™ื• ืชื•ืืžื™ื ืœืฉืชื™ ื”ืกื‘ื™ื‘ื•ืช ื•ื™ื•ื›ืœื• ืœืฉืœื‘ ืžื“ื“ื™ื ืœืชืฆื•ื’ื” ืื—ืช. ื—ืฉื•ื‘ ืฉื ืฉืชืžืฉ ื‘ืื•ืชื ืœื•ื—ื•ืช ืžื—ื•ื•ื ื™ื ื•ืฉืื™ืœืชื•ืช ื™ื•ืžืŸ ื›ื“ื™ ืœื”ืฉื™ื’ ืฆืคื™ื™ื” ืขืงื‘ื™ืช ื‘ืžื”ืœืš ืชืงื•ืคืช ื”ืžืขื‘ืจ.

4. ื”ืขื‘ืจืช ืชืขื‘ื•ืจื” ืœืืฉื›ื•ืœ ื—ื“ืฉ

ืขื‘ื•ืจ GitLab.com, ื—ืœืง ืžื”ืฉืจืชื™ื ืžื•ืงื“ืฉ ืฉืœื‘ ืงื ืจื™. Canary Park ืžืฉืจืช ืืช ื”ืคืจื•ื™ืงื˜ื™ื ื”ืคื ื™ืžื™ื™ื ืฉืœื ื• ื•ื™ื›ื•ืœ ื’ื ืžื•ืคืขืœ ืขืœ ื™ื“ื™ ืžืฉืชืžืฉื™ื. ืื‘ืœ ื”ื•ื ื ื•ืขื“ ื‘ืขื™ืงืจ ืœื‘ื—ื•ืŸ ืฉื™ื ื•ื™ื™ื ืฉื‘ื•ืฆืขื• ื‘ืชืฉืชื™ืช ื•ื‘ื™ื™ืฉื•ื. ื”ืฉื™ืจื•ืช ื”ืžื•ืขื‘ืจ ื”ืจืืฉื•ืŸ ื”ืชื—ื™ืœ ื‘ืงื‘ืœืช ื›ืžื•ืช ืžื•ื’ื‘ืœืช ืฉืœ ืชืขื‘ื•ืจื” ืคื ื™ืžื™ืช, ื•ืื ื• ืžืžืฉื™ื›ื™ื ืœื”ืฉืชืžืฉ ื‘ืฉื™ื˜ื” ื–ื• ื›ื“ื™ ืœื”ื‘ื˜ื™ื— ืฉ-SLO ืžืชืงื™ื™ืžื™ื ืœืคื ื™ ืฉืœื™ื—ืช ื›ืœ ื”ืชืขื‘ื•ืจื” ืœืืฉื›ื•ืœ.

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

5. ื™ื›ื•ืœื•ืช ืžื™ืœื•ืื™ื ืฉืœ ืชืจืžื™ืœื™ื ื•ื”ืฉื™ืžื•ืฉ ื‘ื”ื

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

ื‘ืžืงืจื” ื–ื”, ื”ืœืงื— ื”ื™ื” ืฉื‘ืขื•ื“ ืฉื”-HPA (Horizontal Pod Autoscaler) ืฉืœ Kubernetes ืžืชืžื•ื“ื“ ื”ื™ื˜ื‘ ืขื ื’ื™ื“ื•ืœ ื”ืชืขื‘ื•ืจื”, ื—ืฉื•ื‘ ืœื”ืชื—ืฉื‘ ื‘ืžืืคื™ื™ื ื™ื ืฉืœ ืขื•ืžืกื™ ื”ืขื‘ื•ื“ื” ื•ืœื”ืงืฆื•ืช ืงื™ื‘ื•ืœืช ืคื ื•ื™ื” ืœืชืจืžื™ืœื™ื (ื‘ืžื™ื•ื—ื“ ื›ืืฉืจ ื”ื‘ื™ืงื•ืฉ ืžืชื—ืœืง ื‘ืฆื•ืจื” ืœื ืฉื•ื•ื”). ื‘ืžืงืจื” ืฉืœื ื•, ื—ืœื” ืขืœื™ื™ื” ืคืชืื•ืžื™ืช ื‘ืขื‘ื•ื“ื•ืช, ืฉื”ื•ื‘ื™ืœื” ืœื”ืจื—ื‘ื” ืžื”ื™ืจื”, ืฉื”ื•ื‘ื™ืœื” ืœืจื•ื•ื™ื” ืฉืœ ืžืฉืื‘ื™ ื”-CPU ืœืคื ื™ ืฉื”ืกืคืงื ื• ืœื”ื’ื“ื™ืœ ืืช ืžืื’ืจ ื”ืฆืžืชื™ื.

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

ืžืกืงื ื”

ืœืื—ืจ ื”ื’ื™ืจื” ืฉืœ ื›ืœ ืฉื™ืจื•ืช, ืฉืžื—ื ื• ืขืœ ื”ื™ืชืจื•ื ื•ืช ืฉืœ ื”ืฉื™ืžื•ืฉ ื‘-Kubernetes ื‘ื™ื™ืฆื•ืจ: ืคืจื™ืกืช ื™ื™ืฉื•ืžื™ื ืžื”ื™ืจื” ื•ื‘ื˜ื•ื—ื” ื™ื•ืชืจ, ืงื ื” ืžื™ื“ื” ื•ื”ืงืฆืืช ืžืฉืื‘ื™ื ื™ืขื™ืœื” ื™ื•ืชืจ. ื™ืชืจื” ืžื›ืš, ื”ื™ืชืจื•ื ื•ืช ืฉืœ ื”ื’ื™ืจื” ื—ื•ืจื’ื™ื ืžืฉื™ืจื•ืช GitLab.com. ื›ืœ ืฉื™ืคื•ืจ ื‘ืชืจืฉื™ื Helm ื”ืจืฉืžื™ ืžื•ืขื™ืœ ืœืžืฉืชืžืฉื™ื ืฉืœื•.

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

ื .ื‘ ืžื”ืžืชืจื’ื

ืงืจื ื’ื ื‘ื‘ืœื•ื’ ืฉืœื ื•:

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

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