微服務:淺議微服務(Microservices)與docker關係

什麼是微服務

微服務應用的一個最大的優點是,它們往往比傳統的應用程序更有效地利用計算資源。這是因為它們通過擴展組件來處理功能瓶頸問題。這樣一來,開發人員只需要為額外的組件部署計算資源,而不需要部署一個完整的應用程序的全新迭代。最終的結果是有更多的資源可以提供給其它任務。• 一種軟件架構模式

• 複雜應用解耦為小而眾的服務

• 各服務精而專

• 服務間通信通過API完成

微服務:淺議微服務(Microservices)與docker關係

微服務應用程序的另一個好處是,它們更快且更容易更新。當開發者對一個傳統的單體應用程序進行變更時,他們必須做詳細的QA測試,以確保變更不會影響其他特性或功能。但有了微服務,開發者可以更新應用程序的單個組件,而不會影響其他的部分。測試微服務應用程序仍然是必需的,但它更容易識別和隔離問題,從而加快開發速度並支持DevOps和持續應用程序開發。

第三個好處是,微服務架構有助於新興的雲服務,如事件驅動計算。類似AWS Lambda這樣的功能讓開發人員能夠編寫代碼處於休眠狀態,直到應用程序事件觸發。事件處理時才需要使用計算資源,而企業只需要為每次事件,而不是固定數目的計算實例支付。

擴展立方模型(Scale Cube)

微服務:淺議微服務(Microservices)與docker關係

Y軸 功能解耦 通過分解 不同模塊擴展

X軸 水平副本 通過副本擴展

Z軸 數據分區 通過分解 相似內容擴展

Docker是什麼

Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後發佈到任何流行的 Linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口(類似 iPhone 的 app)。幾乎沒有性能開銷,可以很容易地在機器和數據中心中運行。最重要的是,他們不依賴於任何語言、框架包括系統。

微服務:淺議微服務(Microservices)與docker關係

Docker包含兩方面技術

-鏡像技術

打破“代碼即應用”的觀念

從系統環境開始,自底至上打包應用

微服務:淺議微服務(Microservices)與docker關係

微服務:淺議微服務(Microservices)與docker關係

微服務和Docker

Dev

開發簡單有效的模塊

配置是一個運行時的限制

不再是異常複雜的應用

new WebServer().start(8080);

Ops

管理硬件設施

監控&反饋

不是應用的執行細節

結合擴展立方(Scale Cube)

微服務:淺議微服務(Microservices)與docker關係

Docker化實踐

本質:進程隔離,資源管理

• App-Centric的體現

• Single-Process的真實含義

微服務:淺議微服務(Microservices)與docker關係

Docker化實踐——進程隔離

微服務:淺議微服務(Microservices)與docker關係

Dockerfile、Docker鏡像與Docker容器

微服務:淺議微服務(Microservices)與docker關係

容器內技術棧:

1.單進程理念

2.不存在傳統的init進程(全局PID=1)

——dockerinit與init進程的區別

3.缺少基本的服務進程

——cron

——rsyslogd等

4.與內核進程通信能力薄弱(ipc命名空間隔離)

導致遺留系統Docker化存在壓力。 重構?非重構下的最佳實踐?

Docker化實踐——日誌管理

原理:stdout&stderr

傳統模式:

-stdout&stderr

-磁盤日誌文件

-日誌服務器

日誌持久化磁盤的弊端

-移植性

-部署複雜度

日誌Docker層面管理

-json-file

-syslog(並非應用調用syslog)

-fluetd

微服務:淺議微服務(Microservices)與docker關係

以syslog為例

微服務:淺議微服務(Microservices)與docker關係

Docker化實踐——日誌管理

微服務:淺議微服務(Microservices)與docker關係

Docker化實踐——配置管理

傳統方式:配置文件

• Docker容器的無狀態

• 配置文件的狀態性

• Docker容器依賴配置文件

• 額外的配置管理需求

• 非自動化

• 非標準化

• 沿用傳統模式——配置文件

——使用掛載volume的方式

——配置文件與宿主機耦合

• 採用環境變量方式

——打包配置進入Docker鏡像

——打包配置進入Docker容器

——完美支持編排工具compose

• 環境變量與配置文件共存

——修改Docker鏡像執行入口

——使用環境變量替換配置文件

原文地址:https://blog.csdn.net/u010935342/article/details/55252573

所有權歸屬原著者


分享到:


相關文章: