這次很快的來到了鐵人賽最後一天呢~今天讓我們簡單的回顧一下,系列文的結構與其中可能值得運用的地方。Go Distributed & Go Consistently 這系列文以 golang 為基底,目標在建立可靠的分散式服務或系統,如果是直接跳到本篇總結的朋友,不訪參考一下結構分析,再決定本系列文是否有適合你的地方。
看一下最後的組成並沒有脫離我們 Day1 大綱,文章組成約略是 1/3 Go語言基礎、1/3 資料一致性、1/3 分散式系統與最後補上簡單的 CI 實作。
資料一致性的介紹是為了分散式系統做準備,簡單介紹了強一致性、最終一致性與CAP三元取捨。Go語言篇章則強調一些,關於 go modules, init() 作用時機與範圍,此外 goroutines 的併發問題與控制手段也包含其中。在有了應用建立的基礎後,我們試著將其部署,至有利於管理虛擬容器 docker 之中。更進一步的使用 kubernetes 進行分散式微服務管理,了解以 istio proxy 實現 gRPC load balance,並利用 NSQ 達成 consumer-producer mode。
本系列文雖對服務整體構築,所需工具與方法有粗淺的描述,但想要提供穩健服務的朋友,還是必須針對個別工具進行入了解,包含設定參數的調整或底層運作的原理等。希望經過本系列的介紹,大家可以了解分散式系統可能的全貌與部分實作方式,如果有不夠深入或更不同的實踐方式的地方,基於實力與時間有限還請大家見諒。
延伸閱讀私心推薦:神龍特攻隊-為了燒肉不小心成為一條龍
本次參賽是與團隊夥伴一起參加,一路上有團隊的互相提醒與分享,整體上感覺與上次獨自參加非常不同,輕鬆許多。在文章主題部分,此次文章多為既有經驗結合部分新知,故撰寫的過程中,時間大多花費在如何建立簡易的範例碼上,包含像是 .yaml 有用到 image 時,須先幫大家把 image build 好放到公倉,諸如此類跟文章敘述無關,但影響學習體驗的細節,讓筆者不經對網路上一些持續發出優良技術文的先進們感到十分佩服。
謝謝所有願意閱讀至此朋友,那麼本次參賽就到這邊,準備吃燒肉囉~