美团运维面试官没想到jenkins我用得这么溜,人直接傻掉

本文介绍了如何使用Jenkins实现代码更新后自动构建,涉及设置webhook、配置GitLab集成、以及ELK(Elasticsearch,Logstash,Kibana)架构在日志管理和分析中的应用。同时提到Python开发的学习资源,包括从零基础到进阶的全面体系化教程。
摘要由CSDN通过智能技术生成

那…

还有还有,我还有,您别着急问下一个,让我再加点分,拖延一下面试时间。

我们可以设置让jenkins分支代码更新后,jenkins自动构建, 在jenkins的控制面板上我们设置构建触发器,把此处的URL复制下来,放到gitlab上的webhook中使用。

在这里插入图片描述

点击高级按钮,去输入要处罚的分支及复制token

在这里插入图片描述

然后我们在gitlab上设置,在setting-integrations

把上一步在jenkins里复制的网址和token,粘贴到此处

在这里插入图片描述

粘贴完后,根据自己的需求去选择要实现的触发事件

在这里插入图片描述

当然了,在这个过程中,我们也需要在jenkins里安装一些插件,比如:

  • git parameter

  • gitlab

  • gitlab hook

通过上面的步骤,我们就完成了代码发布到gitlab,然后jenkins就去拉取。

jenkins通过制定的代码地址url,将代码拉取到jenkins的安装位置,进行编译,打包和发布

面试官:我丢,这货知道的还挺多,下面我要考考他原理了。

嗯嗯,你回答的很全面,那么你能跟我说说jenkins的工作的原理吗?**

好的面试官,我这里给你画一张图:

在这里插入图片描述

我已SVN为例,也可以改成gitlab等作为仓库代码

  • 开发人员把代码发送到gitlab

  • CI系统会为每个项目创建一个单独的工作空间,当预设或者请求一次新的构建的时候,他就将代码仓库的源码存入对应的工作区

  • CI系统会在对应的工作区内执行构建过程,build,这个构件是根据事先设置好的脚本进行bulid,这个脚本可以做很多事情,比如编译,测试,生成测试报告等等。

  • 构建完成后,CI系统会在一个新的构建中执行一套定义好的测试,完成后触发通知给相应的当事人。

  • 如果构建成功,这个构件就会被打包转移到一个部署目标,或者存储为软件仓库里的一个新版本。

  • CI会根据请求发型相应操作,诸如即时构建、生成报告,或者检索一些构建好的构件。

elk你们用过吗,能不能讲一下你的理解?

用过的面试官

ELK由三部分组成:

  • 数据的采集,分析,过滤日志: logstash

  • 数据的存储,分析,搜集: elasticsearch

  • 数据的展示:提供web界面,kibana

这个图是一个数据分析的架构图,涉及到kafka做为boker使用

在这里插入图片描述

简单的说:位于各个节点上的Logstash Agent先将数据/日志传递给Kafka(或者Redis),并将队列中消息或数据间接传递给Logstash,Logstash过滤、分析后将数据传递给Elasticsearch存储。最后由Kibana将日志和数据呈现给用户。

logstash工作原理你能说一下吗?

好的,好的,好的,别急面试官,听过慢慢吹,额慢慢给你说:

Logstash事件处理有三个阶段:inputs → filters → outputs,接收,处理,转发日志

input:输入数据到logstash

在logstash里有三个部分,一个是shipper,用来收集日志数据和监控日志数据的变化,及时将日志最新的内容收集起来。

另一个是borker: 相当于日志的hub,用来暂时存储shipper收集起来的日志信息。

indexer: 从borker中读取文本,经过加工,过滤,输出到指定的介质。

我们logstash端都是部署在被采集端,当然后期我们会用filebeat来代替, 安装好之后,logstash的三个组件,shipper负责检测日志变化并收集,然后发送给boker,进行存储,然后传送给indexer

在indexer这个地方进行数据清洗,分析和过滤,然后作为kafka的生产者传送给kafka,这个传送过程呢,是这样的。

首先producer先从zookeeper的brokers的state节点找到该partinon的leader,然后

  • producer将消息发送给leader

  • leader将消息写入本地log

  • followers 从leader pull消息,写入本地log后给leader发送ack

  • leader 收到所有的ISR中replica的ASK之后,增加HW(就是完成的offset,)并向porducer发送ack

消费者就是elasticsearch,去拉取tiopic的消息。

kafka同步到es的方式有四种:

1) logstash_input_kafka插件,但是这个不太好用

2) spark stream 同步,太庞大

3) kafka connector同步

4) 自写程序去读取解析写入

kafka connet 可以将完整的数据库注入到kafak topic中

KafkaConnect有两个核心概念:Source和Sink。 Source负责导入数据到Kafka,Sink负责从Kafka导出数据,它们都被称为Connector

kafkaConnect通过Jest实现Kafka对接Elasticsearch。

如果用logstash去将Kafka中的数据写入到ElasticSearch

input需要logstash-input-kafka插件,该插件logstash默认自带。

面试官: 好的,你不仅把我问的都回答了,我不知道的你也说了,这样你还有什么想问我的吗?

嗯,有的面试官,咱们招聘的这个岗位是AB复制还是新增,未来的这个岗位的规划是怎样的?

面试官:巴拉巴拉小魔仙巴拉巴拉

好的,我大体了解了,也对这个岗位比较感兴趣,期待能 有机会共事,感谢。那我先回去了,有消息第一时间通知我哈。

面试官: 我送送你

面试官给我送到了地铁刷卡口,看着我刷卡进站,他才离去。

害,我只能在面试官走后又刷卡出来,因为下一家面试就在隔壁楼上

无奈。

后记
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)

g_convert/9f49b566129f47b8a67243c1008edf79.png)

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值