赣州新闻网

首页 / 科技

不止背锅!互联网大厂的运维都在干什么?30K的总监来告诉你

2020-04-08 · 赣州新闻网 · 科技

任何工作任何岗位,有5K的,也有30K的,运维也不例外。

互联网运维工作,以服务为中心,以稳定、安全、高效为三个基本点,确保公司的互联网业务能够 724 小时为用户提供高质量的服务。

不止背锅!互联网大厂的运维都在干什么?30K的总监来告诉你

运维人员对公司互联网业务所依赖的基础设施、基础服务、线上业务进行稳定性C } 5加强断的时间,使公司的互联网业务符合预期的可用性C A E 0 j ` 9 !要求,持续稳定地为用户提供务。

在安全方面,运维人员需要关注业务运行所涉及的各个层面,确保用户能够安全、完整地访问在线业务。

从网络边界划分、ACL 管理、流量分析、DDo` E x Y R O . RS 防御,到操作系统、开源软件的漏洞扫描和修补,再到应用服务的XSS、SQL注入防护;

从安全流程梳、代码白盒黑盒扫描、权限审计,到} 4 f { 5 | m Z $入侵行为检测、业务风险控制等。

运维人员需要保障公司提供的互联网业 运行在安全、可控的状态下,确保公司业务数据和用户隐私数据的安= P 9全,同时还需要具备抵御各种恶意攻击的能力。

在确保业务稳定、安全的前提下,还需保障业务高效的运转,公司内快速的产出。运维工作需要对业务进行各方面优化。

比如,IO 优化提升数据库性能,图片压缩降低带宽使用量等,提供的互联网业务以较小的资源投入带来最大的用户价值和体验。

同时,还需要通过各种工具平台提升内部产品发布交付的效率,提升公司内运维相关的工作效率。


工作分类运维


运维的d 8 a l b ( _ d &工作方向比较多,随着业务规模的不断发展,越成熟的互联网公司,运维岗v n c 1 = 4 q位会划分得越细。

当前很多大型的互联网公司` & y,在初创时期只有系统运维,随着服务规模、服务质量的 要求,也逐渐进行了工[ i e作细分。

一i @ M J j般情况下运维团队的工作分类(见图1-1)和职责如下。

不止背锅!互联网大厂的运维都在干什么?30K的总监来告诉你


系统运维


系统运维负责IDC、网络、CDN和基础服务的建设(LVS、NTP、DNS);负责资产o e `管理,服务器选型、交付和维修。详细的工作职责如下:


1.IDC数据中心建设


收集业务需求,预估未来数据中心的发展A N ; | C规模,从骨干网的分布,数据中心建筑,O d 2 P U _ ?以及Internet接入、网络攻击防御能力、扩容能力、G { v 9 n 9 e接专线能力、现场服务支撑能力等方面评估b / z * W ( ! % V选型数据中心。负z 8 k N责数据中心的建设、现场维护工作。


2.网络建设


设计及规划生产网络架构,这里面包括:数据中心网络架构、传输网架构、CDN网络架构等,以及网络调优等日常运维工作。


3.LVS 负载均衡和 SNAT 建设U Y %


LVS 是整个站点架构N E | F中的流量入口,根据网络规模和业务需求,构建负载均衡集群。

完成网络与业务服务器的衔接,提供高性能、高可用的负载调度能力,以及统一的网络层防攻击能力。

SNAT .集中提供数据中心的公网访问服务,通过集群化部署,保证出网服务的高性能与高可用。


4.CDN 规划和建设


CDN 工作划分为第三& % A方和自建两部分。

建立第三方 CDN 的选型和调度控制;根据业务发展趋势,规划CDN新节点建设布局;完善CDN业务及监控,保障CDN 系统稳定、高效运行。

分析业务加速频道的文件特性和数量,制定最优的加速策略和资源匹配;负责用户劫持等CDN日常故障排查工作。


5.服务器选型、交付和维护


负责服务器的测试选型,包含服务器整机、部件的基础性A ) x h g E N # J测试和业务测试,降低整机功率,提升机架部署密度等。

结合对公司业务的了解,推广新硬件、新方案减少业务的服务器投入规模。负责服务器硬件故障的诊断定位,服务器硬件监控、健康检查工具的开发和维护。


6.OS、内核选型和 OS 相关维护工作


负责整体平台的 OS 选型、定制和内核优化,以及 Patch 的更新和内部版本发布;建立基础的YUM包管理? a g w p和分发中心n S 5 Y W 2 d 0,提供常用包版本库;跟进日常各类 OS 相关故障;针对不同的业务类型,提供定向的E H U 2 : ! x优化支持。


7.资产管理


记录和管理运维相关的基础物理信息,包括数据中心、网络、机柜、服务器、ACL、IP等各种资源信息,制定有效的流程,确保信6 G B T # n b 4 +息的准确性;开放API接口,为自动化运维提供4 B y v O数据支持。


8.基础服务建设


业/ R * J务对 DNS、NTP、SYSLOG 等基础服务的依赖非常高,需要设计高可用架构避免单点,提供b | 2 v稳定的基础服务。


应用运维


应用运维负责线上服务的变e T / R A更、服务状态监控% C # 6 9 n、服务容灾和数据备份等工作,对服务进行例行排查、故障应急处理等工作。详细的工作职责如下所述。


1.设计评审


在产 : @ * Q品研发阶段,参与产品设计评审,从运维的角度提出评审意见,使服务满足运维准入的高可用要求。


2.服务管理


负责制定线上业务升级变更v { x Z 4 f w V及回滚方案,并进行变更实施。掌握所负责的服务及服务间关联关系、服务依赖的各种资源。能够发现服务上的缺陷,及时通报并推进解决。

制定服务稳定性指标及准入标准,同时不断完善和优化程序和系统的功能、效率,提高运行质量。完善监控内容,提高报警准确度。

在线S I ~ . Y上服务出现故障时a % q b *,第一时间响应,对已知线上故障能按流程进行通报并按预案执行,未知故障组织相关人员联合排障。


3.资源管理


对各服务的服务器资产进行管理,梳理服务器资源状况、数据中心分布情况、网络专线及带宽情况,能够合理使用服务器资源,根据不同服务的需求,分配不同配置的服务器,确保服务$ U m器资源的充分利用。


4.例行检查


制定服务例行排查点,并不断完善。根据制定的服务排查点,对服务进行定期检查。对排查过& 9 L O程中发现的问题,及时进行追查,排除可能存在的隐/ . s . }患。


5.预案管理


确定服务所需的各项监控、系统指标的阈值或临界点,H w D ? Z X以及出现该情况后的处理预案。

建立和更新服务预案文档,并根据日常故障情况不断补充完善,提高预案完备性。能够制定4 ^ t和评+ f ) 1 c j 5审各类预案,周期性进行预案演练,确保预案的可执行性。


6.数据备份


制定数据备份策略,按规范a Y , s h 3 ~ Z进行数据备份工作。保证数据备份的可用c E Y O性和完整性,定期开展数据恢复性测试。


不止背锅!互联网大厂的运维都在干什么?30K的总监来告诉你


数据库运维


数据库运维负责数据存储方案设计、数据库表设k C R 9计、索引设计和S? n eQL优化,对数据库进行变更$ D X . c ( t b V、监控、备份、高可用设计等工作! f F o W a G U。详细的工作职责如下所述。


1.设计评审


在产品研发初始阶段,参与设计方案评审,从DBA的角度提出数据存储方案、库表设计方案、SQL开发标准、索引设计方案等,使服务满足数据库使用的高可用、高性能要求。


2.容量规划


掌握所负责服务的数据库的容量上限,清楚地了解当前瓶颈点,当服务还未到达容量上限时,及时进行优化、分拆或者扩容。


3.数据备份与灾备


制定数据备份与灾备策略,定期完成数据恢复性测试,保证数据备份D Y T的可用性和完整性。


4.数据库监S u R & o b N控


完善数据库存活和性能监控,及时了解数据库运行状态及故障。

数据库安全建设数据库账号体系,严格控制账号权限与开放范围,降低误操作和数据泄露的风险;加强离线备份数据的管理,降低数据泄露的风险。


5.数据库高可用M ) 1 b和性能优化


对数据库单点风险和故障设计相应的切换方案,降低故障对数据库服务的影响;不断对数据库整体h S h L 1 r a S性能进行优化,包括新存储方案引进、硬件优化、文件系统优化、数据库优化、SQL优化等,在保障成本不增加或者少量增加的情况下,数据库可以支撑更多的业务请求。


6.自动化系统建设


设计开发数据库自动化运维系统,包括数据库部署、自动扩容、分库分表、权限管理、备份恢复、SQL审核和上线、故障切换等功能。


7.运维研发


运维研发负G b ^ u = b e j N责通用的运维平台设计和研发工作,如:资产管理、监控系统、运维W * G b K l u Y 4平台2 7 R Z ]、数据权限管理系统等。提供各种API供运维或研发人员使用,封) X Z l q $ a g w装更高层的自动化运维系统。详细的工作职责如下所述。


