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).
icon-alt

Zespół

Stworzono dedykowany Zespół Projektowy, tj.:
  • administratorzy systemowi,
  • programiści (.NET, C#, Java, JS),
  • specjaliści DevOps, kireownik projektu.
icon-alt

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.

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. 
Ograniczenie istotnych zagrożeń projektowych.
  • 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.
icon-alt

Co dziś możemy zrobić dla Ciebie ?

1. Możemy zrealizować kompleksową usługę w zakresie:
  • 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.
Adekwatnie do Twoich potrzeb możemy zrealizować usługi opisane w powyższym przykładzie 'business case'.
icon-alt
Porozmawiajmy, jak możemy Ci pomóc ?