螞蟻金服在過去十五年重塑支付改變生活,爲全球超過十二億人提供服務,這些背後離不開技術的支撐。在 2019 杭州雲棲大會上,螞蟻金服將十五年來的技術沉澱,以及面向將來的金融技術創新和參會者分享。咱們將其中的優秀演講整理成文並將陸續發佈在「 螞蟻金服科技」公衆號上,本文爲其中一篇。
在雲原生髮展趨勢之下,金融行業想要應用雲原生技術,安全問題是一個很是大的攔路虎,而云原生社區對安全問題的重視程度遠遠不夠。螞蟻金服在落地雲原生的時候,解決安全問題是重中之重,通過探索與實踐,咱們沉澱出了一套從底層硬件到軟件、從系統到應用層的全鏈路金融級雲原生安全架構。git
金融行業最重要的就是信任,咱們認爲,安全所帶來的信任,是一種無形的產品,支撐着全部金融業務。github
順應互聯網時代發展,金融行業與機構也發生了不少的變化,包括 App、小程序等更多的訪問渠道,更快的業務變化,更多的第三方供應商。可是,無論怎麼變化,金融行業有一點始終不變,那就是 Zero Fault,對錯誤的零容忍,也就是對穩定性和安全性的極高要求。編程
這裏,我還想澄清你們對金融行業的一個錯誤見解,就是,你們都說金融機構有不少遺留系統,不少技術是十幾年前的,就認爲金融機構的技術是落後的。但其實,金融行業一直是科技含量很是高的。前段時間有一部電影上映,叫《蜂鳥計劃》,根據真實事件改編,講一幫作高頻交易的人,爲了下降從堪薩斯到紐約交易所的時間,建造了一條上千英里直通兩地的光纖,想盡辦法去爭取那最後一毫秒。因此,金融行業並不僅有平庸保守的科技,它一樣也在追逐最前沿最早進的技術,咱們的使命就是要用科技來進一步武裝金融行業,爲金融科技注入更多的活力。小程序
雲原生架構其實表明一種新的生產力,金融行業確定是須要雲原生的,它爲咱們帶來了節約成本和敏捷開發的能力,可是在它前面還須要加一個定語,就是安全的雲原生架構,它裏面不只僅包含以前的相對簡單的安全方案,而是一個從端到端的全鏈路可信的安全解決方案。包括明晰代碼全部權,作到可信啓動,對鏡像的製做和發佈收口,配合帳號體系,明晰應用的全部權和訪問權限;以及安全可獨立部署的精細化隔離方案,將安全策略和實施集成在基礎架構中,對軟件開發和測試透明。安全
這裏咱們着重分享螞蟻金服正在實踐的幾項雲原生安全技術,包括雲原生網絡安全 Service Mesh,安全容器,以及機密計算。服務器
當前,雲原生裏除了容器以外第二大技術其實就是 Service Mesh,從螞蟻的實踐來看,其實它對金融安全有很是高的幫助。它至少能夠作到三點:網絡
而且,這些工做對業務是透明的,不須要給業務開發增長負擔,同時咱們還能夠對流量進行實時的語義分析等等,作比傳統的防火牆作更多的事情。架構
螞蟻金服在對 Service Mesh 的探索中,推出了本身用 Golang 打造的 SOFAMesh,而且已經對外開源,但願和社區一塊兒努力,讓 Service Mesh 的理念和技術更加普及。框架
SOFAMesh 是基於 Istio 改進和擴展而來的 Service Mesh 大規模落地實踐方案。在繼承 Istio 強大功能和豐富特性的基礎上,爲知足大規模部署下的性能要求以及應對落地實踐中的實際狀況,所作的改進包括採用 Golang 編寫的 SOFAMosn 取代 Envoy,極大下降了 Mesh 自己的開發難度,並作了一些創新性工做,例如合併Mixer到數據平面以解決性能瓶頸,加強 Pilot 以實現更靈活的服務發現機制,增長對 SOFARPC、Dubbo 的支持,等等。運維
更多詳情可查看SOFAMesh的GitHub主頁:
https://github.com/sofastack/sofa-mesh
螞蟻金服率先在生產環境中大規模落地 SOFAMesh,超過 10W+ 容器作到了 Mesh 化,平穩支撐了 618 大促,給咱們帶來了多協議支持、UDPA、平滑升級、安全等多方面的好處,而且對性能僅有輕微的影響,單跳 CPU 增長 5% 損耗,RT增長不到 0.2ms,甚至部分業務通過 Mesh 化改造將業務鏈路下沉,RT 反而降低 7%。
傳統容器架構
安全容器架構
這裏給你們分享一下 Kata Containers 的近期進展,針對你們最關注的性能問題有了很是大的提高:
咱們也會和社區一塊兒繼續共建 Kata Containers,讓安全容器成爲雲原生的標配。
安全容器能夠有效的保護主機,可是,金融業務自己仍然須要更強的隔離保護,螞蟻金服引入了機密計算,並根據實際場景研發了大規模落地解決方案 SOFAEnclave。
所謂機密計算,也就是基於例如 Inte SGX,ARM Trustzone 等可信執行環境(Trusted Execution Environment, TEE),也稱爲 Enclave ,訪問計算機內存時隔離用戶數據,以免將數據暴露給其餘應用程序、操做系統或其餘雲服務器租戶的解決方案。
Enclave架構
可是 Enclave 目前存在一些問題,阻礙了它在實際生產環境中的應用。總結這些問題包括:
第一,須要改寫應用,由於可信執行環境裏面沒有內核和基礎庫,因此無法把應用直接在 Enclave 中執行;
第二,須要分割應用,須要把業務程序劃分爲 Enclave 內和 Enclave 外的部分;
第三,未集羣化,與客戶端場景不一樣,Enclave 中的應用如何 failover,容災也是阻止其在數據中心中大規模使用的一個緣由。
螞蟻金服針對這些問題的答案就是 SOFAEnclave 機密計算中間件。
SOFAEnclave架構
SOFAEnclave 由三個組件組成,第一個是 Occlum LibOS,另一個是 SOFAst,以及 KubeTEE。Occlum 是螞蟻和英特爾、清華主導開發的一個內存安全的多任務 Enclave 內核,把系統內核的功能經過 lib 的方式連接過去,經過這種方式給 Enclave 增長功能。同時咱們也創新性的解決了在 Enclave 跑多進程的方式,讓 Enclave 真正適配大型的應用。
想詳細瞭解 SOFAEnclave 的技術細節,能夠參考這篇文章:
當咱們把這些安全組件與雲原生框架編織在一塊兒,構成一個全景,就是咱們正在構建的金融服務的安全雲原生安全架構——基於阿里雲和 Kubernetes,以端到端的安全性保障金融服務。
上述這些組件有些是螞蟻金服在實踐檢驗以後開源並與合做夥伴和社區共同發展的,有些從開始就是在社區中開發的。與傳統金融行業的技術發展不一樣,咱們提倡創建一個開放的架構,並相信開放的開源治理對於這個架構是不可或缺的,咱們會持續參與和支持社區化的開放開發,與社區一塊兒打造下一代金融級雲原生技術。