Day 1 : 前言与DevOps

前言

大家好,我是Lufor,第一次参加铁人赛。这是我的主要Blog网址: https://lufor129.medium.com/ 最近刚结束完实习,但是紧接而来的毕业季却丝毫没有让人喘息的机会 (论文ㄚ~~)。

纵使如此,我也希望能够将在这两个月暑假内学习到的东西纪录下来,我对DevOps也是一个新手,一边学习一边用IT铁人帮作为笔记本纪录下来。如果有错误或是不清楚的地方,欢迎大家提供宝贵的意见。

这次的主题预计会规画以下几点:

  • Git 与 多人合作
  • Docker 操作
  • Docker-compose
  • Portainer
  • ELK的运用
  • Jenkins
  • Mocha、Jmeter、Selenium
  • Github action
  • Kubernate
  • 上云 Azure (要是有时间)

DevOps与CI/CD

传统进行开发如瀑布开发模式分成四大部分:

  1. 需求 (Biz)
  2. 开发 (Dev)
  3. 测试 (Test)
  4. 部属与维运 (Operations)

https://ithelp.ithome.com.tw/upload/images/20210901/20119044ssjHiy5oRl.png

老板/User要求开发团队进行开发,开发完成後要进行测试,测试完成後交由维运团队上版,最终使用者可以看到软件的更新与变化。往往User的一句话或是老板的心情一个不好,需求变更使又得进入耗时又费力的开发周期。

为了因应需求快速变动的开发现代环境,因此有了Agile开发流程,建立客户沟通畅通的管道,User提出的需求快速修改出成果展现给客户,并尽快确立好需求。
但是传统Dev团队针对需求的快速开发後,时程依旧会卡死在测试与上版,此时开发团队就会感慨,"ಠ益ಠ 要是有当我开发完成後能自动跑完後面的流程明天开会自动交付到客户手上的世界该有多好呢?"

於是有了CI/CD的概念提出

  • CI: Continuous Integration 针对多人开发整合进行测试(test)与建置(build)
  • CD: Continuous Deployment 自动将测试与建置好的系统部属上机器并监控

https://ithelp.ithome.com.tw/upload/images/20211003/20119044AfUib9NOpO.png

如上图,我们从规划架构开始(PLAN)、写完code (CODE)、Merge上Dev branch并自动启用Build(Build)、同时也跑压力测试与单元测试 (TEST)、一切OK後上到Production机器 (Deploy)、上线後的监控(Monitor)。

DevOps的核心观念就是,减少开发工程师在上版所花费的繁琐步骤,用文件化、规范化的方式帮助工程师进行进行自动化的流程部属,使得开发人员可以专注在开发的世界上而不需要理会之後的繁琐工作。

接着就让我们一步一步地来,进入DevOps的世界吧!


<<:  从 JavaScript 角度学 Python(2) - 历史

>>:  Day 1. 前言

增强关联式资料库的参照完整性(enforce the referential integrity of the relational database)

.外键(Foreign key)强制引用完整性。 .主键(Primary key)可增强实体的完整性...

python开启ansys软件问题 (2147221164, '类别未登录')

问题描述 重灌了几次ansys,又灌了其他软件之後,突然某一天发现用 oAnsoftApp = cl...

【第一天 - CTF介绍】

CTF 全名 Capture The Flag,并且分为下列几类的解题方式 解谜式(Jeopard...

[Day12] - 利用 Button 范例 - 解说直接修改 Dom 与 data-binding 的差异

在 React 跟 Vue 中我们可以较为轻松的利用资料 来做 render 对应的话画面生出来 不...

[13th][Day14] map

移除元素 如果要从切片中移除元素,下面是一个比较简单粗暴的写法 slice := []int{1, ...