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

資訊專欄INFORMATION COLUMN

數人云|當K8S遇上微服務-京東金融PaaS平臺思考與實踐

Imfan / 2404人閱讀

摘要:平臺上的微服務架構應用再來看一下我眼中的基于當前最流行的微服務架構的設計是什么樣的,即我們平臺上要運行的典型應用是什么樣的。

8月19日的數人云Container Meetup上,張龍老師做了《基于Kubernetes的PaaS平臺的設計和思考》的精彩分享,分別介紹了PaaS平臺的意義,為什么選擇Kubernetes,PaaS平臺上的微服務架構應用,如何設計和快速構建PaaS平臺,PaaS平臺的功能組件這幾個內容。

以下為現場實錄內容——

今天跟大家分享下基于Kubernetes的PaaS平臺設計和思考,主要分為五個部分:

PaaS平臺的意義

為什么選擇Kubernetes

PaaS平臺上的微服務架構應用

PaaS平臺架構設計

PaaS平臺功能組件

PaaS平臺的意義

很多公司技術支持崗位的工作,如配置域名,部署環境,修改復位配置,服務重啟,擴容縮容,梳理和完善監控,根據開發的需要查找日志等工作,需要和開發進行大量的溝通,如什么是外網域名,什么是內網域名、A name、C name,防火墻規則該如何設定,操作系統等基礎環境需要什么依賴。因為很多研發不了解運維的術語和知識點,導致溝通困難,效率很低。而且這樣的需求還很多,把運維壓的喘不過氣,占用了幾乎所有的時間,但是開發的需求可能還是遲遲不能滿足。

這樣的公司可能遇到了以下問題:

系統架構過于陳舊,性能、可靠性無法滿足現有的需求;

原有IT架構不靈活,業務模塊新增或變更帶來巨大成本壓力;

系統功能繁雜,結構紊亂,定制的代碼與系統耦合性極高;

服務種類繁多,各種技術棧橫行;

人員流動交接不充分,新接手的團隊對部署環境不了解,只能做周邊的修補,不敢遷移 。

如何才能解決?答案是流程化、標準化、自動化、平臺化。

流程化

即主動梳理運維工作任務,形成標準化的操作流程,尤其是針對需要多人協作完成的任務,比如應用的發布部署,把流程固化到流程平臺系統中,保證每個人執行都能按照流程嚴格執行,不會有哪些環節遺漏,而且當前的流程狀態對所有人都可見,能清晰的看到誰正在處理,處理人也會更主動盡快的完成該任務。

標準化

從架構角度按照應用類別制定應用的部署標準,比如Web類型的應用,服務化的應用(我們內部用的JSF),或者是比較新的微服務的應用(Springboot等),部署腳本和工具平臺按照約定好的規范進行設計開發,減少了因為應用種類繁多導致工具和平臺的復雜。

自動化

早期寫了非常多的腳本,任務執行機到要執行任務的服務器之間通過SSH免密鑰認證,再根據需要批量執行命令。隨著服務器規模和應用數量的擴張,很快腳本執行的方式無法滿足業務發展,難以理解,同一個類型的任務多個腳本并存,存在誤操作,缺乏清晰的操作歷史記錄和回滾機制,即使后續替換了如Puppet,Saltstack,Ansible這樣的配置管理工具,但根本問題并沒有解決。

※ 平臺化

平臺化是這次分享的重點,一定要在前面三條的基礎上進行建設,如果沒有清晰的流程,明確的標準,平臺建設起來也只是自動化工具的集成,解決不了公司核心問題。

以下說的平臺化內容主要是PaaS平臺化,即主要從應用和中間件的角度,這里不討論IaaS的內容。

PasS平臺化將問題的關注點從基礎資源上升到了應用層面,目標是提供一個幫助開發人員運行、管理應用的平臺,讓使用者更關注運行的代碼(業務邏輯)。

PaaS能解決的問題:

