DevOps - Budowa Środowiska i Zespołu
Projekt "Środowisko CI/CD i konteneryzacja"

Klient
Producent oprogramowania
Sektor / branża
ICT
Lokalizacja
Polska
Finansowanie KPO
budżet klienta
Informacje o projekcie
Organizacja specjalizująca się w produkcji oprogramowania podjęła decyzję o ujednoliceniu procesów zarządzania kodem źródłowym i stworzeniu stabilnej platformy do konteneryzacji.
Cel projektu
Projekt ma na celu automatyzację procesów kompilacji, wersjonowania i wdrażania aplikacji niezależnie od technologii, w której zostały napisane.
Wyzwania i wymagania projektowe
- Wszystkie operacje związane z budową środowisk mają być realizowane wewnątrz organizacji.
- Kod źródłowy, konfiguracje, biblioteki i obrazy systemów mają być wersjonowane i przechowywane w wewnętrznym repozytorium organizacji.
- Usługi mają działać na bazie środowisk kontenerowych, z możliwością swobodnego skalowania i gwarancją ciągłości działania podczas wdrażania nowych wersji.
- Docelowo ma powstać kompleksowe rozwiązanie realizujące mode CI/CD (Continuous Integration / Continuous Delivery).
Zespół
Stworzono dedykowany Zespół Projektowy, tj.:
- administratorzy systemowi,
- programiści (.NET, C#, Java, JS),
- specjaliści DevOps, kireownik projektu.
Główny cel
Automatyzacja procesów wytwarzania oprogramowania, m.in.:
- kompilacja i wdrażanie aplikacji mają być realizowane niezależne od technologii i narzędzi wytwarzania.
- kompilacja i wdrażanie aplikacji mają być realizowane niezależne od technologii i narzędzi wytwarzania.

Rozwiązania i Usługi

Stworzono nowe środowisko CI/CD, przeznaczone do budowy złożonych aplikacji zawierających wiele mikro usług, do zarządzania którymi w przeszłości potrzeba było angażować wielu administratorów. Po implementacji środowisk CI/CD zminimalizowano m.in. przerwy wdrożeniowe.
Realizując projekt zastosowano poniżej wymienione rozwiązania, m.in.:
- maszyny wirtualne - w zakresie przygotowania całej infrastruktury,
- oprogramowanie opensource (większość elementów budowanego środowiska, instancje systemowe oraz oprogramowanie narzędziowe)
- Jenkins w architekturze Master-Slave - zarządzanie kompilacją i wdrażaniem nowych wersji,
- Artifactory - gromadzenie wyników kompilacji w postaci bibliotek,
- repozytorium obrazów systemów dla środowiska kontenerowego,
- SonarQube - testy jakości wytworzonego kodu źródłowego,
- GIT - repozytorium wyników prac programistów i DevOps z wersjonowaniem realizowane jest przy pomocy standardu GIT.
- Automatyzacja procesów, kompilacji i wdrażania aplikacji została zrealizowana przez definicję zadań w Jenins w postaci wersjonowanych pipeline’ów.
- Kubernetes (k8s) - środowiska kontenerowe zapewniają ciągłość działania, optymalizację wydajności i niezawodność.
- Wszystkie kontenery powoływane są na podstawie konfiguracji zdefiniowanej w szablonach typu Helm.
- Zabbix, Grafana i Prometheus - monitorowanie stanu maszyn wirtualnych, usług, mikro serwisów oraz ich logów.
- Wprowadzenie podejścia GitOps w oparciu o oprogramowanie ArgoCD pomogło ograniczyć kilka zdefiniowanych zagrożeń, m.in: ryzyko braku rozliczeń dla wprowadzanych zmian.
Rezultaty
- Skutecznie przewidywanie i wykrywanie awarii oraz niestandardowego zachowania aplikacji poprzez monitorowanie stanu maszyn wirtualnych, usług, mikro serwisów oraz ich logów (wykorzystanie aplikacji Zabbix, Grafana i Prometheus).
- Wykrywanie niestandardowych stanów aplikacji.
- Powstało jednolite środowisko do gromadzenia, testowania i uruchamiania tworzonego oprogramowania.
- Maksymalizacja bezpieczeństwa poprzez zapisywanie wszystkich danych w lokalnych repozytoriach.
- Skalowalność zasobów oraz szybkie i bezpieczne wdrażanie nowych wersji dzięki zastosowaniu Kubernetes, podejścia GitOps oraz lokalnej wirtualizacji.
Wdrożenie opisanych standardów i rozwiązań oraz wprowadzenie właściwych procedur zwiększyło przewidywalność wystąpienia incydentów i awarii aplikacji w całym procesie wytwarzania oprogramowania oraz w fazie użytkowania.
Co dziś możemy zrobić dla Ciebie ?
1. Możemy zrealizować kompleksową usługę w zakresie:
2. Rozbudujemy lub stworzymy Twój Zespół Projektowy.
- przygotowanie nowego środowiska CI/CD lub modernizacja środowiska istniejącego,
- powołanie klastrów Kubernetes (k8s) i zorganizowanie automatyzacji procesów, tj.: gromadzenie, testowanie i wdrażanie nowych wydań oprogramowania,
- zapewnienie specjalistów w zakresie k8s, ale również technologii kontenerowych jak Swarm, Docker i Podman.
2. Rozbudujemy lub stworzymy Twój Zespół Projektowy.
- Wyszukamy w naszej bazie specjalistów - kompetentne i dostępne osoby, adekwatnie do potrzeb projektowych:
- administratorzy, specjaliści DevOps, architekci, analitycy, kierownicy projektów. - Przedstawimy Ci naszych kandydatów.
- Zdecydujesz o formie zatrudnienia / współpracy.