Key Takeaways
Zgodność z przepisami jest koniecznością: Zgodność z przepisami ma kluczowe znaczenie dla firm, zwłaszcza tych działających w internecie. Wpływa na wszystkie organizacje i staje się niezbędna do prowadzenia działalności praktycznie w dowolnym miejscu.
Alfabetyczna zupa regulacji: Firmy muszą przestrzegać licznych standardów regulacyjnych, takich jak HIPAA, PCI DSS, RODO i SOX. Przepisy te wpływają na współczesne tworzenie oprogramowania, dlatego zgodność z regulacjami jest kluczowym obowiązkiem zespołów DevOps.
Przesunięcie zgodności DevOps w lewo: Zgodność DevOps ma na celu włączenie kontroli regulacyjnych na wczesnym etapie cyklu życia tworzenia oprogramowania (SDLC). To proaktywne podejście ogranicza ryzyko, zapewniając zgodność na wielu etapach tworzenia oprogramowania, a nie tylko przed wdrożeniem.
Automatyzacja ratuje zgodność: Automatyzacja w cyklu życia tworzenia oprogramowania powinna obejmować również zgodność z przepisami, aby minimalizować ryzyko i koszty. Zapewnienie zgodności podczas tworzenia funkcji pozwala uniknąć kosztownych poprawek po wdrożeniu i sprzyja ciągłemu przestrzeganiu regulacji.
Wyzwania związane z widocznością i współpracą: Skuteczna zgodność DevOps zależy od zniwelowania różnic między zespołami inżynieryjnymi a zespołami GRC dzięki lepszej widoczności, komunikacji, współpracy i zaawansowanym narzędziom technologicznym. Obie strony muszą płynnie współpracować.
Zgodność z przepisami może być jednym z najmniej efektownych tematów w całym świecie technologii.
A jednak jest absolutnie konieczna. Wymogi dotyczące zgodności mają wpływ na organizacje duże i małe, a także wszystkie pomiędzy nimi — zwłaszcza na każdą firmę działającą online, czyli obecnie na każdą firmę.
„Większość współczesnych firm obserwuje zmiany w otoczeniu regulacyjnym — nowe przepisy pojawiają się co roku, a czasami nawet co kwartał” — mówi Daniel Marashlian, dyrektor ds. technologii i współzałożyciel firmy Drata, zajmującej się automatyzacją bezpieczeństwa i zgodności. „Zgodność z przepisami staje się warunkiem koniecznym prowadzenia działalności [praktycznie wszędzie]”.
Rzeczywiście, parada regulacyjnych akronimów brzmi jak test u okulisty: HIPAA, PCI DSS, GDPR, SOX, FISMA, NIST — nadal jesteście z nami? To zaledwie wierzchołek góry lodowej potencjalnych zasad i struktur, z którymi trzeba się zgodzić, zwłaszcza we współczesnym świecie oprogramowania.
Biorąc pod uwagę, że oprogramowanie dla przedsiębiorstw styka się praktycznie z każdą częścią firmy, wynika z tego, że oprogramowanie — nie wspominając o jego danych i infrastrukturze — jest bardzo istotnym elementem otoczenia regulacyjnego. To z kolei oznacza, że zespoły DevOps coraz częściej odpowiadają za strategię i stan zgodności swojej organizacji.
„Od organizacji DevOps coraz częściej wymaga się spełniania tych nowych wymogów regulacyjnych” — mówi Marashlian.
W tym artykule przyjrzymy się bliżej zgodności w DevOps — czym jest, dlaczego ma znaczenie i jak zespoły ją wdrażają.
Czym jest zgodność w DevOps?
DevOps od zawsze koncentrował się na tworzeniu lepszych procesów, narzędzi i zespołów — a ostatecznym celem było szybkie i niezawodne dostarczanie świetnego oprogramowania. Zgodność w DevOps koncentruje się zatem na zapewnieniu, że cykl życia dostarczania oprogramowania (SDLC) spełnia wszelkie wymogi dotyczące zgodności, niezależnie od tego, czy wynikają one z zasad organizacyjnych, przepisów rządowych, standardów branżowych czy innych reguł.
W przeszłości zgodność mogła być postrzegana jako końcowa formalność przed wdrożeniem — albo nawet jako coś, co nie było priorytetem, dopóki nie pojawił się problem w wydaniu produkcyjnym. Obecnie dąży się do przesunięcia zgodności — podobnie jak bezpieczeństwa, kontroli jakości i innych procesów — możliwie daleko „w lewo” w cyklu SDLC, czyli do najwcześniejszych etapów tworzenia oprogramowania. Dzięki temu staje się ona bardziej zintegrowaną częścią SDLC i pozwala zespołom regularnie sprawdzać kod oraz systemy pod kątem zgodności na wielu etapach, aby ograniczać ryzyko.
Have an account? Log In
Dlaczego zgodność w DevOps ma znaczenie?
DevOps stał się jednym z wiodących podejść do tworzenia oprogramowania. Wystarczy powiedzieć, że wiele aplikacji — a z pewnością wszystkie systemy, które generują, wykorzystują lub przechowują poufne dane — podlega różnym zasadom, przepisom i strukturom bezpieczeństwa regulującym sposób działania firm.
Zgodność w DevOps ma znaczenie, ponieważ bez niej znacznie trudniej jest ograniczać ryzyko i zapewniać stałą zgodność, gdy zespoły programistyczne wdrażają kod szybciej i częściej — właściwie nieprzerwanie — niż kiedykolwiek wcześniej. Jest to jeszcze ważniejsze, biorąc pod uwagę, jak wiele elementów SDLC zostało zautomatyzowanych, w tym potoki ciągłej integracji/ciągłego dostarczania (CI/CD), automatyzację infrastruktury, automatyzację bezpieczeństwa i inne. To samo podejście, w którym automatyzacja jest priorytetem, powinno obejmować również zgodność.
„Wbudowanie zgodności w funkcje już na etapie ich tworzenia, zamiast identyfikowania tych problemów po wdrożeniu funkcji, może zapobiec kosztownym działaniom naprawczym” — mówi Marashlian.
Wyzwania związane ze zgodnością przy wdrażaniu DevOps
Zgodność w DevOps jest również ważna, ponieważ odzwierciedla dalszą zmianę sposobu, w jaki zespoły inżynierii oprogramowania współpracują z resztą organizacji. Podobnie jak sam DevOps miał na celu przełamanie tradycyjnych barier między obszarami IT — przede wszystkim między tworzeniem oprogramowania a operacjami, ale także między takimi funkcjami jak bezpieczeństwo i kontrola jakości — zgodność w DevOps powinna również zmniejszać tarcia między zespołami programistycznymi a innymi kluczowymi interesariuszami, zwłaszcza pracownikami zajmującymi się zarządzaniem, ryzykiem i zgodnością (GRC).
„Jeśli chodzi o zmiany wprowadzane przez zespoły inżynieryjne, zespołom GRC brakuje wglądu w to, jak te zmiany wpływają na stan zgodności, ponieważ jedynym sposobem uzyskania takiej widoczności są ręczne audyty lub zautomatyzowane narzędzia skanujące środowisko produkcyjne” — mówi Marashlian.
Wskazuje to na kilka nakładających się wyzwań związanych ze zgodnością w organizacjach DevOps: brak widoczności, brak komunikacji, brak współpracy oraz brak skutecznych narzędzi technologicznych — zwłaszcza takich, które mogą pomóc wdrożyć, zautomatyzować i zarządzać „stanem docelowym” wymogów dotyczących zgodności w firmie.
Zgodność w DevOps „oznacza zapewnienie deweloperom widoczności struktur zgodności i wymogów regulacyjnych w przystępny i praktyczny sposób, aby mogli oni zagwarantować, że zmiany w kodzie spełniają cele biznesowe organizacji związane ze zgodnością” — mówi Marashlian.
To ulica dwukierunkowa: zespoły GRC również potrzebują wglądu i zrozumienia tego, jak oprogramowanie organizacji wpływa na jej stan zgodności, ale w sposób, który nie powoduje tarć z deweloperami i inżynierami DevOps ani nie tworzy wąskich gardeł w cyklu SDLC.
Dobra wiadomość: Te wyzwania powinny brzmieć znajomo dla doświadczonych specjalistów DevOps, ponieważ przypominają konflikty, które wcześniej występowały między zespołami programistycznymi a zespołami operacyjnymi. Praktyki DevOps, takie jak wspólne systemy motywacyjne oraz retrospektywy i oceny po incydentach bez przypisywania winy, również mogą być tutaj wartościowe.
Automatyzacja również ma ogromne znaczenie, ponieważ umożliwia częste kontrole rozpoczynające się na wczesnym etapie cyklu życia oprogramowania (SDLC) i ogranicza liczbę późniejszych incydentów na produkcji. Jeśli takie incydenty jednak wystąpią, kluczowe jest wspólne podejście do ich rozwiązywania — zamiast wzajemnego obwiniania.
„Gdy na produkcji zostaną zidentyfikowane krytyczne problemy związane ze zgodnością, zespoły GRC i inżynieryjne powinny wspólnie ustalić priorytety dotyczące usunięcia tych problemów, zapewniając organizacji dalszą realizację celów związanych ze zgodnością” — mówi Marashlian. „Pomaga to uniknąć silosów i ułatwia bliższą współpracę między oboma zespołami”.
Najlepsze praktyki dotyczące zgodności DevOps
Niezależnie od konkretnych narzędzi lub innych rozwiązań wybranych na potrzeby zgodności DevOps, istnieją podstawowe elementy i najlepsze praktyki, które należy uwzględnić jako fundamenty programu. Należą do nich:
Jasne zasady i cele: Nie można zapewnić zgodności, jeśli nie wiadomo, jaki jest cel. Dlatego każdy program zgodności DevOps powinien naturalnie rozpocząć się od określenia, jakich regulacji i ram należy lub chce się przestrzegać, a następnie od wdrożenia odpowiednich zasad i narzędzi. Czasami można je określić jako „akceptowalne zakresy”, co oznacza istnienie pewnego spektrum potencjalnie akceptowalnych wyników kontroli zgodności przeprowadzanych na różnych etapach cyklu życia oprogramowania (SDLC).
Kontrola wersji: Systemy kontroli wersji, takie jak Git, są już powszechnie obecne w łańcuchach narzędzi DevOps. To dobrze, ponieważ kontrola wersji jest również w dużej mierze uznawana za niezbędny element zgodności DevOps — między innymi dlatego, że jest technologią umożliwiającą przeprowadzanie audytów bezpieczeństwa i zgodności.
Infrastruktura jako kod (IaC): Narzędzia infrastruktury jako kod — czyli automatyzacji infrastruktury — umożliwiają inżynierom DevOps i innym osobom programistyczne realizowanie zadań związanych z zarządzaniem infrastrukturą, takich jak udostępnianie zasobów, skalowanie czy konfiguracja. Pozwala to zespołom DevOps zarządzać infrastrukturą w spójny i automatyczny sposób, oszczędzając znaczną ilość czasu i wysiłku poświęcanych na ręczne, powtarzalne prace związane z infrastrukturą.
Automatyzacja bezpieczeństwa / DevSecOps: Chociaż bezpieczeństwo i zgodność są zazwyczaj uznawane za odrębne dziedziny, z pewnością są ze sobą powiązane, szczególnie w odniesieniu do danych. Mówiąc najprościej: jeśli w oprogramowaniu, infrastrukturze lub danych występują luki w zabezpieczeniach, prawdopodobnie występują tam również luki w zakresie zgodności. Jednym ze sposobów spojrzenia na zgodność DevOps jest uznanie, że podąża ona za wzorcem podobnym do DevOps i bezpieczeństwa — czasami określanym jako DevSecOps — ponieważ wymaga podejścia polegającego na „przesunięciu w lewo” oraz porzucenia starych paradygmatów, w których bezpieczeństwo (i zgodność) traktowano jako końcową listę kontrolną wykonywaną w momencie wdrożenia.
Procesy związane ze zgodnością często przecinają się również z różnymi standardami i strategiami cyberbezpieczeństwa, takimi jak kontrola dostępu (w tym MFA/2FA i kontrola dostępu oparta na rolach) oraz ramy bezpieczeństwa, takie jak te publikowane przez NIST lub OWASP.
Zgodność jako kod (CaC): Zgodność jako kod (CaC) — czasami nazywana automatyzacją zgodności — wykorzystuje skrypty i narzędzia automatyzacji do ograniczania ryzyka związanego z ręczną konfiguracją oraz zapewniania spójności w całym stosie IT organizacji i cyklu życia oprogramowania (SDLC).
CaC zwiększa możliwość śledzenia i rozliczalność zmian wprowadzanych w infrastrukturze i oprogramowaniu. W połączeniu z infrastrukturą jako kod (IaC) firmy mogą uzyskać trwałe, powtarzalne i podlegające audytowi zmiany infrastruktury zgodne z wymogami dotyczącymi zgodności — i osiągnąć to samo w bazach kodu oprogramowania.
W następnej sekcji przyjrzymy się bliżej niektórym narzędziom CaC.
More Articles
Narzędzia i rozwiązania do zapewniania zgodności DevOps
Jak zauważa wyżej Marashlian, jednym z nadrzędnych wyzwań związanych ze zgodnością w każdej organizacji jest to, że jest to obszar, który stale się zmienia. Uchwalane są nowe regulacje i przepisy, istniejące ramy lub zasady ulegają zmianom i tak dalej.
To jedna z podstawowych zalet narzędzi CaC. Zapewniają one większą standaryzację, spójność i automatyzację kontroli zgodności w całym cyklu życia oprogramowania (SDLC), zachowując jednocześnie przejrzystą ścieżkę audytową.
Jak pisze Jim Bird, autor książki O’Reilly DevOpsSec: „Standaryzacja cieszy audytorów. Audytowanie cieszy audytorów (co oczywiste). Zgodność jako kod zapewnia piękną ścieżkę audytową dla każdej zmiany — od momentu zgłoszenia zmiany i podania jej przyczyny, przez wskazanie osoby, która ją wprowadziła, oraz zakresu wprowadzonych przez nią modyfikacji, po informację o tym, kto sprawdził zmianę i co stwierdzono podczas przeglądu, a także jak i kiedy zmiana została przetestowana oraz kiedy została wdrożona”.
Wraz z dojrzewaniem DevOps coraz więcej organizacji zdaje się dostrzegać korzyści: Marashlian z firmy Drata powołuje się na niedawny raport Gartnera, który przewiduje, że „do 2026 roku 70% przedsiębiorstw zintegruje zgodność jako kod ze swoimi łańcuchami narzędzi DevOps, ograniczając ryzyko i skracając czas realizacji o co najmniej 15%”.
Drata niedawno uruchomiła funkcję CaC na swojej platformie. „Zespoły DevOps i GRC zyskują wgląd w problemy związane ze zgodnością na wczesnym etapie cyklu życia oprogramowania, [mogą] łatwo i szybko usuwać te problemy w kodzie oraz [mogą] tworzyć mechanizmy ochronne kontrolujące, czy dozwolone jest wprowadzanie zmian w kodzie, które wpływają na stan zgodności organizacji” — mówi Marashlian.
Jeśli na przykład jesteś organizacją z sektora ochrony zdrowia i chcesz w większym stopniu zautomatyzować zgodność z HIPAA, możesz skonfigurować narzędzie CaC, aby to zrobić. Dotyczy to również większości innych głównych regulacji, takich jak SOC 2, GDPR i ISO 27001. Narzędzia CaC mogą pomóc zautomatyzować weryfikację różnych standardów zgodności w całym cyklu życia oprogramowania (SDLC), zmierzając w kierunku modelu ciągłej zgodności — podobnie jak w przypadku ciągłego dostarczania i potoków CD.
Oprócz Drata dostępnych jest wiele innych opcji, w tym Vanta, Sprinto i Scrut. Oczywiście jednym z podstawowych kryteriów wyboru powinno być upewnienie się, że każde używane narzędzie obsługuje konkretne wymagania dotyczące zgodności.
Warto również pamiętać, że istnieje znacznie szerszy zestaw narzędzi programowych, które można zaliczyć do obszaru zgodności DevOps: systemy kontroli wersji, takie jak Git, platformy automatyzacji, takie jak Terraform i Ansible, a nawet Kubernetes. Główne platformy chmurowe również oferują własne warianty tych i innych narzędzi.
Najważniejsze wnioski
Zgodność z regulacjami może nie być najlepszym tematem do rozpoczęcia rozmowy podczas przyjęcia, ale jest koniecznością dla większości organizacji. Zgodność — zwłaszcza w odniesieniu do aplikacji programowych, danych i infrastruktury — jest coraz częściej zarządzana jako kod w wysoce zautomatyzowany sposób.
Jaką rolę odgrywa DevOps w zapewnianiu zgodności w Twojej organizacji? Zapisz się do newslettera The CTO Club, aby otrzymywać więcej wiadomości i uczestniczyć w dyskusjach dotyczących branży!







