成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

企業容器化如何選型?全方位對比 Heroku 與 Docker

新聞 云計算
Heroku 和 Docker 都可以讓開發人員能夠在容器內開發、部署和運行應用程序。容器是在單個操作系統內核上運行的虛擬環境,使應用程序能夠使用虛擬機或裸機計算機系統所需資源的一小部分來運行。

Heroku 和 Docker 都可以讓開發人員能夠在容器內開發、部署和運行應用程序。容器是在單個操作系統內核上運行的虛擬環境,使應用程序能夠使用虛擬機或裸機計算機系統所需資源的一小部分來運行。容器還使我們能夠快速擴展應用程序,并輕松地從開發過渡到生產。雖然 Heroku 和 Docker 都為軟件部署和管理提供了一個容器化的解決方案,但是它們在實現和術語方面有很大的不同。每個系統也有著不同的利與弊。 

什么是容器?  

容器是使應用程序能夠共享單個操作系統的軟件系統。容器系統通常由容器引擎、主機操作系統和處理器組成。

容器引擎——在這種情況下,Docker 或 Heroku 是一種用于部署容器化應用程序的托管環境。容器引擎管理內核和內存。它還管理各個應用程序的空間隔離和安全性,并允許可伸縮性。

主機操作系統 (OS)——主機操作系統 (通常是 Linux) 提供用戶界面,內存等資源的管理,并為應用程序提供服務。

處理器——也稱為中央處理器,它基于來自操作系統和應用程序的指令,負責執行所有的任務。

容器的優點  

因為容器允許應用程序共享資源,所以它們提供了以下幾個優點:

降低成本——容器通過允許應用程序共享資源來降低成本。

增加的可靠性和健壯性——容器使我們可以做到快速的故障切換和恢復。

可伸縮性——容器使我們可以快速且容易地伸縮應用程序的數量。

隔離——容器在名稱空間中使用自己的資源隔離每個應用程序。因此,盡管應用程序共享資源,但它們在職能上是相互隔離的。這還意味著一個應用程序中的故障是與其他應用程序隔離的,從而使容器比虛擬機或裸金屬系統更安全。

持續集成——因為容器很容易被摧毀和部署,所以它們支持迭代過程,比如敏捷。

可移植性——容器非常便攜,允許從開發到生產的輕松轉換,在云環境中效果尤為顯著。

安全——容器的模塊化設計增加了隔離性,使系統更難被攻擊,并限制了惡意軟件的影響。

  • 容器進程必須只向容器特定的文件系統寫入信息。
  • 容器命名空間必須與私有內部網隔離。
  • 容器特權必須隔離。

Heroku

[[282212]]

Heroku 是一個平臺即服務 (PaaS) 平臺,是 2007 年創建的第一批云平臺之一。Heroku 最初只支持 Ruby,但現在已支持 Java、Node.js、Python、 PHP 等。Heroku 由以下組件組成:

  • BuildPack—Heroku BuildPack 是一組用于創建鏡像的腳本。BuildPack 確定應用程序可以運行的語言,包括 Java、Python、Ruby 和其他語言。Heroku 為各種語言提供了默認的 BuildPack ,開發人員也可以構建自己的 BuildPack。
  • Slug——運行 BuildPack 時,它會創建應用程序的打包副本,稱為 Slug。Slugs 包含運行應用程序所需的所有功能,可以快速輕松地部署。
  • 根據 Heroku 的說法,“Dynos 是隔離的、虛擬化的 Linux 容器,用于根據用戶指定的命令執行代碼”。使用 Dynos,可以根據資源需求將應用程序擴展到任何級別。
  • 可為 Heroku 購買 Add-Ons-Preconfigured 構建塊,以構建更復雜的應用程序。
  • 命令行界面 (CLI)——用來管理 Heroku 容器的命令行界面。

有沒有考慮過將 DeployPlace 作為 Heroku 的替代方案以避免被供應商鎖定?

Docker  

[[282213]]

Docker 是一個開源工具,用于在容器中創建、管理、部署和運行應用程序。與 Heroku 必須在自己的云環境中運行不同,Docker 可以安裝在筆記本電腦、服務器或如 Amazon Web Services (AWS) 之類基于云的環境中。Docker 由以下高級組件組成:

  • Dockerfile——Dockerfile 是一組用于構建 Docker 鏡像的命令 (參見下文)。Dockerfiles 也代表著 Docker 鏡像的最終配置。
  • Docker 鏡像——通過運行 Dockerfile 創建的 Docker 鏡像 (參見上文)。Docker 鏡像是一個多層文件,包含運行應用程序所需的所有資源、依賴項、數據、文件和設置。每次啟動一個 Docker 鏡像時,它都會創建一個同一個應用程序的容器,從而提供了簡單的可伸縮性。
  • Index——Docker 圖像可以上傳到 Index 分享給 Docker 社區。這樣可以讓其他用戶基于從 Index 下載的單個 Docker 鏡像組件構建復雜的應用程序。

命令行界面(CLI)——與 Heroku 類似,Docker 提供了用于管理容器的 CLI。

Docker 和 Heroku 術語  

Docker vs 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 的流言:

