前言
固然运维这个职能范畴对于绝大多数人来说认知模糊,特别是在分布式存储领域,“运维”常常和“机房”“IDC”等名词相伴,导致很多异业者对于运维的了解停留在物理层面,以搬运机器、上下架服务器、管理网电等为标杆,好似网管般维护机器运行。事实上运维工程师从工作方式上分为多类,如:运维工程师、运维开发工程师、运维平台研发工程师、数据库工程师、数据库研发工程师等,体现运维能力更多于针对业务的定制化原生工具开发的方面。
运维工程师负责维护并确保整个服务的高可用性,同时不断优化系统架构提升部署效率、优化资源利用率提高整体的ROI。
伴随着Filecoin的主网临近,“运维”重要性的共识在业界基本达成一致,随着行业布道信息量和内容程度的升级,越来越多的投资参与者也步入理性分析,无论是从Filecoin项目的阶段性动态,亦或是对挖矿服务商的甄选,在主网上线的黎明前夕,现阶段最重要的运维工程师们,确定准备好了么?
初识运维
1.1运维是什么
运维普遍是指互联网运维,是和研发、测试、系统管理并头的4大技术部门。
细分来说运维的技术方向包含服务监控技术、服务故障管理、服务容量管理、服务性能优化、服务全局流量调度、服务任务调度、服务安全保障、数据传输技术、服务自动发布部署、服务集群管理、服务成本优化、数据库管理、平台化的开发、分布式存储平台的开发优化等等,分布式是其中很明确的一个技术要领。
同时在运维工作中,运维人员要照顾到Web服务器、监控、自动部署、配置管理、负载均衡、传输工具、备份工具、数据库、分布式平台、分布式数据库、容器、虚拟化、安全、问题追查等大而全、小而细的事项。
运维工程师通过软件或命令行实时与第三方系统做数据同步,实现可视化监控平台与各系统的无缝对接,确保系统数据的精准与稳定,及时处理告警信息,提高动环(动力环境)监控管理效率。
动环监控自2008年出现至今已有十二年的时间,主要包括以下模块:
- 配电系统:UPS及直流电源、自备发电机、配电柜、防雷检测等。
- 环境系统:空调、温湿度监测、漏水监测、气体监测等。
- 消防系统:烟感、温感、早期预警系统、其它消防设备等。
- 保安系统:图像监控、门禁监控、红外探测、玻璃破碎探测等。
- IT网管监控:网络设备、PC服务器、操作系统、数据库及应用等。
除此之外,运维工程师们还需要关注:
- 联动控制:电子开关、联动录像、数据存储、运动操控等。
- 事件记录:操作记录、状态记录、异常记录、确认记录等。
- 异常报警:声光报警、语音广播、电话报警、短信报警、邮件通知等。
运维人的一天从上班打卡开始到下班打卡结束,忙忙碌碌周而复始,“007”的工作模式屡见不鲜。
1.2运维发展史
运维要做的是将系统运行存在的变量做到可控,但运维环境的异构和复杂化导致日常运维工作需要付出的人力、时间成本越来越高。
从初级运维发展到最高新的智能化运维,主要是四个阶段的过渡:
- 脚本时代
- 工具时代
- 自动化时代
- 智能化时代
两年前,“智能化运维”开始被大家广泛关注,随着大数据分析、APM(应用性能管理)、智能异常检测、机器学习等技术的兴起和逐渐成熟,运维需求也逐渐向自动化和智能化过渡。
自动化的意义
2.1自动化的运维方式
自动化是智能化的前提。自动化的运维方式解决硬件和网络的自动管理、虚拟机的自动管理、操作系统和软件的自动化安装、配置,我们看到了很多“管理”,自动化的意义一方面是提高效率、优化成本、优化资源,更好的做一些弹性,把资源释放出来去干点别的;另一方面更是将运维结果标准化可复制。
当然,从工具化到自动化的过程并没有那么的容易,对整个行业来讲,目前更多的工作是在探寻自动化,深耕分布式存储多年和Filecoin源代码近两年的IPFS原理区作为为数不多的实现自动化运维服务的提供商,在此致敬为行业发展服务努力的技术大佬们。
说回运维,在Filecoin这个领域,标准的运维软件研发和其他相对传统的运维软件不太一样。比如说阿里从工具化到自动化这个过程中,笔者认为工具化挑战相对小,即使传统的运维人员也很容易写一些工具,比如用Python去写更多的工具体系。但是如果开发者的工具最终要变成能够到自动化这个阶段,就意味着对工具的要求会越来越高,比如说工具的质量,如果开发者写出来的工具经常有问题,规模一大就扛不住压力,这时从人性的角度来讲,开发者将会慢慢失去信任感,最后会很难完成这个过程。
当自动化运维实现监控、问题诊断、可视化等,运维人只留下一部分手工任务包括容灾切换、应急操作、应用部署和起停等,这样留下的大量精力就可以倾注于运维开发,给用户带来更好的服务体验。
2.2实现自动化的方式
一套完善的综合动环监控系统可以对分布的各个独立的动力设备、机房环境、安保监控等进行实时采集、实时监视系统和设备、安保的运行状态,记录和处理相关数据;及时侦测故障,并作必要的遥控遥调操作,适时通知驻场和远程运维处理;实现机房的少人甚至无人值守,以及电源、空调的集中监控维护管理,提高供电系统的可靠性和通信设备的安全,为机房的管理自动化甚至智能化和决策科学化提供有力的技术支持。
但目前Filecoin领域业内真正的自动化运维的落地实践占比不大,突出的、原生的定制运维系统更是少之又少,原力矿池占其一。
运维对Filecoin的重要性
3.1 DEVOPS理念
3.1.1 DevOps 的工作原理
在 DevOps 模式下,开发团队和运维团队不再“孤立”,他们会在应用程序的整个生命周期(从开发测试到部署再到运营)内相互协作,开发出一系列不限于单一职能的技能。这些团队会使用实践经验自动执行之前手动操作的缓慢流程,使用能够帮助其快速可靠地操作和发展应用程序的技术体系和工具,进一步提高团队的工作速度。
3.1.2 DevOps 的文化理念
向 DevOps 的过渡需要文化理念和心态上的转变。DevOps 的宗旨是消除两个传统上孤立的团队之间的壁垒。他们力求频繁沟通、提高效率,并改善客户服务的质量,他们能够完全掌控自己的服务,并且经常越过自己的既定角色或职能的传统工作范畴,思考最终用户的需求以及解决这些需求。
3.1.3 DevOps 实践说明
有一些重要的实践经验能够通过自动实施和简化软件开发与基础设施管理流程,帮助组织加快创新速度,这些实践经验有大部分需要通过适当的工具来完成。其中一个基本实践经验就是要频繁地进行小规模更新。
这是组织能为客户快速提供创新的有效方式。与传统发布实践中偶尔的更新相比,这种更新通常更具渐进性质。频繁的小规模更新能够降低每次部署的风险。它们可以帮助团队更快速地处理错误,因为团队能够确定引发错误的最近一次部署。虽然更新的节奏和规模可能有所不同,但使用 DevOps 模式的组织与使用传统软件部署实践的组织相比,会更频繁更新。
此外,组织还可以使用微服务架构来提升应用程序的灵活性,从而加快创新步伐。微服务架构将大型的复杂系统拆分为简单的独立项目。应用程序被拆分为许多单个组件(服务),每个服务限定到单个目的或功能,这些服务既可以与其同级服务相互独立运行,也可以与应用程序一起作为整体运行。这种架构降低了更新应用程序的协调开销,当每个服务都与掌控各项服务的敏捷小型团队一一对应时,组织就可以实现更快的发展。
但是,微服务与较高的发布频率相结合会导致部署量大幅度增加,会带来运维挑战。因此,持续集成和持续交付等 DevOps 实践经验有助于解决这些问题,让组织能够以安全可靠的方式快速交付。与基础设施即代码和配置管理一样,基础设施自动化实践经验也有助于维持计算资源的弹性和对频繁变更的适应性。此外,进行监控和记录这一实践经验可帮助工程师追踪应用程序和基础设施的性能,以便他们快速应对出现的问题。
3.2 Filecoin运维与传统运维的区别
Filecoin矿商的运维相较传统互联网运维难度呈数倍甚至数十倍提升,这主要受挖矿模式影响,比如当用整机串联并行方式参与时,难度仅围绕单一固件上的程序稳定性做工,但如果采用集群化或者分布式矿池的形式,集群间的各种请求调度和需求分钟级部署的高标准对于运维工程师来说是一大挑战。当Filecoin全网算力需求急剧提升时,集群化矿池模式的运维依然可以自如面对,而其他模式的运维就需要堆人堆资源来解决此类情况。
如果说Filecoin运维和传统运维的具体不同,这里举几个方向的例子:
- 物理层:因类似阿里云的服务商,没有标准化的服务支持,Filecoin云服务更需要注重底层架构,需要定制化的自建IDC,这远远不止硬件范畴。
- SaSS:Filecoin软件服务层也需要大量运营工具以支持数据可视化,这样运维需要将开发平台化,将工具可视化,这个过程中运维参与了大量的研发工作。
- 运维流程:传统运维因参与个体少、逻辑简单,多以Web形式访问接口,做好端口监听,反馈结果基本可控绝大多数变量,流程简单;而Filecoin流程复杂,需要维护的模块多、自动化难度高、监听数据复杂且高频,特别是惩罚机制,犹如达摩克立斯之剑,时刻告诫矿工们即使如此难度也不容出错,客户的数据存储需求服务是Filecoin第一要务。
- 准确性:运维需要物理层监控,但对于Filecoin来说,监控出块时间、出块率、算力走势、Lotus同步高度准确性等维度的重要程度不亚于物理层运行状态。在传统运维场景下,一个异常处理的要求可能在小时级,千万级用户的应用服务可能在分钟级,但Filecoin网络任何一个参数的异常都有可能对矿工造成巨额收益的损失及抵押的惩罚,易造成得不偿失的情况。
除此之外,原力区运维要针对官方的Lotus代码给予优化,考验运维的开发能力、程序运行结果的稳定性,要实现健康状态检查、故障自动重启、故障自愈等,这一切的一切为的是提升CPU使用率,从而提升算力、出块量、收益,效率提升达2-3倍。
3.3 项目发布的区别
3.3.1频率
传统互联网项目发布的频率固定、时间固定,如每周三,部署的原因多为修复BUG及功能新增,而就当前Filecoin网络状况,目前原力运维要做到的是灵活部署、随时可部署、随时更新链版本,实现在第一时间可以推倒已有集群,并重新部署一遍全流程,对于任何细节的调整要有数十倍的复查测试,实现对网络变化的快速反应,这也是实现实时最优挖矿收益的前置准备。
3.3.2颗粒度
Filecoin挖矿服务在实现数据监控可视化、运维应用状态监控可视化之外,颗粒度也是极细,比如做Sector的过程中自动化监控P1-P7状态及返回值。
当原力区运维工程师将数据化、自动化、精细化、平台化(后台)颗粒度足够精细后,海内外的自动化部署即达到分钟级执行完毕,通过后台一键管理全部服务器,并行部署新代码,自动化工具压缩部署时间,实现节省99%耗时的效率优化,这少则百兆的数据包的分钟级远程部署对行业来说是一个挑战,对Filecoin矿池技术的推进却是一个跨越。
自动化大体量运维
Filecoin大矿工测试中原定“5PB”的大矿工标准,在目前看来对行业已然不是挑战,据评估Filecoin主网在上线前3-6个月将达到1000PB,这个数据带来的是Filecoin运维工程师们提前准备的一项作业:如何大体量运维?
目前看来自动化运维是解决大规模集群运维的唯一方式,也是运维工程师面对的最大挑战。如何管理好几十万台服务器上的服务,同时保障服务的高可用性,这里需要集群复制能力,但相较传统运维项目,复制部署复杂度数十倍增长。做好24小时驻场维护保障设备上架;高频定时环动监控及日志记录保障设备运行;自动化分布式部署、分布式监控系统保障系统运行;核心网络监控,护航设备&系统&应用连通率;成熟的1保5冗余保护策略保障数据安全;攻防防护保障等等等等,这依然远远不够,运维的路很长,没有尽头……