konto usunięte

Temat: Narzędzia open-source w Java od Netflix (producent House...

Witam,

Ostatnio w firmie przyglądamy się narzędziom od giganta telewizji internetowej - Netflixa (https://github.com/Netflix).

Na początek na tapetę wzięliśmy Archaius (zarządzanie konfiguracją) & Hystrix (zwiększenie niezawodności rozproszonej aplikacji).

Czy ktoś z forumowiczów miał już do czynienia z produkcyjnymi zastosowaniami tych narzędzi?

pzdr,
Maciek

konto usunięte

Temat: Narzędzia open-source w Java od Netflix (producent House...

Tak, na dużą skalę. Jakie masz dokładnie pytania?

konto usunięte

Temat: Narzędzia open-source w Java od Netflix (producent House...

Witaj,

Pytanie było dosć szerokie, żeby rozpocząć dyskusję, bo temat ciekawy. Wydaje się, że w każdym projekcie współcześnie temat zarządzalności, monitorowania i niezawodności jest ważny, bądź b. ważny (tak przynajmniej jest w naszych systemach).

Bliżej konkretów to dla nas w tej chwili najbardziej interesujące są 2 kwestie:

1. jak hystrix działa na produkcji na dużej ilości rozproszonych usług ( czy hystrix dostarcza to co obiecuje, czy są jakieś konkretne problemy?).

W trakcie prac nad jednym z projektów dla firmy telekomunikacyjnej udało nam się zbudować "pół"-hystrixa - zastanawiamy się, czy migracja na rozwiązanie netflix jest bardzo, czy tylko trochę ryzykowna.

Nasze rozwiązanie bazuje na OSGI i niby hystrix jest "osgi compatible". Widzimy zalety migracji do hystrixa, a z drugiej strony zawsze w tyle głowy siedzi "if it ain't broke don't fix it".

2. Druga sprawa, to archaius i zarządzanie konfiguracją. Tutaj najciekawszą kwestią wydaje się być zarządzanie i wersjonowanie konfiguracji z wykorzystaniem jakiegoś systemu kontroli wersji i pobieranie przez archaiusa - pytanie, czy właśnie w ten sposób wykorzystujecie to narzędzie (jeśli to nie jest supertajna informacja)?

pzdr,
Maciek

konto usunięte

Temat: Narzędzia open-source w Java od Netflix (producent House...

Ad Hystrix:

Największą wadą Hystrix'a jest fakt, że o ile nie opakujesz go bardzo mocno swoimi klasami, to będzie "ciekł" Ci do logiki. Np. chyba jedyny wyjątek jaki rzuca HystrixCommand to HystrixRuntimeException, który ma pole 'FailureType failureCause', tak więc łapiąc wyjątek musisz mieć dodatkowo jakieś "if'y" żeby to dobrze obsłużyć.

Pełne wykorzystanie Hystrix'a oznacza również wytłymaczenie biznesowi, że w systemie rozproszonym kwestią jest nie "czy będą problemy", ale "kiedy będą problemy". Ponieważ w przypadku problemów Hystrix pokazuje swoją prawdziwą moc: fallback, cache, circuit-breaking. Jeśli nie zamierzacie wykorzystywać tych mechanizmów, to pewnie nie warto podchodzić do Hystrix'a.

My używamy Hystrix'a głównie na Springu (np. biblioteka Javanica dość mocno ułatwia sprawę), planujemy pobawić się również Spring Cloud'em, który w dużej mierze opiera się o rozwiązania Netflix OSS.

Ad Archaius:

Mamy Archaiusa + Zookeeper'a. Dość standardowe rozwiązanie. Do Zookeeper'a można z kolei załadować dane z repo.

konto usunięte

Temat: Narzędzia open-source w Java od Netflix (producent House...

Dzięki za info.

co do hystrix, to na razie w ramach poc tez korzystamy z narzędzi springowych (spring boot, spring cloud o którym piszesz) i kolejne podejście planujemy tez z osgi (zobaczymy czy chociaż poc sie uda).

z zookeeperem zdarzylo sie juz pracować, ale raczej przy klastrze solr - dzięki za podpowiedź odnośnie wykorzystania w połączeniu archaiusem.

A jak u Was wyglądaj kwestie monitorowania? U nas działają różne domorosle rozwiązania, a ze obszary zarzadzalności to tez monitorowanie to badamy tematy razem. Na razie testowalismy stos ELK ( elastic search et consortes), a teraz w kontekście spinanania wielu rzeczy spring bootem przychylamy sie do zestawu metrics od dropwizardow, influx db do trzymania danych i graphana do prezentacji.

pzdr,
maciekTen post został edytowany przez Autora dnia 08.05.15 o godzinie 11:41

konto usunięte

Temat: Narzędzia open-source w Java od Netflix (producent House...

Monitoring jest obszarem, gdzie mamy bardzo wiele rozwiązań. Do zbierania danych używamy zarówno Zabbix'a jak i Graphite'a. Tego pierwszego raczej na poziomie monitoringu OS (dysk, pamięć, load, sieć itp), a drugiego do monitoringu biznesowego.

Po stronie aplikacji w wielu miejsach używamy Codahale Metrics (teraz to już dropwizard), ale musisz pamiętać o tym, że jeśli czasy requestów, które mierzysz, spadają w okolice pojedynczych milisekund, to powinieneś raczej patrzeć w stronę HDRHistorgram ze względu na to, że sposób pracy JVM (safepoints, GC) wpłynie bardzo mocno na sam pomiar.

Generalnie nasz stack wygląda tak (ale ciągle się zmienia):
Customowe wpięcie Codahale Metrics + Graphite (klaster) + Tessera
Zabbix + Zabbix Agent

A do triggerowania eventów (np w przypadku awarii itp) używamy zarówno rozwiązać publicznie dostępnych (Zabbix, Cabot) jak również napisanych przez nasz zespół monitoringu (a jest ich kilka, które np integrują Cabot'a z Zabbix'em i np PagerDuty).Ten post został edytowany przez Autora dnia 10.05.15 o godzinie 10:02

konto usunięte

Temat: Narzędzia open-source w Java od Netflix (producent House...

U nas do monitorowania, nazwijmy to podstawowego to najczętsze rozwiązania to zabbix i nagios. Odnośnie reszty, o której pisałem, to to stosujemy już poziomie samej aplikacji.

W HDRHistogram z pewnością spojrzymy, bo rzeczywiście mieliśmy problemy z interpretacją logów zrzucanych prostym interceptorem springowym, kiedy pojawiały się bardzo małe wartości (poniżej jednocyfrowych milisekund).

Dzięki wielkie za wartościową dyskusję!

konto usunięte

Temat: Narzędzia open-source w Java od Netflix (producent House...

Jeśli będziesz na Devoxx w Krakowie, to wpadnij na prezentację mojego kolegi - Michała Kosmulskiego, będzie opowiadał właśnie o monitoringu i naszych doświadczeniach :)

konto usunięte

Temat: Narzędzia open-source w Java od Netflix (producent House...

właśnie miałem pytać, czy będziesz może gdzieś opowiadał to temacie :) - jak się gwiazdy i kalendarz dobrze ułozą to postaram się być na devoxx.

Następna dyskusja:

Najlepsze Javowe frameworki...




Wyślij zaproszenie do