Java Developer a w wymaganiach Kubernetes.

Java Developer a w wymaganiach Kubernetes.
JS
JS
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:63
2

Hej, Coraz częściej w wymaganiach na Java Developera widzę wymaganą praktyczną znajomość Kubernetesa. Czy ktoś aplikował na takie oferty pracy? Co robi się w takich pracach gdzie na 4-5 miejscu w wymaganych technologiach jest Kubernetes? Jest to bardzo ciekawa technologia, ale również obszerna co ekosystem Springa. Co taki Java Developer robi w takiej pracy z Kubernetesem? Dzięki za odpowiedź

edytowany 2x, ostatnio: janek_sawicki
99xmarcin
Po prostu aplikujesz jak Ci sie podoba taka oferta i tyle. Nie zwaracam na to uwagi bo wiem że jak trzeba coś zrobić to Google i oficjalna dokumentacja :D
JS
janek_sawicki
i jak pytają na rozmowie z podstaw to co mam powiedzieć?
99xmarcin
Ze w poprzedniej pracy nie używałeś, a nauka czegoś co Ci się na co dzień nie przydaje nie ma sensu bo i tak zapomnisz. Jeszcze kilka lat temu było normalniejsze podejście - że pewnych rzeczy człowiek uczy się w pracy. Poza tym to co piszę się w ogłoszeniu != to jacy kandydaci się pojawiają, więc nawet bez k8s możesz i tak być najlepszym gościem który tam aplikował...
99xmarcin
PS. U mnie w pracy bierzemy do Scali nawet ludzi co nigdy z JVM nie mieli nic wspólnego. Nigdy nie było z nimi problemu. Jak ktoś ogarnia programowanie to nie ważne jaki język. Jak ktoś ogarnia DNS, sieci i proxy to nie będzie miał problemu i z chmurą i z k8s - a ta wiedza nie zmienia się co 3 lata (docker -> k8s -> lambda -> ???)
KamilAdam
  • Rejestracja:ponad 6 lat
  • Ostatnio:2 dni
  • Lokalizacja:Silesia/Marki
  • Postów:5505
8

Podstawy kubernetesa. Umieć sprawdzić logi, napisać mały config, ręcznie zdeployować instancję
Czyli to samo co z Dockerem tylko bardziej enterprise


Mama called me disappointment, Papa called me fat
Każdego eksperta można zastąpić backendowcem który ma się douczyć po godzinach. Tak zostałem ekspertem AI, Neo4j i Nest.js . Przez mianowanie
edytowany 1x, ostatnio: KamilAdam
JS
janek_sawicki
dzięki
KE
  • Rejestracja:około 6 lat
  • Ostatnio:około 2 godziny
  • Postów:661
8

W 2 ostatnich firmach, gdzie w stosie pojawiał się Spring i k8s od deweloperów wymagaliśmy (jako team devops):

  • jak napisać Dockerfile (jeśli nie dało się skopiować z innego projektu)
  • jak ustawić Xmx i że jest coś takiego jak limit/request i nie można załadować 1 giga XML do pamięci #pdk
  • wiedzieć jak działa service discovery, odpytywanie usług po DNS
  • wiedzieć jak skonfigurować healthchecki (choć dziś to sprawa załatwiona przez Spring Actuator)
  • wiedzieć jak skonfigurować aplikację (zczytać zmienne środowiskowe, podmontować configmap itp.)

i tego typu rzeczy na styku Java-infrastruktura. Raczej nic specjalnie więcej.

JS
janek_sawicki
polecasz jakieś materiały z kubernetesa w kontekście Java Dev? Czy samemu próbować robić te punkty co napisałeś?
KE
Jakichś konkretnych nie mam niestety, ale myślę że wystarczy jakiś tutorial z Minikube + spróbować coś na tym odpalić (nie musi być spring, ale warto, bo sporo materiałów o tym na necie).
JS
janek_sawicki
dzięki!
WhiteLightning
Jak nie mozna z innego projektu skopiowac to mozna z sieci. Kurcze, w rzeczywistosci tego sie prawie nigdy nie psize from scratch...
JS
JS
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:63
0

Dzięki Panowie bardzo za odpowiedź! Można zamknąć temat.

edytowany 1x, ostatnio: janek_sawicki
Charles_Ray
  • Rejestracja:prawie 17 lat
  • Ostatnio:około 5 godzin
  • Postów:1873
4

Ja bym powiedział, że to coś więcej niż znajomość narzędzia. Bardziej chodzi o podejście do projektowania systemu tak, aby był skalowalny i wysoko dostępny: https://12factor.net/

Co z tego, że umiem napisać config jak w aplikacji trzymam stan w HashMapie albo używam synchronized? :)


