论大数据服务化发展史

引言

一直想写一篇服务化相关的文章,那就别犹豫了现在就开始吧

正文

作为大数据基础架构工程师,业界也笑称“运维Boy”,日常工作就是在各个机器上部署以及维护服务,例如部署Hadoop、Kafka、Pulsar这些等等,用于给公司业务提供数据导入、存储、分析服务。这些事情在经历了十多年已经演变出以下几个阶段,今天就以唠嗑的形式进行展开说说
在这里插入图片描述

单一指令阶段

这是最原始的阶段,在机器/操作系统上的所有事情都要由大数据SRE通过一条条执行进行操作,举个简单的例子。当公司需要你新搭建数仓时,也就相当于要搭建以下三层

  • 存储层:搭建Hadoop、Hive、HBase集群等,这是用于将所有公司数据包括用户数据的存储
  • 导入层:搭建FlinkCDC、Flume、Kafka/Pulsar等数据导入服务,这是用于将数据导入到存储层
  • 分析层:搭建Doris、ClickHouse、Presto、SpringBoot等服务,这是用于将存储层的数据按照预期的想法进行计算出最终可直接用于分析的结果,例如庞大的公司昨天赚了多少钱?分别是各个城市赚了多少?相比上个月多了多少等等

换算到真正要做的事情,那大致流程就是,先申请机器(物理机或者云服务)、初始化环境例如搭建SSH等等,然后下载各个组件的安装包上传到对应的机器,针对对应的组件进行配置修改以及各个组件启动的前置动作,最后再根据具体的启动指令来挨个启动机器等等。如果机器只有几台,你不会觉得什么,但是如果有三四十台的时候,你会觉得手软以及抱怨。大致抱怨以下几点

  • 工作量大:要靠人工登陆每台机器重复执行那么多的步骤
  • 容易出错:这类动作重复多次容易出现人工操作失误导致影响
  • 体验差:这类事情做多了对于SRE来说是煎熬,并不会有太多技术上的成长,最后沦为只会执行这几个指令的“工具人”

脚本化阶段

人类历史发展本质上就是对资源的利用,为了更合理的利用资源因此衍生出了各种革命,例如第一次工业革命通过蒸汽替代人力,第二次工业革命通过各种能源燃料更大幅代替人力,第三次也就是最近几十年的互联网革命,本质上也是省资源避免大量的重复劳动。

上面这段话想表达的是, 互联网行业可以说90%以上的重复劳动都是没啥意义的,就相当于在一辆豪华的汽车🚗内是有人在里面蹬三轮,这不是很滑稽吗。因此如果你发现自己的工作中还存在大量 单一指令阶段的事情,那么务必要想办法进行脚本化。脚本本质上就是一本操作指南,给“操作系统”看的,举个例子如果你是一个果园园主,你雇了30个人进行水果采摘,你肯定不会去给每一个人讲解如何识别水果、水果具体的采摘的流程是怎么样子的,要用手托住果子在用剪刀轻轻减哪个部位之类的话。因为这样不仅耽误大量你的时间,并且每年水果成熟时你都要重复一遍,因此更高效的方式是花上一天时间写一本“水果采摘指南”,后续的每一个采摘的人直接看下指南即可知道该怎么做,这个指南就是脚本。

那么工作中也是一样,可以将下载组件包、解压包、更改配置、服务启动/重启等操作直接封装成脚本,然后将可能会变的东西作为参数传进来,这样的话无论是针对多少台机器进行操作,你只需要在这些机器上执行一下脚本即可。在这个基础上还能做二次优化,就是在所有机器配置SSH后,你只需要在执行脚本时传入要做变更机器的标识例如IP,执行的机器就会自动将这些“逻辑”分发到各个机器上进行执行,这样的操作方式是不是更加舒服?或者说这是不是才是一个相对成熟的流程?

那么此时大家觉得这个流程是否还存在问题?可以思考🤔一会再继续往下看。其实也很简单,就是对开发人员的专业能力是比较高的,换成是上面的例子来解释就是,果园园主不想花时间去学习写“水果采摘指南”,或者说所有果园园主单独写指南从上帝视角看本质上就是资源的浪费,要怎么解决这个问题呢。也不复杂,直接让上帝提供几份“水果采摘指南”,各个果园园主只需要选择适合自己的直接用岂不美哉?那么就引出了用户界面操作阶段

用户界面操作阶段

在读这篇文章的你相信对网站操作也不陌生了,例如咱们不需要知道网络底层是怎么操作,代码是怎么编写的,就能完成多人跨网络、跨时空的沟通,这些本质上要归功于用户界面操作阶段, 因为这些东西已经包装成了几个按钮。大数据SRE的工作内容其实也是可以作成几个按钮来大幅提升效率的,例如要在某些服务上搭建数仓,那么只需要在Web页面上勾选要部署服务的机器标识例如IP,然后选择想要安装的服务,然后点击确定即可完成安装,然后安装完后在Web页面就有这个服务的专门管理页面,例如服务启动、配置更改、使用情况监控等等,是不是一下子觉得高级了起来?

