Budowa infrastruktury opartej na technologii Kubernetes i opieka nad zasobami

10 maja 2023

Dla naszego Klienta, nowoczesnej firmy cloud native, która wszystkie swoje zasoby przechowuje w chmurze, a przy tym jednego z liderów rynku energii odnawialnej, świadczyliśmy usługi w zakresie doradztwa, projektowania, budowy i opieki nad infrastrukturą w chmurze Amazon Web Services.

Początek współpracy i infrastruktura

Klient, nawiązując z nami współpracę, posiadał już infrastrukturę opartą na klastrach Kubernetesowych w AWS. Początkowo, jego intencją, było powierzenie nam jedynie opieki nad istniejącym środowiskiem. Po przeprowadzeniu standardowego przeglądu infrastruktury Klienta, zaproponowaliśmy jednak wprowadzenie szeregu zmian, których celem była optymalizacja szybkości działania, obniżenie kosztów czy wdrożenie podejścia IaC. Biorąc pod uwagę bardzo profesjonalne podejście Klienta do wdrażania i wykorzystania nowych technologii, wspólnie podjęliśmy decyzję o zbudowaniu całej infrastruktury od podstaw, zgodnie z najlepszymi praktykami rekomendowanymi przez AWS.

Spostrzeżenia Hostersów, dotyczące możliwości optymalizacji naszej infrastruktury, okazały się niezwykle trafne, przez co od samego początku zyskaliśmy przekonanie o potrzebie ich wdrożenia. Dzięki tej decyzji, dysponujemy obecnie niezwykle nowoczesnym środowiskiem, opartym o technologię Kubernetes, stworzonym w podejściu IaC.

Decydując się na wdrożenie rozwiązań zaproponowanych przez Hostersów, zyskaliśmy środowisko bezpieczne, bezawaryjne i idealnie dopasowane do naszych potrzeb!

Metodologia

Cała infrastruktura została zaprojektowana i wdrożona w metodologii IAC z wykorzystaniem narzędzi Terraform i Helm. Do zarządzania kodem infrastruktury, przygotowaliśmy osobny kontener.

Terraform służy do zarządzania całą infrastrukturą w ramach AWS. Zawiera opis wszystkich elementów tego środowiska (AWS IAM, AWS VPC, Amazon EKS, Amazon ECR, Amazon RDS, AWS EC2). Kod budujący, jest wspólny dla środowiska produkcyjnego, testowego i developerskiego, natomiast zmienne zdefiniowane dla obu środowisk, zostały zdefiniowane do osobnych plików.

Helm - wykorzystaliśmy do wdrożenia głównych narzędzi w ramach klastra Kubernetes (Traefik, dashboard, Filebeat, Prometheus, RBAC). Do każdego ze środowisk (testowego i produkcyjnego) przygotowaliśmy osobne pliki definiujące dany serwis. Przygotowaliśmy też skrypty, pozwalające na wdrożenie usług w ramach klastra Kubernetes.

Dla całego projektu stworzyliśmy trzy konta (Prod, Dev i Test). Użytkownicy oraz grupy w ramach AWS IAM ustanawiane są ręcznie (z wyłączeniem kodu infrastruktury), natomiast role i polityki tworzone są w kodzie infrastruktury.

Wszystkie mikroseroserwisy zostały uruchomione w ramach odrębnych (dla każdego środowiska) klastrów Kubernetes. Do zarządzania ruchem w ramach klastrów, zastosowaliśmy Traefik. Zgodnie z dobrymi praktykami, dla każdego klastra skonfigurowaliśmy osobne usługi, odpowiedzialne za ruch wewnętrzny i zewnętrzny. W ramach każdego z klastrów wdrożyliśmy również stack Prometheus, za pomocą którego zbierane są metryki ze wszystkich mikroserwisów. Do wyświetlania zebranych danych, wykorzystaliśmy Grafanę. Co ważne, dostęp do powyższych usług, ze względów bezpieczeństwa, nie jest możliwy z Internetu.

Elementy infrastruktury

Punktem wejściowym do infrastruktury Klienta, odpowiedzialnym za zarządzanie strefami DNS w ramach domen jest CloudFlare, który odpowiada nie tylko za ruch zewnętrzny, ale i wewnętrzny. W ramach usługi ElasticCloud uruchomiliśmy ElasticSearch i Kibanę, które wspólnie odpowiadają za zbieranie logów aplikacyjnych

Pozostałe narzędzia

W ramach projektu wykorzystaliśmy również:

  • AWS Lambdado skalowania obrazków oraz generowania raportów
  • AWS S3 - na potrzeby przechowywania stanu infrastruktury zarządzanej przez Terraform oraz plików wykorzystywanych przez aplikację
  • Amazon API Gateway jedna z usług, która dzięki komunikacji z funkcją Lambda jest odpowiedzialna za generowanie raportów
  • Amazon CloudWatch narzędzie wykorzystywane na potrzeby monitoringu usług uruchomionych w ramach infrastruktury - między innymi metryk dla usługi RDS

Podsumowanie

Zaprojektowaliśmy i uruchomiliśmy infrastrukturę w środowisku AWS, opartą o klastry Kubernetes, w podejściu zgodnym z IAC. Dzięki zastosowaniu szeregu narzędzi AWS, udało nam się zoptymalizować koszty związane z utrzymaniem infrastruktury, a efektem naszej pracy jest stabilna i bezpieczna infrastruktura, która od momentu powstania nie uległa żadnej awarii.

 

 

PYTANIA? SKONTAKTUJ SIĘ Z NAMI

 

Zobacz również:

Opieka administracyjna nad infrastrukturą BiotCloud

Migracja środowiska deweloperskiego, bazującego na mikroserwisach, do chmury AWS, w oparciu o platformę Kubernetes dla NeuroSYS

Wdrożenie i opieka nad infrastrukturą chmurową w AWS dla Displate

Projekt, budowa i uruchomienie infrastruktury w AWS dla firmy Roler.

Migracja serwisu edukacyjnego EduNect do chmury AWS

 

Case Studies
Referencje

Hostersi odpowiadali za migrację naszej platformy Nsflow do środowiska Amazon Web Services, opartego na klastrach Kubernetes. Proces został przeprowadzony z zachowaniem pryncypiów CI/CD, zapewniających sprawną migrację. Współpracę z Hostersami oceniamy wysoko, ze szczególnym naciskiem na profesjonalizm, elastyczność i zaangażowanie osób biorących udział w procesie. Jesteśmy bardzo zadowoleni ze współpracy i polecamy firmę Hostersi jako rzetelnego i profesjonalnego partnera, o rozbudowanych kompetencjach w obszarze AWS i Kubernetes.

Tomasz Kowalczyk
CEO NeuroSYS Sp. z o.o.
W skrócie o nas
Specjalizujemy się w dostarczaniu rozwiązań IT w obszarach projektowania infrastruktury serwerowej, wdrażania chmury obliczeniowej, opieki administracyjnej i bezpieczeństwa danych.