【技術沙龍002期】數(shù)據(jù)中臺:宜信敏捷數(shù)據(jù)中臺建設實踐|宜信技術沙龍 將于5月23日晚8點線上直播,點擊報名
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設,鳳陽企業(yè)網(wǎng)站建設,鳳陽品牌網(wǎng)站建設,網(wǎng)站定制,鳳陽網(wǎng)站建設報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,
鳳陽網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
LAIN是宜信公司大數(shù)據(jù)創(chuàng)新中心開發(fā)的開源PaaS平臺。在金融的場景下,LAIN 是為解放各個團隊和業(yè)務線的生產力而設計的一個云平臺。LAIN 為宜信大數(shù)據(jù)創(chuàng)新中心各個團隊提供了統(tǒng)一的測試和生產環(huán)境,簡化了服務的部署與上線流程,也降低了運維人員對系統(tǒng)管理的復雜度。
一、設計理念及解決問題
LAIN 規(guī)范了一個應用的開發(fā)、測試、上線工作流,提供了為應用做的容器編排、權限控制、SDN、流量管理、監(jiān)控報警、備份、日志等 devops 問題的整體解決方案。
在 LAIN 上,應用是一個基本的概念,某個應用的開發(fā)者只需要定義一個 lain.yaml 即可定義應用的編譯和運行方式,對應用代碼侵入性很低。LAIN 基于容器技術,面向多樣化的技術棧,并且天然隔離系統(tǒng)和應用的依賴。
當 LAIN 用戶創(chuàng)建一個應用(服務)時,可以到 LAIN 上注冊該應用,當前的用戶自動成為了該應用的維護者,擁有了進一步操作該應用的權限。構建應用的環(huán)境需要 docker 和 lain 命令行工具,為了方便,我們創(chuàng)建了一個 vagrant box 即 lain-box. 在構建應用時,除了工程代碼外,還需要一個 Docker 鏡像作為基礎鏡像,即編譯的環(huán)境。如果是二進制的工程,如 golang,則可以在運行時換掉一個底,否則會使用 build 鏡像為 release 鏡像。準備好鏡像和編譯/運行的腳本后,就可以編輯 lain.yaml 了。
具體來說,LAIN 解決了以下四個問題:
1、應用開發(fā)之下的devops問題的整體解決方案
常見問題
- 面對用戶的應用級開發(fā)僅僅是冰山一角,在此之下有機房、網(wǎng)絡、服務器、系統(tǒng)管理、運維管理、監(jiān)控、告警、日志等等一系列背后的工作,而這部份的工作可能比應用級開發(fā)還要復雜
- 采用IaaS解決了服務器采購和上架問題,但是依然需要一個強大的devops團隊來負責上述事務,否則基礎設施很容易成為發(fā)展瓶頸,且越拖越難解決
- 上面的這些工作對于每一個產品可能都是同質化但又伴隨著定制,會消耗大量的時間做這些重復的工作
Lain是怎么做的
- 直接在幾乎裸的IaaS或者服務器上即可構建lain集群,方便地進行在線的擴容縮容等集群底層資源操作
- 整合了業(yè)界沉淀下來的良好的運維整體實踐,提供了冰山下的這一大塊工作的整體解決方案
- 將紛繁復雜的系統(tǒng)管理和運維管理行為封裝為更簡單易用的工具包,極大簡化大部分的系統(tǒng)工作,降低日常維護的技術門檻和人力需求
- 將同質化的工作整合在一起,避免重復勞動
- 開箱即用的各種管理組件,囊括了部署,擴容,監(jiān)控,告警,日志等方方面面。還有附贈應用,包括mysql,redis的集群服務
2、規(guī)范了應用開發(fā)的工作流程,并輔以適當?shù)腟CM支援
常見問題
- 在個人開發(fā)者以及startup組織中,良好的工作流這件事幾乎是不會被提及的,然而在日漸發(fā)展的過程中遺留的技術債務卻會越來越多的影響開發(fā)部署的效率和質量
- 設計、開發(fā)和部署行為的不規(guī)范會引發(fā)各種問題
Lain是怎么做的
- 提供本地開發(fā)環(huán)境的解決方案
- 提供本地開發(fā)過程的SDK / CLI工具鏈,使得開發(fā)和構建過程是嵌入在解決方案中的
- 隱性的提供了SCM支援,約束了開發(fā)者的開發(fā)和發(fā)布行為
3、提高整體資源利用率,優(yōu)化冗余資源池
常見問題
- 傳統(tǒng)的按照產品線規(guī)劃資源池的情況下,會給各產品預留專屬的資源池以及配備冗余,以便進行災備以及服務突發(fā)流量
- 然而各產品線的資源需求類型不同,冗余類型也不同,無法共通共享,造成眾多的重復冗余,資源利用率比較低
- 通過服務器資源的冗余,擴容縮容,以及資源遷移的操作比較復雜,時間消耗大,風險高
Lain是怎么做的
- 通過容器技術的資源隔離和控制,實現(xiàn)多種技術棧多種應用在集群內安全的不相互影響的混合部署,通過統(tǒng)一的資源池進行冗余,有效提高資源利用率
- 容器技術的運用使得對下資源的使用形成完全統(tǒng)一的形式,擴容縮容以及遷移的成本很低,操作也更簡單。
4、TBD:架構上提供了服務治理的可能性和解決方案
二、特征
在應用的層面上,LAIN 還有以下特征:
1、基于配置文件定義應用
- 在現(xiàn)有的應用上只需要增加一個配置文件lain.yaml即可定義應用在lain集群里的編譯和運行
- 對應用代碼的侵入性很低
2、SDN網(wǎng)絡安全隔離
- 使用開源的calico(https://github.com/projectcalico/calico)項目構建SDN網(wǎng)絡
- 高效率的應用內網(wǎng)絡互通
- 應用間網(wǎng)絡默認隔離
- 顯式聲明應用間的服務互訪
3、基于容器技術支持多樣化的技術棧
- 使用開源的docker項目構建容器云
- 擴展封裝Dockerfile,使用自定義的yaml格式進行應用的集群定義
- 只需符合最簡單的lain cluster runtime interface,可自由選擇base image
- 容器技術天然的支持隔離系統(tǒng)和應用的依賴
- lain SDK / CLI以及可選的ci組件支援代碼版本和鏡像之間的對應關系
- 編譯時和運行時鏡像均可完全定制和隔離
4、應用在線擴容縮容
- 使用開源的swarm調度應用部署
- 深度封裝swarm docker API,自行開發(fā)集群控制器(deployd)以及應用控制器(console)
- 直接支持用戶API調用進行容器實例數(shù)擴容,縮容
- 直接支持用戶API調用進行容器單實例資源的擴容,縮容(CPU,MEM)
5、節(jié)點在線擴容縮容
- 使用開源的ansible(https://github.com/ansible/ansible)開發(fā)集群管理運維工具包
- 集群的服務器節(jié)點(NODE)兼容同一個C段內的物理服務器,虛擬機,公有云服務器
- 集群管理工具包支持add NODE 和 remove NODE 指令,快速進行底層資源擴容和縮容
6、服務自動維持和災難恢復
- 自行開發(fā)集群控制器(deployd)
- 容器實例級別的服務巡檢和維持,自動遷移和服務恢復
- 基于虛ip自動漂移的入口load balancer HA
- 高級API支持服務定制遷移
7、內部服務依賴和發(fā)現(xiàn)機制
- 集群支援Service / Resource 機制
- 集群整體的服務應用
- 應用私有Service (即 Resource)服務應用
- 集群支援特別的服務應用類型和資源應用類型
- 在lain.yaml中顯式聲明使用的Service / Resource
- 基于DNS的服務發(fā)現(xiàn)機制
- 可編程的service/resource load balancer
- 默認提供可用的RoundRobin類型的load balancer
8、統(tǒng)一認證
- 集群自行開發(fā)統(tǒng)一認證組件(sso)
- 支持oauth3的多種認證方式
9、虛ip和負載均衡器統(tǒng)一管理
- 支援 virtual ip 和 應用 proc 的注冊,應用可注冊 virtual ip 來進行對外服務
- 基于etcd lock機制的virtual ip 漂移機制,應用 load balancer 可借此實現(xiàn) HA
10、web load balancer的自動配置
- 使用開源的nginx和tengine(https://github.com/alibaba/tengine)封裝web服務的負載均衡器
- 自研的watcher檢測集群應用的整體 runtime 數(shù)據(jù),自動為 web 服務生成配置
- 獲取runtime變化的時間,判斷是否需要進行配置變更
- 配置變更事件出發(fā)配置的渲染
- 觸發(fā) reload 生效
11、集群體系化的日志收集
- 使用開源的 heka(https://github.com/mozilla-services/heka)配合docker的配置以及rsyslog封裝集群整體日志收集
- 默認收集應用的stdout / stderr日志收集
- 支援應用顯式聲明需要收集的落地文件日志
- 支援應用顯式聲明結構化的監(jiān)控數(shù)據(jù)日志
- 定制檢測web服務load balancer的nginx日志收集和數(shù)據(jù)統(tǒng)計
12、私有docker registry以及認證機制
- 使用開源的docker registry封裝私有 registry 應用
- 集成支援集群的私有統(tǒng)一認證機制
- 定制支援可選的moosefs存儲后端或者Ceph存儲后端
13、應用配置加密存儲
- 使用開源的庫封裝的應用私有配置加密存儲組件
- 集成sso組件實現(xiàn)用戶管理和權限隔離
- 在應用運行時階段將配置注入
14、本地化開發(fā)環(huán)境
- 使用開源的vagrant,免費的centos和virtualbox組織統(tǒng)一的本地化開發(fā)環(huán)境
- 甚至支援本地使用上述工具鏈bootstrap出一個lain本地集群
15、應用部署運維API以及相應的CLI客戶端
- 應用的構建,發(fā)布,部署,運維都由集群的各組件提供API
- 使用lain SDK / CLI再次封裝上述API,給用戶提供良好的操作界面
- 集成集群的統(tǒng)一認證,進行用戶管理和權限隔離

16、集群管理CLI
- 使用開源的ansible開發(fā)集群管理運維工具包
- 再次封裝ansible調用為簡單的CLI使得操作更方便,包括增加節(jié)點,移除節(jié)點,遷移應用,集群健康檢查等。
17、規(guī)范化的開發(fā)workflow
- 基于上述組件,以代碼 - 鏡像的一一對應關系進行SCM,對鏡像進行發(fā)布管理
- 使用lain SDK / CLI以及可選的ci組件進行本地開發(fā),構建發(fā)布,會很自然的規(guī)范開發(fā)workflow
- 工作流運轉的核心單位是鏡像,lain cli封裝了鏡像的生成,更新,推送,部署,運維

18、可選的集群體系化的備份和恢復(backupd + moosefs)
- 采用開源的moosefs作為分布式存儲后端
- 支援在lain.yaml中顯式聲明volume備份需求和策略,以及設定備份策略的hooks
- 支援指定備份恢復
19、可選的集群日志查詢組件(kafka + elasticsearch + kibana)
- 采用開源的kakfa ,elasticsearch,kibana搭建外部依賴的卡夫卡集群和elasticsearch集群,封裝集群可選組件libana
- rebellion集群日志收集組件支援發(fā)送所有日志到上述外部依賴kafka
- 在libana上支援對集群應用日志和web load balancer 日志的條件組合查詢
20、可選的系列預置應用
- MySQL的服務(https://github.com/laincloud/mysql-service)
- MySQL的資源
- Redis的服務-SM(https://github.com/laincloud/redis-service-sm)
三、系統(tǒng)架構
1、物理視圖
從物理層面看,每一個 lain 集群是由一個或多個網(wǎng)絡互通的節(jié)點(Node)構成的。

每個節(jié)點可以被賦予不同的 label ,供容器調度時進行節(jié)點選擇使用。
目前的實現(xiàn)中,需要所有節(jié)點位于同一個路由器后。
2、邏輯視圖
從邏輯層面看,一個 lain 集群是由多個應用組成,應用和應用之間網(wǎng)絡相互隔離(通過SDN技術)。

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

應用開發(fā)者可以在一個應用中定義多種容器(稱為 proc),每個 proc 可以指定為在集群上運行多份,每份即為一個容器,被稱為 proc instance 。Lain 集群會盡可能保證有指定份數(shù)的容器在運行,如果有容器 crash 或者節(jié)點 fail 的情況發(fā)生,集群會試圖重啟容器或者在節(jié)點間遷移容器。
3、系統(tǒng)架構設計圖
目標是做成一層一層可以深入的架構圖
總圖

節(jié)點

4、工作流程

GitHub地址:https://github.com/laincloud
白皮書:https://laincloud.gitbooks.io/white-paper/content/
來源宜信技術學院
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
網(wǎng)頁名稱:宜信開源|詳解PaaS平臺LAIN的功能和架構-創(chuàng)新互聯(lián)
轉載來于:http://chinadenli.net/article32/cejpsc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供虛擬主機、外貿建站、域名注冊、營銷型網(wǎng)站建設、品牌網(wǎng)站設計、企業(yè)網(wǎng)站制作
廣告
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源:
創(chuàng)新互聯(lián)