成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

宜信開源|詳解PaaS平臺LAIN的功能和架構(gòu)

mist14 / 826人閱讀

摘要:是宜信公司大數(shù)據(jù)創(chuàng)新中心開發(fā)的開源平臺。為宜信大數(shù)據(jù)創(chuàng)新中心各個團隊提供了統(tǒng)一的測試和生產(chǎn)環(huán)境,簡化了服務(wù)的部署與上線流程,也降低了運維人員對系統(tǒng)管理的復(fù)雜度。基于容器技術(shù),面向多樣化的技術(shù)棧,并且天然隔離系統(tǒng)和應(yīng)用的依賴。

LAIN是宜信公司大數(shù)據(jù)創(chuàng)新中心開發(fā)的開源PaaS平臺。在金融的場景下,LAIN 是為解放各個團隊和業(yè)務(wù)線的生產(chǎn)力而設(shè)計的一個云平臺。LAIN 為宜信大數(shù)據(jù)創(chuàng)新中心各個團隊提供了統(tǒng)一的測試和生產(chǎn)環(huán)境,簡化了服務(wù)的部署與上線流程,也降低了運維人員對系統(tǒng)管理的復(fù)雜度。

一、設(shè)計理念及解決問題

LAIN 規(guī)范了一個應(yīng)用的開發(fā)、測試、上線工作流,提供了為應(yīng)用做的容器編排、權(quán)限控制、SDN、流量管理、監(jiān)控報警、備份、日志等 devops 問題的整體解決方案。

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

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

具體來說,LAIN 解決了以下四個問題:

1、應(yīng)用開發(fā)之下的devops問題的整體解決方案

常見問題

面對用戶的應(yīng)用級開發(fā)僅僅是冰山一角,在此之下有機房、網(wǎng)絡(luò)、服務(wù)器、系統(tǒng)管理、運維管理、監(jiān)控、告警、日志等等一系列背后的工作,而這部份的工作可能比應(yīng)用級開發(fā)還要復(fù)雜

采用IaaS解決了服務(wù)器采購和上架問題,但是依然需要一個強大的devops團隊來負責(zé)上述事務(wù),否則基礎(chǔ)設(shè)施很容易成為發(fā)展瓶頸,且越拖越難解決

上面的這些工作對于每一個產(chǎn)品可能都是同質(zhì)化但又伴隨著定制,會消耗大量的時間做這些重復(fù)的工作

Lain是怎么做的

直接在幾乎裸的IaaS或者服務(wù)器上即可構(gòu)建lain集群,方便地進行在線的擴容縮容等集群底層資源操作

整合了業(yè)界沉淀下來的良好的運維整體實踐,提供了冰山下的這一大塊工作的整體解決方案

將紛繁復(fù)雜的系統(tǒng)管理和運維管理行為封裝為更簡單易用的工具包,極大簡化大部分的系統(tǒng)工作,降低日常維護的技術(shù)門檻和人力需求

將同質(zhì)化的工作整合在一起,避免重復(fù)勞動

開箱即用的各種管理組件,囊括了部署,擴容,監(jiān)控,告警,日志等方方面面。還有附贈應(yīng)用,包括mysql,redis的集群服務(wù)

2、規(guī)范了應(yīng)用開發(fā)的工作流程,并輔以適當(dāng)?shù)腟CM支援

常見問題

在個人開發(fā)者以及startup組織中,良好的工作流這件事幾乎是不會被提及的,然而在日漸發(fā)展的過程中遺留的技術(shù)債務(wù)卻會越來越多的影響開發(fā)部署的效率和質(zhì)量

設(shè)計、開發(fā)和部署行為的不規(guī)范會引發(fā)各種問題

Lain是怎么做的

提供本地開發(fā)環(huán)境的解決方案

提供本地開發(fā)過程的SDK / CLI工具鏈,使得開發(fā)和構(gòu)建過程是嵌入在解決方案中的

隱性的提供了SCM支援,約束了開發(fā)者的開發(fā)和發(fā)布行為

3、提高整體資源利用率,優(yōu)化冗余資源池

常見問題

