轉型中的 Mac:為 iOS 工程師打造雲原生開發管道


摘要

本文探討了如何在轉型中的 Mac 環境中為 iOS 工程師打造雲原生開發管道,並強調其對提升開發效率的重要性。 歸納要點:

  • 雲原生 macOS 環境整合 CI/CD 流程,提升開發效率與一致性。
  • AWS EC2 的根卷替換技術加速 GitHub Actions 中的 macOS 應用,優化開發流程
  • DevSecOps 策略確保應用程式安全性,將安全檢查無縫融入自動化工作流程。
隨著雲原生技術的演進,macOS 將成為 iOS 開發的新趨勢,幫助工程師更高效地應對未來挑戰。


雲原生管道:克服移動應用開發的挑戰

為我們的 iOS、iPadOS、macOS 和 visionOS 工程師建立一個雲原生的管道面臨了若干技術挑戰。這使我們能迅速擴充套件移動應用的構建能力並增加部署頻率,從而更快地將有價值的新功能交付給客戶。Vanguard 的 iOS 工程師之前依賴於位於資料中心的實體 Mac Mini 和 Mac Pro 作為 iOS 應用程式的構建伺服器。隨著全球移動開發的擴充套件,各團隊在採購持續整合伺服器硬體方面遇到了挑戰。在 AWS 上推出 macOS EC2 例項提供了一個機會,使我們能夠將本地管道完全轉換為雲原生解決方案。

回顧我們目前的路線圖,確保 macOS 能夠正確配置以處理 GitHub 上的工作是至關重要的,我們即將推出 CI/CD 平台。考慮到 CI/CD 已經設定來管理大部分可以在 Linux 環境中完成的工作負載,我們旨在為 macOS 複製相同無縫的使用體驗。

雲端原生 macOS:在 CI/CD 流程中實現一致與愉悅的使用體驗

將 macOS 整合進我們的 CI/CD 流程中面臨了獨特的技術挑戰,確保提供一致且愉悅的使用體驗。但透過適應與採取「不同思考」的方式,我們成功打造了一個現在每日可產出超過 100 個版本的流水線。這支援了每兩週一次的釋出節奏,並為 Vanguard 的數十位 iOS 開發者服務。

我們對雲端原生 macOS 的探索始於 AWS 推薦的方法:建立一個包含 macOS 的 EC2 自動擴充套件群組。這一過程需要四項不同的 AWS 資源。雖然不會深入實作細節(因為 Amazon 提供了非常好的讀物),但從高層次來看,我們利用 Terraform 建立了一個自我管理的授權、一個主機資源組、一個啟動模板,最終形成一個自動擴充套件群組。

**最新趨勢:雲端原生 macOS 的演進與替代方案**
AWS 自 2020 年推出 EC2 支援 macOS 以來,其服務不斷更新。例如在 2023 年 6 月推出支援 macOS Ventura 的 EC2 Mac 例項,以及支援 Apple Silicon 處理器 M1 和 M2 晶片的新功能。這些更新提升了 macOS 在雲端環境中的穩定性與效能,同時也為開發者提供了更靈活的部署選擇。

除了 AWS,其他雲端服務商如 Google Cloud Platform (GCP) 的 Compute Engine 和 Microsoft Azure 的 Virtual Machines,也積極提供對 macOS 的支援。這種市場競爭促使 AWS 不斷改善其在雲端環境中的服務品質,並提供更多樣化的資源配置,例如 GPU 加速和特定開發工具的預安裝選項。

**更深層的技術考量**
儘管 AWS 提供便利的 EC2 Autoscaling Group,但在實際應用中還需考慮以下因素:

* **安全性和成本控制:** 嚴格控制 macOS 例項的訪問許可權和資源分配,以確保安全性並降低成本。
* **基礎設施管理:** 設計完善的 CI/CD 流程,以確保快速啟動、更新及維護 macOS 例項,以滿足快速迭代開發需求。
* **持續整合與交付:** 選擇合適的 CI/CD 工具與方法,使得macOS例項能無縫融入開發流程,同時實現自動化測試、建構及部屬。

總體而言,我們透過巧妙地整合現有技術,不僅解決了挑戰,也提升了整體效率和開發者體驗。

在我們的設定中,每個環境至少需要兩個不同的自動擴充套件群組。第一組被稱為「共用」執行者,專注於執行單元測試、程式碼檢查以及其他端對端測試。相對地,第二組則稱為「提升」執行者,負責應用程式簽名及將成功構建上傳至我們內部的工件管理系統。

