A. 什麼是容器雲
容器技術是近幾年雲行業發展中不可缺少的一環。Docker和k8s的大熱極大可能會推動雲計算PAAS層的完善和普及。
容器(Container)是一種更輕量級,更靈活的虛擬化處理方式,它將一個應用程序所需的一切打包在一起。
容器包括所有代碼,各種依賴甚至操作系統,這讓應用程序幾乎在任何地方都可以運行。因此它的誕生,解決了一個重要問題:如何確保應用程序從一個環境移動到另一個環境的正確運行。它只是虛擬了操作系統,而不像虛擬機一樣去虛擬底層計算機。
Docker 容器是一個開源的應用容器引擎,讓開發者可以以統一的方式打包他們的應用以及依賴包到一個可移植的容器中,然後發布到任何安裝了docker引擎的伺服器上(包括流行的Linux機器、windows機器),也可以實現虛擬化。
容器是完全使用沙箱機制,相互之間不會有任何介面(類似 iPhone 的 app)。幾乎沒有性能開銷,可以很容易地在機器和數據中心中運行。最重要的是,他們不依賴於任何語言、框架包括系統。
定期滲透測試,安全審計;
盡量採用image的正規鏡像來源,相對於傳統安全,容器安全受質疑很大程度上是在於鏡像的維護及升級,因此在鏡像源頭保證安全和及時更新;
及時升級容器服務,比如採用rollingupdate的方式對跑服務的容器進行升級等方式。
Docker容器與其他的容器技術都是大致類似的。但是,Docker在一個單一的容器內捆綁了關鍵的應用程序組件,這也就讓這容器可以在不同平台和雲計算之間實現便攜性。其結果就是,Docker就成為了需要實現跨多個不同環境運行的應用程序的理想容器技術選擇。
Docker還可以讓使用微服務的應用程序得益,所謂微服務就是把應用程序分解成為專門開發的更小服務。 這些服務使用通用的RESTAPI來進行交互。使用完全封裝Docker容器的開發人員可以針對採用微服務的應用程序開發出一個更為高效的分發模式。
B. 雲原生應用是什麼它的特點有哪些
雲並非把原先在物理伺服器上跑的東西放到虛擬機里跑,真正的雲化不僅是基礎設施和平台的事情,應用也要做出改變,改變傳統的做法,實現雲化的應用——應用的架構、應用的開發方式、應用部署和維護技術都要做出改變,真正的發揮雲的彈性、動態調度、自動伸縮……一些傳統IT所不具備的能力。這里說的「雲化的應用」也就是「雲原生應用」。雲原生架構和雲原生應用所涉及的技術很多,如容器技術、微服務等,
而雲原生應用最大的特點就是可以迅速部署新業務。在企業里,提供新的應用程序環境及部署軟體新版本通常所需時間以日、周甚至以月計算。這種速度嚴重限制了軟體發布所能承受的風險,因為犯錯及改錯也需要花費同樣的時間成本,競爭優勢就會由此產生。
所以雲原生不是一個產品,而是一套技術體系和一套方法論,而數字化轉型是思想先行,從內到外的整體變革。雲原生包括DevOps、持續交付、微服務、敏捷基礎設施、康威定律等,以及根據商業能力對公司進行重組的能力,既包含技術、也包含管理,可以說是一系列雲技術和企業管理方法的集合,通過實踐及與其他工具相結合更好地幫助用戶實現數字化轉型。
CNCF(雲原生計算基金會)認為雲原生系統需包含的屬性:
1、容器化封裝:以容器為基礎,提高整體開發水平,形成代碼和組件重用,簡化雲原生應用程序的維護。在容器中運行應用程序和進程,並作為應用程序部署的獨立單元,實現高水平資源隔離。
2、自動化管理:統一調度和管理中心,從根本上提高系統和資源利用率,同時降低運維成本。
3、面向微服務:通過松耦合方式,提升應用程序的整體敏捷性和可維護性。
C. 專訪阿里雲資深專家易立
專訪阿里雲資深專家易立
集裝箱曾經改變全球貿易的供應鏈,Docker也將改變軟體的供應流程。
4月26日的雲棲大會·南京峰會上,阿里雲資深專家湯子楠發布了飛天專有雲敏捷版(Apsara Stack Agility),此前美國Docker公司首席執行官Ben Golub 在曾在DockerCon 2017上宣布過這個消息。
這是阿里雲和Docker公司合作之後的產物,是國內第一個支持Docker官方企業版(Enterprise Edition, EE)的容器類產品,包含從容器的創建到運行以及鏡像的全生命周期管理,可以部署在企業自有數據中心環境內,特別適用於企業專有雲及混合雲場景。
據阿里雲方面介紹,阿里巴巴集團內部運用容器技術已有六年時間。2016年,阿里電商核心應用的基礎平台全部轉向Docker,並通過天貓雙11進行了技術驗證。
容器技術領域,最為著名的公司,無疑為Docker,後者也是一個容器管理引擎。與傳統虛擬機相比,容器技術是操作系統級別的虛擬化技術,更為輕量。36氪曾經介紹過,Docker則是在容器技術的基礎上額外提供了標准鏡像格式。Docker就像被標准化的容器,相當於雲計算領域的“集裝箱”,可以承載後端的各種技術。
自從2013年開源的Docker項目發布之後,其以驚人的速度被企業採用,已成為容器運行的事實標准。據Docker公司公布的數據,截止目前為止,Docker Hub上的鏡像下載量,已經達到120億次,去年6月份這個數據是60億;鏡像總量超過了90萬,去年只有40萬。
國外許多大公司都積極擁抱Docker,包括AWS、IBM、HPE和微軟等。國內網易、騰訊、阿里等主流雲計算廠商,都提供基於Docker的容器服務。2015年,阿里雲就在Docker社區版的基礎上推出了阿里雲容器服務,華大基因、上海證券交易所、中信集團、ofo共享單車、深圳碼隆科技等多家企業均是容器服務的客戶。去年10月,Docker與阿里雲達成合作,將通過後者落地中國。
阿里雲非常看好Docker的前景,認為Docker也將像集裝箱一樣,是改變世界那隻箱子。就像集裝箱改變全球貿易的供應鏈一樣,Docker將改變軟體的供應流程。根據阿里雲去年面向技術人員所做的調查,其中超過87%的人表示,有意願現在使用或者可能在未來六個月內使用Docker的架構。
據阿里雲資深專家易立介紹,Docker技術有三方面的優勢。
首先是敏捷。由於Docker的輕量級,就意味著同一硬體上可以運行更多的應用,它可以將系統利用率提高5-10倍;而且因為輕量,它的啟動速度非常快,當公司業務出現峰值時,可以通過容器快速部署。容器技術也能實現產品的快速迭代,據調查,Docker對軟體版本發布頻率有高達13倍的平均提升。
然後是可移植性。在傳統架構下,開發人員交付應用之後,運維人員需要部署合適的運行平台。兩個環境間的差異往往會導致,應用在測試環境下正常運行,上線之後卻經常會出問題。Docker則能把應用和應用環境一同打包,開發完成之後,運維人員可以直接使用這個容器來部署代碼。
經過容器化的應用可以部署在任何地方,就可以避免原來因為環境差異帶來的問題,同時也可以無縫遷移雲,不用鎖定某個雲服務商。用戶在自己的筆記本電腦上開發了一個應用,容器化之後可以不加修改地發布到雲上。
第三是可控性。容器使得大規模互聯網化運維變得可能,原來,企業的IT系統用久了,經過多次版本更新,裡面的東西變得不可知,一旦出現問題需要花大量的時間排查。如果用容器化的方式交付應用,則線上每一個版本都可以復現,所有的東西都可以回溯。一旦原來的IT人員離職了,其他人也更容易理解應用程序是如何創建和工作的。
此外,易立指出,促進了開發和運維的一體化之外,Docker還有利於企業應用的現代化改進。傳統應用往往是單體架構,如企業原有的CRM、ERP等大型應用,但隨著新需求增加,更新和修復大型這類應用變得越來越困難;為此出現了微服務架構,其提倡將大應用拆解分一堆小服務,彼此協調提供功能,單個小服務可以獨立部署、測試和運行。雲原生的企業應用的架構一般是後者,Docker這套執行環境就非常適配雲原生應用。
根據阿里雲去年的調查,技術人員使用或考慮使用Docker,大部分出於上述原因考慮。
雖然容器技術成為主流,將會是未來的趨勢,但目前在國內仍未大規模普及。企業要使用該架構,依然需要付出一定的遷移和學習成本,可能還會有一定的安全考慮,這也是影響Docker普及的原因。因此,Docker推出了企業版處理類似問題。
據易立介紹,使用Docker架構需要對企業應用容器化,像剛剛說的,雲原生應用與Docker非常契合,但不可能所有的應用都是新寫的,有的企業應用屬於傳統架構、沒有微服務,需要對現有系統做改造和遷移。
因此,針對傳統的企業應用,Docker推出了傳統應用遷移技術,可以一鍵轉換虛擬機鏡像,將原來的企業化應用轉化為可以用容器化的方式交付和運維的應用。企業可以有兩種路徑,可以先將整個大應用容器化,再逐漸轉化成微服務架構;也可以先將企業拆成微服務架構,然後容器化。
此前,之前Docker企業版未落地中國,社區版由開源社區來維護,每個月有個更新,三個月發布一次穩定版,這樣的好處是版本演進速度很快,但對企業而言卻帶來很大的運維壓力,需要經常大規模對Docker版本進行修復和升級,企業需要有極強的軟體研發能力,並不是所有的企業IT部門都有將這種技術產品化的能力。
全球有不少公開的'Docker鏡像庫,其中Docker Hub是最大的公開倉庫,開發者可以在上面共享和拉取Docker鏡像,生成容器化的應用。但誰都可以往倉庫推送鏡像,就意味著無法保證安全風險。
針對此,Docker推出了Docker Store,上面的容器鏡像全都由Docker認證,確保安全性,包括通過安全掃描,確定沒有不合規的代碼;同時通過簽名“密封”鏡像,確保其不可篡改。這就有點像一個容器版的Apps Store,裡面所有的鏡像都通過Docker審核。
總而言之,Docker企業版面向企業的,是一個完整的場景,而不是一個技術。它有增強的編排能力,有完整的控制台界面,裡面的操作都可以安全地使用,它在社區版上增加了面向企業用戶的管理和安全能力,同時提供了經過認證的操作系統、容器和插件。中國Docker企業版的技術支持,將會由阿里雲和Docker聯合提供。
說到阿里雲跟Docker的合作,包括三個層面:Docker會藉助阿里雲的雲基礎架構進入中國,後者將為Docker Hub提供中國運營的基礎服務;阿里雲會推動Docker企業版的落地,聯合提供銷售和技術支持;阿里雲成為Docker認證的雲平台,Docker的認證插件和認證容器會驗證在阿里雲上的穩定可運行性,確保客戶在阿里雲上使用Docker的體驗。
目前阿里雲提供公共雲版、飛天專有雲版和飛天專有雲敏捷版三種Docker的部署形態,客戶也可以選擇在公共雲上使用,也可以自己部署。
自從容器技術面世之後,其生態內也出現了不少創業公司,國外涌現不少專注容器基礎服務、網路、安全、存儲和監控等某一細分領域的創業公司;在國內,除了阿里雲以外,也有大批圍繞Docker技術提供服務的創業公司,提供雲端的快速部署和管理能力,比如36氪報道過的時速雲、數人雲、靈雀雲、才雲科技、輕元科技。阿里雲整合了Docker企業版的飛天敏捷版,跟他們可能存在一定競爭關系。
才雲科技CEO張鑫曾經說過,Docker本身一定不是核心競爭力,而真正的核心是如何能讓用戶或企業“無痛”地從非Docker的環境遷移至Docker化的世界,以及如何幫助用戶在新的Docker化的世界裡建立一整套的開發運維體系。
阿里雲也表示,企業需要的,並不僅是Docker這個技術,而是一整套應用的解決方案。用戶最終選擇誰,取決於誰的服務更完整更好。不過,他們認為,國內容器市場還在成長階段,他們和這些公司應該是在共同培育市場。
D. 容器雲部署之後如何應用
第一,當容器雲部署之後較為常見的就是微服務的應用,這種情況下容器是允許開發人員選擇合適的服務工具或者技術棧的。在該部署作業中應該注意的就是要想辦法隔離服務以外的潛在沖突,而且還應該重視的就是地獄式矩陣依賴。
第二,其實在進行容器雲部署之後傳統應用也是很常見的,這方面要重視成本的控制。而且大多數情況下都是通過大規模的單體應用來增加容易隔離的安全性和移植特點,這些都是在部署的時候應該考慮的事情。
第三,還有就是要注意容器雲部署之後的持續集成和部署,這方面只要是管道自動化和應用部署以及交付速度等,當重視這些方面之後才能確保完成部署工作且通過專業的測試,而且作為專業的IT團隊還應該可以持續集成新的代碼才行。
這里需要專業的開發團隊,可以了解一下時速雲的案例,他們服務過500+的中大型客戶,通過雲原生技術幫助企業實現數字化轉型,不僅涵蓋容器雲 PaaS、DevOps、微服務、ServiceMesh、API 網關等核心雲原生產品,還可以為企業提供數據開發、數據治理、數據資產、數據服務等數據能力。
E. 亞馬遜雲科技容器可以應用在哪些方面
大概有三個方面,一個是在混合環境中部署,在混合環境中管理Kubernetes集群和應用程序,並在數據中心運行Kubernetes。另一個是機器學習(ML)建模工作流,可以使用由GPU提供支持的最新Amazon Elastic Compute Cloud(EC2)實例高效地運行分布式訓練作業。還有一個是大數據,Amazon EMR與EKS集成,因此,可以直接在Kubernetes上運行Apache Spark、Hadoop和其他大數據應用程序。這可以自動預置和管理資源,以便進行數據處理、分析和機器學習。