Heroku 太貴了。許多公司更喜歡尋找、招聘和培訓 DevOps 工程師來搭建和支持部署基礎設施。招聘、培訓、工資和辦公的成本常常被忽視。在主要關注開發更好的產品的同時,DevOps 團隊的招募和管理可能會被忽視。

有時 Heroku 被認為不夠安全。但是 Heroku 比你自主研發的部署基礎設施安全得多。Heroku 有一個單獨的團隊處理安全問題。Heroku 的安全特性已經在數千個實際客戶的應用程序上進行了測試。對于大多數不需要額外認證的行業來說,Heroku 的安全性絕對沒有問題。

Heroku 的陷阱

Heroku 的客戶如果想通過免費的途徑省錢,就會使用較低的成本級別,但在系統為了節省公司資金關閉資源的時候,可能會遭遇“休眠應用”(https://blog.heroku.com/app_sleeping_on_heroku)。對于不知情的用戶來說,這種意外很是令人不快,這么度量簡直太不方便了!它根本就是在“故意停機”,你花了錢卻不能掌控它!

服務器和進程(Heroku 在多租戶共享服務器中存儲實例的地方)也缺乏所有權。從某種意義上說,客戶實際上沒有選擇服務器部署在何處的權利。

Docker  

Docker 的優點:

幾乎可以在任何環境下運行—docker 可以在內部服務器、私有云系統甚至是在 Heroku PaaS 本身上運行。

可定制——因為 Docker 幾乎可以在任何平臺上運行,所以可以對它進行定制以滿足你的所有需求。

安全性——因為 Docker 可以在內部服務器上運行,所以它的安全性可以讓你滿意。

操作系統——docker 可以運行在各種操作系統上,包括 Linux、Windows 和其他操作系統。

成本——AWS 上的 Docker 相對便宜,大約每月 4.75 美元起。

Docker 的缺點:

很難配置——與 Heroku 相比,Docker 的靈活性意味著它需要更多的配置才能正確設置。

Docker 的陷阱

開發團隊有時會遇到 Docker 的問題,其中許多問題與該技術的開源本質有關。在許多不同類型的用例中,覆蓋網絡會導致延遲。這種延遲可能會成為一個問題,特別是對于那些需要接近裸機地運轉才能實現實時目標的公司來說。

Docker 的另一個主要問題是需要將有價值的數據導入 Docker 容器鏡像,并將其保存在鏡像中。由于容器通常是為無狀態功能構建的,因此會丟失本要持久保存的數據(https://docs.docker.com/v17.09/docker-for-ibm-cloud/persistent-data-volumes/)。當這種情況發生時,就會變得非常麻煩。專家和經驗豐富的開發人員總是警告不要將持久數據放在不應該放的地方,每次都敦促其他人“堅守陣地”。

比較 Docker 和 Heroku  

在 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 部署相比,它確實將更多的責任分配給了應用程序管理者。另一方面,更大的責任也使你能夠更好地控制應用程序。

 

責任編輯:張燕妮 來源: 高效開發運維
相關推薦

2011-03-21 15:08:56

MongoDBCouchDB

2021-08-24 07:57:26

KafkaRocketMQPulsar

2022-08-27 21:31:04

Tauri框架二進制

2011-04-22 09:05:26

2018-01-15 08:52:35

2010-03-17 09:22:06

FlashSilverlight

2016-12-14 14:43:11

ButterknifeAndroid

2016-10-21 15:58:51

容器容器技術Docker

2017-09-13 15:37:53

2009-07-15 08:25:42

微軟Windows 7性能測試

2013-11-20 10:20:35

AndroidiOS開發

2025-02-26 08:16:38

2011-04-27 20:35:49

2013-09-09 10:34:37

暢捷企業信息化

2009-11-13 05:33:59

IBMPower

2012-03-01 17:52:27

2019-09-18 15:22:52

消息中間件RabbitMQ

2014-05-15 17:47:12

企業移動化

2010-02-05 17:09:53

IBM Power

2009-12-15 17:28:11

Ruby自動化腳本框架
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91精品一区 | 国产美女精品视频 | 成人精品一区二区三区中文字幕 | 精品一区二区三区在线观看国产 | 婷婷久久五月 | 超碰高清 | 一级片av | 欧美视频免费在线观看 | 日韩精品久久久 | 婷婷开心激情综合五月天 | 久久久新视频 | 国产日韩欧美精品一区二区 | 91精品综合久久久久久五月天 | 男人久久天堂 | 二区欧美 | 亚洲美女视频 | www,黄色,com| 久久一区二区视频 | 日本啊v在线 | 99色播 | 国产成人精品久久二区二区91 | 91一区二区 | 久久久成人精品 | 国产精品99久久久久久大便 | 久久伊人青青草 | av入口 | 人人干在线视频 | 在线黄色影院 | 精品国产一区久久 | 一区二区三区视频免费观看 | 久久蜜桃av一区二区天堂 | 欧美成人精品一区二区三区 | 欧美精品久久久久久久久老牛影院 | 精品91久久 | 中文字幕一区二区三区四区 | 亚洲一区二区中文字幕 | 亚洲欧美中文日韩在线v日本 | 国产亚洲精品精品国产亚洲综合 | 国产精品伦理一区二区三区 | 欧美性大战久久久久久久蜜臀 | 亚洲精品一区中文字幕乱码 |