應用聚合:如開發需要一個Redis,直接啟動一個Redis容器即可

服務發現、快速伸縮、狀態管理等

服務監控、恢復、容災

費用統計:提供計算資源信息匯總,針對不同項目收費

安全管控:不管什么平臺,安全都非常重要,例如A應用可以訪問B,B不允許訪問A以及安全審計等。

快速部署。

隨著Docker容器技術的出現,讓我們有了更合適的工具建設PaaS平臺,具備了基于應用構建服務的能力。

在Docker容器調度框架上,我們又選擇了Kubernetes平臺。

為什么選擇Kubernetes

先列一下目前三大主流的容器調度框架的功能和特點:

〓 Kubernetes

資源調度、服務發現、服務編排、資源邏輯隔離、服務自愈、安全配置管理、Job任務支持、自動回滾、內部域名服務、健康檢查、有狀態支持、運行監控/日志、擴容縮容、負載均衡、灰度升級、容災恢復、應用HA。

〓 Mesos

Mesos是一個分布式內核,目前的發展方向是數據中心操作系統(DCOS),它同時支持 Marathon、 Kubernetes 和 Swarm 等多種框架,Mesosphere 也是 Kubernetes 生態的一員。

注意Marathon的技術棧是Scala語言,而Docker和Kubernetes的技術棧都是Go語言。

〓 Swarm

從Docker1.12版本開始,Swarm 隨Docker一起默認安裝發布,也由于隨Docker引擎一起發布,無需額外安裝,配置簡單。

支持服務注冊、服務發現,內置Overlay Network以及Load Balancer。

與Docker CLI非常類似的操作命令,對熟悉Docker的人非常容易上手學習。

每一種工具都有自己的核心理念。

Mesos理念是數據中心操作系統(DCOS),為了解決IaaS層的網絡、計算和存儲問題,所以Mesos的核心是解決物理資源層的問題。

Kubernetes的核心是如何解決自動部署,擴展和管理容器化(containerized)應用程序。

所以,個人認為Mesos和Kubernetes是兩種維度,對于我們的場景來說,關心應用的狀態多于物理資源層管理,因此更關心的是容器化應用程序管理,這是我們選擇Kubernetes的主要原因。

另外選擇Kubernetes還考慮了其它優勢,如:

出身名門Google,其開發和設計受到了Google著名的Borg系統的影響;

GitHub上關注Kubernetes項目和提交代碼的開發者非常多,社區活躍,如果遇到問題,通過社區咨詢和解決 問題速度也會比較快。

Kubernetes可以很好的支持有狀態的服務。

PaaS平臺上的微服務架構應用

再來看一下我眼中的基于當前最流行的微服務架構的設計是什么樣的,即我們PaaS平臺上要運行的典型應用是什么樣的。

用戶端的請求進來以后,首先進入前端的Nginx服務器,再進入Zuul代理網管上,由Zuul將這些任務下發到不同的服務上去。Eureka集群作為注冊中心服務,提供服務的發現和注冊的功能。服務后端再去調用依賴的其他服務,數據庫集群,Redis集群等服務。

微服務架構因為有注冊中心自動解決了服務注冊發現的問題,所以對內部服務來講就不用依賴傳統的負載均衡器等工具,很容易將各個服務Docker化,遷移到PaaS平臺里統一管理。

PaaS平臺架構設計 平臺建設原則

在建設PaaS平臺之前,參考《高效人士的七個習慣》設定了PaaS平臺建設的原則:

以終為始:做一件事情要知道想達成什么樣的目的,知道這個目的之后,就能夠圍繞這個目標采取一些措施。

知己解彼:作為一個運維人員,需要有一個比較大的知識面。只有如此才能夠去制定一些適合自己的方案和產品。

積極主動:因為要做PaaS所以要把自己的主觀能動性都調起來。

要事第一:上面說了很多PaaS相關的內容,由于時間、人員的限制。如何從眾多的基礎組建中挑選出來最重要的一些事情,著手建設。

