Zarządzanie kodem przeniesione do usług SaaS

W ostatnich latach zdecydowana większość nowych projektów IT przenosi zarządzanie kodem, pracę zespołów deweloperskich oraz procesy wdrożeniowe do usług SaaS.

Dotyczy to zarówno firm tworzących własne oprogramowanie, jak i organizacji rozwijających systemy wewnętrzne, integracje, aplikacje dla klientów czy automatyzacje procesów biznesowych.

Ułatwienia dzięki platformom deweloperskim SaaS

Platformy deweloperskie SaaS znacząco ułatwiają:

  •  zarządzanie kodem źródłowym,
  •  zarządzanie zespołem deweloperskim,
  •  automatyzację zadań,
  •  budowanie procesów CI/CD,
  •  zarządzanie zgłoszeniami i rozwojem oprogramowania,
  •  kontrolę jakości i bezpieczeństwa kodu,
  •  wdrażanie aplikacji.

Jednocześnie nie generują nakładów pracy związanych z utrzymaniem własnej infrastruktury, aktualizacjami, bezpieczeństwem systemu czy zapewnieniem wysokiej dostępności.

To szczególnie ważne w firmach korzystających z Outsourcingu IT, gdzie kluczowe jest skupienie się na rozwoju biznesu, a nie na utrzymywaniu narzędzi dla programistów.

Ułatwienia dzięki platformom deweloperskim SaaS

Najpopularniejsze platformy deweloperskie SaaS

Najpopularniejsze platformy deweloperskie SaaS to obecnie:

  •  GitHub
  •  GitLab
  •  Bitbucket

Podstawowe zadania platformy deweloperskiej SaaS

Na pierwszy rzut oka systemy te są do siebie podobne, ponieważ realizują podstawowe zadania związane z pracą zespołów deweloperskich:

  •  repozytoria kodu (Git),
  •  zarządzanie zmianami (merge request / pull request),
  •  zarządzanie zgłoszeniami (issues),
  •  zarządzanie wydaniami (releases),
  •  podstawowe CI/CD.

Różnice zaczynają być widoczne dopiero wtedy, gdy organizacja zaczyna wdrażać praktyki DevOps, automatyzację wdrożeń, testy automatyczne, konteneryzację, Infrastructure as Code czy GitOps.

Wtedy wybór platformy deweloperskiej staje się decyzją strategiczną.

Platforma deweloperska SaaS jako fundament DevOps

W nowoczesnym podejściu DevOps platforma typu GitHub, GitLab czy Bitbucket przestaje być tylko repozytorium kodu. Staje się centralnym systemem zarządzania całym cyklem życia aplikacji:

  •  Planowanie funkcjonalności
  •  Zarządzanie zadaniami
  •  Tworzenie kodu
  •  Testy automatyczne
  •  Budowanie aplikacji
  •  Wdrażanie (CI/CD)
  •  Monitoring
  •  Utrzymanie
  •  Rozwój kolejnych wersji

Oznacza to, że platforma deweloperska zaczyna pełnić rolę:

  •  systemu zarządzania projektami IT,
  •  systemu automatyzacji,
  •  systemu bezpieczeństwa kodu,
  •  systemu wdrożeniowego,
  •  integratora z chmurą i infrastrukturą.

Z punktu widzenia zarządu firmy oznacza to jedną bardzo ważną rzecz: dobrze dobrana platforma DevOps realnie wpływa na szybkość wdrażania zmian w firmie, a więc na konkurencyjność biznesu.

Platforma deweloperska SaaS jako fundament DevOps

Bitbucket – DevOps w ekosystemie Atlassian

Zalety Bitbucket

Bitbucket jest bardzo popularny w firmach, które korzystają z ekosystemu Atlassian, w szczególności z systemu JIRA. Jego największą zaletą jest bardzo dobra integracja z narzędziami do zarządzania projektami i zgłoszeniami.

  •  Automatyczna integracja z JIRA i Confluence
  •  Łatwość obsługi i szybki onboarding zespołu
  •  Stosunkowo prosty system CI/CD (Bitbucket Pipelines)
  •  Dobre mechanizmy kontroli dostępu
  •  Łatwa integracja z usługami zewnętrznymi
  •  Dobre rozwiązanie dla zespołów projektowych

Bitbucket pozwala osiągnąć niemal natychmiastową gotowość do pracy dla nowych zespołów.

Jest to szczególnie ważne w firmach, które dynamicznie rozwijają zespoły deweloperskie lub korzystają z Outsourcingu IT.

Ograniczenia Bitbucket

  •  CI/CD nie obsługuje wszystkich architektur i systemów operacyjnych
  •  Brak szerokiej integracji z dostawcami infrastruktury w standardzie
  •  Ustawienia bezpieczeństwa o mniejszej granulacji niż w konkurencyjnych rozwiązaniach
  •  Nie zawiera wszystkich funkcji platformy deweloperskiej – często wymaga korzystania z dodatkowych narzędzi Atlassian
  •  Przy dużej skali koszty mogą rosnąć szybciej niż w innych rozwiązaniach

Bitbucket jest bardzo dobrym rozwiązaniem dla firm, które już korzystają z JIRA i chcą mieć spójne środowisko do zarządzania projektami i kodem.

GitHub – najpopularniejsza platforma deweloperska na świecie

Zalety GitHub

GitHub jest obecnie najpopularniejszą platformą do zarządzania kodem źródłowym.

