国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

宜信開源|一個實例解析PaaS平臺LAIN的9大殺手級功能

Apollo / 832人閱讀

摘要:正式上線已經大約兩年,基本已經成熟,為宜信大數據創新中心各個團隊提供了統一的測試和生產環境,簡化了服務的部署與上線流程,也降低了運維人員對系統管理的復雜度。地址白皮書原文發布于高可用架構作者宜信大數據創新中心團隊王超一

一、基于Docker的PaaS平臺LAIN

在金融的場景下,LAIN 是為解放各個團隊和業務線的生產力而設計的一個云平臺。LAIN 正式上線已經大約兩年,基本已經成熟,為宜信大數據創新中心各個團隊提供了統一的測試和生產環境,簡化了服務的部署與上線流程,也降低了運維人員對系統管理的復雜度。

LAIN 規范了一個應用的開發、測試、上線工作流,提供了為應用做的容器編排、權限控制、SDN、流量管理、監控報警、備份、日志等 devops 問題的整體解決方案。(擴展閱讀:宜信開源|詳解PaaS平臺LAIN的功能和架構)

在 LAIN 上,應用是一個基本的概念,某個應用的開發者只需要定義一個 lain.yaml 即可定義應用的編譯和運行方式,對應用代碼侵入性很低。LAIN 基于容器技術,面向多樣化的技術棧,并且天然隔離系統和應用的依賴。

當 LAIN 用戶創建一個應用(服務)時,可以到 LAIN 上注冊該應用,當前的用戶自動成為了該應用的維護者,擁有了進一步操作該應用的權限。構建應用的環境需要 docker 和 lain 命令行工具,為了方便,我們創建了一個 vagrant box 即 lain-box. 在構建應用時,除了工程代碼外,還需要一個 Docker 鏡像作為基礎鏡像,即編譯的環境。如果是二進制的工程,如 golang,則可以在運行時換掉一個底,否則會使用 build 鏡像為 release 鏡像。準備好鏡像和編譯/運行的腳本后,就可以編輯 lain.yaml 了。

具體來說,lain.yaml 主要做了如下四件事:

1、應用名稱的確定,體現一個應用的邊界

2、應用的基礎技術棧,即編譯和運行的鏡像

3、構建過程(如何編譯)

4、微服務拆分及服務內部配置(如何運行、運維)

關于第4點,LAIN 上有一個 Proc 的概念,即每個應用都有一個或多個 Proc,Proc 在應用內有唯一的名字和類型,Proc 在底層對應于一組容器,一個應用之間的各個 Proc 的各個容器的網絡是互通的,所以應用就是可以互相信任的幾個 Proc,對外表現為現實中的某項功能。Proc 的類型是 LAIN 內置的,worker 類型是最簡單的類型,LAIN 處理其它的 Proc 類型會做一些額外的事情。

在應用的層面上,LAIN 除了用 lain.yaml 將一個應用的依賴和行為固化外,還有以下幾大亮點:

1、SDN 網絡安全隔離

使用 calico 項目構建 SDN 網絡

高效率的應用內網絡互通

應用間網絡默認隔離

顯式聲明應用間的服務互訪

2、應用權限的控制

sso 單點登錄,統一認證

利用 sso 的組管理,console 進行應用維護者的權限管理,包括 registry 的鏡像的權限和應用維護的權限

接下來,我們以一個最簡單的 web 服務為例,來說明 LAIN 的工作原理。

二、通過實例看LAIN 的9大功能

首先,用 go 寫一個簡單的 web 服務,hello.go

下一步,編輯 lain.yaml 文件:

可以看出,lain.yaml 定義了如何編譯,發布,測試一個應用。注意到 hello 應用只有一個 Proc,web 是 web.web 的簡寫形式,即 Proc 類型和名字都是 web. 對于每一個 Proc,LAIN 提供了幾個殺手級功能:

1、動態擴容縮容

可以在 lain.yaml 中定義一個 Proc 的實例數量,即 num_instances,可以定義每個實例所用的內存,也可以在命令行或 console 的 UI 上動態對實例個數以及所用內存大小進行調整。動態擴容縮容會自動注入一些 swarm 的 filters,保證同一個 Proc 的實例調度到不同的節點上。

2、volumes

即 docker 的 volume,如果配置了該字段,每一個實例都對應擁有一個節點上的文件目錄。雖然大部分情況下,加入 volume 意味著加入了狀態,不利于 HA,但有些特殊情況比如數據庫容器化時,volume 還是必須的。LAIN 的 volume 的精彩之處是可以配置一個備份策略,lain 有一個組件可以支持自定義備份,在備份過程前后還可以自定義腳本,這些自定義腳本何時運行的配置類同 crontab 的調度策略,相當于可以在容器里定義一些 cron job。

3、cloud_volumes

由于某些數據需要高可用,另外 Proc 中不同的實例可能需要共享一個 volume,LAIN 集成了分布式文件系統,比方說 ceph 和 MooseFS,cloud_volume 比普通的 volume 多一種使用方式,即所有的 instance 共享同一個分布式文件系統目錄。

4、logs

本質上還是 docker volume,但是定義在 logs 字段下目錄包含的文件會被 lain 的日志收集系統收集,效果等同于輸出到標準輸入輸出。這樣我們可以統一管理、查詢所有應用的日志。

5、secret_files