雙贏:做出來的系統最好是能夠達到對開發、運維、公司都有利。

統合綜效:對待同樣的一件事,每個人都會有自己的見解。同時也要問同伴,要把所有的觀點都收集起來做一個綜合分析對比,以收到更好的效果。

持續更新:時刻提醒自己持續學習,擁抱變化,這樣才能看到平臺的不足。持續迭代出更好的產品。

基于以上的原則,我們團隊勾勒了一個最小化的PaaS圖:

最上面的Ingress服務跟傳統的負載均衡器的功能類似,提供請求分發的功能。

Service相當于后端Pod的一個代理服務器,Service需要通過Ingress服務才能被外部Client訪問。

Pod則相當于我們傳統的一個服務。

最小化PaaS平臺還用到了DNS組件,在內部服務運行起來之后,我們會通過DNS組件分配一個內部域名供訪問時使用。

Kubernetes對外提供服務,用的是Lvs+Ingress,每次添加一個新的服務之后會調用一次DNS的API,按照規則生成一個內部域名供訪問使用。

平臺關鍵能力說明

應用持續部署

平臺實現快速、可視化自動部署功能。支持對應用的快速、可視化部署。用戶僅需在界面中選擇相應的鏡像和組件,并填寫簡單的配置信息,點擊部署按鈕,即可完成整個應用的安裝或者升級。在測試環境可通過Jenkins,可實現應用的持續集成和全自動化升級,同時支持一鍵回滾和恢復發布功能。

應用彈性伸縮

構建具有需求預測和容器按需供給能力的彈性伸縮子系統,具有基于應用的負載和資源情況進行彈性伸縮能力,以應對互聯網用戶高并發的特點,應對流量沖擊。其中,包括容器彈性伸縮、物理機彈性伸縮功能。

容器和組件的統一管理

從整體應用的角度出發,平臺不僅管理鏡像和容器,而是將一個應用涉及的所有組件均做了統一管理,比如對前端的DNS、負載均衡(F5/Nginx),后端數據庫等的管理。通過對系統相關組件和容器統一管理,平臺將可以實現系統的全局統一部署、配置、升級/回滾、監控、故障處理等功能。

高可靠性

容器的故障恢復,當服務器宕機時,平臺系統會自動在其它服務器上重新啟動容器并為其分配資源,從而達到秒級啟動,恢復業務。保障業務不掉線,高可靠運行;鏡像倉庫的可靠性,通過將單機版的鏡像倉庫擴展成鏡像倉庫集群,從而提升性能,實現Registry的無狀態化,便于實現服務的高可用性。

應用docker化封裝

系統支持如下幾類常見應用:Tomcat、Jboss、Nginx、Redis、Zookeeper等。

PaaS平臺功能組件

具體實施時,主要有幾個基礎組件需要開發:

鏡像管理

實際運行的應用鏡像由 “基礎中間件鏡像”+“應用包”+“配置” 自動構建,無需開發人員理解鏡像概念和手動制作鏡像;

DNS管理

定制化公司內部使用的DNS管理平臺,對公司的DNS進行統一管理;

服務管理

需要定制化一套Kubernetes的Deployment模板,從Ingress到Service再到RC都定義在這套模板里面,方便對容器進行擴容、縮容、刪除操作;

服務內pod管理

屬于Kubernetes自有范疇,查看Service內的Pod運行情況、Pod日志輸出等功能;

日志管理

將日志輸出到公司的日志平臺(如ELK平臺),對接研發人員排查問題、數據埋點使用。

監控管理

參考方案cadvisor+influxdb+grafana/ heapster+influxdb+grafana/Prometheus/zabbix.

一個中小企業做成這樣后,日常運維的工作量即可大量減少,兩三個人就能完成日常的應用運維工作,有興趣地話可以去挑戰一下。當然做完這些后,還只是一個小型的PaaS平臺。

