ref: https://engineering.hellofresh.com/ambassador-the-evolution-of-ingress-gateway-at-hellofresh-3889232cab6f
本篇文章是 HelloFresh 這個美國生鮮食材訂購服務想要分享其團隊中 Ingress gateway 的演化史。該團隊過往使用 VM 作為其底層基礎架構來部署應用程式,後來遷移到
kubernetes 改用容器來部署,然而其內部的其他元件並沒有隨者 kubernetes 轉移而一併更新,譬如文章要探討的 Ingress gateway。
因此文章後將探討原先的 Ingress gateway 架構以及相關問題,最後如何將其與 kubernetes 進行整合來解決前述問題。
再使用 kubernetes 之前,團隊使用兩種不同的方式來處理,分別是內部 API Gateway Janus 以及網頁處理的 Entry (基於 Nginx 的 Reverse-Proxy)
團隊遷移到 kubernetes 之後,這兩個服務都想要透過 kubernetes Nginx Ingress 來處理,不過處理的過程中卻遇到一些問題。
1. 一致性: 每個微服務一開始都透過 Ingress 讓外界存取,然而當團隊開始使用 istio 後有些服務就改使用 Istio Ingress-Gateway 來處理,其他想要使用 TCP 的服務則會改使用 AWS ELB 來處理。
2. 延遲性: 因為 API Gateway 的存取節點都是基於 FQDN 的方式來存取,所以每個封包都要經過更多的節點來到達最終目的,這會增加整個封包傳輸時間。
最大的困惱還是第一個一致性的問題,k8s中有太多的方式讓外界可以存取期服務,每個都有自己獨特的設定,監控以及警示。
為了針對這些問題去解決,團隊內部先期構思一下到底什麼是團隊中理想的 Ingress Gateway
1. Reverse Proxy (HTTP) for websites
2. Mixture of an API Gateway
3. Kubernetes native
4. Advanced routing : (headers, methods, path)-based
5. JWT scope validation
6. Reliability features: Rate-limiting, Retries, Circuit breaking
7. Traffic shadowing
8. Interface for extensions
9. Integration with service mesh
後續文章包含了一些內容,如
1. 作者接者談談為什麼不使用 Service Mesh 所提供的 Ingress gateway
2. 到底要自行開發還是購買解決方案?(最後選擇了 Ambassador Edge Stack)
3. 如何透過 Ambassador Edge Stack 來解決團隊問題
4. 透過 Ambassador Edge Stack 後帶來的好處
有興趣的別忘了參閱全文
istio架構 在 矽谷牛的耕田筆記 Facebook 的最佳解答
本篇文章作者認為透過 Kubernetes Operator 的設計與精神,是有辦法達到夢寐以求中的 Zero-touch Ops,甚至發展到所謂的 AIOps,維運人員盡可能地減少主動去管理應用程式的部署。
一開始探討到微服務架構與 DevOps 文化的興起,愈來愈多的叢集與資源需要管理,但是如果今天應用程式本身難以管理的話,維運人員則必須要花費大量的精力與時間來部署這些應用程式,這無疑是種本末倒置的行為。
本文一開始作者先快速地複習什麼是 Operator,基本上可以當作是 k8s controller 的延伸版本,畢竟 K8s controller 其運作原理也是透過一個無止盡的迴圈,根據使用者輸入事先定義的好的資源格式,來確保當前叢集內的運行狀態有符合需求。Operator 基於這個概念上,讓使用者可以使用 CRD 這種自定義的格式來定義自己的資源,不單純只是所謂的 deployment/pod/service 等,可以是更符合應用程式需求的抽象資源,譬如 GitRepo, Network, PrometheusService 等
文章內還有更多關於 Operator 的介紹,包含如何透過 SDK 來撰寫開發一個 Operator,有興趣瞭解的
不可錯過。
文章後半部在探討關於 AIOPs 如何達成 Zero-Touch Ops 的願景,文中先以一張圖片來解釋 AIOps 的架構,最後提到如何將 AIOPs 與 Operator 的架構整合為一,該架構中整合了不少常見服務來滿足不同面向的要求,譬如 Grafana, Prometheus, ServiceMesh/istio, Ansible 等。
https://medium.com/faun/kubernetes-operators-to-realize-the-dream-of-zero-touch-ops-5bc8c3e5e11b
istio架構 在 Google Cloud Facebook 的最讚貼文
內科之心(t-Hub)雲端盛會以 【疫後新常態 打造企業營運韌性】為題,從企業營運、上雲策略、雲地應用、創新體驗等維度,幫助企業定錨數位化轉型目標,進而實現代化架構的發展方向。
📌11/19 免費報名
👉 https://goo.gle/2Gja7iA
▎解密Google如何在Kubernetes中構建SRE
▎現代化IT應用服務架構(Anthos)
▎透過混合/多雲方案,免除搬移資料痛苦,增進企業分析效率
▎服務網格(Istio)與ASM(Anthos Service Mesh)服務管理
istio架構 在 Istio 1.6架构及性能| 好运来了 的推薦與評價
Istio 架构 Istio 服务网格从逻辑上分为数据平面和控制平面。 数据平面由一组智能代理(Envoy)组成,被部署为sidecar。这些代理负责协调和控制微服务 ... ... <看更多>