《Cloud Native Go》筆記(十五)結論
Cloud Native Go:構建基於Go和React的雲原生Web應用與微服務。Kevin Hoffman, Dan Nemeth著,TalkingData:宋凈超,吳迎松,徐蓓,馬超 譯,電子工業出版社,2017年。
筆記中有些內容直接引用原書。
=======================================================
如果用橋樑建築與編程類比,那麼建設到一半的時候可能會發現,對岸比預想的要遠50米,而且其材質是花崗岩而不是泥土,更糟糕的是我們最終想的是一座公路橋而不是步行橋。——Sam Newman, Building Microservices 作者
本章將介紹以下內容:回顧本書中提到的內容
雲原生Go開發學習和成長的後續步驟和建議
我們學到了什麼
Go不是小眾語言
微服務應該有多「微」:一個微服務應該只做一件事,它應該是一個獨立的,基於RESTful單一責任原則(SRP)的實例。
持續交付和部署
測試一切
儘早發布,頻繁發布
事件溯源、CQRS和更多首字母縮略詞
下一步
現在大家已經成為了一個使用Go構建雲服務的專家,接下來構建應用。提出瘋狂的想法並實現它們。做貢獻,回饋社區,為其他構建微服務的Go開發人員編寫代碼庫。分享,讓更多人痴迷於使用Go語言編寫雲原生代碼。
附錄A
如果我有一個小時來解決問題,我會用55分鐘來思考這個問題,用5分鐘來確定解決方案。——阿爾伯特?愛因斯坦
使用日誌流
當想查看應用程序出了什麼問題,首先應該查看就是日誌流,無論是實時數據還是存儲在Splunk、ELK堆棧、Sumologic或其他工具中的歷史數據,日誌流都是不二之選。
應用程序發出的日誌流應該被視為來自衛星軌道的遙測流,它在雲端。
健康和性能監控
應用性能監控(APM)工具
New Relic(https://newrelic.com)是此類工具之一。
通過平台監控應用程序
平台應該嚮應用程序開發人員和運維人員公開的指標如下。
1. 每個應用程序示例的CPU使用率。
2. 每個應用程序示例的內存消耗。
3. 每個應用示例的每個請求的響應時間。
在雲中調試應用程序
鼓勵大家把應用程序看作部署的科學儀器,像在軌道上繞地球運行的衛星,這些應用程序不能被觸及。如果本地肯定可以使用Go調試器。但對於生產環境跨區域部署的多個實例,使用調試器不會帶來任何好處。應該使用日誌流信息。
推薦閱讀:
TAG:微服務架構 | Go編程 | CloudNativeGo書籍 |