heroku 和 docker 都可以让开发人员能够在容器内开发、部署和运行应用程序。容器是在单个操作系统内核上运行的虚拟环境,使应用程序能够使用虚拟机或裸机计算机系统所需资源的一小部分来运行。容器还使我们能够快速扩展应用程序,并轻松地从开发过渡到生产。虽然 heroku 和 docker 都为软件部署和管理提供了一个容器化的解决方案,但是它们在实现和术语方面有很大的不同。每个系统也有着不同的利与弊。
什么是容器? 容器是使应用程序能够共享单个操作系统的软件系统。容器系统通常由容器引擎、
在 heroku 上部署 docker 通过在 heroku 的基础设施上部署 docker,可以同时享受这两个领域的好处。heroku 的平台简化了设置和部署,并且几乎没有风险。虽然与 aws 这样的平台相比,在 heroku 上部署的初始费用更昂贵,但是许多公司最终在 heroku 上节省了资金,因为与其他平台相比,节省了所有在配置上要花费的时间。
在 heroku 上部署 docker 的优点包括:
开发环境和生产环境之间的差异更小。更好地控制如何构建包。例如,如果你的应用程序使用了一门不使用标准 buildpack 的语言,那么你可以在 docker 中构建它。在 heroku 平台上部署 docker 的主要缺点是丢弃了一些 heroku 的自动配置特性,承担了更多的责任。如果使用标准的 slug 编译器和默认的 stack,heroku 将自动检查安全性更新,更新 stack,然后自动迁移应用程序。但是,如果使用 docker 容器,heroku 就不能这样做了,责任就落在了管理应用程序的人的身上。
哪些公司在使用 docker 和 heroku?docker 的客户
docker 在 g2crowd 上的评分是 4.4 分 (满分 5 分),共有 200 名用户做了评价。许多公司选择 docker 以在容器中快速部署服务器环境,而不需要创建虚拟机。
adp(https://www.adp.com/)——它使用 docker 建立一个安全的软件供应链,为 113 个国家的近 4000 万活跃用户服务。
alm. brand(https://www.almbrand.dk/)——使用 docker 企业版精简了它的 oracle weblogic 应用程序,并构建了新的应用程序。
assa abloy(https://www.assaabloy.com/)——assa abloy 是一家著名的锁具制造商,利用 docker 企业版来加速其电子接口和锁具硬件的市场交付。
baker hughes ge(https://www.bhge.com/)——使用 docker,将部署时间从 6 个月减少到 1 个小时。
glaxosmithkline(https://www.gsk.com/)——使用 docker 企业版来加速药物配送模型和改进研究。
visa(https://www.visa.com/)——visa 利用 docker 对其支付处理应用进行了重构,最终实现了 10 倍的可扩展性提升。
heroku 的客户
heroku 经常被初创公司和行业领导者选择,用于快速构建强大的可以快速发布的数据驱动应用程序。docker 在 g2crowd 上的评分是 4.3 分 (满分 5 分),共有 76 名用户做出了评价。
altus assessments(https://altusassessments.com/)——altus assessments 使用 heroku 来运行成千上万的数据密集型测试。
swimtopia(https://www.swimtopia.com//)——heroku 帮助 swimtopia 在高峰期无缝地伸缩。
shift commerce(https://www.shiftcommerce.com/)——使用 heroku 电子接口并聚集硬件市场,使 shift commerce 的快速增长成为可能。
clickfunnels(https://www.clickfunnels.com/)——clickfunnels 运用 heroku 灵活的数据服务抓住了增长的机会。
moneytree(https://www.getmoneytree.com/)——moneytree 专注于他们的业务,而 heroku 负责数据安全和遵从性
drivendata(https://www.drivendata.org/)——heroku 为 drivendata 的数据科学应用提供了一个安全的平台。
总结heroku 和 docker 都是容器化的极佳选择。它们都可以运行各种语言的应用程序,包括 java、ruby、php 和其他语言。它们还提供了简单的可伸缩性和部署。
heroku 和 docker 之间的主要区别在于它们的实现。heroku 和 docker 都使用容器进行操作,容器是一个自包含的代码实例,包含运行应用程序所需的所有内容,包括代码、资源和工具。但是,heroku 在它自己的 heroku 部署流水线中提供容器。这使得 heroku 非常容易配置,因为包、容器和环境整体上都已经为你配置好了。heroku 非常适合希望无需复杂的配置即可在一个固定的环境中部署应用程序的新开发人员或者小公司。
另一方面,docker 提供了一个容器化模型,它可以运行在各种各样的平台上,从内部服务器到私有云、aws 甚至是 heroku 环境本身。因此,与 heroku 相比,docker 在部署方面要灵活得多。然而,伴随这种灵活性而来的是更复杂的部署过程。
因此,docker 更适合具有更具体配置要求的公司。例如,如果你的应用程序需要一个非常安全的环境,你可以运行 docker on-premise 并根据你的规范配置安全性。更大的灵活性也带来了一定程度的复杂性。heroku 基本上可以直接运行,而 docker 则要根据你的需要进行更多配置。
在某些情况下,开发人员可以通过在 heroku 上部署 docker 来利用两个平台的特性。这减轻了 docker 在其他 paas 平台上带来的许多部署和实现难题,但是与纯 heroku 部署相比,它确实将更多的责任分配给了应用程序管理者。另一方面,更大的责任也使你能够更好地控制应用程序。
企业建设网站的目的是什么呢?网站搭建如何利于百度优化新手站长入门教程:网页编码就是那点事网站建设中国电子信息产业发展研究院及中国信息化绩效评估中心发布网站墟建设攻广州移动端网站要怎么优化提高网站提高网站广告点击率的几个可行方法为访客和蜘蛛程序创建站点地图的九大秘诀SEO优化:百度优化有什么讲究?