1. 程式人生 > >利用UK8S落地微服務,加速元年科技業務迭代

利用UK8S落地微服務,加速元年科技業務迭代

“使用UK8S,開發者可以像使用普通雲伺服器一樣迅速搭建K8S環境。在享受K8S帶來的便利的同時,能夠讓開發人員集中注意力在業務實現的細節,而不必在基礎架構搭建上浪費太多的精力。UCloud為此提供的專業、快速的服務和響應機制幫助我們成功的將整個環境從自建K8S平滑遷移到UK8S。UCloud的UK8S如同其它的基礎服務一樣穩定,使我們相信‘讓專業的人做專業的事’,選擇UCloud作為我們的雲服務提供商是我們在技術選型上做出的正確選擇之一。”

—元年科技CTO 楊熠

寫在開始

本文主要介紹UK8S在公有云場景中的實踐案例,後續即將推出在混合雲模式下的案例分享。

元年科技業務使用UK8S的效果

業務上引入UK8S落地微服務,目的並非是節約雲主機資源,而是節省人工成本,使得開發人員可更專注於業務實現;可降低系統耦合度、研發難度,從而更高效合理的排程主機叢集資源;提高團隊整體交付效率,實現時間成本的節約,最終轉化為業務迭代的加速。

關於元年科技

自2000年成立起,一直專注於以管理會計為核心的管理諮詢和管理資訊化領域,致力於成為“中國管理會計領航者”,幫助中國企業實現財務轉型和管理精細化。

元年科技的專業服務和軟體平臺涵蓋企業運營以及管理的四個層面:以管理會計為核心,支援企業分析模擬、決策支援和管理控制;以財務共享為核心,推動財務轉型、提升企業運營效率;基於商業智慧平臺和大資料,實現客戶分析、銷售分析、運營分析;以企業資訊化規劃和網際網路轉型為核心,提供集團管控體系、組織和流程優化等諮詢服務。

雲快報的業務場景和架構

雲快報是元年科技旗下一款商旅及支出管理SaaS產品。採用雲端計算和移動網際網路技術開發,凝聚了眾多行業、企業費用管理的最佳實踐,滿足廣大企業提升業務能力、規範業務行為、管控業務費用的核心需求,同時集成了同程、藝龍、滴滴、京東等網際網路消費平臺,

將差旅申請、消費和報銷流程打通,此外還整合發票查驗、智慧記賬、多種財務介面,讓企業的費用管控更高效,更清晰透明。

該產品中的 商城業務採用巨石與微服務結合的架構模式 ,包含商城端以及商城服務端兩部分內容。商城端目前仍使用傳統巨石結構, 也正在改造中,主要負責買賣雙方的管理,涵蓋商戶管理、購物商城、管理後臺等服務。由於雲快報中接入的商戶並未實際在商城中開店,遂引入對接端的概念,完成對遠端商戶的真實下單操作。

商城使用者在購物商城中下單並完成支付後,對接端將訂單通過API服務提交至商城服務端進行真實下單,商城服務端採用微服務架構, 每類服務之間既相互獨立又維持協作的關係。此外,針對搜尋服務,雲快報選擇將微服務架構與Solr結合的方式,實現供應電商系統中商品的定時同步,以及推送至Solr中提供搜尋服務。

圖:雲快報商城業務架構圖

引入K8S,解決業務痛點

微服務架構下,元年科技開發人員發現使用K8S 比原先雲主機部署模式在如下場景中可更為有效的解決問題。

痛點一:新服務的上線以及原有服務的更新過程繁雜

一方面,若要在既有云主機上釋出全新的服務,需考慮不同型別語言要求不一致的問題,從基礎環境到啟動指令碼,內容十分零散,整個釋出過程相當複雜;另一方面,若要更新已存在的服務,指令碼語言可使用熱更新,但編譯類語言又面臨同樣的困境。

常規做法是由nginx在服務前面做一個負載的代理,人工操作切換負載來保證非中斷服務方式的更新,但當服務數量較多時,人工操作負擔大。

