那…
还有还有,我还有,您别着急问下一个,让我再加点分,拖延一下面试时间。
我们可以设置让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开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)
g_convert/9f49b566129f47b8a67243c1008edf79.png)
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)