为什么我需要CI / CD,以及如何学习如何配置它?





浏览CI / CD对基础结构工程师和开发人员都非常有用。首席DevSecOps负责人Konstantin Bryukhanov解释了这种方法的价值,以及学生如何在在线CI / CD课程中学习定制其方法。



你好!我将从告诉您有关使用CI / CD的含义开始。我可以列举5个原因:



1.由于重复使用代码和快速部署项目而节省了时间



已经描述了用于交付和部署代码的某种管道,您可以随时重用它。例如,您有5个Django项目,并且您已经在其中一个项目中描述了一切应该如何展开和工作。只需稍加重新配置,即可通过自动化其他Django项目来进行和复制这些开发。



2.从部署中获得预期的结果



预期的结果意味着,如果您曾经以代码的形式描述了基础架构或某个过程,则意味着每次执行一些自动部署过程时,它们都是相同的。您总是知道最终会得到什么。



CI / CD可以防止您采用今天的一种方式进行部署,而明天某人为自己进行了一些更正,您来了,但是一切都不起作用,您需要找出原因。您有机会向企业保证流程将完全导致您调节的结果。



3.项目独立于环境



请记住,将代码部署到服务器时经常发生的情况是,什么都不会启动,但是开发人员会说一切对他都有效。而且您必须花费时间才能发现实际上他改变了某种成瘾,例如,他对此保持沉默。您必须进行逆向工程并找出情况。



在CI / CD中,服务正常运行所需的一切都已随附。也就是说,您将代码,数据库,依赖项放入容器中,并将其提供给服务器。一切都融合在一起。无论您将容器转移到哪里,它都可以使用。您不必浪费时间来设置环境。



4.基础设施不变,易于迁移



不变性意味着基础架构始终处于相同状态。您已经部署了启动所有必要进程的服务器,并且对该服务器的任何更改都不会反映在该服务器上。如果重新启动该服务器并重新运行服务器部署过程,它将返回到其原始位置。无法对服务器基础结构进行任何更改并将其写入。不可能以任何方式伤害他。



迁移的简便性意味着您只需描述一次即可。例如,当您需要从一个数据中心部署到另一个数据中心时,您只需更改部署的端点,然后轻松移动即可部署相同的代码,而无需进行任何其他更改。



5.“基础设施即代码”方法的可能性



这意味着用于代码的所有编程模式和方法都适用于基础架构。



最重要的是存在完整的版本控制,这是在代码中完成的,而不是在服务器中完成的。这使您可以在必要时回滚到基础结构的先前版本。同样重要的机会来测试基础结构,即对服务器进行测试部署,对其进行配置,以使其不影响其余服务器。



总结:什么是CI / CD?



该概念可缩短上市时间,而不会失去非功能性需求:可伸缩性,容错性,文档等。它由两部分组成:



  • CI(持续集成)使您可以快速将代码更改集成到代码的工作版本中。确保新代码进入了最后一个稳定的代码。
  • CD(连续交付/部署)不仅允许将功能集成到代码的工作版本中,而且还可以将新的代码工作版本尽快推向市场。根据项目的任务,这可以自动发生,也可以由我们自己使用优化的脚本发送代码。


从这里很明显,仅仅研究构建CI / CD的Gitlab CI,Doker,Ansible,terraform等技术是不够的。因此,在课程中,我们特别注意练习。设计工作是培训的最后部分,您必须在其中为所选的任何开源项目实施CI / CD流程。学生的行动顺序如下:



  • CI/CD Workflow, Gitlab CI. : , , .. .
  • , , . , . , Django. Java ..
  • CI/CD, , CI. , , . , .
  • : terraform-, Ansible-, , Doker-, , .
  • pipeline, .
  • pipeline , , .


最终工作的目标是获得业务可接受的完整解决方案,可以将其添加到产品组合中并在面试中进行演示。实际上,如果您来一家公司并说您已经从头开始为三个不同的项目开发了通用解决方案,那么这对于获得职位很重要。



课程将于8月27日开始,但是您可以在开始后的两周内加入该小组。本课程是为具有开发和操作经验的专业人员设计的,要进行培训,您需要通过入学考试我正在等待所有决定为自己的项目和职业发展掌握这项有用技术的人。在OTUS见!



All Articles