雖然這篇Zipkin鄉民發文沒有被收入到精華區:在Zipkin這個話題中,我們另外找到其它相關的精選爆讚文章
在 zipkin產品中有3篇Facebook貼文,粉絲數超過2,850的網紅矽谷牛的耕田筆記,也在其Facebook貼文中提到, Cloud Native 這個詞近年來非常熱門,CNCF 甚至也有針對這個詞給出了一個簡短的定義,然而對於每個使用者來說,要如何實踐這個定義則是百家爭鳴。我認為很認真地去探討到底什麼樣才算 Cloud Native 其實就跟很認真的探討什麼是 DevOps 一樣,就是一個沒有共識,沒有標準答案的問題...
同時也有10000部Youtube影片,追蹤數超過2,910的網紅コバにゃんチャンネル,也在其Youtube影片中提到,...
zipkin 在 矽谷牛的耕田筆記 Facebook 的最佳貼文
Cloud Native 這個詞近年來非常熱門,CNCF 甚至也有針對這個詞給出了一個簡短的定義,然而對於每個使用者來說,要如何實踐這個定義則是百家爭鳴。我認為很認真地去探討到底什麼樣才算 Cloud Native 其實就跟很認真的探討什麼是 DevOps 一樣,就是一個沒有共識,沒有標準答案的問題。
本篇文章從 CNCF 的定義衍伸出 Cloud Native 帶來的優勢,並且針對這個領域介紹了十三種不同面向的科技樹,每個科技樹也都介紹了幾個常見的解決方案。
好處:
1. Speed
作者認為 Cloud Native 的應用程式要具有快速部署與快速開發的特性,擁有這些特性才有辦法更快地去根據市場需求而上線面對。眾多的雲端廠商都提供不同的解決方案讓部署應用程式愈來愈簡單,而 Cloud Native 相關的工具則是大量採用抽象化的方式去描述這類型的應用程式,讓需求可能更簡單與通用的部署到不同環境中。
2. Scalability and Availability
Cloud Native 的應用程式應該要可以無痛擴張來對面不論是面對一百個或是一百萬個客戶。底層所使用的資源應該都要根據當前的需求來動態配置,避免無謂的金錢成本浪費。此外自動化的 Failover 或是不同類型的部署策略(藍綠/金絲雀..等)也都可以整合到 Cloud native 的工具中。
3. Quality
Cloud Native 的應用程式建置時應該要保持不變性,這特性使得應用程式本身能夠提供良好的品質一致性。此外大部分的 Cloud Native 工具都是開放原始碼專案,這意味者使用時比較不會遇到 vendor lock-ins 的問題。
以下是作者列出來認為 Cloud Native 生態系中不可或缺的十三種面向,以及該面向中幾個知名專案。
相關領域
1. Microservices (Node.js/Kotlin,Golang)
2. CI/CD (Gitlab CICD/ Github Actions)
3. Container (Docker/Podmna/LXD)
4. Container Orchestration (Kubernetes/Google Cloud Run)
5. Infrasturcutre as Code (Terraform/Pulumi)
6. Secrets (Vault /Sealed Secrets)
7. Certificates (cert-manager/Google managerd certificates)
8. API Gateway (Ambassador/Kong)
9. Logging (EKF/Loki)
10. Monitoring (Prometheus/Grafana/Datadog)
11. Alerting (Prometheus Alertmanager/Grafana Alerts)
12. Tracing (Jaeger/Zipkin)
13. Service Mesh (Istio/Consul)
https://medium.com/quick-code/how-to-become-cloud-native-and-13-tools-to-get-you-there-861bcebb22bb
zipkin 在 矽谷牛的耕田筆記 Facebook 的最讚貼文
本篇文章是個技術分享文,Netflix 分享內部過去四年來是如何打造一個分散式的 Tracing System。
Netflix 的串流服務想必大家都很熟悉,但是作為服務提供者來說,要如何維運這套分散式的串流服務就沒有這麼簡單。
舉例來說,當一個特定的使用者回報其服務有問題時,內部的系統要如何把下列資訊給全部串接起來組合出一個可以讓內部工程人員除錯的機制
1. Streaming Session
2. 微服務之間的流量
3. CDN 的處理
對使用者來說就是串流有問題,但是背後的網路封包實際上經過哪些 app,走過哪些節點,踏過哪些機房都是很複雜的事情,不把這些全部資訊都組合起來則非常困難除錯。
Netflix 決定要針對這個問題打造一個分散式的 Tracing 平台,而那時還沒有這麼多如 Opentracing, Zipkin, Jaeger 等相關的開源專案可以用,所以 Netflix 必須要自己去打造這套系統。
這套系統的組成跟現今常見的架構雷同,Application 本身要透過 Library 來產生出 Tracing 需要的資料,接者透過一套串流處理將資料給傳送到後端的儲存空間,最後則是由UI等相關服務來讀取資料方便使用
本篇文章基於這種架構下去探討 Netflix 的心路歷程,其中幾個比較有趣的問題這邊列出來
1. Tracing 資料的取樣該如何設計,過於頻繁會造成資料空間使用過量,過於稀少則會造成資料不夠完整,這部分 Netflix 採用基於 hybrid head-based 的取樣方式,針對特定區間採用 100% 的取樣方式,而其餘則是根據設定來隨機取樣
2. 資料儲存的部分則是有非常豐富的變化歷史,早期使用 ElasticSearch 後來對其 R/W 的效能感到不滿而輾轉到使用 Cassandra,而 Cassandra 最初使用 AWS 的 SSD 做為底層應用,後來改轉使用 EBS 並且搭配資料壓縮與一些過濾機制, 2021 決定要引入 Storage Gateway 的方式來處理
儲存方面幾乎是每年都在改善與改進,真的要遇到問題才有辦法針對問題下藥,這也是架構方面很難一口氣做到最好,隨者業務與流量擴大,很多現有的架構可能都需要打掉重來才有辦法應付
全文不算太短,但是推薦有興趣的人可以閱讀全文來看看 Netflix 是如何打造這套系統的
https://netflixtechblog.com/building-netflixs-distributed-tracing-infrastructure-bb856c319304
zipkin 在 矽谷牛的耕田筆記 Facebook 的最佳解答
#小編
Grafana Labs 在 Observability 的最後一塊拼圖。
Grafana Labs 於前幾天 ObservabilityCon2020 大會上新開源了一個專案 Grafana Tempo 用於做分布式追蹤(Tracing) 的後端服務,具備了「高擴展性」和「低成本消耗」的系統,儲存系統僅只依賴S3或 GCS ,並與Loki/Grafana 做了高強度的整合,並兼容Jaeger/Zipkin/OpenTelemetry/OpenCensus 等目前主流的分布式追蹤服務。
ObservabilityCon2020: https://grafana.com/go/observabilitycon/keynote-what-is-observability/
Grafana Tempo: https://github.com/grafana/tempo