#537

Kubernetes vs Java

Warsztat odbywa się w formie zdalnej za pośrednictwem platformy/komunikatora online, z wykorzystaniem dźwięku, obrazu z kamery, udostępniania ekranu komputera prowadzącego i uczestników.

🟢  Warsztat weekendowy w godz. 10:00-14:00 (4h) 🟢

Podczas szkolenia napiszemy aplikację Java i zainstalujemy ją na Kubernetes’ie. Aplikacja będzie dostępna w Internecie. Te wszystkie kroki zrobimy uwzględniając Best Practices dla Java, Kubernetes i Infrastructure as Code.

Żarówka

Czego się nauczysz?

Warsztat ma na celu pokazać jak zainstalować aplikację na Kubernetes i mieć ją dostępną w Internet. Uczestnicy również poznają narzędzia i sposób na Infrastructure as Code i efektywne develop'owanie w Java na Kubernetes.

W trakcie spotkania:
- Utworzymy klaster Kubernetes w chmurze.
- Skonfigurujemy Containers Registry
- Napiszemy prostą aplikację Java uzwględniając Kubernetes i Java best practices.
- Zainstalujemy naszą aplikację na Kubernetes i zrobimy ją dostępną w Internet.
- Zainstalujemy dodatkowe aplikacje, którą zrobią proces develop'mentu w Java na Kubernetes szybkim i przyjemnym.
Grupa

Dla kogo jest ten warsztat?

Wydarzenie jest kierowane do Develop'erów i DevOps'ów na każdym poziomie zaawansowania.

Prowadzący

Aleksander Kamczyc:

Aleksander (www.tjupi.com) jest wielkim entuzjastą IT i open-source w szczególności. Od 2007 udoskonala istniejące i tworzy nowe systemy informatyczne nie zapominając o "kontrybucji" do projektów open-source (na przykład micrometer, prestodb itd). Programuje w Java i Go. Jest certyfikowanym administratorem bazy danych Oracle DB. Pełniąc rolę Head Architect buduje cloud-native systemy oparte między innymi na Kubernetes, Istio, Apache Kafka, Elasticsearch, Prometheus.

Program warsztatów

  1. Co to jest Kubernetes i co on daje
    1. Przypomnimy sobie co to jest Kubernetes, jego główne składowe i abstrakcje oraz dlaczego warto go używać – jaki problem rozwiązuje.
  2. Instalacja Kubernetes vs Infrastructure as Code
    1. Zainstalujemy klaster Kubernetes, a właściwie za’requestujemy utworzenie dla nas klastra (as a service) u jednego z dostawców publicznej chmury.
    2. Najlepsze praktyki każą zakodować ten krok, aby na wypadek powtórzenia „operacji”, np. nowe środowisko jest potrzebne albo awarii jednego z obecnych, nowo powstały klaster wstał szybko i okazał się tym samym co mamy teraz.
  3. Stworzenie aplikacji Java, Spring Boot
    1. Napiszemy prostą aplikację webową w Java Spring Boot, która wystawia REST endoint „Hello World!”. Zastosujemy najlepsze praktyki podczas development’u w Java (i nie tylko):
      1. Plik ze zmiennymi konfiguracyjnymi (np. szczegóły połączenia do bazy, URL do serwisu zależnego itd) nie może być kompilowany do jar – aplikacja musi być przygotowana żeby wczytać plik configuracyjny spod ścieżki.
      2. Aplikacja „produkcyjna” musi informować o swoim stanie – czy wszystko co wymagane jest do funkcjonowania jest spełnione czy być może potrzebna jest interwencja. Np. jeśli serwis albo baza danych od którego załeży nasza Hello World apka nie jest dostępny, to i nasza apka nie potrafi funkcjonować. Wykorzystamy do tego Spring Actuator
      3. Aplikacja „produkcyjna” musi mówić jak jest z jej wydajnością, żebyśmy mogli zrozumieć czy jest ruch, jak dużo z tego ruchu kończy się pozytywnie i w jakim czasie. Jeśli ruchu nie ma albo kiedy obserwujemy dużo błędów, to jest to wskazówka, że coś jest nie tak. Wykorzystamy do tego Spring Actuator
  4. Instalacja Aplikacji na K8s
    1. Jest K8s i jest Java apka. Następnym krokiem jest utworzenie container’a z naszej apki, żeby móc je zainstalować na Kubernetes. Przećwiczymy 2 sposoby:
      1. Wykorzystamy narzędzia od Google – jib i jego best practices.
      2. Wykorzystamy buildpacks – podejście Cloud Native.
    2. Wiemy, że aplikacja spodziewa się pliku ze zmiennymi konfiguracyjny – powiedzmy K8s, żeby je tam podrzucił.
    3. Kubernetes potrafi monitorować aplikację, które „mówią” o swoim stanie – healthcheck. Skonfigurujmy te opcję.
    4. Powiedzmy Kubernetes’owi, żeby odblokował dostęp do naszej końcówki w Internet.
  5. Programuj i poruszaj się po Kubernetes efektywnie
    1. Spring Devtools. Dewelopujmy efektywnie.
    2. Skaffold. Pozwólmy, aby zmiany w kodzie automatycznie trafiały na Kubernetes.
    3. Kubectx/Kubens. Przełączajmy się między klastrami i namespace’ami wygodnie.
    4. Lens. Zobaczmy w UI stan klastra i aplikacji zainstalowanych. Spójrzmy w logi.

Uwaga

Liczba miejsc ograniczona! Organizator zastrzega sobie prawo do odwołania wydarzenia w przypadku niezgłoszenia się minimalnej liczby uczestników.
Zakupione certyfikaty zostaną przesłane uczestnikom w formie elektronicznej po warsztacie. Jeśli chcesz otrzymać zakupiony certyfikat w formie papierowej, zgłoś to mailowo na adres kontakt@stacja.it.

Zapisy na wybrany warsztat zostały zakończone.