哦,我的代码。 如何成为系统管理员

Mail.Ru集团的副技术总监Tatyana Bakharevskaya讨论了系统管理员的工作方式,系统管理员的优势以及大公司的运营特点。 塔季扬娜(Tatyana)负责俄罗斯两个最大门户网站的服务。


该程序的主持人是Pavel Shcherbinin。

- 谈谈你自己。

-我很久以前进入这个行业。 她在一家小型公司中担任初级系统管理员的工作,该公司正在开发其搜索引擎和许多其他Internet项目。 在Yandex,我工作了很多年。 她长大后成为一名认真的系统管理员,然后领导系统管理部门。 2005年,该部门有5人工作,经过10年的250年,它是一个大型结构,形成了几个部门。 我们学习了如何雇用,培养工程师,进行Root,CIT之类的活动。 在Yandex中,我负责公司的持续不间断运营,而现在,已经一年了,我一直在为Mail.Ru Group做同样的事情。 乍一看,任务似乎很相似,但仔细检查后发现,它们有很多共同之处,但有足够的差异,这很有趣。

- 服务操作有许多不同的术语。 这仅仅是开发,系统管理员是SRE,SE和DevOps。 告诉我们更多有关它们的信息。 还是同一件事? 它们有何不同?

-实际上,系统管理员是一个相当宽泛的概念,首先是一个人可以负责一些小型办公室,并为几个员工提供小型办公室基础结构,最后是负责连续运行高负载服务。 在某些时候,它仍然被划分为不同的方向。 在诸如Mail.Ru Group,Yandex,Google之类的公司中,系统管理员更接近于现在流行的术语SRE(站点可靠性工程师),即负责站点可用性的人员。

我们的工作需要大量不同的技术知识:Linux / Unix,网络,数据库,Web服务器,云技术,用于构建服务的设备的组成(处理器,内存,磁盘)等等。 关于技术,您需要了解如何应用它们以及它们之间的区别。 总有很多例行工作需要自动化。 也有必要编写代码。 现代系统管理员/ SRE主要是程序员。 目前,自动化的主要语言是Python,当然还有bash。 懂C总是一个加号。 例如,最好的Linux文档:打开内核代码,看看一切如何工作。

了解如何构建高负载且容错的系统也很重要。 关于这一点,在会议上已经说了很多,并在互联网上写了很多。

总而言之,负责高负载服务的现代工程师需要能够编程,了解和应用各种技术,并对如何构建可靠且可扩展的服务有所了解。

- 让我们回去一点。 最开始的阶段非常有趣。 为什么选择手术?

-真有趣。 在那些年里,所有体面的女孩都想成为会计师。 我也想,所以我去上了课程。 他们说,要成为一名会计师,您需要掌握分数和Felix里程表,我认为它太复杂了,“知道计算机”(就像他们在招聘广告中所写的那样)会使我的生活和找工作变得更加容易。 结果,她去了最近的莫斯科工程物理研究所电子计算机系的“研究计算机”。 事实证明,在这台计算机中,除了Word和Excel外,还有很多东西-处理器,内存,管道,输入/输出设备。 在学习结束时,我想成为一名程序员。 在最初的课程中,编程对我来说相当困难,而在我学习结束时,编写代码很简单。 可以连续几天这样做。 晚上她坐下来写代码,第二天晚上睁开眼睛。 一切进展顺利,程序正常运行。 但是我意识到自己是一个敏锐的人,因此决定选择更简单的方法。 并开始运行,但事实证明,在这里也不容易,但即使在某些地方也要复杂得多。 但是我留下来了,并且已经20多年了。

- 我想知道您决定在什么时候成为程序员或管理员?

-以不同的方式。 在过去的多年中,我遇到了Yandex和Mail.Ru的学生。 大学里的人们来尝试编程和管理。 有人继续经营,并且知道这是他的。 经过一些工作的人进入了开发。 从事过开发工作的人知道他想更深入地了解一些问题,在他的程序下找出下面的堆栈,如何操作,如何生活以及如何进行操作。 现在有些边界情况称为流行语DevOps。 这些人应该对硬件,开发和代码了解很多。

这完全取决于人,他喜欢和不喜欢的东西。 这些职业非常相似,在很多方面都有重叠。

- 有关Yandex的传说使您感到,一次使用一种特殊的开关可以随时关闭一个数据中心,以测试系统的稳定性。 告诉我更多。

