Nowa funkcja: Korzystanie z prywatnych repozytoriów Git z AEM jako usługą w chmurze
W usłudze AEM jako usługa w chmurze lub hostowanym produkcie Adobe AEM 6.5 (AEM Managed Services lub „AMS”) od dawna obowiązuje wymóg, że wdrożenie dowolnego kodu w dowolnym środowisku hostowanym przez Adobe wymaga najpierw umieszczenia tego kodu w hostowanym repozytorium git firmy Adobe.
Powód jest dość prosty — framework CI/CD Adobe Cloud Manager musi przeprowadzić szereg kontroli kodu, a następnie wykonać kompilacje tego kodu z wykorzystaniem kontenerowej usługi kompilacji, a po zakończeniu wdrożenia produkcyjnego — oznaczyć wersje w repozytorium.
Prywatne repozytoria a repozytoria Adobe – kontekst
Od dawna klienci AEMaaCS i AMS borykali się z wieloma złożonymi problemami i ograniczeniami podczas korzystania z tej funkcji, co sprawiło, że możliwość korzystania z prywatnego repozytorium git z hostowanym w chmurze AEM stała się bardzo pożądaną i poszukiwaną funkcją, taką jak:
Utrzymywanie dwóch repozytoriów
Repozytorium git Adobe służy wyłącznie do wdrażania. Nie jest to główny repozytorium git, z którego należy korzystać podczas tworzenia witryny AEM. Nie ma umowy SLA dotyczącej dostępności ani kopii zapasowych. W związku z tym podczas realizacji projektu należy utrzymywać własne repozytorium wewnętrzne oraz repozytorium Adobe do wdrażania, a następnie zarządzać synchronizacją między tymi repozytoriami.
Repozytorium Adobe nie posiada takich funkcji jak pull requesty.
Istnieje szereg funkcji, których brakuje w implementacji Adobe git, co sprawia, że niektóre wczesne etapy procesu są nieco trudniejsze. Na przykład git Adobe nie posiada funkcji threadingu ani pull requestów.
Problem pojawia się, gdy potok CI/CD Adobe jest jedynym miejscem, w którym można naprawdę uruchomić pełen zestaw testów automatyzacji kompilacji, które wykryłyby takie problemy, jak naruszenia bezpieczeństwa, spadek wydajności, naruszenia reguł Sonarqube itp.
Jeśli więc masz nową funkcję, dla której chcesz otworzyć PR — powiedzmy, że uważasz, że przyspieszy ona działanie witryny — musisz otworzyć ten PR na swoim koncie Github, a Twój kierownik musi go „zatwierdzić”, nawet jeśli nie wiemy, czy przejdzie on testy kompilacji. Następnie przesyłasz go do repozytorium Adobe git, gdzie może zostać odrzucony, a Twój PR stanie się bezużyteczny.
& a bezpieczeństwa Zarządzanie użytkownikami
W repozytorium Adobe git nie ma szczegółowych mechanizmów kontroli dostępu użytkowników do plików &. W rezultacie musisz wdrożyć własne zabezpieczenia w swoim repozytorium git, a następnie polegać na automatyzacji kompilacji, którą tworzysz po swojej stronie, aby ograniczyć liczbę gałęzi, zatwierdzeń, zmian itp. przekazywanych do repozytorium git firmy Adobe. Jest to możliwe, ale powoduje to dodanie kolejnego poziomu złożoności, który jest podatny na błędy.
Prywatne repozytoria Git dla AEM jako usługi w chmurze & AMS: Co wypuściła firma Adobe?
Żeby było jasne, jest to pierwsza ogólna wersja tej funkcji (ogłoszona podczas tegorocznej konferencji Adobe Summit i udostępniona w wersji zapoznawczej różnym klientom w ciągu ostatniego roku). W związku z tym nie obsługuje WSZYSTKICH funkcji, które mogą być potrzebne, i istnieje szereg ograniczeń, o których należy pamiętać. Ale to wielki krok naprzód dla tych, którzy żyją w tym świecie, więc postaram się nakreślić kilka rzeczy, które można, a czego nie można dzięki tej technologii osiągnąć.
Co możesz teraz zrobić:
-
Korzystanie z serwisu Github.com w potokach Cloud Manager: Teraz można dodać repozytorium git serwisu github.com jako repozytorium wdrożeniowe w Adobe Cloud Manager.
Uwaga: Odnosi się to konkretnie do publicznej witryny https://github.com/, a nie do samodzielnie hostowanego serwisu Github lub innych dostawców usług git. Adobe korzysta z aplikacji Github, aby móc uwierzytelnić i utrzymać dostęp do Git, co jest obecnie wymaganym elementem procesu.Jest to prawdopodobnie jedna z głównych przeszkód związanych z wdrożeniem innych dostawców git.
-
Uruchamianie potoków jakości kodu w PR: Bardzo przydatną częścią tego „przesunięcia w lewo” w potoku jest możliwość otwierania PR w serwisie GitHub, co pozwala uruchomić potok jakości kodu Cloud Manager, który następnie przekazuje wyniki BEZPOŚREDNIO DO PR. To ogromna zaleta, która pozwala sprawdzić, czy PR naprawdę nadaje się do zatwierdzenia, czy też należy go odesłać do poprawek.
-
Pipeline PR są tworzone i czyszczone automatycznie: po otwarciu PR, które uruchamia pipeline jakości kodu w Cloud Manager, tworzony jest pipeline specjalnie dla tego PR i uruchamiane jest generowanie wyników „ & ” specjalnie dla tego PR. Po zamknięciu PR Cloud Manager automatycznie usunie ten pipeline, aby nie zapełnił się milionem pipeline'ów PR.
To zachowanie można skonfigurować w projekcie. -
Wykonaj pełne procesy: Po sprawdzeniu jakości kodu i zatwierdzeniu PR, możesz ustawić pełne procesy Cloud Manager, żeby działały bezpośrednio z Twojego repozytorium Github, bez przechodzenia przez repozytorium Cloud Manager Adobe.
Wdrożenia te mogą działać aż do momentu rozpoczęcia produkcji. -
Działa zarówno na AMS (AEM 6.5), jak i AEM jako usługa w chmurze: Obsługuje oba typy infrastruktur, z tymi samymi zastrzeżeniami.
Czego jeszcze nie możesz zrobić:
-
Użyj innych repozytoriów Git innych niż Github: Ta funkcja działa tylko na https://github.com. Jeśli więc masz „company.github.com” lub „gitlab.com” lub „bitbucket.com” lub repozytoria Azure lub jakiegokolwiek innego dostawcy git innego niż Github, to nie będzie jeszcze działać.
Firma Adobe oświadczyła, że aktywnie pracuje nad ustaleniem priorytetów i wdrożeniem innych dostawców git w oparciu o potrzeby klientów — więc jeśli masz TAKĄ POTRZEBĘ, nie zwlekaj i skontaktuj się z pracownikiem Adobe, który będzie skłonny Cię wysłuchać. -
Brak konfiguracji, potoków front-endowych lub internetowych: obecnie ta funkcja działa tylko z „potokiem pełnym”, który wdraża wszystko w projekcie AEM. Jeśli korzystasz z innych potoków podmodułów, takich jak potok warstwy internetowej do wdrażania kodu wyłącznie dla dyspozytora lub potok konfiguracyjny do wdrażania konfiguracji CDN, ta funkcja nie jest jeszcze dla Ciebie.
-
Wyzwalacz Git nie działa jeszcze: Jeśli próbujesz uruchomić potok (jakość kodu lub wdrożenie) na wyzwalaczu git, tak aby rozpoczął wdrażanie po zatwierdzeniu kodu, funkcja ta nie działa jeszcze.
W tej chwili, nawet jeśli zaznaczono opcję „Wyzwalacz wdrożenia: zmiany w Git”, nadal trzeba ręcznie uruchomić wdrożenie. Zostało to również uwzględnione w sekcji „Ograniczenia” dokumentacji. (Podziękowania dla Sathisha Balana za zwrócenie uwagi na ten fragment!)
Udoskonalanie procesu AEM Pipeline
Jeśli chcesz spróbować samodzielnie, dokumentacja dotycząca rozpoczęcia pracy z samodzielnie zarządzanym serwisem Github w AEM znajduje się tutaj.
Jeśli jednak nie jesteś pewien, czy chcesz to wdrożyć, lub masz inne obawy dotyczące wdrożenia lub CI/CD, chętnie porozmawiam!
Ponadto, jeśli chcesz dowiedzieć się więcej na ten temat (jeśli lubisz podcasty), nasz dyrektor ds. technologii Dwayne Hale i ja omawiamy zalety i wady korzystania z chmury w porównaniu z samodzielnie hostowanym sprzętem AEM.
Podoba ci się to, co usłyszałeś? Masz pytania dotyczące tego, co jest dla Ciebie odpowiednie? Chętnie porozmawiamy! Skontaktuj się z nami