除了借鑒亞馬遜的模式,我們進一步精煉了實作,旨在適應不同環境中的程式碼重用、自動擴充套件組堆疊以及企業檢查。為了達成這個目標,我們採用了名為 Atmos 的開源工具。透過 Atmos,我們能夠對 Terraform 堆疊進行引數化,以滿足上述要求。我們透過整合額外的配置檔案來簡化這一過程。這使我們能夠編寫一次 Terraform 程式碼,並透過調整 Atmos 變數來定製它。

我們與 Atmos 一起,利用多個 GitHub Actions 來管理我們的計畫檔案、狀態、狀態鎖定和計畫部署。這些動作遵循標準的 Terraform 模式,使用 DynamoDB 資料表進行狀態鎖定,並利用加密的 S3 儲存桶來儲存計畫檔案和狀態。透過 Atmos,針對每一種變化組合,例如執行者型別、區域或環境帳戶,每個動作都會生成獨特的計畫和狀態檔案。這種精簡的方法確保了每個場景都有量身訂做的配置。

EC2 macOS 例項的瞬時性設計:安全性和效率提升

從安全的角度來看,我們的目標是讓 EC2 例項具備瞬時性,為每個工作請求確保一個乾淨的工作環境。就像我們的 Linux 執行器一樣,一旦任務結束,我們會停止並終止例項。隨後,自動擴充套件組會啟動一個新的例項,以維持所需的容量。由於蘋果公司的授權要求,實施 macOS 例項的瞬時性行為相對困難。AWS 透過啟動清理過程來克服這一挑戰,該過程會清除 EC2 專用主機上的 nvRAM 及其他硬體元件。在這整個過程中,可能需要長達 110 分鐘才能完成 M1 晶片的處理,而主機在此期間無法支援新的 macOS 例項。AWS 的 License Manager 會檢測到管理中的專用主機處於不健康狀態並釋放它,同時獲取新主機——這一過程有效地模擬了自動擴充套件組。

除了文中提到的「乾淨工作環境」,EC2 macOS 例項的瞬時性設計還帶來了額外的安全優勢,主要體現在以下幾個方面:它能降低資料洩露風險;每次任務結束後,例項被銷毀,意味著所有臨時資料都將被清除,此舉有效減少因例項遭到駭客攻擊或惡意軟體感染而導致敏感資料洩露的風險。它可以防止「幽靈」程序,即上一次任務殘留程序在新任務中執行,因此降低潛在安全風險。而且,每個任務使用全新的例項,可以顯著增強隔離性,有效避免不同任務之間互相干擾,提高系統整體安全性。

未來,在面對瞬時性的發展方向上,我們期待透過更進一步自動化和智慧化技術,不僅提升運算資源利用率,也能加速故障恢復與資源調配能力,使得雲端服務更加穩定可靠。我們相信這種設計理念將引領業界邁向更高層次的安全保障與效率。」

我們所面臨的另一個挑戰是 AWS 上 macOS 例項的強制 24 小時保留期。這一要求帶來了一個有趣的兩難境地:即使工作僅持續了 10 分鐘,我們仍然必須保留專用主機整整 24 小時,這可能會導致額外費用,尤其是在考慮到資料清理過程後,該過程可能將持續時間延長至接近 26 小時。因而,找到所需 macOS 例項數量的最佳平衡至關重要,因為追求真正短暫解決方案的同時,很容易引發顯著的成本增加。

除了上述挑戰,我們所面臨的另一個問題是與 macOS 專屬自動擴充套件群組所強制執行的預設政策有關:可用區域重平衡。這項政策旨在透過自動終止和啟動新例項,將例項均勻分佈到所有可用區域。雖然這一功能在基於 Linux 的環境中通常是有利的,但對於 macOS 例項而言,由於必須保留 24 小時,則引發了顧慮。在這種情況下,可用區域重平衡可能導致資源浪費並增加 macOS 例項的成本。

我們在使用 macOS 自動擴充套件組時所遇到的最終挑戰與例項健康檢查有關。在完成工作後,我們的 macOS 例項會啟動根卷替換,導致該例項終止並重新啟動作業系統。我們觀察到這一重啟過程可能需要長達 20 分鐘。在此期間,自動擴充套件組將會將該例項視為不健康並自動終止,這對於我們如何保持自動擴充套件組內部的一致性例項可用性構成了問題。

