OpenStack 云编排 Pt。一:从手动部署到自动化部署

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡/ 赠书活动

目前,正在 星球 内带小伙伴们做第一个项目:全栈前后端分离博客项目,采用技术栈 Spring Boot + Mybatis Plus + Vue 3.x + Vite 4手把手,前端 + 后端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,陪伴式直到项目上线,目前已更新了 204 小节,累计 32w+ 字,讲解图:1416 张,还在持续爆肝中,后续还会上新更多项目,目标是将 Java 领域典型的项目都整上,如秒杀系统、在线商城、IM 即时通讯、权限管理等等,已有 870+ 小伙伴加入,欢迎点击围观

大多数软件部署比实际部署的应用程序更复杂。通常,当我们谈论应用程序时,我们谈论的是非常简单的事情;一些基于服务器端脚本语言的应用程序和一个后端数据库实例。然而,当谈到部署这个应用程序时,事情变得有点复杂,因为需要考虑安全性、 监控 、可恢复性和其他此类考虑因素。

除此之外,每个部署还可能需要协调任意数量的元素,例如:

  • 主机名配置
  • 网络创建
  • HTTP 代理
  • 自动化脚本
  • 本地存储库镜像

许多公司已经投资了整个数据中心和 IT 团队来系统地处理 部署过程 ,这两者都在老化。

在云中部署应用程序 明显更简单——它需要更少的时间和人力,最终目标是腾出时间和人力来处理更有趣的事情。

许多新产品完全基于云,并且比还不到五年的应用程序先进得多。

由于 OpenStack 的开放性,大多数组织正在向通常基于 OpenStack 环境的 云过渡,但仍然至少有一只脚踏在传统数据中心。他们可能被官僚主义拖累,但他们在工资单上有很多头脑。

这些组织正在寻找类似的东西,尽管要复杂得多:

应用程序的拓扑本质上是:

  • IaaS(例如 OpenStack)中两个区域中的应用程序端点
  • 数据库托管在内部数据中心
  • 托管在内部数据中心的 DNS 服务器

但是某些昂贵的项目阻碍了现实和这个最终目标。例如,使 DNS 服务器能够与 IaaS 交互或将应用程序端点移动到 IaaS。每个这样的项目都至少涉及多个部门、审批流程和 QA 测试。

将便携式 云编排 工具交到世界上“人类瑞士军刀”的手中,将使组织能够快速、系统地从老化的硬件中迁移出来。通常,编排器集中应用程序部署的设计和管理,这类似于项目经理角色在软件部署中的重要性。

这样的场景,再次简化,看起来像这样:

市面上有许多编排工具,每一个都有其处理应用程序和应用程序部署的独特方法。 (如果您想了解更多相关信息,您可以从 OpenStack Vancouver 收听我们团队就此发表的演讲——“ Orchestration Tool Roundup ”——他们深入探讨了不同工具的差异和协同作用,以及如何选择工作的正确工具)。

大多数是特定于云的,这意味着一旦你投资学习如何使用一个,你几乎就会被它附带的云提供商所束缚。例如,一旦您开始使用 OpenStack ,迁移到 Cloudstack 将是一项复杂而漫长的工作。

新工具不仅可以在多种平台上工作,而且可以很好地协同工作。

Docker 是一个很棒的工具,因为它使您能够创建超级便携的应有尽有的应用程序容器,而它们的新工具 Docker Machine 和 Docker Swarm 使您能够通过简单的命令在各种环境中轻松安装 Docker 机器和容器集群。从本质上进一步简化了这一点。

使用 Docker 编排 是一种很好的工作方式,因为使用它您可以汇总应用程序打包的所有逻辑,包括它的环境,并将其与基础设施部署分开。

在下一篇文章中,我将采用上述内容并概述一个实际示例,并演示如何通过 微服务 用例使用 Docker 和 OpenStack 在传统和云基础架构的混合环境中编排工作负载。