8.运维i t S k i D平台


记录和管理服务及其关联关系,协助运维人员自动化t d V、流程化地完成日常运维操作,X X E q p D包括机器& s管理、重启、改名、初始J s ] 9 I v b p .化、域名管理、流量切换和故障预案实施等。


9.监控系统


负责监控系统的设计、开发工作,完成公司服务器和} } I d各种网络设备的资源指标、线上业务运行指标的收集、告警、存储、分析B C 6 | 2 r d、展示和数据挖掘等工作,持续提高告警的及时性、准确性和智能性,促进公0 3 z F f A H k司服务器资源的合o 1 x / 9 z : 8 Q理化调配。


10.自动化部署系统


参与部署自动化系统的开发,负责自动化部署系统所需要的基础数据和信息,负责权限管理、API开发、Web端开发。结合云计算,研发h p W F流程机制,比如业务目录环境都是各式各样的。

工具批量操作阶段:随着服务器规模、系统复杂度的增加,全人工的操作方式已经不能满足业务的快速发, s d , :展需要。因此,运维人员逐渐开始使用批量化的操作工具,针对不同操作类型出现M E a了不同的脚本程序。

但各团队都有自己的工具,每次操作需求发生变化时都需要调整工具。这主要是因为对于环境、操作的规范不够,导致可程序化处理能力较弱。此时,虽然效率提升了一部分,但很快又遇到了瓶颈。R ` & t + a 0 | x

操作的质量并没有太多Y H 5 8 b 5的提升,甚至可能因为批量执行而导致更 : 3 X y _ * U大规模的问题出现。我们开始建立大量的流程规范,比如复查机# / g 制,先上线一台服务器观察10分钟后再继续后面的操作,一次升级完成) b v s b @ . n h后至少要观察z U Y20分钟等。

这些主要还是靠人来监督和执行,但在实际过程中执行往往不到位,反而降低了工作效率。

平台管理阶段:在这个阶段,对于运维效率和误操作率有了更高的要求,我们决l i % e X 0 % e 4定开始建设运维平台,通过M v ( M M平台承载标准、流程,进而解放人力和提高质量。

这个时候对服务的变更动作进行了抽象,形成了( M l操作, O b方法、服务目录环境、服务运行方式等统一的标准,如程序的启停接口必须包括启动、停止、重载等。通过平台来约束操作流程,如上面提到的上Z s 5线一台服务器观察10分钟。

在平台中强制设定暂停检查点,在第一台服务器操作完成后,需要运维人员填写相应的检查项,然后才可以继续执行后续的部署动作。

系统自调度阶段:@ ~ u - m更大规模的服务数量、更复杂的服务关联关系、各个运维平台的林立,原有的将批量操作转化成平台操作的方式已* & ! U # = , * w经不再适合,需要对服务变更进行更高一层的抽象。

将每一台服务器抽象6 g 6 A h h a F成一个容器,由调度系统根据资源使用情况,将服务调度、部署到合适的服务器上,自动化Q O W完成与周边各个运维系统的联动,比如监控系统、日志系统、备份系统等。

通过自调度系统,根据服务运行情况动态伸缩容量,能够自动化处理常见的服务故障。运维人员的工作也会前置到产品$ C s @设计阶段,协助研发人员改造服务使其可以接入到自调度系统中。

在整个运维的发展过程中,希望所有的工作都自动化起来,减少人的重复工作,降低知识传递的成L L x t Q u L S本,使我们的运维交付更高效、更安全,使产品运行更稳定。对于故障的处理,也希望由事后处理变成提前发现,由人工处理变成系统自动容灾。

库存测试确保复工发展告诉兴国都在互联网