如果是再復雜一點的PaaS平臺,應該還有哪些要繼續做的呢?

環境管理:即一套平臺管理多套不同的Kubernetes集群。安全管理、流程管理、計費管理等功能模塊。

還有因為規模增加和更高的可靠性要求,對應的網絡,IO等各種優化。

其實還有很多功能就不一一列舉了,可以根據自己的實際情況添加功能模塊,設計有自己公司特色的PaaS平臺。

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

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

相關文章

  • 快收藏!52篇25萬字,服務原生、容器、K8S、Serverless精華文章集錦

    摘要:正在走遠,新年之初,小數精選過去一年閱讀量居高的技術干貨,從容器到微服務云原生,匯集成篇精華集錦,充分反映了這一年的技術熱點走向。此文值得收藏,方便隨時搜索和查看。,小數將繼續陪伴大家,為朋友們奉獻更有逼格的技術內容。 2017正在走遠,新年之初,小數精選過去一年閱讀量居高的技術干貨,從容器、K8S 到微服務、云原生、Service Mesh,匯集成52篇精華集錦,充分反映了這一年的技...

    AaronYuan 評論0 收藏0
  • 計算 Cloud Native | 數人CEO王璞@KVM分享實錄

    摘要:分享實錄云計算技術源于互聯網公司,現在云計算已經是下一代企業級的發展趨勢。如何做云計算一直是云計算技術的領導者。互聯網公司的快速發展,已經印證了云計算技術和云原生應用相比傳統構架的巨大優勢。 今天小數又給大家帶來一篇干貨滿滿的分享——來自KVM社區線上群分享的實錄,分享嘉賓是數人云CEO王璞,題目是《云計算與 Cloud Native》。這是數人云在KVM社區群分享的第一彈,之后還有數...

    _Zhao 評論0 收藏0
  • 穩定高于一切的金融行業如何用容器?

    摘要:在谷歌不是這樣,谷歌不會把特定的應用裝在某臺服務器上,業務應用和服務器的強綁定對于谷歌這種量級的數據中心的維護難度太高了。但是金融機構的數據中心規模不像谷歌這么大,所以能做到業務應用和硬件的強綁定。 復雜的基礎IT架構是傳統金融的現狀,如何快速響應用戶需求,加快新業務上線速度,縮短產品的迭代周期? 數人云在容器落地金融云的2年實踐中,實現金融核心業務技術WebLogic、J2EE、Or...

    scola666 評論0 收藏0
  • CloudBest:年度復盤丨盤點2020無處不在的「原生」

    摘要:華為云華為云在云原生這場游戲中,最具競爭力的玩家之一。年,金山云在云原生領域推出了三款重磅產品星曜裸金屬服務器云服務器和云盤。在線上智博會上,浪潮云發布了經過全新迭代升級的浪潮云,進一步提升平臺云原生服務能力。面對數字時代復雜系統的不確定性,傳統的 IT 應用架構研發交付周期長、維護成本高、創新升級難,煙囪式架構,開放性差、組件復用度低,這些都成為了企業業務快速增長的瓶頸。而云原生以其敏捷、...

    Tecode 評論0 收藏0
  • 回顧Java 發展,看 Docker Mesos | 數人COO謝樂冰@KVM分享實錄

    摘要:馬拉松會匹配每個和提供的資源,然后通過將任務下發下去。對外暴露的就是負載均衡的某個服務,后面自動將流量轉發到某個容器的端口上。還有一直辦法是用內網的,這個會維護現有的容器列表端口,并且返回任意一個的端口,頁實現了負載均衡和服務發現功能。 演講嘉賓 數人云COO 謝樂冰 在德國工作十年,回國后加入惠普電信運營商部門,擁有多年項目經驗和創業公司工作經驗。在數人云負責產品售前和運營,專注行...

    canger 評論0 收藏0

發表評論

0條評論

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