需要(不需要)网络人员

在撰写本文时,在一个热门招聘网站上搜索“网络工程师”一词后,在俄罗斯各地找到了大约 2.5 个职位空缺。 相比之下,搜索“系统管理员”一词会返回近 800 个职位空缺,而“DevOps 工程师”则会返回近 XNUMX 个职位空缺。

这是否意味着在云、Docker、Kubernetes 和无处不在的公共 Wi-Fi 获胜的时代不再需要网络人员?
让我们来弄清楚(c)

需要(不需要)网络人员

让我们结识。 我叫阿列克谢,是一名网络工作者。

我从事网络工作已超过 10 年,并且使用各种 *nix 系统也已超过 15 年(我有机会修补 Linux 和 FreeBSD)。 我曾在电信运营商、被认为是“企业”的大公司工作过,最近我一直在“年轻而大胆”的金融科技工作,那里的云、devops、kubernetes等可怕的词肯定会让我和我的同事们感到不必要。 有一天。 或许。

免责声明:“在我们的生活中,并非所有事物总是无处不在,而是某些东西,有时在某些地方”(c)Maxim Dorofeev。

下面所写的所有内容都可以而且应该被视为作者的个人观点,并不声称是最终的真理,甚至不是成熟的研究。 所有人物都是虚构的,所有巧合都是随机的。

欢迎来到我的世界。

您在哪里可以见到网络人士?

1、电信运营商、服务公司等集成商。 这里一切都很简单:网络对他们来说就是一项业务。 他们要么直接销售连接(运营商),要么提供启动/维护客户网络的服务。

这里有很多经验,但钱不多(除非你是总监或成功的销售经理)。 然而,如果你喜欢网络,并且你才刚刚开始你的旅程,即使是现在,支持一些不是很大的运营商的职业也将是一个理想的起点(在联邦网络中,一切都是非常有脚本的,并且有创造力的空间很小)。 嗯,关于如何在几年内从一名值班工程师成长为 C 级经理的故事也相当真实,尽管很少见,但原因显而易见。 人才的需求总是存在的,因为流动确实存在。 这既是好事也是坏事——另一方面,总是有职位空缺——通常最活跃/聪明的人很快就会离开去升职或去其他“更温暖”的地方。

2、有条件的“企业”。 他的主要活动是否与 IT 相关并不重要。 最主要的是它有自己的IT部门,保证公司内部系统的运行,包括办公室的网络、与分支机构的沟通渠道等。 在此类公司中,网络工程师的职能可以由系统管理员“兼职”执行(如果网络基础设施较小或由外部承包商处理),并且网络专家(如果有的话)可以在同时照顾电话和 SAN(不好)。 他们支付的费用不同——这在很大程度上取决于企业的盈利能力、公司规模和结构。 在我工作过的公司中,思科系统经常被“装在桶里”,而这些公司的网络是用粪便、棍棒和蓝色胶带构建的,而且服务器从未更新过(不用说,也没有提供任何储备)。 这里的经验要少得多,而且几乎肯定是在严格的供应商锁定或“如何从无到有”领域。 就我个人而言,我发现它非常无聊,尽管很多人喜欢它 - 一切都是相当可衡量和可预测的(如果我们谈论的是大公司),“dorakha-bahato”等。 至少每年一次,一些主要供应商表示,他们已经推出了另一个超级超级骗局系统,该系统现在可以实现一切自动化,所有系统管理员和网络人员都可以分散,只留下几个人在漂亮的界面中按下按钮。 现实情况是,即使我们忽略解决方案的成本,网络人员也不会从那里走下去。 是的,也许将再次出现一个网络界面(而不是控制台)(但不是一个特定的硬件,而是一个管理数十个和数百个此类硬件的大型系统),但“内部一切如何工作”的知识仍然会存在被需要。

