從雲計算到容器到容器雲

最近有朋友問我:「爲啥你寫的東西我都看不懂,也不是我平時用的。」我不由啞口無言。就像今天要說的雲計算,其實已經覆蓋了平常生活的很多場景,像檢票一類的人臉識別,智慧城市的紅綠燈等等,都是雲計算應用的產物。此次把雲計算、容器、容器雲三者放到一塊兒來講,由於這三個如今很是很是的火,它們之間互有關聯,通常談雲計算時也會提到容器,提到容器就更無可避免的提到容器雲。接下來就先從雲計算開始提及。html

從雲計算到容器

雲計算是一種基於互聯網的計算方式,經過這種方式,共享的軟硬件資源和信息能夠按需求提供給計算機各類終端和其餘設備。通常的雲計算架構涵蓋三層服務:IaaS、PaaS 和 SaaS。數據庫

IaaS(基礎設施即服務),主要包括計算機服務器、通訊設備、存儲設備等爲用戶提供計算、存儲、網絡等基礎設施服務。好比你們耳熟能詳的 AWS、阿里雲、騰訊雲等,以及又拍雲提供的 CDN、雲存儲、雲安全等服務。安全

PaaS(平臺即服務),簡單理解就是提供相似操做系統(涵蓋數據庫、日誌、監控等服務)和開發工具的功能。服務器

SaaS(軟件即服務),經過互聯網提供軟件服務的應用,用戶不用搭建環境,只須要付費就能夠享受的雲服務。這類服務你們接觸到比較多,好比 Google Docs、石墨文檔、上直播、億方雲,以及又拍雲的 WebP 自適應、窄帶高清等多媒體雲處理服務。網絡

總的來講,雲計算是一種基於互聯網的計算方式,經過這種方式,共享的軟硬件資源和信息能夠按需求提供給計算機各類終端和其餘設備。簡而言之,雲計算是網絡資源配置的一種方式。架構

隨着雲計算的發展,計算機技術也跟着推陳出新,應用的規模愈發龐大,邏輯愈發複雜,迭代更新愈發頻繁,應用開發所需的統一規範和原有開發模式雜亂無章成立追求進步的主要障礙。運維

IaaS 的彈性計算性價比低,資源利用率低,須要考慮特定場景,PaaS 則能夠利用容器技術,不依賴虛擬機、維護成本低另外具備高可擴展性。但不管 IaaS 或者 PaaS 在資源利用率、應用架構選擇、支持的軟件環境方面都有必定的侷限性,而容器技術的發展彌補了 IaaS 以及 PaaS 的不足。分佈式

談談容器技術

說到容器技術,就不得不提一下 DevOps。DevOps(Development 和 Operations 的組合詞)是一組過程、方法與系統的統稱,用於促進開發(應用程序/軟件工程)、技術運營和質量保障(QA)部門之間的溝通、協做與整合。其理念和方法已經爲許多團隊所採納。工具

2014 年 11 月,Docker 做爲有潛在趨勢的容器技術進入了 DevOps 的世界。它經過簡單的包裝和應用程序運輸加快了持續部署的能力,進而獲得了普及。Docker 做爲一項開源工具,能夠將應用程序及其依賴(如配置文件等)打包到容器中,就能夠在任何 Linux 服務器上運行該容器,而不會出現任何兼容性問題。開發工具

容器化是一個至關古老的概念,但 Docker 帶來了一些全新的東西。

  • Docker 旨在整合大多數最近時期經常使用的 DevOps 工具,如 Puppet,Ansible,Jenkins等。
  • 有了 Docker ,開發人員能夠輕鬆地將其生產環境複製爲可當即運行的容器應用程序,讓工做更有效率。
  • Docker 容許應用程序在筆記本電腦,內部服務器,公共雲或私有云等上運行,從而實現靈活性和可移植性。管理和部署應用程序要容易得多。
  • Docker 實現了一個高級 API ,以提供單獨運行進程的輕量級容器。

現在,Docker 的主要用戶是開發人員和系統管理員,應用於DevOps 相關聯的構建和運行分佈式應用程序。

爲何如今 Docker 那麼火,它究竟有哪些優勢?

  1. Docker 輕量級,容器能夠秒級啓動;
  2. Docker 對系統資源的使用率很高;
  3. Docker 容器的執行不須要額外的虛擬化支援,它是核心層級的虛擬化,所以能夠實做更高的效能和效率;
  4. Docker 幾乎能夠在任意平臺上執行,包括實體機、公有云或者我的電腦;
  5. Docker 管理簡單,只須要小小更改,就能夠替代以往大量的更新工做。

Docker 的應用場景主要涵蓋如下幾種:

  1. Web 應用的自動化打包和發佈;
  2. 快速搭建開發和運行環境,而且該環境能夠直接傳遞給測試和產品部署;
  3. 自動化測試和持續集成、發佈;
  4. 在服務型環境中部署和調整數據庫或其餘的後臺應用。

從容器技術到容器雲

Docker 只是打開互聯網新世界的一把鑰匙,對於企業或者我的複雜的項目來講,面臨的問題更多:

  • 應用迭代緩慢,業務交付常常推遲;
  • 傳統的單體架構應用難以維護和擴展;
  • 隨着應用的使用,運維管理變得愈來愈複雜;
  • 開發需求變化,開發或測試人員不遵照流程等。

在此背景下容器雲的出現,成爲解決這些複雜場景項目的救星。容器雲實際上是按照容器爲資源分割,封裝整個軟件運行時環境,爲開發者和系統管理員提供用於構建,發佈和運行分佈式應用的平臺。當容器雲專一於資源共享與隔離、容器編排與部署,它更接近 IaaS 的概念;當容器雲滲透到應用支撐與運行時環境時,它更接近於 PaaS。

在不少企業中,應用程序發佈是一項涉及多個團隊、壓力很大、風險很高的活動。然而在具有 DevOps 能力的組織中,應用程序發佈的風險很低。由於與傳統的瀑布式開發模型相比,迭代式開發更加便捷。

咱們假設一種場景,部署在物理機上的業務忽然出現問題,該如何應對?普通客戶是更換物理機設備,部署環境,而後再部署業務,做爲一個嫺熟的老司機,至少也須要耗費 1 小時 以上。以前又拍雲容器雲的一個客戶就遇到了相似的狀況。客戶同時在容器雲和物理機上在跑業務,容器雲上運行的業務大概有十幾個,一次遇到了物理機故障的狀況,若是把原有業務遷移到物理機上,須要短期內尋找替代設備、設置生產環境,難度頗高;此時的解決方案是把物理機的流量切換到容器雲,不到10秒的時間就完成了業務切換,避免了故障致使的業務中斷,容器雲的好處顯而易見。

因而可知,容器云爲開發者進行構建發佈應用的平臺,使得企業交付集成能力更強。

瞭解更多關於容器雲:

五分鐘讀懂什麼是容器雲

又拍雲葉靖:OpenResty 在又拍雲容器平臺中的應用

相關文章
相關標籤/搜索