容器雲開發,這些必備知識你了解多少?

2020-12-22 TechWeb

如今,「即服務 」的時代已經到來,將能力服務化,萬物皆可具備基礎設施的特徵。在IT界更是如此,譬如,基礎設施即服務(IaaS)、平臺即服務(PaaS)、軟體即服務(SaaS)等等。容器即服務(CaaS)無疑是這波浪潮中的又一位重量級參與者。

那麼作為開發者,想探究CaaS的「真諦」,首先應該明白這一系列問題——Caas是什麼?它能幹什麼?和PaaS的區別是什麼?構成CaaS有哪些基本要素?有什麼代表性的產品值得了解? 在本文中,我們將探討這一系列問題,幫助開發者「破除迷霧 」、「看清真相 」。

什麼是容器?

容器即服務,英文全稱Container-as-a-Service,簡寫CaaS,它提供一種上傳、運行、擴展以及管理應用程式容器的方法。這類服務全面提供執行這些功能的API或CLI,有些甚至提供GUI或Web門戶。這裡的容器可以是多種不同類型,包括Docker、LXD以及OpenVZ等等。聽起來似乎跟PaaS差不了多少,但二者也有一些區別。下面我們從概念出發,看看二者之間的差異所在。

平臺即服務(PaaS),以IaaS為基礎構建而成。此外,也有一部分PaaS供應商也開始以CaaS作為服務基礎。

從傳統意義出發,PaaS解決的是應用程式的託管、打包與分發問題,強調零停機時間部署、自動規模伸縮與負載均衡功能。此外,它還可以集成多種開發人員工具以及運行狀態與指標統計信息。PaaS的核心優勢之一,在於開發人員可以輕鬆構建應用程式,而不再分神於應用程式運行所處的具體環境。像Cloud Foundry, Heroku以及Google App Engine等,都屬於典型的PaaS供應商。

而CaaS提供一種輕鬆快捷的容器部署方式。它還能夠保證全面完善的可移植性,確保容器能夠在幾乎任何位置上運行。CaaS還提供用於容器乃至容器集群的配置及管理功能。

從表面上看,CaaS與PaaS好像沒什麼不同。二者都管理著應用程式的部署與託管任務,而且基本功能也區別不大。PaaS的不少優勢,都可以通過使用容器鏡像加容器註冊表的方式實現。此外,Kubernetes能夠幫助用戶滾動部署並實現負載均衡與自動規模伸縮。典型的CaaS解決方案包括Google Kubernetes Engine (GKE)與Azure Container Service。

要PaaS?還是要CaaS?

要PaaS?還是要CaaS?實際上,選擇哪種解決方案要根據你的應用場景來決定。

這二者都能幫助開發人員部署並運行應用程式。但是,PaaS會隱藏一部分容器化任務。換句話說,使用CaaS,開發者仍然需要管理一部分應用程式容器化任務;但使用PaaS,開發者就不用額外操心了。再有,PaaS在所使用的語言及技術方面也有更多要求。雖然能夠支持多種不同語言,但數量畢竟有限,這是因為PaaS通常依靠構建軟體包來運行應用程式,而不像Docker那樣使用通用型容器。

此外,CaaS能更輕鬆地運用多雲託管功能,這也是因為它不像PaaS那樣「獨斷專行 」。只要雲服務商支持容器,開發者也可以藉此發布並運行自己的服務。

如果企業擁有強大的基礎設施團隊,或者已經習慣於處理網絡及運營問題,那麼使用CaaS將幫助企業更好地發揮自身技術優勢。但如果企業並不熟悉該如何將服務部署至雲端,或者運營團隊在這方面的經驗不是很豐富,那麼PaaS無疑是更理想的入門級選項。

在PaaS與CaaS之間進行選擇時,另一大重要考量因素在於速度與控制。如果企業希望快速推出應用程式,又不想為其他事情分神,那麼PaaS的效果更好。但如果打算更好地控制服務的容器化及管理方式,那麼CaaS解決方案將成為最佳選擇。

