IT Automatic Develop Platformhtml
Elves爲光宇遊戲運維團隊開源的一套自動化運維開發平臺(IT Automatic Develop Platform),面向開發,注重以編程實現運維自動化,致力於爲運維研發人員提供便捷的運維自動化業務編程實現環境, Elves自身不提供業務性功能,運維開發人員可根據自身的業務進行應用(APP)的開發來實現相應業務的自動化管理。前端
注意: master
分支爲團隊開發分支,可能存在不穩定狀況,請優先使用release中的代碼進行業務搭建。git
https://gy-games.gitbooks.io/...github
靈活的業務(App)編程設計:Elves主要面向運維開發人員,以編程方式實現某業務的自動化操做,Elves與用戶間交互以RESTful方式進行,與Apps間交互以進程調用方式進行,理論上支持全部的編程語言,目前Elves提供Python與C#版開發SDK編程
任務模式:Elves提供及時任務(同步),隊列任務(異步,支持依賴),計劃任務(異步) 三種任務調度模式,且容許開發者直接將App-worker的執行結果直接反饋至App-processor,以構建C/S架構服務架構
高可用與高性能:在Elves的設計中各組件爲可拔插形式,且極大程度的下降各組件間依賴關係,幾乎全部組件都可以獨立使用與集羣部署運維
數據交互傳輸:Elves-Center間各組件的數據傳輸使用RABBITMQ以隊列形式進行交互,Elves-Center與Elves-Agent間數據傳輸使用Thrift進行交互,開發人員操做Elves(App)使用RESTful方式交互異步
開發語言與結構:Elves自身以C/S架構設計,Elves-Center(SERVER)由JAVA實現,Elves-Agent(CLIENT)由Golang實現編程語言
可能看完以上的介紹甚至看完[elves-wiki]中的技術架構後還會有些人有疑問,ELVES到底能作什麼,它在運維自動化中扮演什麼樣的角色,這裏來簡單介紹一下,瞭解完後結合[ELVES實踐案例]能對ELVES有一個更清晰的認識。性能
站在自動化系統與操做系統OS及服務交互角度,運維自動化系統正走在集中式、平臺化、提供更優質的用戶體驗的道路上,每每此類產品均爲WEB端或桌面端的形式提供運維使用, 這類運維自動化系統若須要與業務操做系統OS或與操做系統上的服務進行交互的時候每每須要本身定義通信以及調用的實現方式。經過ELVES後,此類運維自動化系統將能夠所有面向統一的EVELS API接口,ELVES API的背後爲各類具體功能業務的實現。
站在運維團隊與開發(前端)團隊合做角度,運維團隊更懂系統,更懂業務並但產品感不強,前端等技能欠缺,開發(前端)團隊產品感強,有較好的產品實現技能如前端JS,CCS等,但其不熟悉系統、運維業務,更不瞭解具體業務實現。經過ELVES,開發(前端)團隊將面向面向的ELVES API接口,運維團隊將更加專一的面向面向具體功能的實現
開源自動化運維開發平臺(IT Automatic Develop Platform) github