新功能:將私有 Git 存儲庫與 AEM 作為雲服務使用
在 AEM 作為雲端服務或 Adobe 託管的 AEM 6.5 產品(AEM 託管服務或「AMS」)中,長期以來一直有一個要求,將任何程式碼部署到 任 何 Adobe 託管的環境中,必須先將該程式碼輸入 Adobe 託管的 git 存儲庫中。
理由相當簡單-Adobe 的 Cloud Manager CI/CD 框架必須對代碼執行一些檢查,然後從其容器化構建服務上執行該代碼的構建,然後在生產部署完成後,也能夠在存儲庫中標記版本。
私人與 Adobe 存儲庫-前後關聯
AEMAACS 和 AMS 客戶長期以來一直存在許多複雜性和限制,使用此功能使得能夠與雲託管 AEM 一起使用私有 git 存儲庫使用一個非常受歡迎且受歡迎的功能,例如:
維持兩個庫存
Adobe git 存儲庫僅是 部署 存儲庫。它並非旨在是您開發 AEM 網站的主要 git。它沒有可用性或備份的 SLA。因此,在執行項目時,您必須維護自己的內部存儲庫以及用於部署的 Adobe 存儲庫,然後管理這些存儲庫之間的同步。
Adobe 存儲庫缺乏像提取請求之類的功能
Adobe git 實作缺少許多功能,這使某些早期管道有點挑戰。例如,Adobe git 沒有執行緒或提取要求。
當 Adobe CI/CD 管道是唯一可以真正執行完整
的構建自動化測試的地方,這會顯示安全違規,效能降低,Sonarqube 規則違反等問題,因此,如果您想在其中開啟 PR 的新功能-比如-您認為使網站更快,則必須在您自己的 Github 上打開 PR,您必須「批准」的潛在客戶即使我們不知道它是否通過構建檢查,然後您將其提交到 Adobe git,然後它可能會失敗,然後您的 PR有點無價值。
安全性 & 使用者管理
Adobe git 上沒有精細的控制項來控制使用者管理 & 存取權。因此,您最終需要在自己的 git 上實現自己的安全性,然後依靠自己創建的構建自動化來嘗試限制 Adobe git 中的分支、提交、更改等。這可以做到,但只是增加了容易出錯的 Rube Goldberg 複雜性級別。
AEM 作為雲服務的私人 Git 存儲庫 & AMS:Adobe 發布了什麼?
明確地說,這是此功能的第一個一般版本(今年在 Adobe Summit 上宣布,並在過去一年與各種客戶進行預覽)。因此,它不支持您可能需要的每個功能,並且您應該注意一些限制。但對於生活在這個世界的人來說,這是一個很大的前進步,所以我會嘗試概述一些它可以和不能做的事情。
您現在可以做什麼:
-
在 雲端管理員管道中使用 GitHub.com:您現 在可以在 Adobe 雲端管理員中新增 github.com git 儲存庫作為部署儲存庫。
注意:這 特別指的是公共 https://github.com/ 網站,而不是自主託管的 Github 或其他 git 提供商。Adobe 使用 Github 應用程序來驗證和維護 Git 的訪問權限,這是目前流程的必要部分。這可能是實施其他 git 提供商所涉及的主要障礙之一。
-
在 PR 上運行代碼品質管道: 這個管道中「向左轉」的一個非常有用的部分,這是您可以在 github 中打開 PR,然後啟動 Cloud Manager 代碼品質管道,然後將其結果直接回報到 PR 中。這對於能夠驗證 PR 是否真的可以批准,或是否應該返回重新工作,這對於很重要。
-
PR 管道是自動創建和自動修剪: 當您打開一個 PR,以在 Cloud Manager 中啟動代碼品質管道時,將專門為該 PR 創建一個管道,並將專門為該 PR 運行 & 輸出。當該 PR 關閉後,Cloud Manager 會自動移除該管道,以便您最終不會被百萬個 PR 管道堵塞。
此行為可在您的專案中進行配置。 -
執行全堆疊管道: 執行程式碼品質檢查並核准 PR 之後,就可以設定 Cloud Manager 全堆疊管道,直 接從您的 Github 儲存庫中執行,而且完全無需轉移 Cloud Manager Adobe Repo。
這些部署可以在生產過程中完成。 -
作為雲服務同時適用於 AMS(AEM 6.5)和 AEM:這 支持兩種類型的基礎架構,此處具有相同的警告。
你還不能做的事情:
-
使用其他非 Github Git 存放庫:此 功能僅適用於 https://github.com。因此,如果您有「公司 .github.com」或「吉特拉布網站」或「bitbucket.com」或 Azure 存儲庫或任何其他非 GitHub git 提供商,這對您還不起作用。
Adobe 表示,他們正在積極致力根據客戶的需求來優先順序和啟用其他 git 提供商-因此,如果您有需要,請不要浪費時間與您知道會聽的任何 Adobe 員工聯繫。 -
沒有配置,前端或 Web 層管道:目前, 此功能僅適用於「全堆疊管道」,該功能可部署 AEM 項目中的所有內容。如果您使用其他子模組管道,例如 Web 層管道來部署僅限調度員的程式碼,或使用 Config 管道來部署 CDN 配置,則此功能尚未適合您。
-
Git 觸發器尚未起作用:如果您試圖在 git 觸發程序上啟動管道(代碼質量或部署),以便在提交代碼後啟動部署,則這仍然無法正常運作。
目前,即使勾選了「部署觸發器:在 Git 變更上」,您仍然需要手動觸發部署。現在文檔的「限制」部分中也提到了這一點。(給薩西什·巴蘭指出這個小提示!)
完善您的 AEM 管道
如果這看起來像您可能想自己嘗試的東西,那麼說明如何在 AEM 中開始使用自我管理 Github 的文檔。
但是,如果您不確定這是否要實現的東西,或者您想聊天的其他部署或 CI/CD 擔憂,我很樂意談談!
此外,有關此主題的更多信息(如果您喜歡播客),我們的 CTO Dwayne Hale 和我在這裡討論運行雲與自主託 AEM 設備的優點和缺點。

塔德·里夫斯
阿伯利數碼首席建築師
AEM 架構師 & 開發運營人員,在 AEM/CQ 方面擁有 14 年經驗,並在系統基礎設施方面擁有 25 年以上。他在山地自行車比他從事系統管理的時間更長,儘管原來自緬因州,但他居住在佐治亞州西北部的山脈。
喜歡你聽到的嗎?對於適合您的選項有疑問嗎?我們很樂意談談!聯絡我們
播客劇集 & 博客文章

?Adobe 體驗管理器用於什麼?我們試圖在 30 分鐘或更短的時間內對 AEM 是什麼是什麼和做的基本解釋-儘管消防部門隨機出現了播客錄製時間大約 19 分鐘的時間,我們仍然成功地做到了!

,您對於在中國大陸最佳化網站性能的工具有多少了解?即使您沒有中文網站,您是否需要關心中國內的性能?你知道!

當今雲端回歸與極快的全新 Edge Delivery 服務之間的戰爭中,讓我們重新回顧:自主託管 AEM 是否仍然是一件事?