優秀的雲計算工程師須要學什麼?雲計算Docker學習路線

雲計算工程師要學什麼?隨着互聯網的快速發展,雲計算這個詞你們並不陌生,可是雲計算到底是作什麼的,想要從事雲計算要學習什麼,不少都不知道,那麼今天就給你們講一下雲計算。php

雲計算是基於互聯網的相關服務的增長、使用和交付模式,一般涉及經過互聯網來提供動態易擴展且常常是虛擬化的資源。雲是網絡、互聯網的一種比喻說法。過去在圖中每每用雲來表示電信網,後來也用來表示互聯網和底層基礎設施的抽象。所以,雲計算甚至可讓你體驗每秒10萬億次的運算能力,擁有這麼強大的計算能力能夠模擬核爆炸、預測氣候變化和市場發展趨勢。用戶經過電腦、筆記本、手機等方式接入數據中心,按本身的需求進行運算。html

對雲計算的定義有多種說法。對於到底什麼是雲計算,至少能夠找到100種解釋。下面給你們分享下雲計算Docker學習路線資料:java

容器實際上是一種沙盒技術。顧名思義,沙盒就是可以像一個集裝箱同樣,把你的應用"裝"起來的技術。這樣,應用與應用之間,就由於有了邊界而不至於相互干擾;而被裝進集裝箱的應用,也能夠被方便地搬來搬去,這實際上是 PaaS 最理想的狀態。python

問題:容器的本質究竟是什麼?mysql

容器的本質是進程。容器就是將來雲計算系統中的進程;容器鏡像就是這個系統裏的".exe"安裝包。Kubernetes 就是操做系統!nginx

容器程序員

web容器 web中間件web

html (nginx apache )sql

php (php模塊 php-fpm)docker

java(tomcat weblogic Resin JBoss WebSphere )

python (uwsgi)

nginx+tomcat+jdk weblogic

nginx+php-fpm

nginx+uwsgi+django

mycat mysql-proxy 數據庫中間件

輕量級虛擬機 全部容器共享宿主機內核

秒級啓動

100容器

傳統虛擬機 每臺虛擬機擁有一個獨立的內核

分鐘級別

10臺GUEST OS

運維

1.rd開發產品(須要配置開發環境)lamp

2.測試(須要配置測試環境)

3.op上線(須要線上環境)

開發 測試 運維 開戰

1. rd開發產品(須要在docker容器裏配置開發環境)

2. 把容器打包成鏡像交給運維,運維上線

Docker是Docker.Inc公司開源的一個基於輕量級虛擬化技術的容器引擎項目,整個項目基於Go語言開發,並聽從Apache 2.0協議。經過分層鏡像標準化和內核虛擬化技術,Docker使得應用開發者和運維工程師能夠以統一的方式跨平臺發佈應用,而且以幾乎沒有額外開銷的狀況下提供資源隔離的應用運行環境。

Docker 是一個開源工具,它可讓建立和管理 Linux 容器變得簡單。容器就像是輕量級的虛擬機,而且可

以以毫秒級的速度來啓動或中止。Docker 幫助系統管理員和程序員在容器中開發應用程序,而且能夠擴展到成千上萬的節點。

Docker跟原有的工具區別:

傳統的部署模式是:安裝(包管理工具或者源碼包編譯)->配置->運行;

Docker的部署模式是:複製->運行。

開發rd:

開發環境

運維op:

線上環境

容器和 VM 的主要區別:

容器提供了基於進程的隔離,而虛擬機提供了資源的徹底隔離。虛擬機可能須要一分鐘來啓動,而容器只須要一秒鐘或更短。容器使用宿主操做系統的內核,而虛擬機使用獨立的內核。Docker 的侷限性之一是,它只能用在 64 位的操做系統上。

Docker對服務器端開發/部署帶來的變化:

實現更輕量級的虛擬化,方便快速部署

對於部署來講能夠極大的減小部署的時間成本和人力成本

Docker支持將應用打包進一個能夠移植的容器中,從新定義了應用開發,測試,部署上線的過程,核心理念就