3、产品公司,其利润来自某些软件或平台(即同一产品)的开发(通常还包括运营)。 它们通常规模小、灵活,距离企业规模和官僚化还很远。 正是在这里,那些同样的devops、cubers、dockers和其他可怕的词大量出现,这肯定会让网络和网络工程师成为不必要的雏形。

网络管理员与系统管理员有何不同?

在人们的理解中,不是来自IT——什么都没有。 两人都看着黑色的屏幕,写着一些咒语,有时还小声咒骂。

在程序员的理解中——也许是按学科领域。 系统管理员管理服务器,网络管理员管理交换机和路由器。 有时管理很糟糕,每个人的一切都会崩溃。 好吧,如果出现任何奇怪的情况,网络人员也有责任。 只是因为操你,这就是原因。

事实上,主要的区别在于工作方式。 也许,在网络人士中,“如果有效,就不要碰它!”这一做法的支持者最多。 一般来说,某件事只能用一种方式(在一个供应商内)完成;盒子的整个配置就在你的手掌中。 错误的成本很高,有时甚至非常高(比如你要跑几百公里去重启路由器,这时候几千人就无法通讯——这对于电信运营商来说是很常见的情况) 。

在我看来,这就是为什么网络工程师一方面对网络稳定性有着极高的积极性(而变化是稳定性的主要敌人),其次他们的知识深度大于广度(你不知道变化是稳定性的主要敌人)。需要能够配置数十个不同的守护进程,您需要了解特定设备制造商的技术及其实现)。 这就是为什么在 Google 上搜索如何在 Cisco 系统上注册 VLAN 的系统管理员还不是网络人员。 而且他不太可能有效地支持(以及排除故障)或多或少复杂的网络。

但是,如果您有托管服务商,为什么还需要网络管理员呢?

如果需要额外的钱(如果您是一个非常大且受人喜爱的客户,甚至可能免费,“作为朋友”),数据中心工程师将配置您的交换机以满足您的需求,甚至可能帮助您与提供商建立 BGP 接口(如果您有自己的用于公告的 IP 地址子网)。

主要问题是数据中心不是你的IT部门,它是一个独立的公司,其目标是盈利。 包括以您作为客户的费用为代价。 数据中心提供机架,为它们提供电力和冷气,还提供一些与互联网的“默认”连接。 基于此基础设施,数据中心可以托管您的设备(托管)、向您出租服务器(专用服务器)或提供托管服务(例如 OpenStack 或 K8s)。 但是数据中心的业务(通常)不是客户端基础设施的管理,因为这个过程是相当劳动密集型的,自动化程度很低(在普通数据中心中,一切可能的事情都是自动化的),统一性更差(每个客户端是个人)并且通常充满抱怨(“你告诉我服务器已经设置好了,但现在它崩溃了,这都是你的错!!!111”)。 因此,如果主人帮助你做某事,他会尽量让事情变得简单、方便。 因为做起来困难是无利可图的,至少从同一主机商的工程师的人力成本来看(但情况不同,请参阅免责声明)。 这并不意味着主办方一定会把所有事情都做得很糟糕。 但事实并非如此,他会完全按照你真正需要的去做。

这似乎是很明显的事情,但在我的实践中,我多次遇到这样的事实:公司开始过度依赖他们的托管提供商,但这并没有带来任何好处。 我必须详细地解释,没有一个 SLA 可以涵盖停机造成的损失(也有例外,但通常对客户来说非常非常昂贵),并且托管服务商根本不知道发生了什么客户的基础设施(非常一般的指标除外)。 而且托管服务商也不为您进行备份。 如果您有多个托管服务商,情况会更糟。 如果他们之间出了什么问题,他们肯定不会帮你找出问题所在。

实际上,这里的动机与选择“内部管理团队与外包”时的动机完全相同。 如果风险算好了,质量还算满意,商家也不介意,何不尝试一下。 另一方面,网络是基础设施的最基本层之一,如果您自己已经支持其他所有内容,那么几乎不值得将其留给外部人员。

什么情况下需要网络员?