AWS 根卷替換:模擬瞬時性,加速 macOS EC2 例項在 GitHub Actions 中的應用

在2023年2月,AWS為Mac EC2例項推出了根卷替換功能,這提供了一種達成類似瞬時性結構的解決方案。儘管無法實現真正的瞬時行為,我們仍盡最大努力進行模擬,同時保留macOS例項主機。在作業完成後,我們觸發了根卷替換,將例項恢復到其初始啟動狀態。隨後,我們執行Ansible,以重新註冊macOS例項作為自託管執行者,準備與GitHub Actions一起使用。根卷替換所需的時間約為五分鐘,使得執行者能夠準備好接受即將到來的工作,相較於全新啟動的macOS例項,此過程顯著減少了我們的啟動時間。

專案1具體說明:**容器化與無伺服器計算的融合**,將成為未來macOS EC2例項的發展趨勢。現今,AWS推出根卷替換方案,雖然並非真正意義上的瞬時性,但提供了一個靈活的替代方案,在保留macOS例項主機的基礎上,有效地模擬了瞬時性。隨著容器化和無伺服器計算技術的成熟,未來將出現更先進的技術,例如將macOS EC2例項封裝成容器,並透過無伺服器平台進行排程和管理。這種方案能夠真正實現瞬時性,並進一步提升資源利用率和啟動速度。

專案2具體說明:**雲原生安全與合規性**將是未來macOS EC2例項在GitHub Actions中應用的重要議題。在當前方案中,雖然根卷替換有效地模擬了瞬時性,但也可能帶來安全風險。例如,如果根卷中存在敏感資料,就需要進行資料脫敏或加密處理。要滿足不同合規要求,需要開發更完善的訪問控制和審計機制。未來,由於雲原生安全技術,例如基於身份的訪問控制和加密容器,有望與macOS EC2例項深度整合,以確保在GitHub Actions環境中達成高安全性及合規性。


最佳化 macOS 環境部署與提升可用性

為了防止可用性區域重新平衡,我們更新了 Terraform 配置,暫停自動調整組的可用性區域重平衡政策。我們在自動調整組中針對每個目標可用性區域包含了一個子網。這種方法確保了各區域之間的平衡,而不觸發該政策。進一步地,為了提升 macOS 例項的可用性,我們擴充套件部署至多個地區,從而增強我們移動管道的韌性。

為了保持產品的易處理性、理解性及可轉移性,我們採用了將 Mac 配置和設定封裝於源控制中的策略。我們並未手動配置 Mac 並由此建立 Amazon 機器映像(AMI),而是利用 Ansible 進行自動化。Ansible 透過我們撰寫的指令碼來簡化機器配置。當與 Packer 結合使用時,它能生成符合我們需求的 AMI。

利用 Terraform 在多個 AWS 地區進行部署是一項最佳實踐,可以有效確保高可用性和災難恢復。透過在不同地區的可用性區域中建立副本,即使某一地區發生故障,應用程式仍然可以在其他地區執行。因此,在要求高可用性和容錯性的應用程式(如移動管道)中,多區域部署是一個不可或缺的重要考量。而 Terraform 的配置管理能力則幫助簡化跨多個地區的部署流程,確保一致性的實現。

另外,在打造無伺服器 macOS 環境方面,Ansible 和 Packer 的結合也顯得尤為重要。這兩者協同工作,不僅提高了效率,也提升了環境搭建的一致性與可靠性,使得開發者能夠專注於更具創造性的任務,而非繁瑣的設定工作。

Ansible 助力 iOS 開發流程自動化:從環境設定到 CI/CD

我們管理兩個 Ansible 指令碼:一個用於設定 Mac 的所有必要軟體和工具,另一個則用於將 Mac 連線到 GitHub,以便進行工作流程使用。第一次操作或耗時的任務由第一個 Ansible 指令碼處理。相對地,第二個指令碼著重於啟動後所需的任務,例如將執行器繫結到 GitHub。為了滿足不同 iOS 團隊的需求,我們維護多個版本的 Xcode,讓團隊可以按照自己的節奏進行過渡。我們還提供 iOS 模擬器並整合 Fastlane 用於測試、建構和簽署應用程式。這些配置集中在第一個指令碼中以進行設定與配置,考量到其一次性或時間密集型的特性。

