K8S
(and dotnet?)
Ta sesja zawiera lokowanie produktu (i nie jest to tylko Azure)
Me, myself & I
- Tata bliźniaków, mąź, szef stada dla psa i kota(?)
- Head architect w FinAi
- CEO Dotnetomaniaka
- VP w devWarsztatach
- Microsoft MVP
Quiz
Zasady:
- wszyscy wstają (albo podnoszą obie ręce do góry i je trzymają)
- jeżeli odpowiedz oznaczona jest jako "usiądź" - siadasz albo opuszczasz ręce
- Jeżeli usiadłeś/aś to siedzisz do końca
Przykład: Czy mnie słyszysz?
- Nie -> usiądź
- Tak -> nic nie rób
#1 - Czy instalowałeś kiedyś swoje oprogramowanie?
- Nie -> usiądź
- Tak -> nic nie rób
#2 - Czy po instalacji twój program kiedyś się zawiesił?
- Nie -> usiądź
- Tak -> nic nie rób
#3 - Czy kiedykolwiek instalacja na produkcji wymagała rzeźbienia?
- Nie -> usiądź
- Tak -> nic nie rób
#4 - Czy wchodziłeś kiedyś na środowisko produkcjne?
- Nie -> usiądź
- Tak -> nic nie rób
#5 - Czy Twój software nie działał kiedyś przez problemy z konfiguracją?
- Nie -> usiądź
- Tak -> nic nie rób
#6 - Czy wdrożenie na produkcję == stres?
- Nie -> usiądź
- Tak -> nic nie rób
#7 - Polecisz swój sposób deploymentu przyjacielowi?
- Nie -> usiądź
- Tak -> nic nie rób
#8 - Czy ktoś jeszcze stoi?
- Tak -> usiądź
- Nie -> zazdroszczę Wam
dotnet <3 linux
dotnet VS. linux
- jest już od dawna - Mono sięga aż 2001 roku, a sensowna wersja jest od 2008
- dotnet core jest już w wersji 2 i pół, a nawet prawie 3
- mnogość obrazów docker to zaleta ale i problem
Czy przesiadka jest łatwa? Hmm ...
dotnet na Linux - przesiadka
Trzeba pamiętać o:
- HttpClient (powyżej 2.1 już nie)
- Pamięci + GC + limitach (podobno od 3.0 będzie lepiej, ale od 2.1.5 już miało być)
- Transformacjach czasu (kultury Windows nie istnieją na Linux)
- Zapomnieć o WCF (no chyba że to bardzo prosty klient np: większość WCF-Security nie ma)
- Pytanie co np: z "HIS"
- ...
No to co weekend i gotowe?
komunikacja to nie wszystko
Czyli co daje K8S w sprawie komunikacji:
- nic czyli zostaje httpClient + gRPC (znów dotnet 3.0)
A co z:
- service dicovery?
- zarządzaniem konfiguracją?
- HA? (a które masz na myśli?)
- monitorowaniem?
- wieloma wersjami aplikacji?
Defnicje
Aplikacja
- Czym jest aplikacja?
- Co zawiera?
- Czego potrzebuje?
Wdrożenie (Deployment)
- Czym jest "wdrożenie"?
- Dlaczego w wielu firmach jest to cieżka sprawa
- Czas + presja => błędy błędy błędy
- System update => "kill -9"
Docker
- "Silver bullet"
- Windows vs. Linux
- Czy rozwiązuje jakieś problemy?
micro/nano/mega-service
- Czym różni się serwis od aplikacji?
- Czego potrzebuje?
- Czym jest serwis
Orkiestracja (orchestration platform)
Czy jest odpowiedzialana za
- skalowanie?
- monitorowanie?
- wdrożenia (deploymenty?
- konfigurację?
Kubernetes
Z "greki" - oznacza sternika lub pilota.
- Nie ogranicza wspieranych aplikacji
- Nie odpowiada za kod źródłowy ani za "build"
- Nie daje usług na poziomie aplikacji
- Nie narzuca logowania, monitorowania czy alertów
- Nie daje narzędzia do konfigracji ani języka do niej
- Nie odpowiada ani nie daje żadnenego sposobu na zarządanie: konfiguracją maszyn, maintence, system updates czy "samo-leczenia"
K8S vs. życie
- kiedy go nie używac?
- kto może go używac?
- kto go używa?
Main blocks
Jedno API by wszystkim rządzic
"Core" K8S to REST API
API jest konsumowane przez:
- UI - "click&go"
- kubectl (CLI) - imperatywny sposób
- yaml/json - deklaratywny sposób
Bugs, bugs, bugs
- Dokumentacja nie jest zła
- Jak znajdziesz bład to możesz poprawic
- Dokumentacja jest open-source i tłumaczona na polski(?)
- https://aka.ms/ms-docs
DEMO (prawie koniec slajdów)
DEMO
- dobijemy się do K8S
- zainstalujemy aplikację
- zmienimy jej wersje
- zeskalujemy
- skasujemy aplikację
- usuniemy fizyczną VM
Kurs K8S dla developerów
- 2 dni pełne praktyki
- 2 x Microsoft MVP
- chmura + on-prem
Zapisy
https://kurskubernetes.pl
deck
By Piotr Stapp
deck
- 119