9月4日至6日,将在圣彼得堡的Selectel会议室举行为期三天的DevOps Slurm 。

我们基于每个人都可以独立阅读DevOps的理论著作(例如工具手册)的想法构建程序。 只有经验和实践才有意义:有关如何做和不需要的说明,以及我们如何做的故事。
每个公司,每个管理员或开发人员都有自己的DevOps级别。 一些滥用Git,另一些实施SRE。 本课程的组织方式使每个人都能找到可以在此处和现在实施的相关内容。
我们从Git开始,然后研究应用程序开发,代码与基础结构的交互,构建CI / CD,将基础结构描述为代码(IaC),测试所得解决方案,设置监视,收集和研究日志,最后了解SRE:提高可靠性成为一个可衡量和可管理的故事。
吉特
现在,只有昨天购买第一台笔记本电脑的人才使用Geet。 这是一个普通的工具,尽管如此,我们仍然经常遇到它的滥用:从强制推送到主服务器,最后通过Ctrl-C,Ctrl-V将文件从Gita复制到服务器。
我们告诉您没有必要怎么做,怎么做,在南桥怎么做。
我们通过了实践:《吉塔》的基础知识,团队合作精神。
主题#1:Git基础
- 基本命令git init,commit,add,diff,log,status,pull,push
- Git流,分支和标签,合并策略
- 使用多个远程仓库
主题2:与Git合作
- GitHub流
- 前叉,远程,拉动请求
- 关于Gitflow和与团队有关的其他流程的冲突,发布
该材料经过整理,以便管理员和开发人员可以立即实施工作中的所有实践。
从DevOps的角度来看,与Git的适当合作可以组织和自动化开发和管理流程,消除了许多重复出现的问题,并提高了劳动生产率。
DevOps开发人员
我们通过开发人员的眼光看待DevOps:我们启动本地环境,编写应用程序,配置其监视和日志记录,在本地对其进行测试,组织变量/机密和服务发现的存储,以及观察跟踪(opentrace)。
主题№3:从开发的角度处理应用程序
- 设置本地环境:最佳实践
- 我们用Python编写微服务(包括测试)
- 在开发中使用docker-compose
主题4:代码和基础结构的互操作性
结果,开发人员将看到代码应如何发送日志,如何对其进行测试以及将来如何对其进行调试。 管理员将了解开发人员的需求:代码中发生了什么错误,如何为开发人员组织测试以及如何自己测试项目。
在这一阶段,DevOps的主要任务得以解决:建立处女和运营商之间的相互理解与协作。 这是从任务推出到负责任参与的关键步骤。
结果,工作的速度和质量不断提高。
CI / CD
现代自动化涉及CI / CD。 我们将首先看一下手动自动化:makefile,githukes,脚本。 我们将分析何时这些工具仍然有用,以及何时不应该使用它们。
然后,以Gitlab为例,看看现代CI的最佳实践。
主题5:CI / CD自动化简介
- 自动化概论
- 工具(bash,make,gradle)
- 使用git-hooks自动化流程
- 工厂输送机装配线及其在IT中的应用
- 建立“通用”管道的示例
- 现代CI / CD软件:Drone CI,BitBucket Pipelines,Travis等
主题6:CI / CD:使用Gitlab
- Gitlab CI-常规
- Gitlab Runner,它们的类型和应用
- Gitlab CI,自定义功能,最佳实践
- Gitlab CI舞台
- Gitlab CI变量
- 组装,测试,部署
- 控制和执行限制:仅在以下情况下
- 处理工件
- .gitlab-ci.yml中的模板,可在管道的不同部分重用操作
- 包含-部分
- gitlab-ci.yml的集中管理(一个文件并自动推送到其他存储库)
管理员和开发人员的共同工作再上了一个新台阶:管理员编写了CI模板,开发人员通过独立于管理员构建自己的CI来更正它。
减少了开发人员对管理员的依赖,减少了手工工作量,消除了“唯一知道如何使用化妆文件的人”的问题。 推出可靠且快速。
协会
Terraform示例中的基础设施即代码主题将告诉云Selectel Alexei Stepanenko云管理员。 它将显示如何快速,自动地部署和扩展服务器,如何自动打包映像,如何使用配置模板立即接收定制的计算机。
制作成千上万个IaC解决方案的人会告诉您如何正确执行以及如何执行。
最小编辑Selectel云解决方案适用于Google和Amazon云。
南桥公司的一名员工Nikolai Mesropyan将以Ansible为例,展示如何在不停机的情况下部署可运行的应用程序并测试其功能。
如果您手动管理基础结构(配置服务器,根据需要安装库,程序包),则当尝试生成环境副本时,您将需要记住并重现所有操作。 此任务很容易需要3-5天。 使用基础架构作为代码可以确保您在几分钟之内就可以拥有最新的环境描述。
Nikolay会告诉您如何编写剧本,发生什么错误,为何有时剧本工作缓慢或不按预期运行。 这是在南桥使用IaC多年的经验。
主题7:基础架构即代码
- IaC:将基础架构作为代码的方法
- 云提供商作为基础设施提供商
- 系统初始化工具,映像组装(打包程序)
- 关于Terraform的IaC
- 配置存储,协作,应用程序自动化
- 练习创建Ansible剧本
- 幂等,声明性
- IaC Ansible
- 数据库作为代码/ PostgreSQL故障转移
基础架构变得声明式和幂等。
管理员学会了如何管理复杂的基础架构:快速创建新环境,保持所有环境的统一性,查看更改历史记录,这对于多个团队从事一个项目至关重要。
开发人员可以研究基础架构,独立部署其环境。
附加条款-创建和配置容错的PostgreSQL数据库集群。 我们将提供在Southbridge中使用的最终剧本,您将在培训台上部署集群,然后可以在公司中使用此解决方案。
基础架构测试和监控
自动化允许您将错误立即推广到一千台服务器。 每个更改都需要测试。 另一方面,手动测试需要花费大量时间,从而抵消了自动化的好处。
我们将在实践中展示如何编写角色测试。 结果,您可以为公司编写测试。 您不再需要记住所做的设置,在测试中描述它们并自动检查所有过去的决定和拐杖是否到位。
然后,我们将学习如何自动将所有新服务器添加到监视中。 考虑单独监视基础结构和应用程序。 我们表现出不好的做法。
主题8:测试基础架构
- 与Molecule和Gitlab CI进行测试并进行持续集成
- 流浪申请
主题9:使用Prometheus监控基础架构
- 为什么需要监控
- 监控类型
- 监控系统中的通知
- 如何建立健康的监控系统
- 便于所有人阅读的公告
- 健康检查:寻找什么
- 基于监控数据的自动化
监控不当是缺乏监控。 如果付款方式有误,对在线商店的主页是否可用无关紧要。
开发人员和管理员同样参与设置监视和故障排除。 此外,传统上,监视任务由管理员负责。 我们的课程将向开发人员展示他们在创建有效监控中所扮演的角色。 管理员将获得南桥最佳实践。 结果,由站点或应用程序的崩溃和刹车引起的损失数量将迅速减少。
奖励:基于监视的自动化。 例如,监视报告说负载已经到达站点,并且Web服务器的扩展自动开始。
记录中
使用日志的主要错误是管理员和开发人员直接在服务器上查看日志。 如果您有多台服务器,这将是很长的时间。 这不是世俗的:开发人员进入不应进入的服务器。
DevOps需要集中的日志收集,处理和分析。
主题10:使用ELK进行应用程序日志记录
- 弹性的主要应用和功能(搜索,存储,缩放功能,配置灵活性)
- kibana概述(主要功能,查询语言,仪表板管理,图表)
- 弹性产品及其应用概述
- 在APM中收集指标(应用程序跟踪)
- 附加功能:新产品评论-SIEM
这种方法的实施将使日志成为用于分析,配置和调整应用程序和基础结构的简单易懂的工具。
SRE
我们得到的话题是,Southbridge只是在关注这个话题,而其他发言者希望在Slurm的最后一天停留。 我们很高兴Booking.com的Ivan Kruglov同意阅读。
一个项目生活在现实世界中,可靠性从来都不是绝对的,每个解决方案都要花钱。
什么是复杂项目的SLA? 让我们说说如何评估该站点是否可用,但是图片加载有延迟。 SLA指标是什么?在哪里射击?如何射击?
如何安装SLA? 如何承受?
主题#11:SRE
SRE,SLO,错误预算和SRE世界中其他令人恐惧的术语的定义
SRE:实践监视SLI和SLO
SRE:错误预算实践
SRE:中断和操作负载管理(apigateway,服务网格,电路断路器)
企业需要SRE。 至少在最简单的层次上:采用备份服务器还是从备份中提高? 一个数据库或集群? DDoS保护是主动的还是仅在攻击发生时?
当客户打电话给他并告知订单未打开时,董事对“站点正在运行”的故事不满意。
因此,对于DevOps工程师而言,至少表面上了解SRE以便与企业充分讨论其需求非常重要。
总结
在Slurm DevOps期间,管理员和开发人员将学习:
-与Git一起正常工作;
-组织地方发展;
-配置(管理员)并使用(开发人员)CI / CD;
-将基础设施作为代码工作;
-测试基础设施;
-监视基础设施和应用;
-配置日志记录;
-了解,理想情况下-使用SRE。
对于专注的读者-使用habrapost促销代码,可享受15%的折扣。
对于所有方面,我们正在准备实践和工具。 因此,从Slurm返回的每个参与者都将能够将他的公司带到更高级别的DevOps。
对于企业而言,这意味着更便宜的管理和开发,减少的停机时间,更高的可靠性,更快的功能交付以及错误的消除。