將 Mac 配置集中在原始碼中,不僅提供了機器內容的透明度,還自動化了 AMI 的生成,確保配置可維護性。透過分隔設定和啟動指令碼,我們能夠最小化 Mac 執行器的停機時間,使持續管道運作得以實現最低限度的排隊等待。這種方法促進了開發者對其程式碼變更快速反饋的能力。

**Ansible 作為 CI/CD 核心:** 此段落展現了 Ansible 在現代 CI/CD 流程中的關鍵地位。Ansible 不僅用於配置開發環境,更被用於管理 Mac Runner,實現自動化部署、測試和發布,使 Ansible 成為 CI/CD 流程中不可或缺的重要角色。

**雲端原生 Mac Runner 管理:** 透過 Ansible 管理 Mac Runner,公司可以輕鬆將其整合至雲端環境,以達成快速擴充套件、彈性資源配置,以及自動化安全更新與維護,此趨勢使企業更有效率地管理開發環境,同時降低維護成本。

**基於 Ansible 的 Mac 管理解決方案:** 最近出現許多基於 Ansible 的解決方案,例如 ′Ansible for macOS′,它提供預先配置好的角色和模組,大幅簡化在 macOS 上使用 Ansible 的過程,加速開發環境的設定及維護。

**Xcode 版本管理:** 段落提到多版本 Xcode 的需求,反映出 iOS 開發需要支援不同 iOS 版本與 Xcode 功能之間複雜性的挑戰。

**Xcode 版本管理策略:** 採用 Ansible 管理 Xcode 版本,可以根據不同團隊及專案需求靈活選擇和安裝各種 Xcode 版本,以精準掌控開發環境。同時,Ansible 還可自動更新 Xcode 和其相關工具,以確保開發環境始終保持最佳狀態。

**Fastlane 與 Ansible 整合:** Fastlane 是一款旨在自動化 iOS 開發流程(如編譯、測試、發布等)的工具。如果將 Fastlane 整合入 Ansible 指令碼中,可以進一步提高自動化程度並簡化開發流程,提高效率。

透過這種方式,我們不僅提升了系統的一致性,更加強了整體工作流效率。在當今快速變遷的技術領域中,有效利用像是 ′Ansible′ 和 ′Fastlane′ 等工具已成為企業成功的重要因素之一。我們期待透過這些高效且靈活的方法來繼續推進 iOS 開發的新篇章。

利用 GitHub Actions 自動化影像配置後的下一步

一旦我們的 AMI 影象配置完成,接下來邏輯上的下一步便是有效地利用這些影象。考慮到我們的專案庫存放在 GitHub 上,因此使用 GitHub Actions 是自然而然的選擇。我們決定建立多個通用且獨立的工作流程和行動,以便能夠針對所有專案進行構建支援。

為了滿足功能性與非功能性的需求,我們在一個單獨的庫中開發了一個 GitHub 工作流程。這個工作流程會呼叫其他獨立的工作流程以執行特定任務。基本上,這種工作流程結構受到了結構化程式碼的啟發,使得它易於擴充套件或複製,以支援 Android 工作流,而無需深入平台特有的細節。

持續整合工作流程包含若干必要和可選步驟:
安全掃描:公司範圍內設定的一組掃描,實現安全性「左移」的方法。及早識別安全漏洞,降低風險並減少在應用完成後修復所需成本。

將安全與品質保障融入自動化工作流程的最佳實踐

政策檢查:基於多項與軟體開發生命週期(SDLC)相關的標準,自動化全面驗證公司內部規則。例如,確保針對生產環境的建置有相應的變更請求記錄,或是每次提交都經由另一位人員在 GitHub PR 上進行批准。執行 iOS 測試套件:執行測試並收集測試結果。建立 iOS 工件:利用自動化部署工具 Fastlane 來構建 iOS 二進位檔案,並使用正確的授權配置檔案和簽名進行簽署。分發 iOS 工件:在所有前述步驟成功完成後,上傳 iOS 二進位檔以供 QA 驗證或進一步提交至 App Store。該工作流程結合了 Linux 和 Mac 執行者,因為只有建置和測試步驟需要 Mac AMI。這種方法使專案團隊能輕鬆使用該工作流程,因為其配置層級較高,未暴露任何實作細節。

這段描述展示了將政策檢查、自動化測試、打包及分發整合於單一工作流程中的最佳實踐,也與當今 DevSecOps 的趨勢高度契合,強調將安全性與品質保障融入開發週期的各個階段。在此背景下,開發者與 DevOps 團隊希望了解如何將安全及品質檢查納入自動化工作流程,以提升效率和安全性。

