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

  • 110