完成管道

每个人的爱好项目DevOps

许多团队在与基础架构和开发运营相关的任务中都有单独的角色。 一旦开发人员启动并运行他们的工具,他们几乎不需要关心如何实现CI / CD等底层结构以及原因。 但是,开发人员在进行Dev Ops任务时需要具备基本的流利程度。 了解这些基础知识可以使开发人员在加快开发生命周期和交付质量更好的代码方面更加自主。 Dev Ops的技能使整个团队可以实现更敏捷的工作方式,并使用增长黑客和分析功能。 对于业余项目,由于一周中工作时间有限,因此使开发生命周期尽可能轻是至关重要的。 这篇文章在一个小型的业余项目示例中介绍了DevOps主题的一些基础知识。

🎨开发项目

一旦选择了要使用的堆栈,并且可能还创建了第一行代码,就需要开始考虑版本控制。 用于版本控制的最常用工具是Git,它与GitHub,BitBucket或GitLab等服务中的远程存储库结合在一起。 出于爱好项目的目的,GitHub是一个不错的选择,因为设置极少,并且可以轻松创建免费的公共和私有存储库。 您可能需要考虑使用版本控制的方式。 常见的最佳做法是使master分支受到代码审查的保护。 确定可以合并的人以及可以在此处设置的内容:

即使您将是该项目的唯一开发人员,代码审查也是评估工作质量的好方法。 要创建一个新功能,首先创建一个新分支,然后创建一个拉取请求,然后亲自对其进行检查,有助于很好地掌握将要进入的代码。 对master分支进行版本控制也是一种常见的做法。

我们经常面临的挑战是在不同的环境和机器上移动我们的应用程序。 在项目中开发Dev Ops的一种方法(取决于堆栈和工作方式)是使用容器。 使用容器的好处在于,它们使您的代码更具可移植性和可重复性,因为无论容器在什么环境下运行,容器都以相同的方式工作。 您的应用程序及其所有依赖项将生活在类似于Linux OS微型版本(也称为容器)的环境中。 这种密封的环境可以在任何地方运行,并且您无需重新安装依赖项,库和软件包。 使用容器可在开发人员和环境之间提供一致性。 Docker容器也比运行常规虚拟机轻得多。

要在您的项目中开始使用Docker,首先需要在计算机上下载并安装Docker。 可以通过将名为Dockerfile的文件添加到项目中来定义Docker容器。 在此文件中,您需要指定存储库图像的外观。 如果您来自开发人员背景,则可以将Docker映像视为一个类,将对其进行实例化。 图像实例称为容器,可以在您选择的任何环境中创建和运行这些容器。 这是react-create-app项目的Dockerfile的示例。

要运行容器,首先需要构建一个Docker映像。 这是通过运行docker build -t myhobbyproject来完成的。 之后,您可以找到通过运行docker image -ls创建的docker image -ls ,该docker image -ls列出了所有docker映像。 现在您可以通过输入docker run -p 4000:80 myhobbyproject来运行它。 此命令将运行该应用程序,并为其公开http://localhost:4000

🛠建设与测试

在谈论用于构建的自动化服务器时,Jenkins是迄今为止使用最多的服务器。 但是,基于云的解决方案(例如Travis CI和Circle CI)正在迅速取代它,因为它们提供了更轻松的维护以及与现有版本控制解决方案的集成。 要使用Travis CI构建项目,只需使用GitHub帐户登录travis-ci.org。 为了使Travis构建项目,该项目需要包含一个.travis.yml文件,该文件描述了应如何构建该项目。 Travis可以将Docker作为服务使用,这需要在Travisfile中设置。 还配置了哪些分支。

添加Travis文件并将其推送到GitHub后,该项目将在travis-ci.com中构建。 您可以查看构建状态并在此处记录。

Deploy部署

您是否注意到构建文件包含用于部署的规范? 有许多不同的平台可用于部署您的爱好应用程序。 Heroku云平台是最简单的入门方法之一。 如果要使用AWS,则与Heroku等效的是AWS Elastic Beanstalk,它提供了类似的工具(而与这些PaaS解决方案相比,AWS EC2对中间件,操作系统和运行时的控制更多)。

根据您的项目,您可能希望在从开发到生产的过程中设置不同的环境。 这可以帮助您确保如果代码一直到生产都可以正常运行和正常工作。 创建环境的常见模式是DSP或开发,登台和生产。 这些环境使部署到生产环境更加安全。

可以通过配置Travisfile将Travis设置为部署项目。 您只需要使用加密的Heroku API密钥添加部署说明。 要开始使用Heroku,请创建一个帐户并添加一个新应用(或者,如果您想添加其他环境,请添加一个新管道)。 您需要Heroku和Travis CLI来创建和编码API密钥。 安装Heroku CLI后,运行travis encrypt $(heroku auth:token) --add deploy.api_key首先创建令牌,然后对其进行加密并将其添加到Travisfile中。

To‍♀️总结

尽管本文中的过程可能很容易完成,但事实是您可能会遇到各种奇怪的问题。 为您的业余项目创建CI / CD将使您对工作中可能遇到的问题有一个很好的了解,并使您有信心解决这些问题。 对我而言,独自一人和与朋友一起挖掘是学习的一种非常好的方法。 这种学习过程中最具挑战性的方面之一是找时间在课余时间学习。 但是,Travis,Heroku和Docker文档非常出色,可以帮助您入门。 祝好运!

资料来源:

Travis的Heroku部署

使用Docker和NodeJS

Docker化React应用

Docker入门