雲原生時代的 Flink:
Flink 的資源排程、流式 Shuffle,都是天然适合雲原生的。
Flink 作為一個流式計算引擎,資料的 Shuffle 不需要落盤,都是流式進行資料傳輸,分布式計算之間資料的流動都是通過網絡加記憶體,不依賴本地盤,是以天然就是存算分離的架構。
另外,Flink 自帶了一個狀态存儲,計算的算子和狀态通路是一體的,在算子内部就支援狀态通路,這個其實也在朝着存算分離方向去演進,也就是說 Flink 随時可以關掉 RocksDB 服務,把狀态資料 SnapShot 到持久化的 HDFS 或者是雲存儲上。
随着雲原生的普及,越來越多的企業應用進行了容器化遷移,并通過 K8s 進行編排管理。
最近幾年,大資料領域的 Spark、Kafka 等都開始支援 K8s,使得大資料應用從傳統的 Yarn 時代轉變為雲原生時代。
支援 K8s 之後,對 Flink 有很大的幫助,比如部署不依賴 Hadoop 了:隻要有 K8s,就可以部署 Flink,也沒有任何依賴。
運維方案也非常标準化,K8s 的運維體系也會運維 Flink。同時,Flink 也可以基于容器來進行部署,容器給 Flink 帶來了更好的隔離性,包括任務之間的隔離、多租戶的管理,甚至下一步做 Serverless,也會更加自然和容易。
Flink 自身也會去增加更多的自适應的能力,實作自動化的任務并發管理和狀态資料管理,進而讓 Flink 能更好地使用雲上的彈性機制。