DevOps
7-
66 PLN Gitlab Ci
DevOpsWdrażanie rurociągu Gitlab
-
7269 PLN Budowa i migracja infrastruktury w AWS
DevOpsOpis projektu
Dla projektu internetowego, umieszczonego na własnych serwerach (on-premises), postawiono zadanie przeniesienia infrastruktury do chmury w celu automatyzacji procesów, zapewnienia wysokiej dostępności (HA) i obniżenia kosztów utrzymania infrastruktury.
… Co zostało zrealizowane:
Projektowanie i zatwierdzenie nowej infrastruktury: opracowano szczegółowy plan infrastruktury i zatwierdzono go z klientem.
Optymalizacja kosztów: obliczono i zoptymalizowano koszty korzystania z platformy chmurowej.
Infrastructure as Code: infrastruktura została opisana przy użyciu Terraform.
Immutable-serwery: wdrożono strategię tworzenia niezmiennych serwerów za pomocą Packer.
Testowanie wydajności: przeprowadzono testy obciążeniowe w celu oceny wydajności i identyfikacji wąskich gardeł.
Krokowa migracja usług: zrealizowano etapowe przeniesienie usług.
Zgodność z wymaganiami bezpieczeństwa: infrastruktura została zbudowana zgodnie z politykami bezpieczeństwa i wymaganiami platformy chmurowej.
Monitorowanie i powiadomienia: skonfigurowano monitorowanie i system powiadomień dla wszystkich krytycznych komponentów.
Kopia zapasowa i przywracanie: wdrożono strategie tworzenia kopii zapasowych i przywracania po awariach.
Ostateczne testowanie i dokumentacja: przeprowadzono końcowe testy i udokumentowano wszystkie procesy.
#Amazon #AWS #terraform #packer #IaC #ansible
-
3635 PLN Konfiguracja i wdrożenie stosu monitorowania (Icinga, Prometheus)
DevOpsZadanie:
Dla jednego z projektów konieczne było wdrożenie stosu monitorowania. Klient potrzebował monitorowania usług oraz systemu powiadomień opartego na Nagios. Ponadto, do śledzenia SLO/SLI i poszczególnych usług potrzebne były Prometheus i Grafana.
… Jak to zrealizowałem:
Zamiast Nagios zaleciłem użycie Icinga dzięki bardziej zaawansowanemu API i wygodnemu panelowi sterowania. Ponadto, Icinga lepiej nadaje się do skalowania i wdrażania wysokiej dostępności. Serwer Icinga został początkowo skonfigurowany z myślą o skalowalności. Zgrupowałem wszystkie usługi i skonfigurowałem szczegółowe metryki oraz powiadomienia dla personelu.
Do zbierania rozszerzonych metryk dla poszczególnych usług użyto Prometheus. Jako magazyn metryk zastosowano VictoriaMetrics dzięki jego wysokiej wydajności i szerokim możliwościom skalowania. Dla klienta wdrożono rozproszony klaster VictoriaMetrics.
Dla krytycznych usług skonfigurowano SLI i powiadomienia w przypadku naruszenia SLO. Do wygodnej wizualizacji wykresów użyto Grafana.
#grafana #prometheus #icinga2
-
Zarządzanie serwerem
DevOpsInstalacja i instalacja pod każdym projektem.
Pełne zarządzanie .
-
91 PLN Klastra Kubernetes Terrafrom AWS EKS
DevOpsBudowa odpornej na awarie, wysokodostępnej, skalowalnej i bezpiecznej infrastruktury AWS Cloud oraz klastra Kubernetes z użyciem Terrafrom IaC
-
Wdrażanie aplikacji Spring PetClinic za pomocą Vagrant
DevOpsUtwórz repozytorium na Gitlabie i zatwierdź wszystkie zmiany w swoim repozytorium gitlab
Utwórz skrypt wdrożeniowy dla aplikacji PetClinic. Użyj Vagranta, aby zautomatyzować proces tworzenia infrastruktury do wdrożenia z Virtualbox (najlepiej). Jeśli chodzi o provisioning, możesz wybrać użycie bash, python lub ansible w dowolnej kombinacji.
Podzadanie I - Infrastruktura
… Opisz dwie maszyny wirtualne za pomocą Vagrantfile do wdrożenia aplikacji (kodowa nazwa APP_VM) i bazy danych (kodowa nazwa DB_VM)
Najlepiej użyj funkcji prywatnej sieci dla łatwej komunikacji VM
VM powinny być albo Centos, albo Ubuntu
Jeśli nie używasz prywatnej sieci, to APP_VM powinien mieć port 8080 przekierowany na hosta
Podzadanie II - Baza danych
Użyj dowolnego skryptu provisioningowego, który stworzyłeś, aby zainstalować MySQL i wszelkie zależności na DB_VM
Dostosuj bazę danych mysql, aby akceptowała połączenia tylko z twojej prywatnej podsieci vagranta
Utwórz użytkownika nie-root i hasło (kodowa nazwa DB_USER i DB_PASS) w mysql. Użyj zmiennej środowiskowej hosta, aby ustawić te wartości i przekazać je do Vagrantfile za pomocą ENV
Utwórz bazę danych w mysql (kodowa nazwa DB_NAME) i przyznaj wszystkie uprawnienia dla DB_USER do dostępu do bazy danych
Podzadanie III - Aplikacja
Utwórz użytkownika nie-root (kodowa nazwa APP_USER), który będzie używany do uruchamiania aplikacji na APP_VM
Użyj dowolnego provisionera, aby zainstalować Java JDK, git i wszelkie zależności na APP_VM
Sklonuj to repozytorium do folderu roboczego (kodowa nazwa PROJECT_DIR)
Użyj narzędzia Maven, aby uruchomić testy i spakować aplikację. Aby uzyskać więcej informacji, możesz skorzystać z tej 5-minutowej dokumentacji maven. Dla wygody folder projektu ma skrypt wrappera Maven (mvnw), który automatycznie pobiera i wykonuje wymagany plik binarny Maven.
Jeśli testowanie i pakowanie zakończy się sukcesem, pobierz pakiet *.jar z folderu $PROJECT_DIR/target i umieść go w folderze domowym APP_USER (kodowa nazwa APP_DIR).
Ustaw zmienne środowiskowe w APP_VM (najlepiej użyj tych samych zmiennych środowiskowych przekazanych z maszyny hosta za pomocą ENV, co w DB_VM):
DB_HOST - IP DB_VM
DB_PORT - port MySql (domyślnie 3306)
DB_NAME - nazwa bazy danych MySql
DB_USER - użytkownik MySql
DB_PASS - hasło użytkownika MySql
Uruchom aplikację z APP_USER używając polecenia java -jar
Jeśli wszystko zakończy się sukcesem - zobaczysz aplikację PetClinic na $APP_VM_IP:8080
-
91 PLN Ustawienia DevSecOps CI/CD
DevOpsUstawienia CI/CD za pośrednictwem systemu GitLab. Koszt na godzinę