K8S下可利用容器技術的自包含自描述解決多種程式語言更新的問題,並實現零散發布內容的整合;此外,使用K8S的應用編排能力進行釋出,可解決微服務架構下複雜的多應用依賴釋出的問題,同時還可降低誤操作概率。

痛點二:動態服務遷移操作難度大

圖:動態服務遷移示意圖

由於雲主機資源的限制,為了給特定服務提供資源升級的空間,常常需要動態的將其餘正在執行的服務遷移至新的雲主機。如上圖所示,服務11要由0.5核CPU升級為1核CPU,此時需要把服務07和12遷移至別的節點中,再對服務11進行升級操作。

未使用K8S的情況下,為了防止業務中斷,通常會將服務07和服務12在節點05中進行部署,更改服務發現後再將節點02中資源清除。而K8S中只需更改服務07和12的nodeSelector,即可將服務07和12實現遷移,在保障服務不中斷的前提下快速滿足服務11的擴容需求。

痛點三:線上服務健康檢查複雜度高

為了保證線上服務的存活,需安裝多類別的檢測監控軟體,安裝軟體工作量大,並且只能作為報警提醒,無法協助後續處理。

利用K8S的健康檢查機制,可以通過請求服務的健康檢查介面來檢測服務的工作狀態,並根據響應碼判識狀態是否正常,若處於非正常狀態,K8S會自動執行Pod的銷燬重建,保障服務正常工作。

痛點四:服務之間的呼叫和發現配置工作多

圖:服務呼叫與發現示意圖

實際應用中,會需要服務之間的內部呼叫。但不同環境下,呼叫相同的服務由於內部IP無法固定,需要額外增加多個配置檔案,且每個環境下對應一套,服務數量較多時,配置工作繁重。

而K8S的服務發現基於Service加DNS解析實現,完成服務發現的同時具備負載。如上圖所示,服務16訪問服務18的時候會先由K8S內部的DNS來獲取服務18的Service代理IP,再訪問服務18-proxy。

痛點五:單個服務完全消耗雲主機資源

原有的部署模式下,單臺雲主機上同時執行多個服務,並且沒有對每個服務的CPU、記憶體以及磁碟IO進行限制,導致出現單個服務負載過高,將整臺主機資源耗盡,從而主機卡住的情況,此時再擴充套件新的資源部署服務,整個恢復過程較為漫長。

K8S中可對服務的CPU、記憶體使用量進行限制,有效減少執行在同一臺主機上服務資源爭搶問題。

由自建K8S遷移至UK8S

元年科技業務中共有兩套K8S叢集,一套是執行線上下內網環境中的自建K8S叢集,直接使用Rancher搭建和管理,另一套執行在UCloud公有云環境中,先前也是自建的K8S叢集。考慮到UK8S相較於自建K8S叢集有如下幾點優勢,最終選擇從自建K8S叢集遷移至UK8S。

表:UK8S與自建K8S對比

—END —

歡迎掃描下方二維碼,加入UCloud K8S技術交流群,和我們共同探討Kubernetes前沿技術。(如顯示群人數已加滿,可新增群主微信zhaoqi628543,備註K8S即可邀請入群。)

TIC 2019報名火熱進行中,歡迎加入我們共同探討Kubernetes的技術實踐!UCloud實驗室負責人葉理燈將於 技術專場A 帶來更多Kubernetes技術乾貨。除此之外,技術專場還彙集了 Serverless、微服務、分散式技術等 熱門話題,誠邀廣大技術開發者掃描下方二維碼參與報名,共享技術盛宴!

相關推薦

利用UK8S落地服務加速元年科技業務

“使用UK8S,開發者可以像使用普通雲伺服器一樣迅速搭建K8S環境。在享受K8S帶來的便利的同時,能夠讓開發人員集中注意力在業務實

做好架構師要懂服務彙總服務架構落地的15種框架(轉)

這兩年,微服務這個概念火了,火到什麼程度呢?2016年有一個統計說,兩千家企業裡,30%在使用微服務,15%在實驗開發和測試微服務架構,24%在學習微服務準備轉型,只有剩下的30%的企業沒有使用微服務。 微服務到底有什麼好呢?微服務在2013年才被提出,短短几年就有這麼快速的發展。微服務架構能夠實現由小

