第五章 雲原生與容器技術

第一節 獨角獸成功祕訣

成功祕訣python

·Speed of innovation-天下武功,惟快不破docker

·Always-available services-隨時、隨地可用ubuntu

·Web scale-從0到1,快速擴展後端

·Mobile-centric user experiences-移動爲王又快又好!服務器

第二節 雲原生和現代應用12範式

現代應用的十二範式(The Twelve-Factor App)網絡

1.基準代碼:一份基準代碼,多份部署。基準代碼和應用之間老是保持一一對應的關係。全部部署的基準代碼相同,但每份部署可使用其不一樣的版本。架構

2.依賴:顯式聲明依賴關係。應用程序必定經過依賴清單,確切地聲明全部依賴項。併發

3.配置:在環境中存儲配置。將應用的配置存儲於環境變量中。環境變量能夠很是方便地在不一樣的部署間作修改,卻不動一行代碼。app

4.後端服務:把後端服務看成附加資源。應用不會區別對待本地或第三方服務。對應用程序而言,兩種都是附加資源。運維

5.構建,發佈,運行:嚴格區分構建,發佈,運行這三個步驟。

6.進程:以一個或多個無狀態進程運行應用。應用的進程必須無狀態且無共享。

7.端口綁定:經過端口綁定提供服務。應用徹底自我加載而不依賴任何網絡服務器就能夠建立一個面向網絡的服務。

8.併發:經過進程模型進行擴展。開發人員能夠運用這個模型去設計應用架構,將不一樣工做分配給不一樣的進程類型。

9.易處理:快速啓動和優雅終止可最大化健壯性。應用的進程是可支配的,意思是說它們能夠瞬間開啓或中止。

10.開發環境與線上環境等價:儘量保持開發、預發佈、線上環境相同。應用想要作到持續部署就必須縮小本地與線上差別。

11.日誌:把日誌看成事件流。應用自己考慮存儲本身的輸出流。不該該試圖去寫或者管理日誌文件。

12.管理進程:後臺管理任務看成一次性進程運行。一次性管理進程應該和正常的常駐進程使用一樣的環境。

30848718

雲原生

·Cloud Native Application

Cloud Native describes the patterns of high performing organizations delivering

software faster,consistently and reliably at scale.

Continuous delivery,DevOps,and Microservices label the why,how and what of

the cloud natives.

·雲原生應用

雲原生描述了高效組織的模式:可快速的,一致的和可靠的規模化交付軟件。

·爲何:持續交付

·作什麼:微服務

·如何作:DevOps

30889312

c9ff8f12-14f3-4345-8f5e-14e06e4bf717

持續集成

ecd5b2a4-2278-4dcc-83b0-3691fba2ec97


微服務

31758506-5ba8-46ab-b601-9aaec02d77f7

容器

ab6be2af-d70a-41c5-9c70-17c5783104ce

第三節 docker成才史

30951234

30979375

31002312

第四節 容器技術基礎

容器技術基礎

Docker包含兩方面的技術

·容器技術

·有效分配與管理理物理理資源

·實現資源隔離

·鏡像技術

·打破「代碼即應用」的觀念

·從系統環境開始,自下而上打包應用

31058328

31087640

Docker 組件架構-Docker Engine分析

·Docker Engine是一個Client-Server模型的應用

·Docker Engine 包括如下幾個組件

·服務端(dockerd)

·RESTAPI

·命令行行行工工具(docker cli)

·用戶可使用用命令行工具來調用API從而實現與服務端的交互,也能夠經過接調用API來完成與服務端的交互

5907c0ed-4f53-42e9-b0bf-1b0dae890e45

Docker 組件架構-組件清單

a642b7fc-8052-4875-91e4-522490f834bd

Docker 文件系統和Dockerfile

ccd7a133-a51c-4461-8d93-02ae436cfc34

FROM ubuntu:15.04

COPY./app

RUN make /app

CMD python /app/app.py

Dockerfile

Docker 網絡模式

31240125

Docker 存儲驅動對比

fd98f434-cfb1-4a2d-bc3b-557181cd98d4

31271609

Docker 經常使用命令說明

#查看docker版本

docker version

#顯示docker系統的信息

docker info

#日誌信息docker logs

#故障檢查

service docker status

#啓動關閉

docker sudo service docker start | stop

#查看當前運行的容器

docker ps

#查看所有容器

docker ps -a

#查看所有容器的id和信息

docker ps -a -q

#查看所有容器佔用的空間

docker ps -as

#查看一個正在運行容器進程,支持ps命令參數

docker top

#查看容器的示例id

sudo docker inspect -f {{.ld}}' [id]

#檢查鏡像或者容器的參數,默認返回JSON格式

docker inspect

第五節 容器編排與調度

容器編排與調度

·基於容器的應用通常會採用微服務架構。在這種架構下,應用被劃分爲不一樣的組件,並以服務的形式運行在各自的容器中,經過API對外提供服務。爲了保證應用的高可用,每一個組件均可能會運行多個相同的容器。這些容器會組成集羣,集羣中的容器會根據業務須要被動態地建立、遷移和銷燬。

·你們能夠看到,這樣一個基於微服務架構的應用系統其實是一個動態的可伸縮的系統。這對咱們的部署環境提出了新的要求,咱們須要有一種高效的方法來管理容器集羣。而這,就是容器編排引擎要乾的工做。

·所謂編排(orchestration),一般包括容器管理、調度、集羣定義和服務發現等。經過容器編排引擎,容器被有機的組合成微服務應用,實現業務需求。

31436046

Docker 編排-Compose & Swarm

420d01b8-1b79-48a9-9b35-db05a650940d

Kubernetes

Borg-Google的大規模集羣管理系統,是k8s理論基礎

5aa12e36-20f0-490a-bdd9-ca8ef44e5f4d

a1e4da4e-0ee8-4daf-849e-24e072fdbd0a

Pod

Container(容器)

Label(標籤)

Replication Controller(複製控制器)

Service(服務)

Node(節點)

Kubernetes Master(K8s 主節點)

CNCF 雲原生計算基金會

  CNCF,全稱Cloud Native Computing Foundation(雲原生計算基金會),口號是堅持和整合開源技術來編排容器做爲微服務架構的一部分,其做爲致力於雲原生應用推廣和普及的一支重要力量,不論您是雲原生應用的開發者、管理者仍是研究人員都有必要了解。

  CNCF做爲一個廠商中立的基金會,致力於GitHub上的快速成長的開源技術的推廣,如Kubernetes、Prometheus、Envoy等,幫助開發人員更快更好的構建出色的產品。

eee93786-b217-4f82-a3f9-7e67b0da4635

Docker與DevOps

692a5ba9-f332-4179-9bc0-85f17e054680

將應用交付的標準統一到容器上,以標準交付件的形式,實現跨階段的標準化發佈流程。

以容器爲核心的交付和運維,確保一致的交付件,貫穿開發、測試、運維場景。

相關文章
相關標籤/搜索