系统工程师主要做什么_Filecoin运维工程师在做什么?

前言

固然运维这个职能范畴对于绝大多数人来说认知模糊,特别是在分布式存储领域,“运维”常常和“机房”“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冗余保护策略保障数据安全;攻防防护保障等等等等,这依然远远不够,运维的路很长,没有尽头……

4fd11cd3211fb60763638425cb7b57d6.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/336080.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Leecode 136. 只出现一次的数字

原题链接 解法&#xff1a;异或运算 A^A0 A^0A class Solution { public:int singleNumber(vector<int>& nums) {int ret 0;for(auto p : nums) ret^p;return ret;} };

jdk 9和jdk8_了解有关JDK9紧凑弦乐的信息(视频评论Charlie Hunt)

jdk 9和jdk8JDK 9引入了一个称为紧凑字符串的新功能。 鉴于Java程序中字符串的普遍存在&#xff0c;我认为这是一个非常重要的更改&#xff0c;所有Java开发人员都需要理解。 在此视频中&#xff0c;查理亨特&#xff08;Charlie Hunt&#xff09;解释了此新功能的历史和实现。…

mysql怎么返回上一行_月球上并没有发射基地,阿波罗飞船是怎么返回地球的?...

美国上世纪六七十年代成功实施了载人登月工程&#xff0c;这一壮举震惊世界。阿波罗系列载人登月飞船和用于发射飞船的土星五号运载火箭名声大噪&#xff0c;而用于发射土星五号&#xff0c;位于卡纳维拉尔角肯尼迪航天发射中心的39号发射台也格外引人瞩目。土星五号全长110多米…

java中接口私有反方_Java 8:在接口中声明私有和受保护的方法

java中接口私有反方引入Java 8时&#xff0c;我们可以在接口中使用默认方法。 此功能的主要驱动程序是允许接口扩展&#xff0c;同时保留对旧接口版本的向后兼容性。 一个示例是在现有Collection类中引入stream()方法。 有时候&#xff0c;当我们想引入几种默认方法时&#xf…

凯立德地图导航2020年最新版车载_明明有车载导航,为什么很多人还是选择用手机导航?有5个原因...

提到导航&#xff0c;你首先会想到什么导航产品呢&#xff1f;如果是高德导航、百度导航之类的&#xff0c;那你主要用手机导航。但是如果除了高德导航和百度导航之外&#xff0c;你还能随口说出四维图新导航、凯立德导航&#xff0c;甚至是道道通导航之类的话&#xff0c;那你…

WebRTC Google的 BBR拥塞控制算法解析

正文之前,给出本文的图例: BBR的组成 bbr算法实际上非常简单,在实现上它由5部分组成: 1.即时速率的计算 计算一个即时的带宽bw,该带宽是bbr一切计算的基准,bbr将会根据当前的即时带宽以及其所处的pipe状态来计算pacing rate以及cwnd(见下文),后面我们会看到,这个即时…

javafx阴影_JavaFX技巧23:节省内存! 属性的阴影场

javafx阴影Java 8中引入的属性和属性绑定是非常有用的编程概念。 当您开发用户界面时&#xff0c;它们特别有用。 实际上&#xff0c;它们是如此有用&#xff0c;以至于开发人员成为所有事物都应该是属性而不是原始属性的想法的受害者。 不幸的是&#xff0c;他们很容易忘记诸如…

Leetcode 151. 翻转字符串里的单词

原题链接 题解思路&#xff0c;操作分解&#xff0c;先把整体翻转&#xff0c;然后使用双指针算法分割出单个单词再次进行翻转。 class Solution { public:string reverseWords(string s) {int k 0;//保存单词首字母位置for (int i 0; i < s.size(); i ) {if (s[i] )…

python斐波那契数列前20项_兔子繁殖问题带来的智商碾压:斐波那契数列趣谈

本文来自公众号&#xff1a;超级数学建模微信号 &#xff1a;supermodeling原文标题&#xff1a;斐波那契数列趣谈via 善科by BB一般认为斐波那契数列的提出是基于兔子的繁殖问题&#xff1a;如果一开始有一对兔子&#xff0c;它们每月生育一对兔子&#xff0c;小兔在出生后一个…

jboss使用_使用JBoss Cool Store的终极云零售指南

