某互聯網上市公司基於 Golang 的運維基礎框架

主題:某互聯網上市公司基於 Golang 的運維基礎框架

目錄

  • 服務器監控系統git

  • 自動化部署系統github

    • 功能展現算法

    • 高可用控制系統的演化編程

    • 高可用調度系統
  • 資源定位系統服務器

    • 總體架構微信

    • 強一致,高可用設計
  • 一點兒心得

主講師:PC

  • 豆瓣、百度、360、第四範式網絡

  • 知乎《面向工資編程》

Overview

某互聯網上市公司基於 Golang 的運維基礎框架

監控系統

某互聯網上市公司基於 Golang 的運維基礎框架

自動化部署系統

某互聯網上市公司基於 Golang 的運維基礎框架
某互聯網上市公司基於 Golang 的運維基礎框架

標準化的上線包,流程化的上線系統多線程

  • Function Points架構

  • 面向服務上線框架

  • 一鍵部署及回滾

  • 詳細的部署統計信息和歷史

  • Window/Linux 全平臺支持

控制系統

某互聯網上市公司基於 Golang 的運維基礎框架

  • memcached架構的全異步非阻塞多線程模https://github.com/auxten/gko_pool

  • 內置特別優化過的內存池實現, https://github.com/auxten/gkoAlloc

  • 異步 DNS 查詢、DNS over TÇP,cares + libev。從 gevent 學來的。

  • 高性能客戶端編程:端口掃描、DDoS ***……

某互聯網上市公司基於 Golang 的運維基礎框架

進化

總體架構

某互聯網上市公司基於 Golang 的運維基礎框架

分層原則

在系統實現第一期,只有 Agent 和「分佈式控制器」,後續爲了支持「定時任務」、「任務依賴」。誕生出了更爲上層的「分佈式調度器」。這兩層系統實現的語言和高可用的考慮都不同,但仍是以下原則:

  • 數據、業務邏輯嚴格分離。全部服務」無狀態化」,保證數據一致性和高可用。

  • 業務邏輯和數據操做、網絡操做代碼嚴格分層實現。

控制系統 v2

長鏈接推送

某互聯網上市公司基於 Golang 的運維基礎框架

Tech Points

  • 分佈式一致性算法

  • 使用 Erlang/OTP 開發,連續四年不間斷運行無端障

  • 高可用設計、99.999% 高可用保障

  • 平臺化、插件化

調度

處理複雜任務依賴、調度

某互聯網上市公司基於 Golang 的運維基礎框架

Tech Points

  • 分佈式高可用調度算法

  • 任務依賴&定時模型

  • Powered by Golang

  • 長鏈接,HTTP 接口

資源定位

解耦、定位上下游

某互聯網上市公司基於 Golang 的運維基礎框架

client

Access Method

Confd——長鏈接、推送修改配置文件、自定義reload腳本

SOA——主要面向Java,以SDK提供,zookeeper接口形式接入

DNSd——Golang;Glibc Name Service Switch

API——Zookeeper兼容接口,HTTP接口、ProtoBuf接口

sever

Tech Points

  • Raft 分佈式一致性算法,強一致性保證,高可用保證,放棄分區容忍性

  • LevelDB 持久化,LSM tree,每次啓動時載入

  • Powered by C++,預備用 Golang 重構

心得

某互聯網上市公司基於 Golang 的運維基礎框架

分享時間:18年3月29日(週四)21:00——22:00

具體的參與方式:加小助手微信WeChat : 1902433859 備註「公開課」 進入直播分享羣

相關文章
相關標籤/搜索