持續整合/持續交付(CI/CD)方面,此流程利用 CI/CD 工具自動執行各個階段,例如使用 Fastlane 進行 iOS 建置和分發。在安全測試自動化上,透過政策檢查將安全審核納入自動化過程,例如確保每一次提交都有經過審核。同時,此流程也可整合現有 DevSecOps 工具,如 SonarQube、JFrog Xray 等,以進行漏洞掃描和安全分析,使得「安全即程式碼(SecCode)」的理念得以落實,即將安全策略轉化為可自動執行的程式碼,比如運用基礎設施即程式碼(Infrastructure as Code, IaC)工具來管理安全配置。

綜觀上述內容,不僅強調了跨平台工作流的重要性,也展現了在雲端混合環境中協同作業所需的新興技術架構,使得企業能夠更加靈活地應對不斷變化的市場需求。

GitHub 工作流程與 CI 流水線的深度整合

在建立了 GitHub 工作流程之後,下一步是讓專案團隊將其整合到各自的專案工作流程中。專案團隊利用持續整合(CI)工作流程的靈活性和可定製性,設計出以下幾個 CI 流水線:

**功能流水線 (Feature Pipeline):** 在每次功能分支變更後觸發,只執行測試並嘗試構建 iOS 二進位檔,而不進行任何釋出。

**預設流水線 (Default Pipeline):** 在功能分支合併到預設限制分支(例如 main 或 develop)之後啟動。這條流水線執行 CI 工作流程的所有步驟,包括上傳至儲存空間,旨在進行質量保證(QA)。

**釋出候選流水線 (Release Candidate Pipeline):** 當釋出分支被建立且該分支內有任何後續變更時啟動。此流水線同樣執行 CI 工作流程的所有步驟,包括上傳至儲存空間,目的是進行內部釋出準備評估。

**釋出流水線 (Release Pipeline):** 當釋出候選透過驗證並準備好在 App Store 上釋出時執行。

為了幫助說明我們不同流水線何時被觸發,以下是從功能引入專案所需經歷的一整套 git 流程旅程示例。

這段描述展示了現代軟體開發中持續整合(CI)與 DevOps 的深度融合。專案團隊不再僅僅依賴 CI 工具來進行程式碼構建和測試,而是將 CI 融入整個軟體開發過程,使其成為敏捷開發和持續交付的重要環節。具體而言,該 CI 流水線的設計體現了以下幾個重要方面:

* **分支管理與流水線觸發機制:** 將 CI 流水線與 Git 分支模型緊密結合,透過不同分支的變化來觸發不同型別的流水線。例如,功能流水線主要面向功能分支的變化,而釋出候選流水線則響應釋出分支的變化。這種策略確保了 CI 流水線能及時反應程式碼變更,並根據不同開發階段執行相應的測試和部署步驟。

* **流水線分層與測試策略:** 透過設定不同的 CI 流水線,專案團隊可以對於不同開發階段實施各異的測試策略。例如,功能流水線主要集中於單元測試和構建,而預設流水線則涵蓋更全面的測試,包括功能測試和整合測試。這種層次化策略提高了 CI 流水綫效率,同時確保每一階段都能夠進行必要的檢查。

* **自動化部署與持續交付:** 自動化部署能力是持續交付的重要組成部分,它不僅負責執行測試,也包括將構建好的應用程式上傳至儲存空間,以便為後續發布做好準備。因此,在這些措施下,我們能夠快速、可靠地將程式碼變更部署至生產環境。


DevSecOps 安全策略與 CI/CD 工作流程:靈活應變、效率提升

儘管建置和測試步驟在所有流程中都能穩定產出結果,但隨著應用程式接近實際釋出,DevSecOps 的掃描和政策檢查將變得更加嚴格。每個流程有其獨特的目的,但皆採用相同的持續整合(CI)工作流程。這種方法提供了適應性與可轉移性,使現有專案與新專案之間互通有無。反之,任何與 CI 工作流程相關的問題會被即時解決並同時套用至所有專案。

儘管所有專案團隊對於流程的定義保持一致,實際配置則根據各團隊特定需求進行微調:

- **依賴管理**:現有的 iOS 專案使用了選擇的依賴管理工具。CI 工作流程自動檢測並整合所選擇的依賴管理系統,使建置過程簡化。

- **分支策略**:各團隊可選擇自己的分支策略,包括分支命名規範、受限分支及史詩型分支等。CI 工作流程會根據團隊所選策略進行調整,以確保與其開發實踐無縫整合。

