Monitoring i skalowanie aplikacji (kto to wykonuje?)

0

Witam,
temat monitoringu aplikacji kojarzy mi się stricte z administracją i podejściem devops. Właśnie dlatego główne pytanie brzmi czy dobrze myślę i osoba właśnie na takim stanowisku jest za to odpowiedzialna? Dodatkowo jak duży udział powinien w tym wszystkim mieć programista (programmer / software developer etc.)?

Wchodząc w szczegóły mówię tu o aplikacji Java z typowym REST API opartej na Spring. Ode mnie, jako programisty, wymagane jest oczywiście wystawienie podstawowych metryk za pośrednictwem Spring Actuator (wykorzystanie wątków, pamięci, requesty HTTP - czasy, statusy itd.) chociażby w formacie Prometheus do łatwiejszego importu, do tego healthchecki do usług i tak dalej. Dalej trafi to wszystko do narzędzia do monitoringu i analizy tych danych czyli np. Zabbix.

I w tym momencie czy po stronie programisty stoi również cała konfiguracja i określenia które z tych metryk są krytyczne do oceny działania aplikacji (zbyt duże wykorzystanie, błędy HTTP i tego typu elementy) i w dalszym etapie skalowania ilości instancji aplikacji? Jakie macie z tym doświadczenia u siebie? Na pewno nie wszędzie wygląda to tak samo, dlatego chciałbym się przekonać gdzie jak to przeważa i czy jedna osoba wykonuje to wszystko :)

2

Zależy w jakiej firmie pracujesz... Jak pracujesz w firmie gdzie programista to one-man-army to nie możesz powiedzieć, że tego nie będziesz robił. W zeszłym roku pracowałem w zespole gdzie programiści ustawiali skalowanie, konfigurację na Kubernetesie i tym podobne rzeczy. Dla mnie było to słabe, ale wynikało z cięcia kosztów przez firmę.

To tak jakbyś miał klinikę operacji plastycznych oraz 3 chirurgów na sali operacyjnej, którzy mieliby robić operację, ale oprócz tego zlecałbyś im także usypianie pacjenta, dbanie o tętno, dbanie o akcje życiowe podczas operacji. Albo by się na to zgodzili, bo w końcu jesteś szefem, albo zatrudniłbyś anestezjologa który wyręczyłby ich w tych czynnościach, przez co mogliby się bardziej skupić na operacji.

Tak samo jest i w IT, albo zatrudniasz DevOpsa który dba o infrastrukturę, albo zlecasz to programistom, ale musisz się liczyć z tym że oni to mogą robić gorzej niż DevOps oraz będą gorzej programować aplikację, czyli gorszy kod, ponieważ będą mieli dodatkowe obowiązki. (analogiczne w przykładzie z tymi chirurgami)

Zawsze masz coś za coś. Od siebie mogę Ci doradzić że wolę pracować w zespołach gdzie jest DevOps oraz z programistów nie robi się chłopców od wszystkiego. Pozwala mi to skupić się na tym co powinienem robić dobrze, czyli pisać kod...

Aczkolwiek domyślam się do czego pijesz, ale niestety u nas jest taka mentalność, trochę Januszowa :P

1

Ja dziubie glownie w Pythonie w malych projektach i ogolnie wszyscy robia wszystko nie ma zadnych podzialow. Pracuje w korporacji glownie appki/serwisy/toole dla klientow wewnetrznych/zewnetrznych.

Ani tu jakichs backendow nie ma wykombinowanych, ani devopsow ani nawet wydumanego QA.
Wszystko jest w skali "mikro" wiec wszyscy konfiguruja pipeliny, stawiaja VMki w cloudzie, pisze terraformy, ansible, dziubia w k8s czy testy w Selenium.
Grafane, Prometheusa, fluentd, tez sie zdarzylo.

Wiadomo ze nie kazdy zna wszystko ale kazdy musi sobie radzic - wybieramy do kazdej takiej "dzialki" ~ 2 SME ('bus factor' te sprawy).

Ja dla przykladu od poczatku roku uderzylem w k8s - zrobilem CKA i CKD przymierzam sie do CKS.
Nie ma dla mnie nic zlego w tym zeby za 1-2 msc przysiasc do czegos extra np. sierpien dlubalem glownie Ansible. Od wrzesnia do teraz backend.

Nie w kazdym projekcie takie podejscie sie sprawdzi - podaje jako przyklad.

6

„You build it, you run it”. https://aws.amazon.com/blogs/enterprise-strategy/enterprise-devops-why-you-should-run-what-you-build/

Mam nadzieje, że czasy silosów, kiedy jeden zespół pisze kod, a inny go wdraża i utrzymuje kiedyś słusznie przeminą. Nikt nie jest w stanie lepiej ogarnąć Twojej apki na produkcji niż Ty sam. Skąd ten biedny admin ma wiedzieć, czy aplikacja zachowuje się tak jak powinna? W jaki sposób ma zrobić hotfiksa jak usługa będzie miała błąd albo czkawkę? Skąd ma wiedzieć, czy retransmisja eventów jest bezpieczna, z którymi zespołami trzeba się skontaktować?

Tak jest szybciej, efektywniej i zdrowiej :)

0

to taki nowy trick korporacji żeby wycisnąć jeszcze więcej z jednego body wylizingowanego z bodylizingowni, dla niepozanki nazwano to devops

kto co robi mocno zależy od konkretnej firmy, dla twojego dobra jestu umieć pisać apkę, devops, testy, projektować ui, pisać user stories i zarządzać projektem

1 użytkowników online, w tym zalogowanych: 0, gości: 1