接下来我们具体讲一下现代食品企业。 对于运营商和企业来说,一切都很清楚,无论是正负,近年来几乎没有什么变化,以前需要网络人员,现在也需要网络人员。 但对于那些同样“年轻而大胆”的人来说,事情就不那么清楚了。 他们通常将整个基础设施放置在云中,因此他们甚至不需要管理员 - 当然,除了这些云的管理员之外。 一方面,基础设施的设计非常简单,另一方面,它的自动化程度很高(ansible/puppet、terraform、ci/cd...嗯,你知道的)。 但即便如此,在某些情况下您也离不开网络工程师。

示例1,经典

假设一家公司最初拥有一台具有公共 IP 地址的服务器,该服务器位于数据中心。 然后有两台服务器。 还有更多...迟早,服务器之间将需要专用网络。 因为“外部”流量受到带宽(例如不超过 100Mbit/s)和每月下载/上传量的限制(不同的托管商有不同的资费,但通往外界的带宽通常比内部网络贵得多)专用网络)。

托管商向服务器添加额外的网卡,并将它们包含在单独 VLAN 中的交换机中。 服务器之间出现“平坦”局部区域。 舒服的!

服务器数量不断增长,专用网络上的流量也在不断增长——备份、复制等。 托管服务商提出将您转移到单独的交换机中,这样您就不会干扰其他客户端,他们也不会干扰您。 托管商安装了一些交换机并以某种方式配置它们 - 最有可能的是,在所有服务器之间留下一个平坦的网络。 一切都运行良好,但在某个时刻问题开始出现:主机之间的延迟周期性地增加,日志抱怨每秒有太多的 arp 数据包,并且在审计期间渗透测试人员操弄了您的整个本地网络,只破坏了一台服务器。

我应该怎么办?

将网络划分为多个段 - VLAN。 在每个 VLAN 中配置您自己的寻址,选择将在网络之间传输流量的网关。 在网关上配置acl来限制网段之间的访问,甚至可以就近安装单独的防火墙。

示例 1(续)

服务器通过一根线连接到 LAN。 机架中的交换机以某种方式相互连接,但如果一个机架发生事故,另外三个相邻的交换机就会掉落。 计划是存在的,但人们对其相关性存疑。 每台服务器都有自己的公共地址,该地址由托管主机发布并绑定到机架上。 那些。 移动服务器时,必须更改地址。

我应该怎么办?

使用 LAG(链路聚合组)用两根电线将服务器连接到机架中的交换机(它们也需要冗余)。 保留机架之间的连接,将其转换为“星”型(或现在流行的CLOS),这样一个机架的丢失不会影响其他机架。 选择网络核心所在的“中央”机架以及连接其他机架的位置。 同时,按顺序排列公共寻址,从托管服务商(或从 RIR,如果可能)获取子网,您自己(或通过托管服务商)向全世界公布该子网。

这一切能够由一个对网络没有深入了解的“普通”系统管理员来完成吗? 没有把握。 楼主会这么做吗? 也许会,但您需要一个相当详细的技术规范,也需要有人起草。 然后检查一切是否正确完成。

示例 2:云

假设您在某个公共云中有一个 VPC。 要从办公室或基础设施的本地部分访问 VPC 内的本地网络,您需要通过 IPSec 或专用通道配置连接。 一方面,IPSec 更便宜,因为无需购买额外的硬件;您可以在具有公共地址的服务器和云端之间建立隧道。 但是 - 延迟、性能有限(因为通道需要加密)以及不受保证的连接(因为访问是通过常规互联网进行的)。

我应该怎么办?

通过专用通道建立连接(例如,AWS 称之为 Direct Connect)。 为此,请找到一个能够连接您的合作伙伴运营商,决定离您最近的连接点(您到运营商以及运营商到云),最后设置好一切。 没有网络工程师是否可以完成这一切? 当然是的。 但一旦出现问题,如何在没有他的情况下排除故障,就不再那么清晰了。

