當前位置:
首頁 > 最新 > 微服務架構中的常用開源工具

微服務架構中的常用開源工具


基礎設施

ZooKeeper

ZooKeeper是一個具有高可靠性的分散式的協作工具,基於PAXOS協議,其實現了一個可保證分散式一致性的類文件系統。

利用它的這個機制以及它提供操作與讀取該類文件系統的API,分散式系統可用它實現各種功能,包括數據發布/訂閱,負載均衡,命名服務,分散式協調/通知,集群管理,Master選舉,分散式鎖,分散式隊列與服務發現等多個分散式中常見的需求應用場景。

基於AMQP協議,使用非常小眾的erlang語言編寫的分散式消息隊列,有非常詳實的文檔與tutorials,同時提供了web頁面,用於管理和查看隊列的使用情況。


使用Django編寫的跳板機系統,可通過終端登錄各測試機,同時提供web應用,可用於某伺服器上文件的上傳與下載,跑腳本什麼的再方便不過了。

它有著全套的許可權管理,遵循 Web 2.0 規範,配備了業界領先的 Web Terminal 解決方案,交互界面美觀、用戶體驗好,採納分散式架構,支持多機房跨區域部署,中心節點提供 API,各機房部署登錄節點,可橫向擴展、無並發限制。


由linkedin研發的分散式調度工具,使用Java編寫,可使用Cron的配置方式來管理分散式調度任務,數據落於MySQL,整體還是蠻重的。

具有便於使用的web UI,並且在任務執行成功或失敗時可以發送郵件通知,並且提供重試機制。


攜程框架部門研發的分散式配置中心,能夠集中化管理應用不同環境、不同集群的配置,配置修改後能夠實時推送到應用端,並且具備規範的許可權、流程治理等特性,適用於微服務配置管理場景。

服務端基於Spring Boot和Spring Cloud開發,提供了Java,Python等語言的接入sdk。


微服務中RPC框架當然是少不了的,最常用的是Facebook研發的thrift,以及阿里的dubbo,現都歸於Apache基金會下,此外,餓了么研發的thriftpy在Python領域也比較優秀。

當然,在Thrift框架的上層,公司往往會再包一層,做為自己的框架,在其中引入sentry、zookeeper,gitlab地址pull idl等基於公司具體情況的處理。

發布

jenkins是由Java編寫的開發自動化平台,其本身提供了1000+的plugins可供各種自動化場景使用,使用者可以通過編寫jenkinsfile來自定義自己的自動化任務。

使用jenkins的常見場景為項目構建,運行自動化測試,靜態代碼分析與項目部署。


spinnaker是一個由Netflix開發的使用Python編寫的用於持續集成的平台,主要用於結合容器發布各環境的代碼,發布地點可以是各種雲平台,包括 AWS EC2, Kubernetes, Google Compute Engine, Google Kubernetes Engine, Google App Engine, Microsoft Azure和Openstack等,而這,已經包含了市場上所有主流的雲服務商。

它的一個很大的特點是自動化,可以通過git events, Jenkins, Travis CI, Docker, CRON等事件來觸發構建而不用人工手動去操作,在工作中的一個非常便利的常見使用場景是在自己的開發分支使用git push命令後,spinnaker將會自動構建這個branch的容器,並生成相應的訪問url,真的是非常方便。


使用Go語言編寫的容器管理平台,它的官網對自己的簡介為Production-Grade Container Orchestration,Automated container deployment, scaling, and management。

用於編排、發布容器,提供水平伸縮性,便與擴展,並且可以登錄某個容器,運行命令、查看log等。


監控

你不可能沒聽說過的跨平台Bug追蹤網站,Github上17000+star,其受歡迎程度可見一般。它使用Python編寫,並且提供了大部分主流語言的API供其使用,它能很好地融入log系統中,完備地記下問題出現當時的調用鏈與場景。

常見的使用方式為將它納入到各種公司框架中,使得開發人員直接拿到logger,當使用warning或error時,sentry就會記錄這個事件並發郵件給到關心它的人。


小米開源的微服務監控系統,使用它可以查看各伺服器的狀態,包括網路IO,與CPU運行情況,以及資料庫的負載。

生成user friendly的圖表,提供強大的統計與自定義功能,用戶可以按照自己想要的方式獲取信息。


elastic團隊的作品,用於數據收集與分析,可以用於根據各種條件(時間、關鍵字)等來查詢各環境的日誌,正是根據這些日誌,它可以生成各種統計圖表等,被稱為elastic技術棧的視窗。

不過說實話它這個查詢的界面有些難懂,不夠user friendly。


其他

開源的用於公司自建代碼倉庫的項目,其功能絲毫不遜於Github。


使用PHP編寫的code review平台。


使用ROR編寫的項目管理工具,主要用於線上bug的提出、跟蹤與管理。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 杭州田丁科技 的精彩文章:

Android模塊化實踐

TAG:杭州田丁科技 |