-这个故事始于许多年前的一个重大事件:Yandex几乎所有数据中心都断开了连接。 更准确地说,一个已断开连接,但其中包含公司的所有网络设备。 Yandex没工作好几个小时。 此后,该任务就被设置为使所有内容可靠,容错,以便在数据中心之一断开连接的情况下一切正常。 如今,这个问题已不再那么重要了,特别是对于商业数据中心而言。 可靠性变得越来越高,有一些示例说明现代数据中心如何使用柴油生活数天。 但这是不同的。

几年来,我们分析了所有应用程序的体系结构,编写了任务计划,以及为确保完全的容错能力需要做什么以及需要做什么。 在不可能或太困难的地方,我们讨论了SLA(服务水平协议)。 主要的注意力集中在流行和高负载的服务上。 第一次测试中断非常可怕。 一半的员工监视了监视数据。 他们断开连接并很快打开,记录了所有错误,最终确定了许多系统。 如此反复。

一段时间后,他们说他们可以安静地生活一两个小时,从而断开一个数据中心的连接。 每个人都知道需要保持技能,需要定期练习以断开连接。 就像在水管中一样:如果您长时间不打开水龙头也不关闭水龙头,它会变成酸性,因此您不会在适当的时候打开它。 因此,我们定期打开和关闭“接头”。 而且有效。 我认为这是一项成就,他们晚上有一次打电话给我,说数据中心已经倒塌,我问他们为什么叫醒我:-)

- 您认为程序员和系统管理员之间的界线在哪里? 程序员在什么时候可以说他对此不负责,不知道那里有什么数据库,这是给管理员的。 还是这张脸不是?

-在我看来,管理员负责应用程序“从鼻尖到尾巴的尖端”。 他可以以一种很好的方式进入代码,查看代码在其中的工作方式,以及如何为他修复代码。 他参与技术的选择,因为对于程序员来说有好的技术,与他们一起编写非常方便,但是不可能与他们一起24/7生活。

程序员可以将更多精力放在他们所需的产品功能上:附加功能,设计,附加代码,使项目可以更好地扩展。 也就是说,仍然存在分离。 在国际惯例中,这些是站点可靠性和软件工程师。 有不同的理论应该在何处以及如何进行角色分离。 在我看来,Mail.Ru Group所采用的范式运作良好,并且其中存在运作和发展,而且这些人是不同的人。

- 可能不是每个人都知道Mail.Ru组中现在的排列方式。 告诉我更多。

-我们有一个运营服务,负责该服务的运营。 它由几个部门组成。 每个部门负责一个特定的产品或一组产品,具体取决于规模。 例如,有几个部门从事Mail:一个存储库,另一个处理Web。 还有一些部门在较小规模上从事多个项目。

在我们的家庭中-邮件,搜索,门户,投递俱乐部,“ Yula”,“我的世界”,ICQ等。 有些项目已经启动了很长时间,并且是我们的核心产品,例如Mail和Portal。 我们已经购买了一些项目,这些项目放置在基础架构上,并与他们共享运营实践。 还有一些与我们一起出生并且成长很快的人,例如“ Yula”。 经济是多种多样的:-)

- 典型的Mail.Ru组服务的体系结构是什么样的?

-我们有几个数据中心。 我们在商业设备和网络中拥有自己的数据中心,包括我们自己的数据中心和商业数据中心。 我国渠道的总容量以兆位为单位。

我们将项目服务器托管在多个数据中心中,因此禁用其中一个不会影响服务的运行。 我们的大多数项目是网站。 该体系结构是标准的:负载平衡器,在其之下是Web服务器,然后是应用程序服务器,然后是DBMS和/或存储。

接下来,开始详细说明。

基本上,我们都生活在铁服务器上,但是我们也有云。 例如,对于开发和测试,在OpenStack上使用了云,在开发和测试中,单击按钮即可接收资源。

我们正在实施Kubernetes,但是此过程需要在运营和开发过程中进行大量更改。 进度不快。 我们会尽力做好所有事情,以免损坏任何东西。

让我们回到用户正在发生的事情。 首先,用户进入平衡器。 为了平衡负载,使用了网络协议BGP和RIP,以及传统的软件-ipvs,haproxy和nginx。 之后,Web服务器主要使用nginx和Apache向用户显示漂亮的页面。