Dla wielu organizacji jest to domyślny wybór, szczególnie w nowych projektach i startupach.

  •  Największa społeczność deweloperów
  •  Ogromna liczba integracji
  •  Bardzo dobre wsparcie dla projektów open source
  •  GitHub Actions – system CI/CD
  •  Duża liczba gotowych automatyzacji
  •  Bardzo dobre wsparcie dla konteneryzacji i chmury
  •  Integracja z Microsoft Azure

GitHub jest bardzo dobrym rozwiązaniem dla organizacji, które:

  •  rozwijają nowe produkty,
  •  pracują z wieloma zespołami,
  •  korzystają z chmury,
  •  potrzebują dużej elastyczności.

Wady GitHub

  •  GitHub Actions, mimo dużych możliwości, ma mniej funkcji enterprise niż GitLab CI
  •  Zaawansowane funkcje bezpieczeństwa są dostępne dopiero w droższych planach
  •  Koszty CI/CD mogą rosnąć wraz z liczbą buildów
  •  Ustawienia bezpieczeństwa są rozbudowane i mogą prowadzić do błędów konfiguracyjnych

GitHub jest bardzo dobrym wyborem dla dynamicznych organizacji, ale przy dużej skali trzeba bardzo dobrze kontrolować koszty i konfigurację bezpieczeństwa.

GitHub – najpopularniejsza platforma deweloperska na świecie

GitLab – najbardziej kompletna platforma DevOps

Zalety GitLab

GitLab jest platformą, która od początku była projektowana jako kompleksowe środowisko DevOps, a nie tylko repozytorium kodu.

  •  Bardzo rozbudowany system CI/CD
  •  Obsługa wielu architektur i systemów operacyjnych
  •  Bardzo duże możliwości integracji
  •  Container Registry
  •  Package Registry
  •  Wsparcie dla Infrastructure as Code
  •  Wsparcie dla GitOps
  •  Wbudowane narzędzia bezpieczeństwa
  •  Bardzo duża liczba funkcji w jednym systemie
  •  Dużo funkcji dostępnych już w podstawowych planach

GitLab bardzo dobrze sprawdza się w:

  •  średnich i dużych firmach,
  •  projektach infrastrukturalnych,
  •  projektach DevOps,
  •  środowiskach Kubernetes,
  •  organizacjach pracujących zgodnie z DevOps i DevSecOps.

Wady GitLab

  •  Wdrożenie jest trudniejsze niż GitHub lub Bitbucket
  •  Onboarding zespołu wymaga więcej czasu
  •  Konfiguracja jest bardziej złożona
  •  Integracja z niektórymi usługami wymaga konfiguracji manualnej

GitLab jest często wybierany przez firmy, które chcą mieć jedną platformę do wszystkiego – zgodnie z podejściem All-in-one DevOps platform.

Koszty platform SaaS w DevOps

Każda z platform ma inny model cenowy i to właśnie koszty bardzo często decydują o wyborze rozwiązania w średnich i dużych firmach.

GitHub – model kosztowy

GitHub w modelu cenowym skupia się przede wszystkim na użytkowniku oraz zużyciu zasobów CI/CD.

  •  Darmowe repozytoria (z ograniczeniami)
  •  Ograniczona liczba minut CI/CD w darmowym planie
  •  Po przekroczeniu limitów koszty rosną
  •  Funkcje bezpieczeństwa płatne w planach enterprise

GitHub może być tani na początku, ale przy dużej skali koszt CI/CD może być znaczący.

GitLab – model kosztowy

GitLab ma inny model:

  •  Wyższy koszt użytkownika w planach płatnych
  •  Stosunkowo niskie koszty CI/CD
  •  Storage i registry w rozsądnych cenach
  •  Wiele funkcji DevOps w standardzie

Przy dużych środowiskach DevOps GitLab często okazuje się tańszy niż GitHub i Bitbucket, ponieważ wiele funkcji jest wbudowanych w platformę.

Bitbucket – model kosztowy

Bitbucket:

  •  Opłata za użytkowników
  •  Opłata za minuty CI/CD
  •  Ograniczenia w darmowym planie
  •  Często konieczność dokupienia JIRA, Confluence i innych narzędzi

W efekcie całkowity koszt środowiska Atlassian może być wyższy przy dużej organizacji.

Koszty platform SaaS w DevOps

Bezpieczeństwo kodu – DevSecOps

W nowoczesnych organizacjach bardzo ważnym elementem DevOps jest bezpieczeństwo kodu (DevSecOps), które obejmuje:

  •  skanowanie podatności w bibliotekach,
  •  skanowanie kontenerów,
  •  wykrywanie sekretów w kodzie,
  •  testy bezpieczeństwa aplikacji,
  •  kontrolę zależności,
  •  raporty bezpieczeństwa.

Platformy SaaS a Outsourcing IT

Brak konieczności utrzymania infrastruktury

Z punktu widzenia firm korzystających z Outsourcingu IT platformy SaaS mają bardzo duże zalety. Nie trzeba utrzymywać:

  •  serwerów,
  •  backupów,
  •  aktualizacji,
  •  zabezpieczeń,
  •  wysokiej dostępności.

Szybsze wdrożenie projektów

Zespół może zacząć pracę praktycznie od razu.

Łatwiejsza współpraca z zewnętrznymi zespołami

Outsourcing IT, software house, freelancerzy – wszyscy mogą pracować w jednym środowisku.

Skalowalność

Można łatwo zwiększać liczbę użytkowników, projektów i zasobów.

Przewidywalne koszty

Model subskrypcyjny pozwala planować budżet IT.