傳統(tǒng)的按照產(chǎn)品線規(guī)劃資源池的情況下,會給各產(chǎn)品預(yù)留專屬的資源池以及配備冗余,以便進行災(zāi)備以及服務(wù)突發(fā)流量

然而各產(chǎn)品線的資源需求類型不同,冗余類型也不同,無法共通共享,造成眾多的重復(fù)冗余,資源利用率比較低

通過服務(wù)器資源的冗余,擴容縮容,以及資源遷移的操作比較復(fù)雜,時間消耗大,風(fēng)險高

Lain是怎么做的

通過容器技術(shù)的資源隔離和控制,實現(xiàn)多種技術(shù)棧多種應(yīng)用在集群內(nèi)安全的不相互影響的混合部署,通過統(tǒng)一的資源池進行冗余,有效提高資源利用率

容器技術(shù)的運用使得對下資源的使用形成完全統(tǒng)一的形式,擴容縮容以及遷移的成本很低,操作也更簡單。

4、TBD:架構(gòu)上提供了服務(wù)治理的可能性和解決方案 二、特征

在應(yīng)用的層面上,LAIN 還有以下特征:

1、基于配置文件定義應(yīng)用

在現(xiàn)有的應(yīng)用上只需要增加一個配置文件lain.yaml即可定義應(yīng)用在lain集群里的編譯和運行

對應(yīng)用代碼的侵入性很低

2、SDN網(wǎng)絡(luò)安全隔離