”Engineering is easy. People are hard.” Bill Coughran
edytowany 2x, ostatnio: Charles_Ray
PI
tak czytam https://12factor.net/concurrency i co jest złego w tym, że używam synchronized czy locków?
Charles_Ray
Przede wszystkim wydajność, ale chodziło mi o to, że synchronized działa bardzo inaczej przy wielu instancjach aplikacji :)
Korges
  • Rejestracja:prawie 5 lat
  • Ostatnio:3 minuty
  • Postów:549
0

Co z dockera powinien umieć Java developer?

Charles_Ray
  • Rejestracja:prawie 17 lat
  • Ostatnio:około 5 godzin
  • Postów:1873
0

Co z dockera powinien umieć Java developer?

Umieć do czego? Docker nie ma związku z Javą.


”Engineering is easy. People are hard.” Bill Coughran
Korges
W wymaganiach dla java deva często jest docker. Domyślam się że jako devopsowe narzędzie wszystkiego znać nie muszę
PI
Czyli @Charles_Ray powiedz co (jako java developer) zrobiłeś z dockerem / kubernetesem np przez ostatnie kilka miesięcy
Charles_Ray
  • Rejestracja:prawie 17 lat
  • Ostatnio:około 5 godzin
  • Postów:1873
3

Poczułem się schallengowany w komentarzach, wiec podsyłam link: https://github.com/aws-samples/kubernetes-for-java-developers Jak to ogarniesz ze zrozumieniem, to git IMO.


”Engineering is easy. People are hard.” Bill Coughran
PI
  • Rejestracja:ponad 9 lat
  • Ostatnio:3 miesiące
  • Postów:2787
0
Charles_Ray napisał(a):

Poczułem się schallengowany w komentarzach, wiec podsyłam link: https://github.com/aws-samples/kubernetes-for-java-developers Jak to ogarniesz ze zrozumieniem, to git IMO.

Łe kurczaki... to wszystko co tam jest, to zaprojektowanie praktycznie całej infrastruktury pod mikroserwisy... IMO to można określić jako "dobra" znajomość Kubernetesa.
Ja właśnie się tego Kubernetesa uczę, i umiem np:

  • lokalny obraz dockerowy zdeployować na poda
  • wiem w ogóle co to są te pody, nody itp
  • zmienić coś tam w "Deployment"
  • dodać service
  • ogólnie posługiwać się komendą kubectl
  • wejść w konsolę klastra (exec -it ... sh) i stamtąd odpytać uruchomioną aplikację,
  • wyeksponować / przemapować porty

Czy mogę powiedzieć, że znam podstawy kubernetesa?

edytowany 2x, ostatnio: Pinek
Zobacz pozostałe 2 komentarze
Shalom
Nienawiść do devopsów, tak zostałem wychowany...
KamilAdam
@Pinek: umiem połowę z tego :D
Charles_Ray
Jak umiem tail i ls w bashu to znaczy, że znam Linuksa?
KamilAdam
@Charles_Ray: to klasyczny problem ile procent trzeba znać daną technologię żeby móc powiedzieć że ją się zna. Np czy trzeba umieć recytować całą bibliotekę standardową Javy żeby móc powiedzieć że zna się Javę? Drugi standardowy problem to czy twoje procenty pokryją się z tym co potrzebuje pracodawca/klient? Bo jak znasz 10% technologii X i jest to akurat te 10% które potrzebuje pracodawca/klient to w jego oczach jesteś ekspertem
Charles_Ray
Tak, masz rację. Ja uznaję, że mam w czymś co najmniej podstawowe doświadczenie, jeśli używałem/dotykałem tego komercyjnie/utrzymywałem na produkcji. Nie umiem tego umieścić na skali 1-10. Na pewno rozróżniam rzeczy, w których się orientuję, że istnieją (i tego nie wpisuję w CV), a takie, w których mam jakąkolwiek biegłość.
LitwinWileński
  • Rejestracja:prawie 3 lata
  • Ostatnio:5 dni
  • Postów:734
0

jak sytuacja wygląda obecnie?
czy kubernetes jest nadal potrzebny java developerowi, jeśli chcesz zarabiać ponad medianę? Mam teorię spiskową, że tego k8 wymagali kiedyś więcej dlatego, że brakowało devopsów, ale teraz już się rynek napełnia? Wydaje mi się, że lepiej jakby java dev skupił się na jvm niż devopsowaniu...

markone_dev
  • Rejestracja:około 3 lata
  • Ostatnio:7 dni
  • Postów:809
3
LitwinWileński napisał(a):

jak sytuacja wygląda obecnie?
czy kubernetes jest nadal potrzebny java developerowi, jeśli chcesz zarabiać ponad medianę? Mam teorię spiskową, że tego k8 wymagali kiedyś więcej dlatego, że brakowało devopsów, ale teraz już się rynek napełnia? Wydaje mi się, że lepiej jakby java dev skupił się na jvm niż devopsowaniu...

