W obszarze tworzenia i dostarczania aplikacji zachodzą rewolucyjne zmiany. Początkowo kontroler dostarczania aplikacji (ADC) był oddzielnym, fizycznym, a później również wirtualnym elementem sieci, zarządzanym przez zespół specjalistów. Działał przed farmą serwerów i pomagał w zoptymalizowaniu wydajności i bezpieczeństwa aplikacji. Metodyki DevOps i agile całkowicie zmieniły tę sytuację: ADC zmienił się w kluczowy element samej aplikacji.
Zamiast tworzenia lub aktualizowania aplikacji w cyklach kwartalnych lub rocznych, jak w tradycyjnej metodyce „kaskadowej”, model agile skrócił cykl do kilku tygodni deweloperskiego sprintu. Jednocześnie metodyka DevOps – poprzez połączenie tworzenia i obsługi aplikacji – skróciła czas wdrażania, ostatecznie prowadząc do procesu ciągłej integracji i ciągłego dostarczania (CI/CD).
To radykalne przyspieszenie oznacza, że rozróżnienie między tworzeniem, a wdrażaniem aplikacji w praktyce się zatarło. Wdrażanie i konfiguracja urządzeń ADC po wdrożeniu aplikacji, w celu zoptymalizowania wydajności, zapewnienia wysokiej dostępności, bezpieczeństwa i odporności aplikacji nie jest już oddzielną czynnością. Ponieważ deweloperzy dokonują natychmiastowych zmian w swoich aplikacjach, muszą sami zadbać o kwestie wydajności, wysokiej dostępności i bezpieczeństwa. W środowisku zajmującym się bezpieczeństwem jeden z aspektów tej transformacji jest znany jako „shift left security” (bezpieczeństwo przesunięte w lewo). Zespoły deweloperskie muszą przejąć odpowiedzialność za bezpieczeństwo aplikacji, co oznacza, że zabezpieczenia muszą być wbudowane w projekt. Nie należy pozostawiać tego zadania oddzielnie działającym zaporom aplikacyjnym i innym rozwiązaniom zabezpieczającym.
Ta sama zasada dotyczy wszystkich optymalizacji zapewnianych przez ADC. ADC nie jest już tylko urządzeniem, które zespół sieciowy wykorzystuje do przyspieszenia działania aplikacji i zwiększenia ich niezawodności. ADC jest obecnie częścią CI/CD, staje się częścią infrastruktury aplikacji, a nie oddzielnym urządzeniem w centrum danych.
Współczesny ADC musi spełniać wiele funkcji. Natywnie integrować się z rozwiązaniami takimi jak Kubernetes, obsługiwać wdrożenia z wykorzystaniem takich narzędzi, jak Spinnaker oraz Kayenta, czy też łatwo łączyć się z oprogramowaniem do monitorowania zdarzeń, na przykład Prometheus i Grafana. Jednocześnie rozwiązanie powinno być na tyle elastyczne, żeby można było je łatwo i szybko zintegrować z innymi narzędziami. Tylko szeroki zakres integracji zapewnia deweloperom wymagane środki wglądu i optymalizacji, które w konsekwencji pozwalają im zagwarantować odpowiednią wydajność, dostępność i bezpieczeństwo aplikacji.
Niektóre zespoły DevOps wolą używać do tych zadań narzędzi open source. Choć takie podejście ma zalety, czołowe komercyjne rozwiązania ADC oferują kluczową przewagę w deweloperskim wyścigu. Dzięki nim twórcy oprogramowania mogą skupić się na dostarczaniu nowych funkcji i możliwości, przerzucając ciężar integracji i utrzymania na zestawy narzędzi w bezpiecznym i wydajnym rozwiązaniu z kompleksowymi mechanizmami raportowania. Dzięki nim można ograniczyć nakład pracy administracyjnej dostarczając wstępnie zbudowane rozwiązania oparte na popularnym oprogramowaniu firm trzecich oraz oferując pełen zbiór interfejsów API i szablonowych środowisk. Do dyspozycji są też użyteczne wstępnie zdefiniowane usługi w postaci niestandardowych definicji zasobów (custom resource definitione, CRD). Definicje te upraszczają realizację często spotykanych scenariuszy i mogą pomóc zespołom DevOps szybciej i bezpieczniej dostarczać klientom wymagane aplikacje.
Ewolucja kontrolerów ADC jest ogromna. Od urządzeń instalowanych i zarządzanych przez zespół specjalistów do oprogramowania, które nie tylko zarządza dystrybucją zewnętrznego ruchu, ale również komunikacją między licznymi i różnorodnymi komponentami współczesnych aplikacji i jest zintegrowane z cyklem ciągłego wdrażania. Takie oprogramowanie oferuje wiele wartości dodanej w tworzeniu aplikacji według metodyki agile. W szybko zmieniającym się cyfrowym świecie biznesu, kompleksowe rozwiązania z rozbudowanymi interfejsami API, pozwalają firmom nie tylko podejmować szybkie działania, ale również tworzyć zoptymalizowane, wysoce dostępne oraz ściśle zabezpieczone aplikacje, które zapewniają prawdziwą wartość biznesową.
Sebastian Kisiel, Citrix Systems Poland