首页 » 博客 » 为什么不使用个工具来处理所有事情呢

为什么不使用个工具来处理所有事情呢

 

如果您只是浏览,请尽情享受。如果您想成为我们的客户,我们非常欢迎您。今年我们开始尽可能地在一切事物中使用自动化,包括网络自动化、服务器配置和应用程序部署。

每个部分都有自己的限制和要求。对于网络自动化,我们使用Ansible,因为它具有灵活的模板机制、许多第三方模块、速度快并且真正符合我们的需求。服务器也使用 Ansible 进行配置,但配置使用我们的一等公民Chef进行推送,而某些部分则使用Consul和consul-template进行处理。

因为每个工具都有自己的局限性:

Ansible没有定期运行的机制,也不如 Chef 灵活
Chef没有编排层
Consul …好的,但是谁负责引导 Consul 集群及其周围的其他依赖项?

我们通过创建拉取请求在

Github上进行更改,而Jenkins会拉取这些更改。在 Github 通过评论改进代码之前,我们会使用 :+1:,:-1: 作为评论来批准或拒绝更改。借助此新功能,我们可以更透明地完成此操作。

我们维护最频繁的 Chef 存储库已启用Require pull request reviews before merging保护,这意味着代码审查是强制性的。从 Github 提取更改后,Jenkins 开始构建并完成其余工作。某些构建有多个 Jenkins 从属服务器用于执行特定构建,例如构建LXC容器或Docker容器,这需要不同的 Linux 发行版。

如上所述,我们利用 Jenkins 实现各种自动化。在大多数情况下,每个 Github 存储库 越南電話號碼 都有两到三个不同的构建:

ansible-network – 从主分支应用生产变更
ansible-network-pr – 引导开发环境并应用拉取请求中的更改
ansible-repo – 检查每个剧本的语法
自动化是 Hostinger 的工作方式。我们不通过 SSH 进入服务器,也不做任何更改。我们首先在个人笔记本电脑上本地进行更改,然后将代码作为 Pull 请求推送到Github。只有在临时调试时才需要通过 SSH 进入服务器-其余一切都由 Chef 动态调整。因此,没有必要登录。我们大多数面向用户的服务器都是相同的(取决于角色),因此我们只需选择一个来快速验证配置。

在将任何新功能部署到我们当前的堆栈之前

我们必须首先考虑自动化。我们有两个环境——开发和生产。首先,更改进 根据您的业务规模 入开发环境,在那里我们拥有或多或少相同的基础设施(虚拟),合并后更改很快就会显现出来。当开发环境一切正常时,我们可以自由地在生产环境中使用相同版本的食谱。只需提交另一个带有增加版本的拉取请求即可。

当我们配置新服务器时,我们的监控平台Prometheus会自动检测到它。集群会根据合适的集群大小等进行重新配置,因此无需手动执行任何其他操作。如果有人破坏或更改配置文件中的某些内容,所有内容都会通过chef-client后台每 7 分钟运行一次的自动恢复。但是,某些服务需要比每 7 分钟更快的响应速度,因此 consul-template 可以提供帮助。我们每 新闻 美国 个区域为什么不使用个工具来 都有 consul 集群,consul-template 在需要时作为客户端运行。例如,我们使用 consul-template 为Openresty重新生成上游,因为它需要近乎实时的操作。

滚动至顶部