企业容器化如何选型?全方位对比 Heroku 与 Docker
副标题[/!--empirenews.page--]
【线上直播】11月21日晚8点贝壳技术总监侯圣文《数据安全之数据库安全黄金法则》
Heroku 和 Docker 都可以让开发人员能够在容器内开发、部署和运行应用程序。容器是在单个操作系统内核上运行的虚拟环境,使应用程序能够使用虚拟机或裸机计算机系统所需资源的一小部分来运行。容器还使我们能够快速扩展应用程序,并轻松地从开发过渡到生产。虽然 Heroku 和 Docker 都为软件部署和管理提供了一个容器化的解决方案,但是它们在实现和术语方面有很大的不同。每个系统也有着不同的利与弊。 什么是容器?容器是使应用程序能够共享单个操作系统的软件系统。容器系统通常由容器引擎、主机操作系统和处理器组成。 容器引擎——在这种情况下,Docker 或 Heroku 是一种用于部署容器化应用程序的托管环境。容器引擎管理内核和内存。它还管理各个应用程序的空间隔离和安全性,并允许可伸缩性。 主机操作系统 (OS)——主机操作系统 (通常是 Linux) 提供用户界面,内存等资源的管理,并为应用程序提供服务。 处理器——也称为中央处理器,它基于来自操作系统和应用程序的指令,负责执行所有的任务。 容器的优点因为容器允许应用程序共享资源,所以它们提供了以下几个优点: 降低成本——容器通过允许应用程序共享资源来降低成本。 增加的可靠性和健壮性——容器使我们可以做到快速的故障切换和恢复。 可伸缩性——容器使我们可以快速且容易地伸缩应用程序的数量。 隔离——容器在名称空间中使用自己的资源隔离每个应用程序。因此,尽管应用程序共享资源,但它们在职能上是相互隔离的。这还意味着一个应用程序中的故障是与其他应用程序隔离的,从而使容器比虚拟机或裸金属系统更安全。 持续集成——因为容器很容易被摧毁和部署,所以它们支持迭代过程,比如敏捷。 可移植性——容器非常便携,允许从开发到生产的轻松转换,在云环境中效果尤为显著。 安全——容器的模块化设计增加了隔离性,使系统更难被攻击,并限制了恶意软件的影响。
Heroku 是一个平台即服务 (PaaS) 平台,是 2007 年创建的第一批云平台之一。Heroku 最初只支持 Ruby,但现在已支持 Java、Node.js、Python、 PHP 等。Heroku 由以下组件组成:
有没有考虑过将 DeployPlace 作为 Heroku 的替代方案以避免被供应商锁定? DockerDocker 是一个开源工具,用于在容器中创建、管理、部署和运行应用程序。与 Heroku 必须在自己的云环境中运行不同,Docker 可以安装在笔记本电脑、服务器或如 Amazon Web Services (AWS) 之类基于云的环境中。Docker 由以下高级组件组成:
命令行界面(CLI)——与 Heroku 类似,Docker 提供了用于管理容器的 CLI。 Docker 和 Heroku 术语虽然 Docker 和 Heroku 有一个共同的概念,即应用程序的容器化,但是这两个平台之间有着一些主要的区别。Heroku 提供了运行应用程序的容器和托管应用程序的基础设施。换句话说,Heroku 提供了容器化的所有优点,但是你也必须在 Heroku 平台上运行它。这使得 Heroku 非常容易搭建和运行,但是同时也有一些限制。与 Docker 不同,Heroku 不能在本地服务器或基于私有云的服务上运行。 Heroku Heroku 的优点: Heroku 易于搭建、实施和部署。Heroku 管理硬件、软件和其他资源,使开发人员可以几乎只专注于开发他们的应用程序。 Heroku 支持多种语言,包括Ruby、Java、Node.js、Scala、Clojure、Python、PHP和Go。 Heroku 是一个通晓多种语言的平台——通过使用各种构建包,开发人员可以在几乎任何编程语言中部署应用程序。 Heroku Dynos 允许简单的开发和可用性——因为由 Heroku 管理和运行应用程序,将开发人员从操作系统和其他系统配置的管理中解放出来。 Heroku 允许即时的可伸缩性——通过增加或减少 Dynos 的数量,可以很容易地按比例增加或减少 Heroku。 Heroku 的缺点: 在 Heroku 上运行的应用程序只能在 Heroku 平台上运行。因此,Heroku 不能在内部服务器或私有云上运行。了解一下 DeployPlace,以避免被供应商锁定。 Heroku 应用程序只能使用 Linux 操作系统运行。 虽然 Heroku 提供了一个免费的版本,但标准套餐每月 25 美元起。 Heroku 的流言: (编辑:好传媒网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |