了解最新公司动态及行业资讯
互联网运维工作以服务为核心,以稳定、安全、高效为三个基本点,确保公司互联网业务能够7×24小时为用户提供优质服务。
运维人员加强公司互联网业务所依赖的基础设施、基础服务、线上业务的稳定性,进行日常巡查,发现服务中可能存在的隐患,优化整体架构,屏蔽常见的运行故障。接入提高了业务的容灾能力。
通过监控、日志分析等技术手段,及时发现并响应服务故障,减少服务中断时间,使公司互联网业务达到预期的可用性要求,为用户提供持续稳定的服务
在安全方面,运维人员需要关注业务运营所涉及的各个层面,确保用户能够安全、完整地访问在线业务。
从网络边界划分、ACL管理、流量分析、DDoS防御,到操作系统和开源软件的漏洞扫描和补丁,再到应用服务的XSS和SQL注入防护;
从安全流程梳理、代码白盒黑盒扫描、权限审计,到入侵检测、业务风控等。
运维人员需要保证公司提供的互联网行业在安全可控的状态下运行,保证公司业务数据和用户隐私数据的安全,同时需要具备抵御能力各种恶意攻击。
在保证业务稳定安全的前提下,还要保证业务的高效运作和公司内部的快速产出。运维工作需要对业务的各个方面进行优化。
比如IO优化提升数据库性能,图片压缩降低带宽占用等。提供的互联网服务以更少的资源投入,带来最大的用户价值和体验。
同时,还需要通过各种工具平台提高内部产品发布和交付的效率,提高公司内部与运维相关的工作效率。
工作分类运维
操作和维护有许多工作方向。随着业务规模的不断发展,互联网公司越成熟,运维岗位的划分也会越细。
目前,很多大型互联网公司只在初创期进行系统运维。随着服务规模和服务质量的要求,他们的工作也逐渐细分。
总体而言,运维团队的工作分类和职责如下。
系统运维
系统运维负责IDC、网络、CDN和基础服务(LVS、NTP、DNS)的建设;负责资产管理、服务器选择、交付和维护。具体工作职责如下。
1.IDC数据中心建设
收集业务需求,预估数据中心未来发展规模,从骨干网分布、数据中心楼宇、接入、网络防攻击能力、扩容能力、空间预留、外租专线能力、现场服务等方面进行评估支持能力。选择数据中心。负责数据中心的建设和现场维护。
2.网络建设
设计和规划生产网络架构,包括:数据中心网络架构、传输网络架构、CDN网络架构等,以及网络调优等日常运维工作。
3.LVS负载均衡和SNAT构建
LVS是整个站点架构中的流量入口,根据网络规模和业务需求构建负载均衡集群。完成网络与业务服务器的连接,提供高性能、高可用的负载调度能力,以及统一的网络层攻击防御能力。NAT。在数据中心集中提供公网接入服务,通过集群部署保证出站服务的高性能和高可用性。
4.CDN规划建设
CDN工作分为第三方和自建两部分。建立第三方CDN的选择和调度控制;根据业务发展趋势规划新CDN节点的建设和布局;完善CDN服务和监控,确保CDN系统稳定高效运行。分析服务加速通道的文件特征和数量,制定最优的加速策略和资源匹配;负责用户劫持等日常CDN故障排除。
5.服务器选型、交付和维护
负责服务器测试和选型,包括整台服务器及组件的基础测试和业务测试,降低整台服务器的功耗,增加机架部署密度。
结合对公司业务的了解,推广新的硬件和新的解决方案,降低业务中服务器的投资规模。负责诊断和定位服务器硬件故障,开发和维护服务器硬件监控和健康检查工具。
6.OS、内核选择及OS相关维护
负责整个平台的操作系统选择、定制和内核优化,以及补丁更新和内部版本发布;建立基本的YUM包管理和分发中心,提供常用的包版本库;跟进日常各种与操作系统相关的故障;业务类型,提供针对性的优化支持。
7.资产管理
记录和管理与运维相关的基本物理信息,包括数据中心、网络、机柜、服务器、ACL、IP等资源信息,制定有效的流程,确保信息的准确性;开放API接口,提供自动化运维数据支持。
8.基础服务建设
业务严重依赖DNS、NTP等基础服务,需要设计高可用架构,避免单点,提供稳定的基础服务。
应用运维
应用运维负责在线服务变更、服务状态监控、服务容灾和数据备份等,以及日常服务检查和故障应急处理。具体工作职责如下。
1.设计评审
在产品开发阶段,参与产品设计评审,从运维角度提出评审意见,使服务满足运维接入的高可用需求。
2.服务管理
负责制定线上业务升级变更和回滚计划,并实施变更。掌握负责的服务,服务之间的关系,以及服务所依赖的各种资源。能够发现服务缺陷,及时报告并推进解决。制定服务稳定性指标和准入标准,同时不断完善和优化流程和系统的功能和效率,提高运行质量。完善监控内容,提高报警准确率。当在线服务出现故障时,立即响应,将已知在线故障按流程上报并按计划执行,并组织相关人员共同排除未知故障。
3.资源管理
管理各项服务的服务器资产,梳理服务器资源状况、数据中心分布、网络专线和带宽,合理使用服务器资源。根据不同业务的需求,分配不同配置的服务器,保证服务器资源的充分利用。
4.例行检查
制定服务例行检查点并不断改进。根据既定的服务检查点对服务进行定期检查。对检查过程中发现的问题,要及时追溯,消除可能存在的隐患。
5.计划管理
确定服务所需的各种监控、系统指标的阈值或临界点,以及如果发生这种情况该怎么办。建立和更新服务计划文件,并根据日常故障情况不断补充和改进,提高计划的完整性。能够制定和审核各类计划,并定期进行计划演练,确保计划的可执行性。
6.数据备份
制定数据备份策略,按规范开展数据备份工作。确保数据备份的可用性和完整性,并定期进行数据恢复测试。
数据库运维
数据库运维负责数据存储方案设计、数据库表设计、索引设计和SQL优化,以及数据库的变更、监控、备份、高可用设计。具体工作职责如下。
1.设计评审
在产品开发初期,参与设计方案的评审,从DBA的角度提出数据存储方案、数据库表设计方案、SQL开发标准、索引设计方案等,使服务满足数据库使用的高可用性和高性能要求。
2.容量规划
掌握负责服务的数据库的容量上限,清楚地了解当前的瓶颈点。当服务尚未达到容量上限时,及时优化、拆分或扩容。
3.数据备份与容灾
制定数据备份和容灾策略,定期完成数据恢复测试,确保数据备份的可用性和完整性。
4.数据库监控
提高数据库生存和性能监控,及时了解数据库运行状态和故障。数据库安全 建立数据库账户体系,严格控制账户权限和开放范围,降低误操作和数据泄露风险;加强离线备份数据管理,降低数据泄露风险。
5.数据库高可用和性能优化
针对数据库的单点风险和故障设计相应的切换方案,降低故障对数据库服务的影响;不断优化数据库的整体性能,包括引入新的存储方案、硬件优化、文件系统优化、数据库优化、SQL优化等。在保证成本不增加或不增加的情况下,数据库可以支持更多的业务请求小幅增加。
6.自动化系统建设
设计开发数据库自动化运维系统,包括数据库部署、自动扩容、分库分表、权限管理、备份与恢复、SQL审计与上线、故障转移等功能。
7.运维研发
运维研发负责资产管理、监控系统、运维平台、数据权限管理系统等通用运维平台的设计开发。为运维或研发人员提供各种API,封装更高级别的自动化运维系统。具体工作职责如下。
8.运维平台
记录和管理服务及其关联,协助运维人员自动化处理日常运维操作,包括机器管理、重启、更名、初始化、域名管理、流量切换、故障预案执行等。
9.监控系统
负责监控系统的设计与开发,完成公司服务器及各类网络设备资源指标、在线业务运行指标等的采集、告警、存储、分析、展示和数据挖掘,不断提高时效性和告警准确 灵活智能,促进公司服务器资源的合理配置。
10.自动化部署系统
参与部署自动化系统的开发,负责自动化部署系统所需的基础数据和信息,负责权限管理、API开发、Web端开发。结合云计算,我们开发并提供PaaS相关的高可用平台,进一步提升服务部署速度和用户体验,提高资源利用率。
运维安全
运维安全负责网络、系统和业务的安全加固,定期进行安全扫描、渗透测试、安全工具和系统的研发、安全事件的应急处理。具体工作职责如下。
1.安全系统建立
根据公司内部的具体流程,制定切实有效的安全体系。
2.安全培训
定期对员工进行有针对性的安全培训和考核,在全公司建立安全责任人制度。
3.风险评估
通过黑白盒测试检查机制,定期生成物理网络、服务器、业务应用、用户数据等整体风险评估结果。
4.安全建设
根据风险评估结果,加强最薄弱环节,包括设计安全防线、部署安全设备、及时更新补丁、防病毒、自动扫描源代码、咨询业务产品安全等。为了降低可能泄露的数据的价值,通过加密、匿名化、混淆甚至定期删除等技术手段和流程来达到目的。
5.安全合规
为了满足支付许可等合规要求,安全团队负责安全合规的对外接口。
6.应急响应
建立安全报警系统,通过安全中心收集第三方发现的安全问题,组织各部门对发现的安全问题进行修复,评估影响,事后追查安全原因。
运维工作开发流程
前期运维团队主要进行数据中心建设、基础网络建设、服务器采购和服务器安装交付工作,人员较少。它很少涉及在线服务的更改、监控和管理。
这时候运维团队更多的扮演着基础设施的角色,提供一个简单可用的网络环境和系统环境。
随着业务产品的逐渐成熟,对服务质量提出了更高的要求。此时运维团队也会承担一些服务器监控工作,同时也会负责LVS、Nginx等4/7层与业务逻辑无关的运维工作。
这时候服务变更更多的是手动操作,或者有一些简单的批处理脚本。监控的重点更多是服务器状态和资源使用情况,对服务应用状态的监控很少,更多的监控使用Cacti等各种开源系统。
由于业务规模和复杂性的不断增加,运维团队将逐渐划分为应用运维和系统运维。应用运维开始接手线上业务,逐步开展服务监控整理、数据备份和服务变更等工作。
随着服务的深入,应用运维工程师有能力开始对服务进行一些简单的优化。同时,为了应对每天大量的服务变更,我们也开始编写各种运维工具,可以方便地批量变更某些服务。
随着业务规模的扩大,由于容量规划不足或抗风险能力弱导致的基础设施故障越来越多,迫使运维人员开始将更多的精力投入到多数据中心的容灾和计划管理上。方向。
业务规模达到一定程度后,开源监控系统在性能和功能上已经无法满足业务需求;大量的服务变更和复杂的服务关系,过去依赖人工记录和工具更换,效率或准确性均不高。两者都不能满足业务需求。
安全方面也发生了大大小小的各种事件,迫使我们将更多的精力投入到安全防御中。运维团队逐渐形成了上述5大类岗位,每一类都需要专门人才。
此时系统运维更侧重于基础设施建设和运维,提供稳定高效的网络环境,将服务器等资源交付给应用运维工程师。应用运维更关注服务运行状态和效率。
数据库运维属于应用运维工作的精细化,更侧重于数据库领域的自动化、性能优化和安全防御。运维研发和运维保障提供各种平台和工具,进一步提高运维工程师的工作效率it运维,让业务服务运行更加稳定、高效、安全。
我们将运维开发过程分为4个阶段:
人工管理阶段:业务流量不大,服务器数量比较少,系统复杂度不高。对于日常的业务管理操作,大家更有可能一一登录服务器进行手动操作。他们每个人都在以自己的方式战斗。每个人都有自己的操作方法,缺乏必要的操作标准和流程机制。例如,业务目录环境都是不同的。各种各样的。
工具批量操作阶段:随着服务器规模和系统复杂度的增加,全手工操作模式已经不能满足业务快速发展的需要。因此,运维人员逐渐开始使用批量操作工具,针对不同的操作类型出现了不同的脚本程序。
但是每个团队都有自己的工具it运维,每次运营需求发生变化时都需要对其进行调整。这主要是由于环境和操作规范不足,导致可编程处理能力较弱。至此,虽然效率有了一定的提升,但很快又遇到了瓶颈。
操作的质量并没有太大的提升,甚至可能由于批量执行而导致更大规模的问题。我们开始建立大量的流程规范,比如审核机制,先用服务器上线观察10分钟再继续后续操作,升级完成后至少观察20分钟。
这些主要靠人来监督和落实,但在实际过程中,往往落实不到位,降低了工作效率。
平台管理阶段:此阶段对运维效率和误操作率有较高要求。我们决定开始建设运维平台,通过平台承载标准和流程,从而解放人力,提高质量。
这时服务的变更动作被抽象出来,形成了操作方法、服务目录环境、服务操作方式的统一标准。比如程序的启停界面必须包括启动、停止、过载等。运行过程受平台约束,比如上面提到的在线服务器观察10分钟。
在平台中强制设置暂停检查点。第一台服务器运行完成后,运维人员需要填写相应的检查项,然后才能继续后续的部署动作。
系统自调度阶段:规模更大的服务数量,更复杂的服务关联,各种运维平台的建立,原来将批量操作转化为平台操作的方式已经不适用,需要改进服务变化。一层抽象。
每台服务器被抽象成一个容器,调度系统根据资源使用情况,将服务调度部署到合适的服务器上,并自动完成与周边运维系统的联动,如监控系统、日志系统、备份系统等。
通过自调度系统,可以根据业务运行动态扩展容量,自动处理常见业务故障。运维人员的工作也将推进到产品设计阶段,协助研发人员进行服务改造,接入自调度系统。
在运维的整个开发过程中,我们希望所有的工作都实现自动化,减少人的重复性工作,降低知识转移的成本,让我们的运维交付更高效、更安全,让产品运行起来更稳定。对于故障的处理,也希望后处理变成早期检测,人工处理变成系统自动容灾。
福利
圈子搭建,学习资料获取【ITIL/数字化转型/IT规划各种文档解决方案报告】,欢迎加入知识星球(扫描下方二维码)~~~