互联网大厂的运维都在干什么?30K的总监来告诉你
2020-04-21 16:33 作者:艾锑无限 浏览量:
一周已将结束,新的一周即将来临,每到这个时候,我都在想着两件事,一件就想大家在上一周的工作中是否有收获,是否真正进入自己的人生,对自己人生负责任。还有一件是在快来临的这周里,我们又如何一起为自己人生创造更多的价值,让我们的人生体验更多的可能,领略更多的风景,让我们可以在平凡的工作与生活体验更多的激情,让我们每一个人都有信心去面对自己未来。
人生就像一场旅行,但可悲的是,我们大部分人只有在去“旅行”的时候才能真正体验到自己是“旅行”,而忽略了一天八小时,一周五天,甚至更多时候的“旅行”,大部人在这段日子里体验不到快乐,因为是交换心态,而不是用这个时间活出自己的心态,活出价值的心态,所以有些人在这个时间段活得郁闷,无趣,没有激情,甚至厌倦。
在这段日子,我也想了很多,到底艾锑无限想要创造什么样的氛围给所有的艾锑人,独行只需要勇气,而众人行更多的是需要付出,需要包容,需要信任,需要爱,就像我们的LOGO一样每一个人都互相帮助,相互支持,快乐工作,享受工作,觉得服务他人是一份荣耀,每一个人尽可能在艾锑无限这个平台上施展自己的才华及独特的生命力为他人创造机会,给自己带来价值,就像周六管理层带着部分艾锑人去“谭拓寺”之旅那份体验一样,在去的时候天还下着雨,但只要来得却没有人说放弃不去的,更多的人对这次旅行还是带着无比的美好遐想,虽然目的可能不同,我们的目标是一致的。
我发现,有些时候只要你坚定目标,心理没有杂念,完全信任,天都会帮我们,一路上雨还下的挺大,可一到寺脚下雨就停了,我们每个人在地铁里都会听到这样一句话“先有谭拓寺,后有北京城”,这句让你遐想的话,以只有你进了“谭拓寺”才真正有体验,寺院里你随边遇一颗树都有上千年的历史,大部分景观也有上几百年,想想自己的人生,有些时候真是感觉很短暂,如果不能用心去体验自己的人生,去做好自己选择的每一件事,去珍惜遇到的每一个,其实很快自己也会成为历史,在伟大,在有名也只能像林塔里去世的高僧一样,倘在杂草丛中无人问津。
人生就像一场旅行,我们要在乎的不是那个目地的,而要在乎沿途的风景及看风景的心情,我现在理解了金刚经中描给人生的那句“一切有为法,如梦幻泡影。如露亦如电,应作如是观。”真正的含义。活着真正意义就是去体验我们每个当下,爱每个当下所遇到的一切,用心做好每个当下需要做的事,不要有太多的妄想与杂念,选择用心去活,而非用脑去活,选择活出真实的自己,而非用世俗的眼光去包裹自己的心,选择成为爱,成为付出者,成为喜悦的人,而非追求他人爱自己,成为索取者,利用外界的物来取悦自己的心。
在这里与大家分享我最喜欢的一首诗,这是我们的加措活佛写的.
带着一颗明媚的心上路
我们不是圣人,
所以常走错路。
其实路没有错的,
错的只是选择。
如果,在一条走错的路上,
别人都步履蹒跚,愁眉不展,
而我们依旧笑颜如花,坦然前行。
久而久之就成了错误路上的一道风景,
亮丽了别人的眼睛也愉悦了自己的内心。
当我们的心不同了,脚下的路也就不同了,
阳光会明媚,伤痛也会远离。
以下文章由北京艾锑无限科技发展有限公司整理
互联网大厂的运维都在干什么?30K的总监来告诉你
艾锑无限科技专业:IT外包、企业外包、北京IT外包、桌面运维、弱电工程、网站开发、wifi覆盖方案,网络外包,网络管理服务,网管外包,综合布线,服务器运维服务,中小企业
it外包服务,服务器维保公司,硬件运维,网站运维服务
互联网运维工作,以服务为中心,以稳定、安全、高效为三个基本点,确保公司的互联网业务能够 7×24 小时为用户提供高质量的服务。
任何工作任何岗位,有5K的,也有30K的,运维也不例外。
互联网运维工作,以服务为中心,以稳定、安全、高效为三个基本点,确保公司的互联网业务能够 7×24 小时为用户提供高质量的服务。
运维人员对公司互联网业务所依赖的基础设施、基础服务、线上业务进行稳定性加强,进行日常巡检发现服务可能存在的隐患,对整体架构进行优化以屏蔽常见的运行故障,多数据中接入提高业务的容灾能力。
通过监控、日志分析等技术手段,及时发现和响应服务故障,减少服务中断的时间,使公司的互联网业务符合预期的可用性要求,持续稳定地为用户提供务。
在安全方面,运维人员需要关注业务运行所涉及的各个层面,确保用户能够安全、完整地访问在线业务。
从网络边界划分、ACL 管理、流量分析、DDoS 防御,到操作系统、开源软件的漏洞扫描和修补,再到应用服务的XSS、SQL注入防护;
从安全流程梳、代码白盒黑盒扫描、权限审计,到入侵行为检测、业务风险控制等。
运维人员需要保障公司提供的互联网业 运行在安全、可控的状态下,确保公司业务数据和用户隐私数据的安全,同时还需要具备抵御各种恶意攻击的能力。
在确保业务稳定、安全的前提下,还需保障业务高效的运转,公司内快速的产出。运维工作需要对业务进行各方面优化。
比如,IO 优化提升数据库性能,图片压缩降低带宽使用量等,提供的互联网业务以较小的资源投入带来最大的用户价值和体验。
同时,还需要通过各种工具平台提升内部产品发布交付的效率,提升公司内运维相关的工作效率。
工作分类运维
运维的工作方向比较多,随着业务规模的不断发展,越成熟的互联网公司,运维岗位会划分得越细。
当前很多大型的互联网公司,在初创时期只有系统运维,随着服务规模、服务质量的 要求,也逐渐进行了工作细分。
一般情况下运维团队的工作分类(见图1-1)和职责如下。
系统运维
系统运维负责IDC、网络、CDN和基础服务的建设(LVS、NTP、DNS);负责资产管理,服务器选型、交付和维修。详细的工作职责如下:
1.IDC数据中心建设
收集业务需求,预估未来数据中心的发展规模,从骨干网的分布,数据中心建筑,以及Internet接入、网络攻击防御能力、扩容能力、空间预留、外接专线能力、现场服务支撑能力等方面评估选型数据中心。负责数据中心的建设、现场维护工作。
2.网络建设
设计及规划生产网络架构,这里面包括:数据中心网络架构、传输网架构、CDN网络架构等,以及网络调优等日常运维工作。
3.LVS 负载均衡和 SNAT 建设
LVS 是整个站点架构中的流量入口,根据网络规模和业务需求,构建负载均衡集群。
完成网络与业务服务器的衔接,提供高性能、高可用的负载调度能力,以及统一的网络层防攻击能力。
SNAT .集中提供数据中心的公网访问服务,通过集群化部署,保证出网服务的高性能与高可用。
4.CDN 规划和建设
CDN 工作划分为第三方和自建两部分。
建立第三方 CDN 的选型和调度控制;根据业务发展趋势,规划CDN新节点建设布局;完善CDN业务及监控,保障CDN 系统稳定、高效运行。
分析业务加速频道的文件特性和数量,制定最优的加速策略和资源匹配;负责用户劫持等CDN日常故障排查工作。
5.服务器选型、交付和维护
负责服务器的测试选型,包含服务器整机、部件的基础性测试和业务测试,降低整机功率,提升机架部署密度等。
结合对公司业务的了解,推广新硬件、新方案减少业务的服务器投入规模。负责服务器硬件故障的诊断定位,服务器硬件监控、健康检查工具的开发和维护。
6.OS、内核选型和 OS 相关维护工作
负责整体平台的 OS 选型、定制和内核优化,以及 Patch 的更新和内部版本发布;建立基础的YUM包管理和分发中心,提供常用包版本库;跟进日常各类 OS 相关故障;针对不同的业务类型,提供定向的优化支持。
7.资产管理
记录和管理运维相关的基础物理信息,包括数据中心、网络、机柜、服务器、ACL、IP等各种资源信息,制定有效的流程,确保信息的准确性;开放API接口,为自动化运维提供数据支持。
8.基础服务建设
业务对 DNS、NTP、SYSLOG 等基础服务的依赖非常高,需要设计高可用架构避免单点,提供稳定的基础服务。
应用运维
应用运维负责线上服务的变更、服务状态监控、服务容灾和数据备份等工作,对服务进行例行排查、故障应急处理等工作。详细的工作职责如下所述。
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 层运维工作。
这个时候服务变更更多的是逐台的手工操作,或者有一些简单批量脚本的出现。监控的焦点更多的在服务器状态和资源使用情况上,对服务应用状态的监控几乎很少,监控更多的使用各种开源系统如Nagios、Cacti等。
由于业务规模和复杂度的持续增加,运维团队会逐渐划分为应用运维和系统运维两大块。应用运维开始接手线上业务,逐步开展服务监控梳理、数据备份以及服务变更的工作。
随着对服务的深入,应用运维工程师有能力开始对服务进行一些简单的优化。同时,为了应对每天大量的服务变更,我们也开始编写各类运维工具,针对某些特定的服务能够很方便的批量变更。
随着业务规模的增大,基础设施由于容量规划不足或抵御风险能力较弱导致的故障也越来越多,迫使运维人员开始将更多的精力投入到多数据中心容灾、预案管理的方向上。
业务规模达到一定程度后,开源的监控系统在性能和功能方面,已经无法满足业务需求;大量的服务变更、复杂的服务关系,以前靠人工记录、工具变更的方式不管在效率还是准确性方面也都无法满足业务需求。
在安全方面也出现了各种大大小小的事件,迫使我们投入更多的精力在安全防御上。逐渐的,运维团队形成之前提到的5个大的工作分类,每个分类都需要有专精的人才。
这个时候系统运维更专注于基础设施的建设和运维,提供稳定、高效的网络环境,交付服务器等资源给应用运维工程师。应用运维更专注于服务运行状态和效率。
数据库运维属于应用运维工作的细化,更专注于数据库领域的自动化、性能优化和安全防御。运维研发和运维安全提供各类平台、工具,进一步提升运维工程师的工作效率,使业务服务运行得更加稳定、高效和安全。
我们将运维发展过程划分为4个阶段,如图1-2所示。
图1-2运维发展过程
手工管理阶段:业务流量不大,服务器数量相对较少,系统复杂度不高。对于日常的业务管理操作,大家更多的是逐台登录服务器进行手工操作,属于各自为战,每个人都有自己的操作方式,缺少必要的操作标准、流程机制,比如业务目录环境都是各式各样的。
工具批量操作阶段:随着服务器规模、系统复杂度的增加,全人工的操作方式已经不能满足业务的快速发展需要。因此,运维人员逐渐开始使用批量化的操作工具,针对不同操作类型出现了不同的脚本程序。
但各团队都有自己的工具,每次操作需求发生变化时都需要调整工具。这主要是因为对于环境、操作的规范不够,导致可程序化处理能力较弱。此时,虽然效率提升了一部分,但很快又遇到了瓶颈。
操作的质量并没有太多的提升,甚至可能因为批量执行而导致更大规模的问题出现。我们开始建立大量的流程规范,比如复查机制,先上线一台服务器观察10分钟后再继续后面的操作,一次升级完成后至少要观察20分钟等。
这些主要还是靠人来监督和执行,但在实际过程中执行往往不到位,反而降低了工作效率。
平台管理阶段:在这个阶段,对于运维效率和误操作率有了更高的要求,我们决定开始建设运维平台,通过平台承载标准、流程,进而解放人力和提高质量。
这个时候对服务的变更动作进行了抽象,形成了操作方法、服务目录环境、服务运行方式等统一的标准,如程序的启停接口必须包括启动、停止、重载等。通过平台来约束操作流程,如上面提到的上线一台服务器观察10分钟。
在平台中强制设定暂停检查点,在第一台服务器操作完成后,需要运维人员填写相应的检查项,然后才可以继续执行后续的部署动作。
系统自调度阶段:更大规模的服务数量、更复杂的服务关联关系、各个运维平台的林立,原有的将批量操作转化成平台操作的方式已经不再适合,需要对服务变更进行更高一层的抽象。
将每一台服务器抽象成一个容器,由调度系统根据资源使用情况,将服务调度、部署到合适的服务器上,自动化完成与周边各个运维系统的联动,比如监控系统、日志系统、备份系统等。
通过自调度系统,根据服务运行情况动态伸缩容量,能够自动化处理常见的服务故障。运维人员的工作也会前置到产品设计阶段,协助研发人员改造服务使其可以接入到自调度系统中。
在整个运维的发展过程中,希望所有的工作都自动化起来,减少人的重复工作,降低知识传递的成本,使我们的运维交付更高效、更安全,使产品运行更稳定。对于故障的处理,也希望由事后处理变成提前发现,由人工处理变成系统自动容灾。