Dziś się nie będziemy rozmawiać, czym jest YAML. Jak wygląda, ani gdzie go trzymać. Skupimy się na temacie ważniejszym. Konkretnie, dlaczego YAML w CI/CD jest koniecznością oraz dlaczego warto iść w stronę Pipeline as Code, zamiast konfiguracji w GUI.
1. Pull requesty
Ten element zagościł już na stale w procesie wytwarzania oprogramowania. Dzięki niemu, bez problemu, przeprowadzamy asynchroniczne Code Review oraz prowadzimy dyskusje o konkretnych zmianach.
Skoro jest tak przydatny i przyjemny, warto go użyć do konfiguracji CI/CD, a zabieramy sobie tę możliwość, korzystając tylko z GUI.
Korzystając z Pipeline as Code, pozwalasz sobie na zatwierdzanie zmian konfiguracji oraz, co lepsze, na możliwość prowadzenia dyskusji, która zostanie zarchiwizowana.
2. Test różnych konfiguracji
Jak testować zmiany w Pipeline, konfigurując go w GUI? Dość trudno. Gdy modyfikujesz proces CI/CD i nie jesteś pewien, czy to zadziała. Możesz być w jednej z dwóch sytuacji.
Nowy projekt
Dodajesz nowy projekt i chcesz, aby od razu się budował. Mając konfigurację CI w GUI, jest to problematyczne, ponieważ pojawia się pytanie, kiedy dodać budowanie nowego projektu? Przed mergem? Po merge? To wtedy przez chwilę mamy niestabilne buildy lub musisz tworzyć kopię konfiguracji, by potem przenosić ją ręcznie. Barbarzyństwo!
Mając Pipeline as Code, sytuacja jest o niebo prostsza. Na branczu, gdzie dodajesz nowy projekt, modyfikujesz plik YAML. Dzięki temu sprawdzisz w bezpieczny sposób czy to działa, a ponadto zmiana konfiguracji zostaje wciągnięta wraz z merdżem. Piękna sprawa!
Modyfikacje Pipeline
Chcesz dodać automatyczną analizę pokrycia kodu testami? Potrzebujesz przyspieszyć cały proces, np. dodając Cache lub wprowadzając do niego zaawansowane mechanizmy. Jednak wcześniej, chcesz się upewnić, że wszystko jest na swoim miejscu, a główny build był niestabilny.
W takiej sytuacji tworzysz brancza. Na nowej gałęzi wprowadzasz zmiany w YAML. Analizujesz, testujesz, sprawdzasz, czy jest wszystko ok. Jeżeli jesteś zadowolony z rezultatu to mergujesz do mastera i wszystko cały czas działa.
3. Łatwa i przyjemna analiza historii
Próbowałeś kiedyś przeanalizować historię zmian wprowadzanych poprzez interfejs użytkownika? Obojętnie, czy jest to serwer CI, czy cokolwiek innego. To zawsze jest droga przez mękę. Olbrzymie pliki XML, czy te bardziej nowoczesne, JSON. Poza ich rozmiarem, zmiany wyglądają na losowe, bo przecież mają służyć maszynie, nie ludziom.
Zupełnym tego przeciwieństwem, jest analiza historii, gdy posiadasz konfigurację CI w pliku YAML. W takiej sytuacji używasz całej potęgi gita i przeglądasz ładne, proste i czytelne pliki tekstowe.
4. Możliwe i łatwe merge
Zmiany wprowadzone w GUI nie są wersjonowane w GIT. Co prawda, niektóre serwery CI mają własny sposób trzymania historii, ale jak przeczytałeś w powyższym punkcie, nie są one przystępne dla człowieka. Nawet jeżeli będziesz chciał je połączyć, będzie to uciążliwe, a zazwyczaj niemożliwe. Zupełnie odwrotnie niż w przypadku PaC.
Ponieważ Pipeline as Code jest trzymany w plikach tekstowych, możesz, bez najmniejszego problemu, wprowadzać zmiany niezależnie, na różnych branczach.
Ponadto, jeżeli dwie osoby będą aktualizować Pipeline, to masz później możliwość połączania tych zmian. A merge nie powinien być skomplikowany, gdyż operujesz na plikach tekstowych, czyli jak na kodzie źródłowym.
5. Odpowiedzialność zostaje w zespole
Często odpowiedzialność za konfigurację CI/CD jest wydelegowana gdzieś na zewnątrz, lub do specjalnego członka zespołu, tak zwanego DevOpsa. Jest to rozwiązanie ekstremalnie niewydajnie, ponieważ pozbawiamy zespołu deweloperskiego autonomiczności i odpowiedzialności.
Jeżeli chcesz, aby zespół był samowystarczalny i wydajny to powinien zarządzać procesem budowania i dostarczania aplikacji samodzielnie. Wybierając Pipeline as Code, jest to naturalne, ponieważ konfiguracja pipeline leży w repozytorium i programiści będą czuć większą odpowiedzialność za wytwarzanie i dostarczanie produktu.
6. Łatwiejsze użycie w nowych projektach
Idąc drogą Pipeline as Code, mamy plik konfiguracyjny. Ten plik możemy użyć jako zaczątek konfiguracji CI w nowym projekcie. Jest to dużo prostsze i wygodniejsze niż kopiowanie ustawień w GUI. W związku z tym każdy kolejny projekt będzie startował szybciej, ponieważ część konfiguracji będzie już gotowa.
7. Przyszłość i nowoczesność
Biorąc pod uwagę powyższe zalety oraz obserwując trendy na rynku, stwierdzam, że PaC jest przyszłością. Wszystkie nowe serwery CI wspierają podejście Pipeline as Code. Natomiast stare implementują taką opcję konfiguracji.
Przykładami mogą być Azure DevOps oraz GitHub Actions, o których możesz przeczytać na tym blogu.
Przekonałem Cię do Pipeline as Code?
Czy Ty podążasz ścieżką PaC, czy opierasz swój CI/CD na GUI?
A może chcesz coś dodać lub podyskutować?
Daj znać w komentarzu lub zapisz się na newsletter.
Bądźmy w kontakcie.
14 Komentarzy
Davidkax · 10 grudnia, 2023 o 01:21
prescription propecia cost
WilliamMum · 9 grudnia, 2023 o 16:47
fluoxetine 10
Ashraw · 8 grudnia, 2023 o 00:06
bactrim ds 800-160
Ashraw · 7 grudnia, 2023 o 06:52
neurontin 800 mg price
Ivyraw · 6 grudnia, 2023 o 04:18
rate online pharmacies
Curtisfew · 5 grudnia, 2023 o 19:52
propecia 5mg pills
Sueraw · 4 grudnia, 2023 o 06:18
synthroid 75 pill
Samraw · 4 grudnia, 2023 o 01:33
neurontin cost in singapore
Richardveita · 4 grudnia, 2023 o 01:09
robaxin price 500mg
pgsoft · 27 listopada, 2023 o 10:46
Do you have a spam problem on this site; I also am a blogger, and I was wanting to know your
situation; many of us have created some nice methods and we
are looking to trade methods with others, be sure
to shoot me an e-mail if interested.
นึ่งปลากี่นาที · 22 października, 2023 o 09:27
wonderful points altogether, you just received a new reader.
What might you suggest about your put up that you simply made a few days
ago? Any positive?
[url=https://%E0%B9%80%E0%B8%99%E0%B8%B7%E0%B9%89%E0%B8%AD%E0%B8%9B%E0%B8%A5%E0%B8%B2.com/]นึ่งปลากี่นาที[/url]
นึ่งปลากี่นาทีสุก
SLOT PG เว็บตรง · 17 czerwca, 2023 o 22:09
slot pg แตกง่าย SLOT ONLINE เว็บตรง
ไม่มีขั้นต่ำ slot pg ไม่มีขั้นต่ำ ซึ่งเป็นเว็บเดิมพันSLOT ที่ดีที่สุด และก็มาแรงสุดในปี 2022 slotpg แตกบ่อย โดยเว็บไซต์เกมของเราได้พัฒนาตัวเกมทุกเกมให้ดี และมีประสิทธิภาพสูงเยอะที่สุดอยู่ตลอด PUNPGSLOT มีระบบการเล่นที่ล้ำยุคและก็ SLOTPG
เว็บใหม่ ของจริง 100% พร้อมเปิดให้บริการตลอด 24
ชั่วโมง บริการต่างๆที่จะทำให้สมาชิกได้รับความสบายสบายมากขึ้น กับระบบ ระบบฝากถอนออโต้ฝากถอน
ไม่มีขั้นต่ำ ไม่เกิน 5
นาที เพื่ออำนวยความสะดวกนักเสี่ยงโชคให้หลากหลายที่สุด สามารถร่วมสนุกกับ slotpg แตกบ่อย
ได้ทันที สำหรับมือใหม่ที่ยังไม่มีประสบการณ์ ก็สามารถร่วมบันเทิงใจกับเราได้ไม่ยากเล่น สล็อตออนไลน์ ไม่เก่ง ก็บริการ slot
damo ได้ง่ายๆไม่เสียเงินเล่นเพียงเพียงแค่ทุกๆคนเปิดสมาชิก ไม่กี่ขั้นตอนเท่านั้น ท่านก็สามารถร่วมบันเทิงใจได้เต็มที่
กับเกม slot ที่กำลังมาแรงในปัจจุบัน พร้อมได้รับมาตราฐานสากล มีการปรับปรุงขึ้นโดยบริษัท PG SOFT ที่เป็นบริษัทแม่ โดยจากผู้ผลิตโดยตรงจากต่างประเทศ สล็อตPG
แตกง่าย มีใบรับรอง พร้อมกับสิทธิประโยชน์หลากหลาย พร้อมมีเกมให้เลือกเล่นมากยิ่งกว่า 88 เกมส์ โดยแต่ละเกมนั้นมีแบบอย่างการเล่นที่แตกต่างออกไป slotpg เว็บตรง เว็บเดิมพัน
ที่เปิดให้บริการเล่นเกมSLOT ONLINEใหม่ปัจจุบัน
ที่มีความนำสมัย ดีไซน์ภาพออกมาในรูปแบบ 3 มิติเพื่อเพิ่มความสนุกสนานไปกับการเล่น pgslot แตกหนัก พร้อมเปิดให้บริการ เกมคาสิโน ผ่านระบบอินเตอร์เน็ตซึ่งจะประกอบไปด้วยเกมต่างๆหลายอย่างที่จะทำให้ทุกคนได้เจอกับประสบการณ์ใหม่ที่ไม่เคยพบ เช่นเกม เกมสล็อตออนไลน์,ฟุตบอล ,
บาคาร่า , รูเล็ต , แทงหวย , BLACKJACK , POKER ,
ยิงปลาออนไลน์ และอีกหลายเกมที่จะทำให้ พีจีสล็อต แตกบ่อย ของเราสามารถดูแลสมาชิกของเราได้ทั่วโลก และก็ยังเป็นศูนย์รวมเกม สล็อตpg เว็บใหม่ มากที่สุด เราได้รวมเกมจาก เว็บไซต์สล็อต PG ทั้งหมด ไม่ว่าจะเป็นเกมสล็อตแตกง่าย แตกหนักๆหรือเกมยอดฮิตพวกเราก็พร้อมให้บริการ แต่ละเกมมีกราฟฟิคภาพที่งาม ภาพ
ความคมชัด เสียงเต็มไปด้วยความอรรถรส เพียงแค่ทุกๆท่าน สมัครสมาชิก สล็อต pg เว็บใหญ่ กับ
พวกเราเท่านั้นสมัครเพียงไม่กี่ขั้นตอนทุกๆคนก็จะได้ โปรโมชั่นหลาย ให้เลือกเล่นเยอะ ทุนไม่ต้องมากก็ลุ้นรับรางวัลแจ็คพอตได้ สล็อต PG เว็บหลัก ที่ได้รวม แตกหนัก สล็อตออนไลน์เว็บตรง ไม่มีขั้นต่ำ pgslot ทั้งหมด ได้อย่างไร้ขีดจำกัด ด้วยระบบการเล่นแบบด้วย ระบบฝากถอน อัตโนมัติฝากเงินไม่มีขั้นต่ำ
ถอนเงินไม่มีขั้นต่ำ พร้อมรองรับการเล่นทั้งคอมพิวเตอร์แล้วก็มือถือ เล่นได้ผ่านหน้าเว็บไซต์ ที่สามารถเล่นได้ทุกระบบปฎิบัติการ ไม่ว่าจะเป็นระบบ IOS หรือ Android ไม่มีความจำเป็นที่จะต้องโหลดแอพลิเคชั่นมาให้ยุ่งยาก เล่นง่าย จ่ายจริง โบนัสมีให้ไม่ยั้ง
พร้อมเว็บใหม่ก็ได้อัพเดทกันอย่างเรียลไทม์ สมาชิกของทาง punpgslot ได้เล่นก่อนคนไหนแน่นอน รีวิวเกมส์ให้สมาชิกได้เล่าเรียนแล้วก็หาความรู้ใหม่ๆให้เข้าใจตัวเกมก่อนเล่น แต่เวลานี้เรารู้กันก่อนเลยว่ามีเกม สล็อตพีจี เพื่อท่านได้ร่วมสนุกสนานกับทางพวกเราได้มากยิ่งขึ้น SLOT PG เว็บตรง
Piotr · 5 września, 2020 o 19:15
Mam build pipeline w yaml, a release pipeline w UI. System składa się z wielu komponentów i mam środowiska na które deployment musi być zatwierdzony przez kogoś z listy osób. Z UI fajnie się to śledzi. Jak wygląda to gdy release pipeline jest w yaml? Jak śledzi się kto, gdzie kiedy i co zdeployował? Albo że jakiś deployment czeka na zatwierdzenie?
Jerzy Wickowski · 8 września, 2020 o 19:24
Cześć @Piotr,
Bardzo przyjemny pomysł na kolejny post. Jak poukładam to ładnie to dam znać.
Jednak chciałbym się upewnić na starcie, w jakim narzędziu konfigurujesz CI/CD? Azure Pipelines, czy coś innego?