但它们背后是应用程序服务器。 如前所述,由于既有旧项目又有相当新的项目,因此有许多编程语言可以编写所有这些内容。

作为用于新项目的DBMS,主要使用MySQL,PostgreSQL和我们的内部开发Tarantool。 用户不应该感到服务器失去任何存储或其一部分,我们会尝试将数据备份并复制到相邻的数据中心。

我们主要使用开源,因为我们公司有很多程序员和工程师可以随时修复某些问题。 也有一些发展。 例如,用户信件所在的存储库是它自己的开发。

- 您有多少人在服从?

-现在大约70,但是这个数字有规律地增长。 我们正在积极扩展,现在有很多空缺职位。

- 它们服务多少台服务器?

-位于我们数据中心的数万台服务器。 大多数在莫斯科,但在美国和欧洲的其他城市也有服务器。 所有这些服务器机队都需要监视,维护和维护。 当然,除了游览外,我们自己不会去数据中心。

- 频道的音量应该是多少?

“几个兆头。” 整个Mail.Ru组具有一个公共网络,通过该网络可以传输大量信息。 至少以“ VK”和“ OK”为例,它们显示了很多视频,但仍然有邮件,搜索,分析和许多其他高负载服务。 因此,网络是重要的组成部分。

- 要成为一名优秀的系统管理员,您需要了解什么?

-当然是Linux。 现在,许多商业公司都使用此OS。 基本上,在公司内部,他们尝试不使用不同的发行版,每个人都希望它成为一个发行版,更容易更新和维护系统。 每个人都有自己的发行偏好,我们使用CentOS。 因此,首先,您需要了解Linux,Linux的安排方式和内容,进程间通信的安排方式,所有内容的加载和工作方式。

接下来是专业化-与谁更接近,更靠近灵魂:-)。 有人专门从事自动化,有人在Web服务器上,有人在网络上,有人在数据库上,以及有人在云技术上。 例如,一次我真的很喜欢数据库。 您需要了解应用程序的工作原理-能够对其进行配置,了解在任务中使用一个或另一个应用程序的利弊,当然,在出现问题时能够非常迅速地对其进行修复。

这样的专业化的例子:网络工程师了解协议,知道在哪里使用哪个更好,他们可以配置全局和本地路由,他们知道如何确保网络的可靠性和容错能力。

数据库专家知道如何分片,复制和备份数据库,以便可靠地保存信息并确保高速。 这些人知道如何查看查询计划,知道为什么需要索引以及索引是什么。

一个典型的任务:讨论为什么长时间执行该请求,您需要查看计划,并查看加载服务器(内存,处理器,I / O)是否存在问题。

- 在公众舆论中,管理人员被摆成一个穿着大胡子的男人。 您在男队工作难吗?

-一个难题,因为我已经工作了很多年。 首先,我已经习惯了。 其次,如果我们谈论整个行业,那么已经有很多女孩在运作。

这种神话来自远古时代,当时需要进行大量的体力劳动。 我和我的朋友仍然记得我们两个人是如何拔出大型的重型多单元服务器并将其放置在地板上的,因为我们再也无法将其带到特殊的维护位置。 他们用螺丝刀,换轮工具坐在数据中心中间的地板上。 还没有幻灯片:-)

现在没有这样的事情。 我们在桌子旁舒适的办公室里工作。 今天我们的工作与程序员的工作没有什么不同,程序员也从未纯粹是男性化的:女程序员是相当普遍的事情。

- 我们的突击调查。 你的笔记本是什么?

苹果

-Bash或Perl哪个更好?

-重击

- 创业公司还是大公司?

-在一家大公司创业。

您没有足够的钱做的最后一件事是什么?”

-去游艇。

- 好答案。 每个人都会立即了解Mail.Ru组中的薪水水平。

没错

-ICQ还是TamTam?

-ICQ。

- “ VK”还是“同学”?

-VK。

- 你的偶像是谁?

-我没有偶像。 我相信,俄罗斯和国外互联网上的许多人都对该行业做了很多贡献。 多亏了他们,它才以如此快的速度发展。 我很幸运,我认识很多人。

- 给大俄罗斯人起名。

-很多 再说一次,恐怕我不会列出所有人。 如果有人需要亲自挑选,我很高兴在生活中设​​法与Ilya Segalovich合作。

Source: https://habr.com/ru/post/zh-CN416849/


All Articles