jboss使用我们一直在讨论为什么应用程序开发人员在App Dev Cloud Stack系列中不能再忽略其堆栈了。 带有JBoss Cool Store的App Dev Cloud 我们从头到尾讨论了各个层次&#xff0c;但尚未为您提供除Red Hat Container Development Kit&#xff08;CDK&#xff09;之外的任何应…

python基础论文_北大博士Python学习笔记,Python基础语法总结,一篇文章带你入门...

image.png网上现在Python学习资料有很多&#xff0c;但是很杂。很多初学Python的朋友就不知道该怎么去抉择&#xff0c;那些是自己当下所需要的。刚好朋友是北大的博士&#xff0c;在IT行业也工作八年了。就把他学习Python的笔记做了一些整理写下了本文。这份资料非常纯粹&…

C++ 11 深度学习(四)结构、权限修饰符

1.struct struct MyStruct {int a;char b; }; struct默认权限为public,其中最重要的是涉及到结构体数据对齐。 数据对齐&#xff0c;1.数据对齐是指存在处理结构体成员时&#xff0c;成员在内存中的起始地址编码必须是成员类型字节的整倍数。2.要以结构体中最深层的基本数据…

C++ 11 深度学习(五)类型转换:static_cast dynamic_cast const_cast reinterpret_cast

四种cast 通用形式&#xff1a;强制类型转换名<type>(express) 强制类型转换名&#xff0c;以上四种 &#xff1b;type:想要转成成的目标类型 &#xff1b; express&#xff0c;需要转换的目标 static_cast 内置数据类型转换&#xff0c;具有继承关系的指针和引用&am…

小程序triggerevent 传参_微信小程序——无限递归的层次列表

——上礼拜踩的坑1、关于为什么不直接操作DOM对象&#xff1f;因为微信小程序里没有document对象。2、为什么坑了这多时间&#xff1f;因为之前看了个过期的帖子&#xff0c;完美避开了解决方案。下面进入正文&#xff0c;需求是在微信小程序里构造一棵文件树。3、解决思路定义…

java ab工具_(ab)使用Java 8 FunctionalInterfaces作为本地方法

java ab工具如果您正在使用更高级的语言&#xff08;例如Scala或Ceylon&#xff0c;甚至JavaScript&#xff09;进行编程&#xff0c;则“嵌套函数”或“本地函数”是您非常常见的习惯用法。 例如&#xff0c;您将编写诸如fibonacci函数之类的东西&#xff1a; def f() {def …

C++ 11 深度学习(六)智能指针综述

以下三种智能指针均为类模板 1.shared_ptr 共享指针 &#xff0c;多个指针指向同一个对象&#xff0c;最后一个指针被销毁时&#xff0c;这个对象会被释放。 2.week_ptr 是辅助shared_ptr工作的 3.unique_ptr 是独占式指针&#xff0c;同一时间只能有一个指针能指向该对象…

python的仿真效果好吗_Python SimPy 仿真系列 (1)

本系列文章旨在介绍 SimPy 在工业仿真中的应用。在物流行业/工厂制造业/餐饮服务业存在大量急需优化的场景&#xff0c; 例如&#xff1a;如何最优化快递分拣人员的排班表以满足双十一突发的快递件量如何估算餐厅在用餐高峰的排队时长估算特定工序下&#xff0c;工厂生产所需要…

jax-rs jax-ws_您的JAX-RS API并非天生就等于:使用动态功能

jax-rs jax-ws这次&#xff0c;我们将讨论一些有关JAX-RS 2.0 API的内容&#xff0c;并涉及规范的一个非常有趣的方面&#xff1a; 动态功能及其实用性。 传统上&#xff0c;当配置和部署JAX-RS 2.0 API&#xff08;使用Application类&#xff0c;从servlet引导或通过RuntimeD…

10 NAT网络地址转换

广域网技术 上面聊的内容都是内网的一些配置&#xff0c;但内网终将要访问外网的&#xff0c;我们需要怎么处理呢&#xff1f;一般使用HDLC&#xff08;高级数据链路控制协议&#xff09;或者PPP&#xff08;点对点协议&#xff09;。 使用PPP安全接入Internet PPP&#xff0…

Leetcode 61. 旋转链表

原题链接 题解&#xff1a; 1.首先确定k的取值&#xff0c;可能超过链表长度&#xff0c;所有对 k%n 来确定 2.需要找到k前面的结点和最右位置的结点&#xff0c;可以使用双指针得到。 /*** Definition for singly-linked list.* struct ListNode {* int val;* Lis…