說了半天,好像淨是好事。但CaaS難道就沒有任何缺點了嗎?

當然有。首先,根據云服務商的具體方案,大家會發現其可能並不支持某些容器類型。絕大多數服務商當然都在支持Docker,但現在CaaS當中限定容器類型的現象正愈發普遍。雲服務商越來越多地將其產品耦合起來,確保客戶能夠滿足雲服務提出的種種使用要求。因此如果企業希望在容器類型當中做出選擇,至少應確保其符合多數CaaS供應商提出的OCI標準。

此外,由於CaaS並不怎麼強制限定能夠在容器中運行的服務類型,所以企業往往難以找到適當的工具與監控方案。請確保使用Scaylr等工具持續監控容器運行,目前大多數CaaS供應商要求用戶自行跟蹤容器狀態。

構成CaaS的基本要素

下面來看構成CaaS的各類組件。

(1) 容器註冊表

容器註冊表是容器鏡像存儲庫,我們可以將它視為容器的Maven庫。在將鏡像放入存儲庫後,容器管理系統即可提取鏡像並加以運行。

大多數開發者最熟悉的註冊表當數Docker Hub,可以使用這類公共註冊表,也可以使用某些本地內部版本。

(2) 容器管理

CaaS的容器管理與編排組件負責管理容器與容器集群。常見的容器管理工具包括Kubernetes與Docker Swarm。

首先,容器管理能夠自動執行容器部署。這類組件會創建新實例,監控這些實例以確保其正常啟動,並在發生問題時加以回滾。一旦應用程式順利啟動並開始運行,容器管理還可監控服務運行狀態。如果某個服務實例發生故障或無法響應,則容器管理組件將啟動新實例以接管相應負載。

容器管理組件還幫助實現負載均衡並控制容器之間的通信。例如,其僅允許客戶端應用程式及容器在完全啟動並運行之後,方可調用服務實例。

(3) 開發者工具

除了容器管理與註冊表,CaaS解決方案中還提供多種開發者工具。最常用的工具包括CLI或API。這些工具將幫助監控並管理容器實例。雖然很多開發者希望以自動化或腳本化方式處理大部分管理任務,但這些開發者工具還是可以幫助快速對實例進行規模伸縮、或即時修改配置與部署選項。

總結

多年以來,容器已經憑藉自身強大的特性進入主流市場,但CaaS供應商並沒有絲毫鬆懈。他們以更靈活的方式滿足著大多數開發團隊的需求,成功從PaaS手中奪下不少市場份額。但是,CaaS並不適合所有用戶、所有場景。換言之,它只是我們日益龐大的開發者空間中的另一款工具。究竟適不適合,請務必認真考量。

 

