Co to jest ciągłe dostarczanie? Wszystko co musisz wiedzieć
Opublikowany: 2020-03-20Jeśli uczysz się o DevOps, na pewno słyszałeś też o ciągłym dostarczaniu. Może to być trochę mylące, ponieważ istnieje wiele podobnych terminów, takich jak Continuous Deployment. Dowiedz się więcej o różnicy między ciągłym dostarczaniem a ciągłym wdrażaniem. Ale nie martw się, ponieważ w tym artykule omówimy Continuous Delivery, różne metody testowania oprogramowania i korzyści.
Zacznijmy.
Spis treści
Co to jest ciągłe dostarczanie?
W DevOps, gdy wprowadzasz zmiany w swoim produkcie, takie jak modyfikowanie konfiguracji lub dodawanie nowych funkcji szybko i bezpiecznie, utrzymując kod w stanie możliwym do wdrożenia przez cały czas, nazywamy to ciągłym dostarczaniem.
Ciągłe dostarczanie sprawia, że wdrożenia są rutynowymi sprawami. Wdrożenia mogą dotyczyć systemu wbudowanego lub systemu rozproszonego. W tym procesie zmiany w kodzie są automatycznie przygotowywane, testowane i budowane. Robisz to, usuwając fazy hartowania, testowania i integracji, które zwykle są obecne w „dev complete”.
Jak to działa?
Znasz tę koncepcję, ale bez zrozumienia, jak to działa, dokładne zrozumienie tego tematu byłoby zbyt trudne. Oto krótkie wyjaśnienie jego działania:
- Po pierwsze, automatyczne skrypty kompilacji wykrywają zmiany w SCM (zarządzanie kodem źródłowym)
- Następnie system wdraża kod źródłowy na dedykowanym serwerze kompilacji. Robi to, aby upewnić się, że kompilacja nie zawiedzie. Ponadto zapewnia, że wszystkie testy integracyjne i klasy testowe są w porządku.
- Następnie system wdraża kompilację aplikacji na serwerze testowym dla UAT (User Acceptance Test). Serwery testowe na tym etapie to serwery przedprodukcyjne.
- Na koniec wdrożysz aplikację ręcznie na serwerach produkcyjnych dla wydania.
Rodzaje metod testowania oprogramowania
Znajomość różnych metod testowania oprogramowania jest niezbędna, aby lepiej zrozumieć ciągłą dostawę. Głównie istnieją dwa rodzaje testowania oprogramowania:

Testowanie białoskrzynkowe
Testowanie Whitebox skupia się na wewnętrznych mechanizmach systemu. Inne nazwy tej metody testowania to testowanie w szklanym pudełku i testowanie strukturalne. Używamy go do weryfikacji oprogramowania. Do tej kategorii należą dwa rodzaje testowania oprogramowania
Testów jednostkowych
Testowanie pojedynczej jednostki lub grupy powiązanych jednostek nazywa się testowaniem jednostkowym. Programiści przeprowadzają testy jednostkowe, aby sprawdzić, czy ich zaimplementowana jednostka generuje oczekiwany wynik, czy nie.
Przeczytaj: Pomysły na pełny stos projektów dla początkujących
Testy integracyjne
Testowanie integracyjne polega na łączeniu grupy części w celu uzyskania wymaganych wyników. Testujesz również interakcję między sprzętem a oprogramowaniem, aby sprawdzić, czy te składniki są w jakikolwiek sposób powiązane. Testy integracyjne mogą należeć do obu kategorii, tj. mogą być zarówno testami białoskrzynkowymi, jak i czarnoskrzynkowymi.
To prowadzi nas do innego znanego rodzaju testowania oprogramowania, jakim jest testowanie czarnoskrzynkowe.
Testowanie czarnej skrzynki
Testowanie czarnoskrzynkowe ma miejsce wtedy, gdy ignorujesz wewnętrzne mechanizmy systemu i skupiasz się tylko na wykonaniu systemu i generowanych danych wyjściowych. Inną nazwą testowania czarnoskrzynkowego jest testowanie funkcjonalne. Używamy go do walidacji oprogramowania. Poniżej przedstawiono rodzaje testów, które podlegają testom czarnoskrzynkowym:

Testowanie beta
Użytkownicy końcowi, czyli osoby spoza zespołu programistów, wykonują beta testy. W tym celu możesz wydać pełną wersję przedpremierową swojego produktu i określić ją jako wersję beta. Pomaga w znalezieniu nieoczekiwanych błędów. Pewnie widziałeś, jak wiele firm zajmujących się tworzeniem aplikacji i gier wydało wersje beta swoich produktów przed oficjalną premierą.
Test naprężeń
Testy warunków skrajnych pomagają ocenić, jak Twój produkt działa (lub zachowuje się) w stresujących warunkach.
Testowanie systemu
Testowanie systemu ma miejsce wtedy, gdy umieszczasz swój produkt w różnych środowiskach i sprawdzasz, jak radzi sobie w tych warunkach.
Przeczytaj także: Pełna pensja programisty w Indiach
Testowanie funkcjonalne (lub testowanie akceptacyjne)
Testy funkcjonalne pomagają w upewnieniu się, że wymagana funkcjonalność w wymaganiach systemowych Twojego produktu działa. Pomaga również w analizie, czy Twój produkt spełnia potrzeby Twoich klientów, czy nie. Gdyby Twój produkt nie spełniał oczekiwań Twoich klientów, z pewnością byłby rozczarowaniem. Testy funkcjonalne pomagają uniknąć tego samego.
Korzyści z ciągłego dostarczania
Wiele osób uważa, że szybkie i częste wdrażanie oprogramowania w Continuous Delivery prowadzi do niskiego poziomu niezawodności i stabilności. Jednak badania mówią inaczej. Zespoły o wysokiej wydajności mogą dostarczać produkty i usługi szybciej niż ich mało wydajna konkurencja bez kompromisów w zakresie bezpieczeństwa.
Ciągła dostawa pomaga w korzystaniu z następujących korzyści:
- Szybka dostawa
Fazy testowania i integracji tradycyjnego dostarczania oprogramowania mogą zająć miesiące. Dzięki tej metodzie nie musisz się o to martwić. Twoje zespoły będą współpracować, aby zapewnić środowisko i zautomatyzować wdrażanie. Masz możliwość dodania integracji i testowania do codziennych operacji wdrażania oprogramowania.
W ten sposób nie będziesz musiał czekać do ostatniej chwili na wykonanie integracji i testów. W rezultacie zaoszczędzisz dużo czasu, który mógłbyś zmarnować na ponowne robienie rzeczy.

- Niskie ryzyko
Ciągłe dostarczanie zapewnia brak przestojów we wdrożeniach. Wdrożenia pozostają bezbolesne i można nad nimi pracować w dowolnym momencie zgodnie z zapotrzebowaniem użytkowników. Z tych powodów ryzyko pozostaje niskie.
- Niska cena
Inwestując w automatyzację kompilacji, wdrażania, środowiska i testów, znacznie obniżasz koszty operacji. Zmniejszasz również koszt wprowadzania przyrostowych zmian w produkcie, usuwając stałe koszty procesu wydania.
- Wysoka jakość
Zautomatyzowane narzędzia pomagają w znalezieniu regresji w ciągu kilku minut. Daje to zespołowi znaczną ilość czasu na skupienie się na innych, bardziej krytycznych aspektach rozwoju produktu, takich jak testowanie wysokiego poziomu lub badania użytkowników. Potok wdrożeniowy gwarantuje, że Twój produkt pozostanie najwyższej jakości przez cały czas.
Wniosek
Continuous Delivery to bez wątpienia jeden z podstawowych tematów DevOps. Mamy nadzieję, że ten artykuł okazał się przydatny. Jeśli chcesz dowiedzieć się więcej o DevOps i Continuous Delivery, możesz przejść do naszego bloga i znaleźć wiele zasobów związanych z tym samym.
Jeśli chcesz dowiedzieć się więcej o pełnym stosie, zapoznaj się z dyplomem PG upGrad i IIIT-B w zakresie pełnego tworzenia oprogramowania, który jest przeznaczony dla pracujących profesjonalistów i oferuje ponad 500 godzin rygorystycznego szkolenia, ponad 9 projektów i zadań, IIIT- Status absolwenta B, praktyczne, praktyczne projekty zwieńczenia i pomoc w pracy z najlepszymi firmami.