做好架構師要懂服務匯總服務架構落地的15種框架(轉)

kit 架構 framework lean 時間 abr 容易 還要 攜程 這兩年,微服務這個概念火了,火到什麽程度呢?2016年有一個統計說,兩千家企業裏,30%在使用微服務,15%在實驗開發和測試微服務架構,24%在學習微服務準備轉型,只有剩下的30%的企業沒有使用微服

落地的DDD(3)-如何利用DDD進行服務的劃分

摘要 前面兩篇介紹了DDD的目標管理、DDD的工程結構調整。這篇討論微服務的劃分。微服務是目前後端比較流行的架構體系了,那麼如何做好一個微服務的劃分?一個微服務的粒度應該是多大呢?這篇主要介紹如何結合DDD進行領域劃分。 工程結構程式碼 上篇介紹了可落地的DDD的(2)-為什麼說MVC工程架構已經過時 很多朋

落地的DDD(4)-如何利用DDD進行服務的劃分(2)

摘要 在前面一篇介紹瞭如何通過DDD的思想,來調整單體服務內的工程結構,為微服務的拆分做準備。同時介紹了我們在進行微服務拆分的時候踩過的一些坑。 這篇介紹下我們最終的方案,不一定對,歡迎留言討論。 微服務劃分 問題分析 上篇介紹過我們一開始的服務劃分標準 一個領域一個服務的規則去拆分, 同時為了保證領域的

服務為什麼可以加速分工、促進合作?

知其然,知其所以然。在上一篇博文中我們聊到 微服務的本質 就是一種新的協作機制,可以加速分工、促進合作,但為什麼微服務有這種效用呢?今天我們來聊聊其背後的原因。 在業務網際網路化之前,我們建設的大部分IT系統都是供內部員工使用的,主要用於提升辦公、管理的規範和效率,以及通過無紙化來降低辦公

2018高級系統架構SSM大型分布式架構電商項目高並發服務緩存技術

以及 目標 技術 strong 方式 為什麽 gmv 結果 nbsp 課程內容 1.課程目標: 1.1了解電商行業特點以及理解電商的模式 1.2了解整體電商的架構特點 1.3能夠運用Dubbox+SSM搭建分布式應用 1.4搭建工程框架,完成品牌列表後端代碼 2.電商行業技

服務spring bootspring cloud

自動化部署 需要 進行 mic 無法 去中心化 結果 簡單 ice 什麽是微服務   將復雜的業務系統根據業務拆分成多個子系統協同完成主體業務。 微服務的九大特性(根據Martin Fowler 在 Microservices 中的歸納)   服務組件化(靈活拆裝,低耦合)

服務那些你該懂的知識(服務的註冊和發現)

微服務 微服務按照我個人的理解就是將眾多的功能拆分成一個個子服務,其中以現在很流行的SpringBoot框架進行開發,再以SpringCloud方式進行部署。進而可以在SpringCloud的服務平臺中對SpringBoot的一個個服務進行註冊和監控。 一、服務註冊與發現 關

微服務實戰(九):落地服務架構到直銷系統(回顧總結)

這個系列我們大概寫了八篇文章,將微服務的最重要的內容過了一遍。當然其中有些內容還沒有涉及到,比如Docker(不是微服務架構風格中必須的)等,關於Docker我們自己可以在網上找找其他文章。 這篇文章就來回顧下微服務架構風格是如何落地的,如果你對以下回顧的內容都很清楚並已經有一些實踐的經驗,那麼恭喜你,你已

【spring cloud】匯入一個新的spring boot專案作為spring cloud的一個子模組服務怎麼做/或者 每次匯入一個新的spring boot專案IDEA不識別子module啟動類無法啟動/右下角沒有藍色圖示

如題:匯入一個新的spring boot專案作為spring cloud的一個子模組微服務,怎麼做 或者說每次匯入一個新的spring boot專案,IDEA不識別,啟動類無法啟動,怎麼解決 下面一起來走一遍這個流程: 1.將一個spring boot服務匯入spring cloud中作為一個子模組