相關焦點

  • 2020軟體工程師必備的11項技能
    如果你有志於軟體開發職業或想找編程方面的工作,那麼本文的內容是你所需要知道的,並且可以用來提高競爭力。廢話少說,這裡列出了一些我個人認為每個程式設計師都應該知道的技能,不管他從事的是什麼工作。這些都是必要的技能,並且長期為你受用。任何在時間、金錢和努力方面的投資都會幫助你在整個職業生涯中獲得回報。
  • 機器學習開發的靈藥—Docker容器
    在本文中,AWS會嘗試說明為什麼您應該考慮使用 Docker 容器進行機器學習開發。在本文的前半部分,將討論在使用複雜的開源機器學習軟體時遇到的主要難題,以及採用容器將如何緩和這些問題。然後,將介紹如何設置基於 Docker 容器的開發環境,並演示如何使用該環境來協作和擴展集群上的工作負載。
  • 【鈦坦白】時速雲黃啟功:Docker容器雲平臺在企業中的落地實踐
    本文根據時速雲CEO黃啟功的分享整理。黃啟功是原IBM Bluemix RapidApps核心成員,國內最早一批從事Docker容器雲的實踐者,創立了國內第一家基於Kubernetes的容器雲平臺,在雲計算領域耕耘多年。
  • 大學生必備宗教知識,你了解多少?
    官微君準備了這些宗教知識一起來學習吧宗教是什麼宗教是人類社會發展到一定歷史階段出現的一種文化現象,屬於社會特殊意識形態。法律的規定1尊重和保護宗教信仰自由,是中國政府對待宗教問題的一項長期的基本政策。青年大學生,應該通過不斷學習,豐富科學文化知識,理性認識宗教,自覺樹立馬克思主義的科學世界觀。共青團員信仰宗教,團組織要對其進行批評教育,屢教不改的要給予紀律處分。
  • 10+知識圖譜開放下載,讓學習效率提升5倍!|「右腦」開發套餐
    今天,開發者社區整理了10+知識圖譜,供大家交流學習,持續更新中~超全知識圖譜合輯(附資料下載)1、容器服務知識圖譜Kubernetes 作為雲原生時代的「作業系統」,熟悉和使用它是每名用戶的必備技能。
  • Docker入門知識|Docker資源容器 與 VM虛擬機的區別與聯繫
    計算機系統軟體將所有硬體資源統一一處,再將這些資源化整為零分為多個小的計算區,每一個區都可以獨立運算。是不是人類聰明了,計算機也就被累得半死。正因為這樣的因素,編寫他的開發工具,GO-lang也因此功成名就。細說Docker。Docker 是世界領先的軟體容器平臺。開發人員利用 Docker 消除了協作編碼時「只在我的機器上可正常工作」的問題。
  • 開發漫談:千萬別說你不了解Docker!
    Docker:Build once,Run anywhere    為了更好的認識Docker,我們先來了解幾個必備詞彙:鏡像,容器和倉庫。Dockerfile中的每條命令都會在文件系統中創建一個新的層次結構,文件系統在這些層次上構建起來,鏡像就構建於這些聯合的文件系統之上。  Docker官方網站專門有一個頁面來存儲所有可用的鏡像,網址是:index.docker.io。
  • 智匯華雲|Docker容器網絡解析
    企業IT建設開始大規模使用Docker時,你會發現需要了解很多關於網絡的知識。作為目前最火的輕量級容器技術,Docker有很多令人稱道的功能,如Docker的鏡像管理。然而,Docker的建設也會碰到一系列的挑戰,根據調查報告指出,容器的網絡和安全實現成為容器雲平臺建設最主要的挑戰,當企業開始將重要的企業核心應用遷移至容器平臺,如果缺乏足夠的網絡和安全管控將會給業務上線帶來潛在威脅。因此,我們有必要深入了解Docker的網絡知識,以滿足更高的網絡需求。
  • 科普知識|廢塑料的這些知識你都了解嗎?
    什麼是塑料?塑料是一類高分子有機化合物,是經填充、增塑、著色等熱塑成形物料的總稱,屬一類高分子有機聚合物家族。它們的用途分別是:聚乙烯塑料(PE,包括HDPE和LDPE)常用作包裝材料;聚丙烯塑料(PP)常用作包裝材料及周轉箱等;聚苯乙烯塑料(PS)常用作泡沫襯墊及快餐飯盒等;聚氯乙烯塑料(PVC)常用作玩具物品、容器等;聚酯類塑料(PET)
  • 這些生活必備的金融小知識,你了解嗎
    但是,由於人們缺乏基本的金融知識,有關銀行卡、網上銀行、ATM機、基金投資等方面上當受騙的案例增多。推廣普及社會公眾金融知識,提高金融服務消費者風險意識和自我保護能力,對我國經濟又好又快發展、創造良好的社會環境具有重大意義。 以下這些日常必備的金融安全常識你知道嗎,為了你的財產安全與幸福生活,你有必要學習了解。
  • 容器雲管理平臺「精靈雲Ghostcloud」獲千萬級A+輪融資,將集中於...
    近日,36氪獲悉,精靈雲獲得千萬級A+輪融資,資方為四川省科技成果轉化股權投資基金和微風創投。 精靈雲Ghostcloud2015年成立於四川成都,是國內企業級容器雲PaaS服務商,36氪曾就其服務內容做過詳細的項目報導。與眾所周知的阿里雲、百度雲等面向個體用戶的公有雲不同,精靈雲專注於專業性更強,壁壘更高的私有雲。
  • 雲原生時代到來 KubeSphere容器平臺服務企業落地雲原生
    原標題:雲原生時代到來 KubeSphere容器平臺服務企業落地雲原生   「軟體定義是不可扭轉的趨勢,通過這種方式可以更好地做資源
  • 簡化容器管理
    根據Flexera最新的2020年雲計算狀態報告,容器的使用在全球企業中穩中有升,65%的組織表示他們使用Docker容器,58%的組織以某種方式使用Kubernetes編排系統。缺乏資源和專業知識經常被認為是使用容器構建和維護應用程式的主要挑戰。
  • 「雲原生怪圈」驅動的網易大規模容器化與 Service Mesh 實踐
    近日,2019攜程技術峰會在上海舉行,本屆峰會主題為「技速前進,與智攜行」,聚焦大數據與人工智慧、無線大前端、架構演進、雲原生四大熱門技術領域,網易雲首席架構師劉超受邀在雲原生分會場發表演講,為與會嘉賓分享了網易大規模容器化與Service Mesh的實踐經驗。
  • 容器雲概念持續升溫 人才成為競爭的關鍵
    容器雲概念持續升溫,人才成為競爭的關鍵,「2020容器雲職業技能大賽」的推出正是為了培養容器雲人才、鍛鍊團隊協作能力,助力容器雲進一步落地。順應容器雲趨勢,培養開源人才隊伍本次大賽由108位來自銀行、保險、證券、電信、製造等行業的企業IT管理精英倡導發起,由中國企業級IT社區twt與開源軟體解決方案提供商紅帽聯合主辦。
  • 引領雲原生|華為雲Volcano容器批量計算正式成為CNCF官方項目
    日前,CNCF(雲原生計算基金會)正式接納由華為雲貢獻的容器批量計算項目Volcano,迎來CNCF首個容器批量計算項目。Volcano 項目的加入,將CNCF的雲原生版圖進一步擴展至AI、大數據、基因等批量計算領域,為構建「雲原生批量計算平臺」奠定了基礎。
  • 華為雲Volcano容器批量計算正式成為CNCF官方項目
    日前,CNCF(雲原生計算基金會)正式接納由華為雲貢獻的容器批量計算項目Volcano,迎來CNCF首個容器批量計算項目。Volcano 項目的加入,將CNCF的雲原生版圖進一步擴展至AI、大數據、基因等批量計算領域,為構建「雲原生批量計算平臺」奠定了基礎。
  • FreeFlow: 基於軟體的虛擬RDMA容器雲網絡(上)
    在本文中,我們介紹了FreeFlow,一個為容器雲設計的基於軟體的RDMA虛擬化框架。FreeFlow純粹使用基於軟體的方法,利用商用RDMA NICs實現了虛擬RDMA網絡。與現有的RDMA虛擬化解決方案不同,FreeFlow完全滿足來自雲環境的需求,例如多租戶的隔離、容器遷移的可移植性 、以及控制和數據平面策略的可控制性。
  • 關於廢塑料的這些知識你都有了解嗎?
    它們的用途分別是:聚乙烯塑料(PE,包括HDPE和LDPE)常用作包裝材料;聚丙烯塑料(PP)常用作包裝材料及周轉箱等;聚苯乙烯塑料(PS)常用作泡沫襯墊及快餐飯盒等;聚氯乙烯塑料(PVC)常用作玩具物品、容器等;聚酯類塑料(PET)
  • 多功能加速落地雲原生KubeSphere容器平臺推進企業數位化轉型
    隨著數位化轉型進入2.0時代,眾所周知的Kubernetes已經成為了雲原生落地的事實標準,為企業應對業務模式非常頻繁的變化提供了極大便利,從原來的雲模式變成雲原生模式,可以實現雲原生應用快速開發、交付。