持續交付優化之路(一)產品剖析

本文用於記錄一個人肉運維的奮起之路

系統層面

系統組件:

    1、nginx(單點或負載)

    2、memcached(只能單點)

    3、rabbitmq(單點)

    4、php

    5、mysql(主從)

    6、mongodb(主從)

    7、redis(主從)

wKioL1nDUJeRBAa1AABKzaoeWRE877.png-wh_50

架構:

    1、從應用服務器沒有任何意義

    2、缺乏高可用可靠性

wKioL1nDUHzgO0h-AAEVKLsFbtk141.png-wh_50




產品層面

服務特點:

    1、微服務

    2、容器不同(jetty、netty、paly)

    3、配置文件繁雜不易管理

更新方式:

    1、jar包,war包,配置文件,sql腳本,移動端分開更新,容易出問題

    2、容易因更新導致服務異常

分支特點:

    開發只有一個主分支(release),每次定小版本便會將當前的主分支克隆一份並命名a.b,後面再次發版則又克隆一份最新的release命名爲a.b+1或者a+1.0 。這會導致有些環境部署的時候用的release主分支,但過了很久之後需要重新構建移動端會構建最新的release導致新端連舊後臺,出一堆問題。


痛點

沒有高可用

服務較多管理不便(沒有管理平臺)

分支管理是個坑


努力方向

1、要想實現高可用,必須先實現監控和管理平臺

2、完成監控和管理平臺後加入keepalive實現高可用

3、分支策略:release分支只用來bugfix和驗證新功能,作爲線上測試環境使用,用戶部署和每次發版都是用固定的版本名。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章