还可能存在云之间的可用性问题(如果您有多云)或不同区域之间的延迟问题等。 当然,现在出现了许多工具来增加云中发生的事情的透明度(同样的千眼),但这些都是网络工程师的工具,而不是他的替代品。

我可以从我的实践中勾画出更多这样的例子,但我认为很明显,团队从基础设施开发的一定水平开始,必须有一个人(最好不止一个)知道网络如何工作并可以配置网络设备并解决出现的问题。 相信我,他会有事可做

网络工作者应该知道什么?

网络工程师完全没有必要(有时甚至是有害的)只处理网络而不处理其他事情。 即使我们不考虑几乎完全位于公共云中的基础设施(而且,无论人们怎么说,它变得越来越流行),并以本地云或私有云为例,关于“仅CCNP级别的知识”“你不会离开。

事实上,除了网络之外——尽管有一个无穷无尽的研究领域,即使您只专注于一个领域(提供商网络、企业、数据中心、Wi-Fi ...)

当然,现在很多人都会记得Python和其他“网络自动化”,但这只是必要条件,而不是充分条件。 为了让网络工程师“成功加入团队”,他必须能够与开发人员和其他管理员/开发人员使用相同的语言。 这是什么意思?

  • 不仅能够以用户身份在 Linux 中工作,而且能够管理它,至少在 sysadmin-jun 级别:安装必要的软件,重新启动失败的服务,编写一个简单的 systemd-unit。
  • 了解(至少一般而言)网络堆栈如何在 Linux 中工作,网络如何在虚拟机管理程序和容器(lxc / docker / kubernetes)中工作。
  • 当然,能够与 ansible/chef/puppet 或其他 SCM 系统一起工作。
  • 应单独编写一行有关 SDN 和私有云网络(例如,TungstenFabric 或 OpenvSwitch)的内容。 这又是一个巨大的知识层。

简而言之,我描述了一个典型的T型专家(现在流行这样的说法)。 这似乎不是什么新鲜事,但根据面试经验,并非所有网络工程师都可以夸耀自己对上述列表中至少两个主题的了解。 在实践中,由于缺乏“相关领域”的知识,不仅很难与同事沟通,而且很难理解业务对网络作为项目最底层基础设施的要求。 如果没有这种理解,捍卫你的观点并将其“推销”给企业就会变得更加困难。

另一方面,“了解系统如何工作”的相同习惯使网络人员比各种“通才”具有很大的优势,后者通过 Habré/medium 上的文章和 Telegram 上的聊天了解技术,但完全不知道如何做这个或那个软件的工作原理是什么? 众所周知,某些模式的知识成功地取代了许多事实的知识。

结论,或者只是 TL;DR

  1. 网络管理员(如 DBA 或 VoIP 工程师)是一名专业人士,其职业范围相当狭窄(与系统管理员/开发人员/SRE 不同),其需求不会立即出现(事实上,可能很长时间都不会出现) 。 但即使它确实出现,也不太可能被外部专家(外包或普通通用管理员,“他们也照顾网络”)取代。 更令人悲哀的是,对此类专家的需求很小,而且有条件地,在一家拥有 800 名程序员和 30 名开发人员/管理员的公司中,可能只有两名网络人员能够出色地完成自己的职责。 那些。 市场过去和现在都非常非常小,而且工资很高——甚至更少。
  2. 另一方面,现代世界的优秀网络人员不仅必须了解网络本身(以及如何自动化其配置),而且还必须了解在这些网络之上运行的操作系统和软件如何与网络交互。 如果没有这一点,就很难理解你的同事对你的要求并向他们(合理地)传达你的愿望/要求。
  3. 没有云,它只是别人的计算机。 您需要了解,使用公共/私有云或托管提供商的服务“在交钥匙的基础上为您完成一切”并不会改变您的应用程序仍然使用网络的事实,并且它的问题将影响网络的运行你的申请。 您的选择取决于能力中心的所在地,该中心将负责您的项目网络。

来源: habr.com

添加评论