更重要的是,你发现甚至你都不用掌握过多的SRE的知识也能完成这份工作?并且即便后续在更大的场景例如要在几百台、几千台机器进行部署维护你也不怕了?这就是互联网的魅力,所以说互联网革命也是人类历史上对资源利用的一大进步,如果咱们深处互联网时代,甚至从事互联网工作,而不具备互联网思维,那岂不是一种倒退吗或者形象点就是一个远古人生活在21世纪还在钻木取火,这就挺奇怪的。

在这个阶段是否还有能改进的地方,接下来是我的设想或者是YY时间也就是 大模型+AIOPS阶段

大模型+AIOPS阶段

最近几年随着大模型的爆发,有不少企业以及个人已经用它来提升和改进自己的工作效率。那么以后是否还有这样的一种模式,就是我们只要跟机器人,或者说是一位“虚拟同事”发送 给我搭建一套数仓指令是否就可以了?它会自动接续这条自然语言的语意,咱们进行各个流程的操作,在一些关键流程我们人类只需要进行审批确认没问题即可,剩下的事情交给机器去做就够了。

在这个基础上,运维人员也不用天天盯着监控告警了,我们可以将历史发生过的事故数据以及专业知识喂人工智能,并训练它针对具体事情该做出怎样的决策,举个简单的例子比如某台机器的CPU过高,那么自动排查问题并进行修复,最后再将排查的结果以及修复的流程发给人类即可,这岂不美哉?而人类过多的做这些事情本质上还是一种资源的浪费,因为存在过多过多重复劳动、过多没有太多价值的事情,如果一个人的一辈子都在做这种事情,那本质上我们还是几万年前那个吭哧吭哧钻木头🪵的原始人,一切的一切都从来没有变过。

总结

以上是我对大数据服务化粗糙的认知,输出出来是希望能引发一些思考🤔,当然写的过程中也引发了我自己的不少思考。这个过程中虽然存在一点批判,但绝不是针对具体的个人,而是针对目前常见的一些流程设计,单纯觉得有些设计可以变得更“美”一些。如果对服务化感兴趣的伙伴可以去针对性的学习专业的知识来改善工作内容,本篇文章仅仅是唠嗑,存在很多瑕疵,但我始终相信,多人沟通讨论可以构建设计一个更加完美的设计,因此如果能引发其他人的共鸣或者不同想法💡其实都是好事。

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

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

相关文章

InternLM2-lesson2笔记

书生浦语大模型趣味 Demo 视频连接:https://www.bilibili.com/video/BV1AH4y1H78d/?vd_source902e3124d4683c41b103f1d1322401fa 目录 书生浦语大模型趣味 Demo课程总览SIG项目Demo部署的一般流程存在的问题总结 课程总览 InternLM2-chat-1.8B部署八戒-chat-1.8B…

【css】文本过长溢出一行不换行普通css以及antd实现