致傳統企業朋友:不夠痛就別服務有坑 (2)

幫助 鏈路 服務治理 生命 常常 節點 業務邏輯 概念 中間件 此文已由作者劉超授權網易雲社區發布。歡迎訪問網易雲社區,了解更多網易技術產品運營經驗。3.4. 階段二有什麽問題嗎?其實大部分的企業,到了這個階段,已經可以解決大部分的問題了。能夠做到架構SOA化,基礎設施雲化

致傳統企業朋友:不夠痛就別服務有坑 (1)

此文已由作者劉超授權網易雲社群釋出。 歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。   一、微服務落地是一個複雜問題,牽扯到IT架構,應用架構,組織架構多個方面 在多家傳統行業的企業走訪和落地了微服務之後,發現落地微服務是一個非常複雜的問題,甚至都不完全是技術問題

致傳統企業朋友:不夠痛就別服務有坑

  一、微服務落地是一個複雜問題,牽扯到IT架構,應用架構,組織架構多個方面 在多家傳統行業的企業走訪和落地了微服務之後,發現落地微服務是一個非常複雜的問題,甚至都不完全是技術問題。 當時想微服務既然是改造應用,做微服務治理,類似註冊,發現,熔斷,限流,降級等,當然應該從應用開

阿里、百度、京東一線網際網路架構師都在用的技術體系高併發服務軟體系統架構

可以說,Java是現階段中國網際網路公司中,覆蓋度最廣的研發語言,掌握了Java技術體系,不管在成熟的大公司,快速發展的公司,還是創業階段的公司,都能有立足之地。 有不少朋友問,除了掌握Java語法,還要系統學習哪些Java相關的技術,今天分享一個,網際網路Java技術學習路線圖。 一:常見模式

從單體架構遷移到服務8個關鍵的思考、實踐和經驗

隨著微服務架構的持續火熱,網路上針對微服務和單體架構的討論也是越來越多。去年的時候,社群更多的關注點是在二者的區別以及優缺點辨析上,而今年,越來越多的人開始關注如何從單體架構遷移到微服務上。毋庸置疑,微服務的理念正在席捲整個開發者社群,像Netflix、Uber這樣的公司都是非常成功的應用案例。

Java架構師大型電商分散式叢集服務高併發專案實戰

Java架構師,高併發,高效能,高可用,分散式,叢集,電商,快取,微服務,微信支付寶支付,公眾號開發,java8新特性,P2P金融專案,程式設計,功能設計,資料庫設計,第三方支付,web安全,效能調優,設計模式,資料結構,併發程式設計,虛擬機器,中介軟體,資料庫,專案實戰,大型分散式電商專案實戰視訊教程

2018年最新JAVA架構師包含技術總綱-服務高併發分散式效能優化springmybatis底層原始碼虛擬機器基礎框架架構系統架構

2018年最新JAVA架構師包含技術總綱-微服務,高併發,分散式,效能優化,spring,mybatis底層原始碼,虛擬機器,基礎框架架構,系統架構 寫在開篇 不管是開發、測試、運維,每個技術人員心裡都有一個成為技術大牛的夢,畢竟“夢想總是要有的,萬一實現了呢”!正是對技術夢的追求,促使我們不斷地努力和提

【ServiceComb】紮實做服務認真做開源

5 問ServiceComb     微服務 ServiceComb 是誰?   ServiceComb取名寓意蜂巢,是微服務開源專案,Apache軟體基金會孵化專案,其源自ServiceComb商業版華為雲微服務引擎

叢集分散式服務SOA的理論知識

什麼是叢集 以下內容來源維基百科: 計算機叢集簡稱叢集是一種計算機系統,它通過一組鬆散整合的計算機軟體和/或硬體連線起來高度緊密地協作完成計算工作。在某種意義上,他們可以被看作是一臺計算機。集群系統中的單個計算機通常稱為節點,通常通過區域網連線,但也有其它的可能連線方式。叢集計算機通