2. Powitanie
Nazywam się Artur Radosz i od niedawna pracuję dla grupy
Exorigo-UPOS z ramienia ASTEK Polska. Wcześniej pracowałem
ponad 10 lat jako Programista JAVA dla takich firm jak
Telekomunikacja Polska (Orange Polska), PZU, Polska Wytwórnia
Papierów Wartościowych czy Asseco Polska.
Dzisiaj chciałbym wam opowiedzieć o nowej filozofii tworzenia
oprogramowania która nazywa się Ciągłe Dostarczanie (ang.
Continuous Delivery).
3. Dzisiejsza AgendaPlan Prezentacji i Warsztatów
ZakończenieSesja PraktycznaPytania i Odpowiedzi
Etapy Ciągłego DostarczaniaPrzygotowanie AplikacjiWprowadzeniePowitanie
4. Czym jest filozofia
Ciągłego Dostarczania
Ciągłe Dostarczanie jest nową filozofią tworzenia
oprogramowania, która stanowi bezpośrednie rozwinięcie
wcześniejszej koncepcji Ciągłego Dostarczania (ang.
Continuous Integration).
Wszyscy wiemy, iż najnudniejszą częścią Tworzenia
Oprogramowania jest przygotowywanie i wdrażanie jego wersji
instalacyjnej.
Ciągłe Dostarczanie wychodzi temu naprzeciw wprowadzając
całkowitą automatyzację tego procesu. Na jego końcu
otrzymujemy nie tylko przetestowaną i gotową do wdrożenia
wersję instalacyjną oprogramowania ale także automatycznie
zainstalowaną, skonfigurowaną i uruchomioną na Serwerze
Developerskim bieżącą wersje oprogramowania.
5. d o c k e r - c o m p o s e . y m l
Plik konfigurujący stos
uruchomieniowy na Serwerze
Developerskim
. g i t l a b - c i . y m l
Skrypt dyrygujący procesem
Ciągłego Dostarczania
D o c k e r f i l e
Plik konfigurujący budowanie
obrazu Docker
P r z y g o t o w a n i e A p l i k a c j i
Trzy pliki konfiguracyjne
które musi zawierać każda
aplikacja
6. .gitlab-ci.ymlDyrygowanie procesem Ciągłego Dostarczania
GitLab Runner
Proces Ciągłego Dostarczania dyrygowany jest w
obecnej wersji przez rozwiązanie GitLab Runner.
Do jego uruchomienia wystarczy przekopiowanie
pliku .gitlab-ci.yml do głównego katalogu projektu i
skonfigurowanie GitLab Runnera.
Pilk .gitlab-ci.yml z założenia jest nie modyfikowalny.
7. Etapy Ciągłego DostarczaniaNiekończący się cykl wydawania wersji
We’ve packed all the features you could want into one awesome & stunning
presentation with unlimited colors
8. Jako repozytorium używamy
Git’a. Obecnie Ciągłe
Dostarcznie oparte jest o
rozwiązanie GitLab Runner.
REPOZYTORIUM KODU
Obecnie wspieramy Jave i
Spring Boot 2.x
STOS TECHNOLOGICZNY
Nasz proces oparty jest o
system budowy aplikacji Maven,
ale może zostać rozbudowany o
wsparcie dla Gradle
SYSTEM BUDOWY
2
3
1Etap 1: Rozwój
Oprogramowania
To jedyny etap Ciągłego
Dostarczania którego nie
da się zautomatyzować.
Można go jednak
wspierać za pomocą
istniejących technologii.
9. Etap 1: Rozwój OprogramowaniaWykorzystanie przepływu GitFlow
10. Proces Ciągłego Dostarczania sterowany jest na tym etapie
przez skrypt .gitlab-ci.yml który używa standardowych
mechanizmów budowy aplikacji opartych o system budowania
Apache Maven.
Jako wynik tego etapu powstaje plik Artefaktu, zawierający
skompilowany kod Java, biblioteki niezbędne do uruchomienia
aplikacji oraz inne zasoby (konfiguracja, pliki graficzne, pliki
danych, etc.)
B udowanie aplikacji odbywa się w sposób w pełni
zautomatyzowany.
Etap 2: Budowanie AplikacjiW pełni zautomatyzowany etap
11. Testy JUnit
Na tym etapie wykonywane są
automatyczne test JUnit.
W przypadku nie zakończenia ich
sukcesem proces wraca do etapu 1
– Rozwoju Oprogramowania
Etap 3: TestowanieWykonanie Testów Automatycznych
12. Na tym etapie system automatycznie buduje obraz Docker zawierający zbudowany wcześniej i przetestowany Artefakt aplikacji.
Następnie tak zbudowany obraz publikowany jest do rejestru obrazów Docker i jest gotowy do automatycznego wdrożenia na Serwerach
Developerskich lub w przypadku wersji testowych i produkcyjnych na Serwerach Testowych.
Etap 4: Wydanie WersjiPrzygotowanie Wersji i Publikacja
13. Etap 5: KonfiguracjaCentralne Repozytorium Konfiguracji
Konfiguracja dostarczana jest do Aplikacji przez Centralne
Repozytorium Konfiguracji które zbudowane jest w oparciu o
technologię Spring Cloud Config.
Serwery Repozytorium mogą działać w Chmurze dzięki czemu
zapewniamy ich wysoką dostępność.
Wartości wrażliwe takie jak hasła dostępowe są przechowywane
w Repozytoriach w postaci zaszyfrowanej.
Istnieje możliwość automatycznego przeładowania w locie
konfiguracji lub jej części na Aplikacji.
K onfiguracja aplikacji przechowywana jest w
repozytoriach Git (kontrola uprawnień, wersjonowanie)
14. Etap 6: WdrożenieAutomatyczne wdrożenie na Serwery Developerskie
Na tym etapie system automatycznie wdraża obraz Docker i konfiguruje stos uruchomieniowy pojemnika Docker zawierającego obraz
uruchomieniowy aktualnej wersji DEVELOP aplikacji.
15. Etap 7: MonitoringAutomatyczne uruchomienie monitoringu Aplikacji i Środowiska Uruchomieniowego
W ramach Ciągłego Dostarczania przygotowane jest środowisko uruchomieniowe automatycznie dostarczające dane służące do monitorowania Aplikacji i parametrów
systemowych.
17. CONTACT US
ASTEK.PL
Ul. Mokotowska 1
00-640 Warszawa
ASTEK Polska
77-81 rue Marcel Dassault
Les Patios bâtiment D
92100 Boulogne-Billancourt
France
ASTEK Group
Tel. + 48 798 221 876
aradosz@astek.pl
Artur Radosz