.text-box { white-space: nowrap; /* 防止文字换行 */ overflow: hidden; /* 隐藏超出div的内容 */ text-overflow: ellipsis; /* 当内容超出时,显示省略号 */ max-width: calc(100% - 80px); /* 假设按钮宽度为80px,则设置div的最大宽度为容器宽度…

【华为OD机试】根据IP查找城市(贪心算法—JavaPythonC++JS实现)

本文收录于专栏:算法之翼 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目二.解题思路三.题解代码Python题解代码JAVA题解代码C/C++题解代码JS题解代码四.代码讲解(Ja…

Nginx配置使用笔记

Nginx配置使用笔记 前言 官网下载压缩包https://nginx.org/ 解压完成后当前目录cmd输入nginx指令启动 访问http://localhost:80确认启动成功 1.部署前端项目 部署前端项目到路径E:\Workspaces\Vscode\app-web 2.0配置nginx.conf文件 在nginx安装的conf目录下新建一个文件夹l…

Mysql索引总结(1)

文章目录 InnoDB索引与MyISAM索引实现的区别是什么?一个表中如果没有创建索引,那么还会创建B树吗?B树索引实现原理(数据结构) InnoDB索引与MyISAM索引实现的区别是什么? MyISAM的索引方式都是非聚簇的&…

07-app端文章搜索

app端文章搜索 1) 今日内容介绍 1.1)App端搜索-效果图 1.2)今日内容 文章搜索 ElasticSearch环境搭建 索引库创建 文章搜索多条件复合查询 索引数据同步 搜索历史记录 Mongodb环境搭建 异步保存搜索历史 查看搜索历史列表 删除搜索历史 联想词查询 联想词的来源 联…

elasticSearch原理浅尝

终于等到你 马上就要放弃 开个玩笑 ,进入正题 on fire 基础的咱不说了,一搜一麻袋 读 全文检索: 协调节点广播查询请求到相关分片 并 将其响应 整合 全局排序 返回结果集合 带路由:具体文档 shard hash(document_id) % (…

redis进阶入门主从复制与哨兵集群

一、主从复制 1.1背景 一般来说,要将 Redis用于工程项目中,只使用一台 Redist是万万不能的,原因如下: 从结构上,单个 Redist服务器会发生单点故障,井且一台服务器需要处理所有的请求负載,压力…

HTML基础知识详解(上)(如何想知道html的全部基础知识点,那么只看这一篇就足够了!)

前言:在学习前端基础时,必不可少的就是三大件(html、css、javascript ),而HTML(超文本标记语言——HyperText Markup Language)是构成 Web 世界的一砖一瓦,它定义了网页内容的含义和…

P1570 KC 喝咖啡

P1570 KC 喝咖啡 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 让求 ∑ v i ∑ c i \frac { \sum{ v_i}} { \sum{c_i}} ∑ci​∑vi​​的最大值,假设值为 a n s ans ans,则 a n s ∑ v i ∑ c i ans \frac {\sum{v_i}} {\sum{c_i}} ans∑ci​∑vi​…

物联网实战--驱动篇之(一)EEPROM存储器(AT24C64)

目录 一、驱动概述 二、AT24C64简介 三、驱动编写 四、驱动应用 一、驱动概述 这是驱动篇的第一篇,所以先说明下驱动篇的作用和书写计划。之前的净化器项目已有提及,向ESP8266、SHT30这些都属于驱动设备,主芯片STM32是核心,相…

C++从入门到精通——范围for的使用

范围for的使用 前言一、(引言)python中for循环的使用二、C中的范围forC语言中的for循环C中的范围for的语法不使用范围for的正常写法范围for的写法正常范围forauto自动推导范围for 三、范围for的使用条件for循环迭代的范围必须是确定的迭代的对象要实现和…

第五节 LLava模型数据处理源码解读(input_ids/labels/attention_mask/image,上篇)

文章目录 前言一、torch.nn.utils.rnn.pad_sequence与torch.ne函数1、torch.nn.utils.rnn.pad_sequence函数功能解读1、函数原理2、demo示列3、demo结果对比2、torch.ne函数介绍二、图像与语言加载1、语言处理tokenizer的来源2、图像处理process的来源3、数据加工方法三、数据加…

redis 数据库的安装及使用方法

目录 一 关系数据库与非关系型数据库 (一)关系型数据库 1,关系型数据库是什么 2,主流的关系型数据库有哪些 3,关系型数据库注意事项 (二)非关系型数据库 1,非关系型数据库是…

vue-element-template 设置权限管理配置文件 \ vue用户权限管理

最近使用vue-element-template模板做系统时,需要实现用户权限管理,通过后端传来的roles字段来判断不同用户的身份,不同用户显示不同的侧边栏,下面是配置方法: 0.需要配置的文件有: src/routersrc/store/mo…

模拟---算法

1、定义 仅仅使用较简单的算法和数据结构的题目。模拟顾名思义,按照题目的要求,一步步写出代码。 特点:模拟题目通常是具有码量大、操作多、思路繁复的特点。 2、步骤 读题,读懂题目的意思,要知道题目想做什么建模,利用什么样的数据结构来实现代码实现,写出代码框架调…

maven上传pom和jar文件到远程仓库

上传.pom文件 例如只想要上传 Spring Cloud Dependencies 的 .pom 文件到 Maven 远程仓库,可以执行如下命令 mvn deploy:deploy-file -Durlrepository-url -DrepositoryIdrepository-id -Dfilepath-to-pom-file -DpomFilepath-to-pom-file其中,需要…

day04-MQ

1.初识MQ 1.1.同步和异步通讯 微服务间通讯有同步和异步两种方式: 同步通讯:就像打电话,需要实时响应。异步通讯:就像发邮件,不需要马上回复。 两种方式各有优劣,打电话可以立即得到响应,但是你…

LeNet卷积神经网络

文章目录 简介conv2d网络层的结构 简介 它是最早发布的卷积神经网络之一 conv2d 这个卷积成的参数先进行介绍一下: self.conv1 nn.Conv2d(in_channels3, out_channels10, kernel_size3, stride1, padding1)先看一下in_channels 输入的通道数,out_cha…

蓝桥杯备考随手记: practise06

问题描述: 一个字符串的非空子串是指字符串中长度至少为1 的连续的一段字符组成的串。 例如,字符串aaab 有非空子串a, b, aa, ab, aaa, aab, aaab,一共7 个。 注意在计算时,只算本质不同的串的个数。 请问,字符串01001100010100…