Zależy co rozumiesz przez znajomość k8s? Czy przygotowanie samemu deploymentu nowego serwisu na klaster liczy się jako znajomość k8s czy nie? Bo takie coś to każdy dev powinien umieć zrobić. Napisałem serwis, tworzę obraz, kontener, manifesty i wrzucam na k8s, ewentualnie robi to za mnie pipeline CI/CD, ale to wciąż nie zwalnia mnie z konieczności przygotowania aplikacji tak, aby możliwe było jej automatyczne wdrożenie na k8s.

Jeśli masz na myśli utrzymanie klastra w ramach operacji IT to zdecydowanie od tego powinien być dedykowany team.


Programujący korpo architekt chmurowy.
Udzielam konsultacji i szkoleń w obszarze szeroko pojętego cloud computingu (Azure, AWS) i architektury systemów IT. Dla firm i prywatnie.
DevOps to proces nie stanowisko.
edytowany 1x, ostatnio: markone_dev
SO
Bo takie coś to każdy dev powinien umieć zrobić. Napisałem serwis, tworzę obraz, kontener, manifesty i wrzucam na k8s, ewentualnie robi to za mnie pipeline CI/CD +1111111. Widziałem na własne oczy inne podejście (czyli dev nie pisze żadnych definicji k8s, które przecież są bezpośrednio związane z jego apką...) i kończy się to tragicznie.
markone_dev
Dlatego według mnie stanowisko DevOps w ogóle nie powinno istnieć. DevOps to proces, podejście, metodyka zwał jak zwał do tworzenia i dostarczania produktów informatycznych. Za postawienie clouda czy tam k8sa są w modelu programowalnej infrastruktury (IaC) powinni być odpowiedzialni inżynierowie chmurowi (Cloud Engineers) od tworzenia i deploymentu aplikacji programiści, a od utrzymania infrastruktury w ramach operacji IT - SREs (Site Reliability Engineers).
W0
  • Rejestracja:ponad 12 lat
  • Ostatnio:około 3 godziny
  • Postów:3531
0
LitwinWileński napisał(a):

jak sytuacja wygląda obecnie?
czy kubernetes jest nadal potrzebny java developerowi, jeśli chcesz zarabiać ponad medianę? Mam teorię spiskową, że tego k8 wymagali kiedyś więcej dlatego, że brakowało devopsów, ale teraz już się rynek napełnia? Wydaje mi się, że lepiej jakby java dev skupił się na jvm niż devopsowaniu...

Nie jest wymagana, ale pomaga. Ogólnie w dzisiejszych czasach klepanie kodu zrobiło się bardzo proste.
To, co odróżnia właśnie dobrych devów od tych słabszych to to, że dobry dev:

  • zna technologie nie-JVMowe (np. Spark, chmury, rozwiązania data lake, bazy danych)
  • ogarnia się w infrastrukturze (tutaj dorzuciłbym tego nieszczęsnego k8s)
  • potrafi pracować w zespole i wie, jak proces powinien działać
  • pisze czytelny kod
WhiteLightning
  • Rejestracja:prawie 14 lat
  • Ostatnio:3 dni
  • Postów:3168
1

hint: obadajcie sobie toola k9s.

piotrpo
  • Rejestracja:ponad 7 lat
  • Ostatnio:3 dni
  • Postów:3277
1
LitwinWileński napisał(a):

czy kubernetes jest nadal potrzebny java developerowi, jeśli chcesz zarabiać ponad medianę?

Czy "backend Java dev" powinien umiec uruchomić aplikację, sprawdzić jej logi, albo zbudować sobie jakieś lokalne środowisko deweloperskie?

SA
To zależy od miejsca, w niektórych dev nie musi nawet umieć zbudować własnej aplikacji.
SA
Ale ogólnie to oczywiście się zgadzam, podejście "napisałem kod, a dalej to nie moja sprawa" to patolgia.
piotrpo
Tja.... kod, który się da się pushnąć do gita, musi być dobry.
ToTomki
  • Rejestracja:około 7 lat
  • Ostatnio:około 2 godziny
  • Postów:1316
0

To chyba zależy czy ktoś tworzy aplikację czy tylko przepisuje dokumentację na kod.

Nie no, żartuję sobie. Sam nie umiem w kubernetesy. Ale za to nie robię nic żeby się ich nauczyć. Mimo że wiem, że by się przydało <3

edytowany 1x, ostatnio: ToTomki
CR
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 2 lata
  • Postów:116
0

W mojej firmie wymagają Kubernetesa ale co najmniej na poziomie średnim, mam na myśli umiejętność postawienia K8S za pomocą Terraform z podziałem na srodowiska. Tylko że w mojej firmie robimy jako Java Developerzy wszystko, w sensie całe CI/CD.

K5
Twoim zdanie to dobrze czy źle? Pytam o podejście w Twojej firmie.
CR
źle ponieważ jest bardzo dużo rzeczy do pilnowania, ustawiania, konfigurowania, dodatkowo mam programowanie w Javie, calle z biznesem. Dla mnie jest to nadmiar obowiązków, powiedziałbym że natłok.
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)