使用開源的calico(https://github.com/projectcal...

高效率的應(yīng)用內(nèi)網(wǎng)絡(luò)互通

應(yīng)用間網(wǎng)絡(luò)默認隔離

顯式聲明應(yīng)用間的服務(wù)互訪

3、基于容器技術(shù)支持多樣化的技術(shù)棧

使用開源的docker項目構(gòu)建容器云

擴展封裝Dockerfile,使用自定義的yaml格式進行應(yīng)用的集群定義

只需符合最簡單的lain cluster runtime interface,可自由選擇base image

容器技術(shù)天然的支持隔離系統(tǒng)和應(yīng)用的依賴

lain SDK / CLI以及可選的ci組件支援代碼版本和鏡像之間的對應(yīng)關(guān)系

編譯時和運行時鏡像均可完全定制和隔離

4、應(yīng)用在線擴容縮容

使用開源的swarm調(diào)度應(yīng)用部署

深度封裝swarm docker API,自行開發(fā)集群控制器(deployd)以及應(yīng)用控制器(console)

直接支持用戶API調(diào)用進行容器實例數(shù)擴容,縮容

直接支持用戶API調(diào)用進行容器單實例資源的擴容,縮容(CPU,MEM)

5、節(jié)點在線擴容縮容

使用開源的ansible(https://github.com/ansible/an...

集群的服務(wù)器節(jié)點(NODE)兼容同一個C段內(nèi)的物理服務(wù)器,虛擬機,公有云服務(wù)器

集群管理工具包支持add NODE 和 remove NODE 指令,快速進行底層資源擴容和縮容

6、服務(wù)自動維持和災(zāi)難恢復(fù)

自行開發(fā)集群控制器(deployd)

容器實例級別的服務(wù)巡檢和維持,自動遷移和服務(wù)恢復(fù)

基于虛ip自動漂移的入口load balancer HA

高級API支持服務(wù)定制遷移

7、內(nèi)部服務(wù)依賴和發(fā)現(xiàn)機制

集群支援Service / Resource 機制

集群整體的服務(wù)應(yīng)用

應(yīng)用私有Service (即 Resource)服務(wù)應(yīng)用

集群支援特別的服務(wù)應(yīng)用類型和資源應(yīng)用類型

在lain.yaml中顯式聲明使用的Service / Resource

基于DNS的服務(wù)發(fā)現(xiàn)機制

可編程的service/resource load balancer

默認提供可用的RoundRobin類型的load balancer

8、統(tǒng)一認證

集群自行開發(fā)統(tǒng)一認證組件(sso)

支持oauth2的多種認證方式

9、虛ip和負載均衡器統(tǒng)一管理

支援 virtual ip 和 應(yīng)用 proc 的注冊,應(yīng)用可注冊 virtual ip 來進行對外服務(wù)

基于etcd lock機制的virtual ip 漂移機制,應(yīng)用 load balancer 可借此實現(xiàn) HA

10、web load balancer的自動配置

使用開源的nginx和tengine(https://github.com/alibaba/te...

自研的watcher檢測集群應(yīng)用的整體 runtime 數(shù)據(jù),自動為 web 服務(wù)生成配置

獲取runtime變化的時間,判斷是否需要進行配置變更

配置變更事件出發(fā)配置的渲染

觸發(fā) reload 生效

11、集群體系化的日志收集

使用開源的 heka(https://github.com/mozilla-se...

默認收集應(yīng)用的stdout / stderr日志收集

支援應(yīng)用顯式聲明需要收集的落地文件日志

支援應(yīng)用顯式聲明結(jié)構(gòu)化的監(jiān)控數(shù)據(jù)日志

定制檢測web服務(wù)load balancer的nginx日志收集和數(shù)據(jù)統(tǒng)計

12、私有docker registry以及認證機制

使用開源的docker registry封裝私有 registry 應(yīng)用

集成支援集群的私有統(tǒng)一認證機制

定制支援可選的moosefs存儲后端或者Ceph存儲后端

13、應(yīng)用配置加密存儲

使用開源的庫封裝的應(yīng)用私有配置加密存儲組件

集成sso組件實現(xiàn)用戶管理和權(quán)限隔離

在應(yīng)用運行時階段將配置注入

14、本地化開發(fā)環(huán)境

使用開源的vagrant,免費的centos和virtualbox組織統(tǒng)一的本地化開發(fā)環(huán)境

甚至支援本地使用上述工具鏈bootstrap出一個lain本地集群

15、應(yīng)用部署運維API以及相應(yīng)的CLI客戶端

應(yīng)用的構(gòu)建,發(fā)布,部署,運維都由集群的各組件提供API

使用lain SDK / CLI再次封裝上述API,給用戶提供良好的操作界面

集成集群的統(tǒng)一認證,進行用戶管理和權(quán)限隔離

16、集群管理CLI

使用開源的ansible開發(fā)集群管理運維工具包

再次封裝ansible調(diào)用為簡單的CLI使得操作更方便,包括增加節(jié)點,移除節(jié)點,遷移應(yīng)用,集群健康檢查等。

17、規(guī)范化的開發(fā)workflow

基于上述組件,以代碼 - 鏡像的一一對應(yīng)關(guān)系進行SCM,對鏡像進行發(fā)布管理

使用lain SDK / CLI以及可選的ci組件進行本地開發(fā),構(gòu)建發(fā)布,會很自然的規(guī)范開發(fā)workflow

工作流運轉(zhuǎn)的核心單位是鏡像,lain cli封裝了鏡像的生成,更新,推送,部署,運維

18、可選的集群體系化的備份和恢復(fù)(backupd + moosefs)

采用開源的moosefs作為分布式存儲后端

支援在lain.yaml中顯式聲明volume備份需求和策略,以及設(shè)定備份策略的hooks

支援指定備份恢復(fù)

19、可選的集群日志查詢組件(kafka + elasticsearch + kibana)

采用開源的kakfa ,elasticsearch,kibana搭建外部依賴的卡夫卡集群和elasticsearch集群,封裝集群可選組件libana

rebellion集群日志收集組件支援發(fā)送所有日志到上述外部依賴kafka

在libana上支援對集群應(yīng)用日志和web load balancer 日志的條件組合查詢

20、可選的系列預(yù)置應(yīng)用

MySQL的服務(wù)(https://github.com/laincloud/...

MySQL的資源

Redis的服務(wù)-SM(https://github.com/laincloud/...

三、系統(tǒng)架構(gòu) 1、物理視圖

從物理層面看,每一個 lain 集群是由一個或多個網(wǎng)絡(luò)互通的節(jié)點(Node)構(gòu)成的。

每個節(jié)點可以被賦予不同的 label ,供容器調(diào)度時進行節(jié)點選擇使用。
目前的實現(xiàn)中,需要所有節(jié)點位于同一個路由器后。

2、邏輯視圖

從邏輯層面看,一個 lain 集群是由多個應(yīng)用組成,應(yīng)用和應(yīng)用之間網(wǎng)絡(luò)相互隔離(通過SDN技術(shù))。

每一個應(yīng)用是由多個 Docker 容器組成,每個容器都可能運行在不同的節(jié)點上。

應(yīng)用開發(fā)者可以在一個應(yīng)用中定義多種容器(稱為 proc),每個 proc 可以指定為在集群上運行多份,每份即為一個容器,被稱為 proc instance 。Lain 集群會盡可能保證有指定份數(shù)的容器在運行,如果有容器 crash 或者節(jié)點 fail 的情況發(fā)生,集群會試圖重啟容器或者在節(jié)點間遷移容器。

3、系統(tǒng)架構(gòu)設(shè)計圖

目標(biāo)是做成一層一層可以深入的架構(gòu)圖

總圖

節(jié)點

4、工作流程

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

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

來源:宜信技術(shù)學(xué)院

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/27845.html

相關(guān)文章

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

    摘要:正式上線已經(jīng)大約兩年,基本已經(jīng)成熟,為宜信大數(shù)據(jù)創(chuàng)新中心各個團隊提供了統(tǒng)一的測試和生產(chǎn)環(huán)境,簡化了服務(wù)的部署與上線流程,也降低了運維人員對系統(tǒng)管理的復(fù)雜度。地址白皮書原文發(fā)布于高可用架構(gòu)作者宜信大數(shù)據(jù)創(chuàng)新中心團隊王超一 一、基于Docker的PaaS平臺LAIN 在金融的場景下,LAIN 是為解放各個團隊和業(yè)務(wù)線的生產(chǎn)力而設(shè)計的一個云平臺。LAIN 正式上線已經(jīng)大約兩年,基本已經(jīng)成熟,...

    Apollo 評論0 收藏0
  • Kubernetes在宜信落地實踐

    摘要:容器云的背景伴隨著微服務(wù)的架構(gòu)的普及,結(jié)合開源的和等微服務(wù)框架,宜信內(nèi)部很多業(yè)務(wù)線逐漸了從原來的單體架構(gòu)逐漸轉(zhuǎn)移到微服務(wù)架構(gòu)。 容器云的背景 伴隨著微服務(wù)的架構(gòu)的普及,結(jié)合開源的Dubbo和Spring Cloud等微服務(wù)框架,宜信內(nèi)部很多業(yè)務(wù)線逐漸了從原來的單體架構(gòu)逐漸轉(zhuǎn)移到微服務(wù)架構(gòu)。應(yīng)用從有狀態(tài)到無狀態(tài),具體來說將業(yè)務(wù)狀態(tài)數(shù)據(jù)如:會話、用戶數(shù)據(jù)等存儲到中間件中服務(wù)中。 showI...

    fxp 評論0 收藏0
  • Kubernetes在宜信落地實踐

    摘要:容器云的背景伴隨著微服務(wù)的架構(gòu)的普及,結(jié)合開源的和等微服務(wù)框架,宜信內(nèi)部很多業(yè)務(wù)線逐漸了從原來的單體架構(gòu)逐漸轉(zhuǎn)移到微服務(wù)架構(gòu)。 容器云的背景 伴隨著微服務(wù)的架構(gòu)的普及,結(jié)合開源的Dubbo和Spring Cloud等微服務(wù)框架,宜信內(nèi)部很多業(yè)務(wù)線逐漸了從原來的單體架構(gòu)逐漸轉(zhuǎn)移到微服務(wù)架構(gòu)。應(yīng)用從有狀態(tài)到無狀態(tài),具體來說將業(yè)務(wù)狀態(tài)數(shù)據(jù)如:會話、用戶數(shù)據(jù)等存儲到中間件中服務(wù)中。 showI...

    Labradors 評論0 收藏0
  • ECUG Con 邀您共議服務(wù)端開發(fā)最深度實踐

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

    dongxiawu 評論0 收藏0

發(fā)表評論

0條評論

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