考慮到一次編譯要在不同集群(如測試、生產集群)上運行,那必然會導致一個問題,就是如何加載某些配置,如數據庫用戶名和密碼,將這些配置寫入代碼倉庫會帶來明顯的安全問題,也不方便自動集成和不同集群上的部署,LAIN 通過內置的 lvault 組件實現了代碼與配置的分離,每一個 LAIN 集群都有一個自帶的配置中心 lvault,加密存儲著所有該集群應用的配置文件。只有應用管理者有權限管理應用的配置文件。這樣,用戶將不同集群的配置分別寫到對應的 lvault 中,即可用將同一個鏡像推送到不同的集群中并部署運行。

6、web 類型的 Proc

相關 nginx 配置的自動化:web 類型的 Proc 的流量會由一個基于 nginx 的組件 webrouter 做負載均衡,對于不同的 Proc,集群有默認的 mount point,也可以自定義新的 mount point,即 servername 或 baseurl; 也可以定義 health check 等諸多實踐上必須的功能。

watcher 會自動刷新 nginx 配置

日志系統會自動收集 nginx 日志

7、虛IP

虛 IP 是為了保證某個 Proc 的高可用而設計的一套機制。

Proc 可以注冊一個或多個虛 IP,應用可以通過虛 IP 對外服務,比如 webrouter 可以用虛 IP 機制去除 nginx 的單點

networkd 動態維護虛 IP:在 etcd 配置虛 ip 后,各個節點的 networkd 會得到通知,如果對應的 Proc 的實例調度到本節點上,則 networkd 會激活該節點配置 vip 和 iptables 規則,保證流量可以到達實例容器。如果一個 Proc 注冊了多個虛 IP,networkd 會盡量將不同的虛 IP 分配到不同的節點上,由于容器是默認分散到不同的節點上的,所以這樣可以保證很嚴格的高可用。

8、Filters

LAIN 支持 swarm 的 constraint 和 affinity 等容器調度的參數,使得容器的調度更加合理,比方說默認同一個 Proc 的容器盡量調度到不同的節點上,最新的 LAIN 還支持用戶自定義 Proc 的 label 以及 Filters。

9、容器的監控和報警

利用自己開發的 collectd 插件,監控容器的基本運行時數據,集成了 Carbon,Whisper,Graphite-Web,Grafana,icinga2 等開源組件,團隊開發了 hedwig,hagrid 兩個組件,提供了一整套監控報警系統。

對集群而言,一個應用的部署大致經過這么幾個階段:

1)console 通過 lain-sdk 對 lain.yaml 進行解析,為應用創建 network,創建 calico profile, 創建 sso 的應用維護者組.

2)console 調用 deployd 的接口,deployd 完成容器的編排,也提供了應用在線擴容縮容等 API,進行自動維持和災難恢復,并將一些重要的數據寫入 etcd 中

3)lainlet 監聽 etcd,networkd 和 webrouter 里的 watcher 通過 lainlet 拿到集群的最新配置,來完成虛 IP 的自動漂移和 nginx 配置的自動更新等。

總之,LAIN 在最開始的設計中較多地考慮了安全性,包括了 SDN 網絡和應用權限的管理,秘密文件配置系統;在實現中,考慮到了多種技術棧的支持和容器化帶來的優勢,提供了包括備份、日志、監控報警等一攬子解決方案,能夠讓應用使用者方便地開發各種特性的應用,提高了生產力;最后,對于 LAIN 集群維護者,LAIN 提供了很多運維工具,包括 LAIN 節點的加入刪除,應用容器的手動遷移,節點的維護模式等等,基本上滿足了從日常運維到災難恢復的方方面面。

GitHub地址:https://github.com/laincloud

白皮書:https://laincloud.gitbooks.io...

原文發布于“高可用架構”

作者:宜信大數據創新中心LAIN團隊 王超一

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/27846.html

相關文章

  • 宜信開源|詳解PaaS平臺LAIN功能和架構

    摘要:是宜信公司大數據創新中心開發的開源平臺。為宜信大數據創新中心各個團隊提供了統一的測試和生產環境,簡化了服務的部署與上線流程,也降低了運維人員對系統管理的復雜度。基于容器技術,面向多樣化的技術棧,并且天然隔離系統和應用的依賴。 LAIN是宜信公司大數據創新中心開發的開源PaaS平臺。在金融的場景下,LAIN 是為解放各個團隊和業務線的生產力而設計的一個云平臺。LAIN 為宜信大數據創新中...

    mist14 評論0 收藏0
  • Cloud Foundry——Azure殺手?

    摘要:最近推出了獨具創新的。能否戰勝微軟事實上,的血統將嚴重影響到它成為企業的可行性選擇,它不會吸引用戶。微軟的在成熟性上更好,而且它的備份是通過自身的專用基礎設施。的基礎構建被擺在了微軟商店首要位置上。是針對開發者和并不熱衷于微軟的商店。 VMware最近推出了獨具創新的Cloud Foundry。這款平臺及服務無疑有著新派傾向:用戶將可以注冊并開發像MySQL和MongoDB這樣的運行數據庫...

    yy13818512006 評論0 收藏0
  • ECUG Con 邀您共議服務端開發最深度實踐

    摘要:本屆大會仍然以交流云計算產業的最前沿技術探索和服務端開發運維的最成熟實踐為宗旨,圍繞各講師過去一年內的技術演變和項目實踐進行互動和分享。 showImg(https://segmentfault.com/img/bVsmUZ);ECUG 全稱為 Effective Cloud User Group (實效云計算用戶組),由七牛云 CEO 許式偉于 2007 年發起,集結了一批具有高端視...

    dongxiawu 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<