- **測試**:團隊可以自由選擇執行哪些測試,每條流水線也可以針對專案需求設計自己的一套測試。

- **自訂流**:除了上述預定義流外,還允許建立自訂流。如果某個團隊決定需要一個新的流,可以快速配置它,以便迅速適應不斷變化的專案需求。

- **平台獨立性**:此設定具備平台獨立性,可容納使用本地 iOS 以外技術構建的專案。例如,如果某個專案使用 React Native 平台,其 iOS 二進位檔案將以相同方式生成,從而確保不同開發環境中的一致性。

一旦整合完成,針對 CI 工作流程特定問題及新 Apple 釋出更新所需的介入會非常少。這種精簡的方法降低了維護成本,使團隊能夠更安心地集中於開發任務,同時信心十足地運作他們的 CI/CD 流程。

[1. 靈活應變的 DevSecOps 安全策略] 展示了現代 DevSecOps 趨勢,即將安全措施融入整個開發過程,而非僅在最後階段進行,此舉有效降低風險並促使開發團隊從一開始就考慮安全因素。各團隊根據自身需求調整安全檢查嚴格程度,也體現了 DevSecOps 的靈活性。

[2. 基於雲端的 CI/CD 工作流程] 使得多樣化技術棧和跨平台協作成為可能,提高專案效率及維護便利性。在當前數字轉型浪潮中,此類基於雲端解決方案不僅提升了業務敏捷度,也強化了產品交付質量。

企業級移動管道的採用為產品團隊帶來了諸多好處,包括自動擴充套件 macOS 執行者以緩解建置時間瓶頸、標準化的建置工作流程、強大的質量檢查以及改善的測試能力。轉向 GitHub Enterprise Cloud 促進了針對提升客戶體驗而進行的快速原型設計和工作流程增強測試。早期客戶反饋極其正面,移動開發人員報告稱,該體驗與他們目前使用的管道工具相當,甚至更佳。

Vanguard 如何透過跨領域合作與科技革新,打造更流暢的 iOS 應用程式體驗

設計 iOS 應用程式管道需要來自各個領域專家的合作。MacOS 工程師提供了對作業系統複雜性的見解,而 AWS 專家則在設計執行器艦隊架構方面發揮了關鍵作用。在 Vanguard,我們抓住這個機會,並獲得領導層的支援,以解決遺留的技術負債並現代化我們的移動管道,重點是讓使用者滿意並加快迭代週期。透過採用最新技術,持續最佳化我們的最小可行產品 (MVP),我們為移動管道的無縫擴充套件和可擴充套件性奠定了基礎,同時保持合規性。未來對於依賴我們 iOS 應用程式的 iOS 工程師及客戶來說,看起來非常樂觀!

在這一過程中,Vanguard 團隊不僅專注於技術細節,更將使用者體驗置於首位。隨著敏捷開發與 DevOps 趨勢的不斷演進,其核心理念便是透過持續整合與持續交付 (CI/CD) 提升開發效率與產品品質。

**使用者體驗的量化指標:** 在 DevOps 轉型中,Vanguard 團隊應當量化使用者體驗,例如應用啟動時間、操作響應速度、錯誤率以及使用者滿意度等指標。利用這些資料,可以有效評估技術改進對使用者體驗實際影響。

**使用者回饋與迭代:** 團隊還需積極收集使用者回饋,透過 A/B 測試、問卷調查等方式了解實際情況,再根據回饋不斷最佳化應用,以提升使用者滿意度。

**安全與合規性:** 在快速迭代之餘,我們也必須確保應用安全和合規性,例如採取安全程式碼審查、靜態及動態程式碼分析等措施,嚴格遵循相關法規和標準。

結合 Serverless 架構與雲原生技術,使得整個系統更加靈活且易於擴充套件。我們所採用的新技術能夠降低基礎設施管理負擔,提高資源利用率,同時保障系統效能和可靠性。因此,不僅有助於加速開發流程,也增強了我們對市場需求變化的反應能力,使得未來充滿希望!

來和我們一起工作吧!Vanguard 的技術專家負責設計、架構和建造現代化的雲端應用程式,以便為全球超過 5000 萬名投資者提供世界級的體驗。想了解更多關於我們的技術及其背後的團隊,請訪問 vanguardjobs.com。©2024 Vanguard Group, Inc. 版權所有。



MK

專家

相關討論

❖ 相關專欄