是 Build once, Run anywhere

1)標準化應用發佈,docker容器包含了運行環境和可執行程序,能夠跨平臺和主機使用;

2)節約時間,快速部署和啓動,VM啓動通常是分鐘級,docker容器啓動是秒級;

3)方便構建基於SOA架構或微服務架構的系統,經過服務編排,更好的鬆耦合;

4)節約成本,之前一個虛擬機至少須要幾個G的磁盤空間,docker容器能夠減小到MB級;

5)方便持續集成,經過與代碼進行關聯使持續集成很是方便;

6)能夠做爲集羣系統的輕量主機或節點,在IaaS平臺上,已經出現了CaaS,經過容器替代原來的主機。

ci/cd

Docker 優點:

一、交付物標準化

Docker是軟件工程領域的"標準化"交付組件,最恰到好處的類比是"集裝箱"。

集裝箱將零散、不易搬運的大量物品封裝成一個總體,集裝箱更重要的意義在於它提供了一種通用的封裝貨物的

標準,卡車、火車、貨輪、橋吊等運輸或搬運工具採用此標準,隧道、橋樑等也採用此標準。以集裝箱爲中心的

標準化設計大大提升了物流體系的運行效率。

傳統的軟件交付物包括:應用程序、依賴軟件安裝包、配置說明文檔、安裝文檔、上線文檔等非標準化組件。

Docker的標準化交付物稱爲"鏡像",它包含了應用程序及其所依賴的運行環境,大大簡化了應用交付的模式。

二、一次構建,屢次交付

相似於集裝箱的"一次裝箱,屢次運輸",Docker鏡像能夠作到"一次構建,屢次交付"。當涉及到應用程序多副本

部署或者應用程序遷移時,更能體現Docker的價值。

三、應用隔離

集裝箱能夠有效作到貨物之間的隔離,使化學物品和食品能夠堆砌在一塊兒運輸。Docker能夠隔離不一樣應用程序

之間的相互影響,可是比虛擬機開銷更小。

總之,容器技術部署速度快,開發、測試更敏捷;提升系統利用率,下降資源成本。

Docker的度量:

Docker是利用容器來實現的一種輕量級的虛擬技術,從而在保證隔離性的同時達到節省資源的目的。Docker的

可移植性可讓它一次創建,處處運行。Docker的度量能夠從如下四個方面進行:

1)隔離性

Docker採用libcontainer做爲默認容器,代替了之前的LXC。libcontainer的隔離性主要是經過內核的命名空

間來實現 的,有pid、net、ipc、mnt、uts命令空間,將容器的進程、網絡、消息、文件系統和主機名進行隔

離。

2)可度量性

Docker主要經過cgroups控制組來控制資源的度量和分配。

3)移植性

Docker利用AUFS來實現對容器的快速更新。

AUFS是一種支持將不一樣目錄掛載到同一個虛擬文件系統下的文件系統,支持對每一個目錄的讀寫權限管理。AUFS具備層

的概念,每一次修改都是在已有的只寫層進行增量修改,修改的內容將造成新的文件層,不影響原有的層。

4)安全性

安全性能夠分爲容器內部之間的安全性;容器與託管主機之間的安全性。

容器內部之間的安全性主要是經過命名空間和cgroups來保證的。

容器與託管主機之間的安全性主要是經過內核能力機制的控制,能夠防止Docker非法入侵託管主機。

Docker容器使用AUFS做爲文件系統,有以下優點:

1)節省存儲空間

多個容器能夠共享同一個基礎鏡像存儲。

2)快速部署

若是部署多個來自同一個基礎鏡像的容器時,能夠避免屢次複製操做。

3)升級方便

升級一個基礎鏡像便可影響到全部基於它的容器。

4)增量修改

能夠在不改變基礎鏡像的同時修改其目錄的文件,全部的更高都發生在最上層的寫操做層,增長了基礎鏡像的可共享內容。

相關文章
相關標籤/搜索