Posts Tagged JBoss

Czym jest JBoss Operations Network (JON lub Jopr)?

JBoss Operations Network (JON) lub Jopr jest platformą, która dostarcza scentralizowany system pozwalający zarządzać produktami dostarczanymi w JBoss Enterprise Middleware. JON pozwala na następujące rzeczy:

  • Obsługa pełnego cyklu życia aplikacji, źródeł danych oraz usług powiadamiania.
  • Prezentacje wspólnego interfejsu pozwalającego przeglądać rożne komponenty całego środowiska (zarówno od strony sprzętowej jak i programistycznej).
  • Pozwala poprawić efektywność i niezawodność zarządzania i poprzez wpływa na dostępność oraz wydajność systemów produkcyjnych.
  • Pozwala na konfigurowanie i instalację nowych aplikacji w serwerze JBoss przy użyciu pojedynczego narzędzia.

Platforma dostarcza narzędzia do przeprowadzenia inwentaryzacji, administracji, monitoringu, instalacji oraz aktualizacji aplikacji bazujących na serwerze JBoss poprzez scentralizowany system. Pozwala na kontrolę poszczególnych poziomów dostępu umożliwiających przeglądanie, dostęp, zarządzanie systemami oraz dzielnie się informacjami czy też statystykami poprzez różne zespoły.

Związek pomiędzy JON a RHQ Network

Projekt RHQ jest systemem dostarczającym platformę pod budowę systemu zarządzającego wieloma produktami i platformami, z głównymi cechami takimi jak:

  • monitorowanie oraz wizualizacja wskaźników
  • alarmy wywoływane w przypadku błędów czy też innych warunków
  • zdalna konfiguracja zarządzanych zasobów
  • zdalne wykonywane operacji

RHQ został opublikowany głównie w oparciu o licencję GPL, ale część fragmentu jest indywidualnie licencjonowana na licencjach GPL/LGPL. Projekt ten jest podstawą dla budowy JON czy też Jopr.

Różnica pomiędzy JON a Jopr

W jednym zdaniu: JON to specyficzna wersja Jopra, która została odpowiednio przetestowana, oraz na którą są świadczone usługi wsparcia.

Podstawowe moduły

Inwentaryzacja

Moduł ten pozwala na przeprowadzenie automatycznego wykrywania poszczególnych zasobów oraz pozwala na ich szybką i łatwą konfigurację.Gromadzone są m.in. informacje dotyczące momentu instalacji usługi lub aplikacji, wersji oraz są dostępne informacje o historii danego zasobu. Taki model pozwala na śledzenie poszczególnych maszyn wraz z systemami operacyjnymi, źródeł danych, usług przesyłających wiadomości, procesów uruchomionych na maszynie, takich jak JBoss AS, Apache HTTP Server oraz informacji o poszczególnych aplikacjach uruchomionych w ramach serwera aplikacji JBoss.

Administracja

Aktualna konfiguracja każdego serwera jest przechowywana w centralnej bazie danych. Mogą istnieć konfiguracje w niej także zapisane różne przeszłe konfiguracje pozwalające na prezentowanie danych historycznych. Odpowiedni interfejs webowy pozwala na modyfikowanie parametrów poszczególnych usług, jeżeli posługują się one plikami tekstowymi. Dostępne są podstawowe operacje kontroli poszczególnych usług takie jak możliwość ich uruchomienia, zatrzymania i restartu.

Monitorowanie

Monitorowanie wykonania aplikacji odbywa się na wielu poziomach tak, aby umożliwić zebranie dokładnych statystyk oraz ich zachowań. Rozszerzone statystyki są dostępna dla serwera aplikacji JBoss AS oraz różnych komponentów wchodzących w skład produktów z rodziny JBoss Middleware, m.in. Hibernate, Apache Web Server, rożne systemy operacyjne takie jak Windows, Linux czy Solaris. Mogą zostać zdefiniowane odpowiednie alarmy, które umożliwiają pilnowanie konkretnych zdarzeń mających miejsce w systemie.

Aplikacje

Istnieje zarządca łatek na aplikacji, który umożliwia automatyczne ich przeglądanie instalowanie. Historia wszelkich zmian jest także zapamiętywana i możliwa do przeglądania.

Architektura

Platforma JBoss Operations Network składa się z centralnego systemu zarządzającego oraz ze zdalnych agentów, instalowanych na monitorowanych maszynach. Zadaniem agentów jest dostarczanie pewnych oraz szczegółowych informacji o monitorowanych zasobach. Komunikują się oni z centralnymi serwerami synchronizując zbierane informacje. Jest dostępny otwarty system tworzenia plug-inów, dzięki czemu istnieje możliwość dodania monitoringu nawet do własnościowych czy specyficznych aplikacji.Agenci są w miarę potrzeby samodzielni, potrafią działaś także w monecie, gdy główne serwery nie są dostępne.

Źródła

Tags: , , , ,

Instalacja aplikacji na żądanie w serwerze aplikacji JBoss 6

W wersji 6.0.0M2 serwera aplikacji JBoss pojawiła się nowa funkcja: ładowanie aplikacji serwera na żądanie, czyli dopiero wtedy, gdy przyjdzie zapytanie HTTP o adres, który jest obsługiwany przez daną aplikację.

Powód wprowadzenie tej funkcji jest prozaiczny: ma przyspieszyć czas startu serwera aplikacji. W trakcie tworzenia aplikacji często zachodzi potrzeba restartów serwera aplikacji i wtedy każda dodatkowa sekunda, która poświęca się na czekanie aż wszystkie aplikacje zostaną zainstalowane trwa wieczność :).

Aby włączyć tę funkcję, należy wywołać polecenie run.sh z dodatkowym parametrem:

./run.sh -Djboss.as.deployment.ondemand=true

W środowisku produkcyjnym nie jest zalecane włączanie tej opcji, tam należy preferować uruchamianie wszystkich aplikacji od razu podczas startu serwera aplikacji.

Informacje tu przedstawione dotyczą wersji JBossa 6.0.0M2, więc dalekiej od stabilności. W związku z tym mogą się zmienić.

Źródła

Tags:

Optymalizacja parametrów JVM dla JBoss AS

W celu przyspieszenia zarówno startu jak i działania serwera aplikacji JBoss można trochę zmodyfikować działanie JVM dodając parametry włączające dodatkowe optymalizacje.

Dwa podstawowe parametry to oczywiście zarządzanie pamięcią:

  • -Xms1024m
    Ustawienie początkowego rozmiaru sterty dla JVM (zalecana ta sama wartość co przy -Xmx).
  • -Xmx1024m
    Ustawienie maksymalnego rozmiaru sterty dla JVM.
  • -XX:MaxPermSize=256
    Ustawienie rozmiaru dla przestrzeni z definicjami klas, istotne w przypadku wystąpienie wyjątku OutOfMemoryError: PermGen space.
  • -XX:+UseLargePages
    Rezerwacja dużych strona pamięci, większych niż standardowe 4kB. Może wpływać negatywnie na wydajność innych aplikacji. Uboczną właściwością użycia dużych stron pamięci w Linuksie jest brak ich możliwości zapisania w pamięci swap (co niekoniecznie musi oznaczać coś złego). Aby używać tego parametru, wcześniej należy skonfigurować odpowiednio system operacyjny, dokumentacja znajduje się pod tym dokumencie: Java Support for Large Memory Pages.
  • -XX:+AggressiveOpts
    Włączenie dodatkowych optymalizacji JVM, które mają zostać włączone dopiero w przyszłych wersji Javy.
  • -XX:+DoEscapeAnalysis
    Po włączeniu tej opcji JVM będzie starał się sprawdzić, czy dany obiekt występuje tylko i wyłączenie w lokalnym zasięgu działania metody. Jeżeli tak, to będzie próbował alokować go bezpośrednio w na stosie bądź też w rejestrach. Dokładny opis można znaleźć w artykułach:

Przykładowa zawartość pliku run.conf:

1
2
3
4
5
6
if [ "x$JAVA_OPTS" = "x" ]; then
 JAVA_OPTS="-Xms128m -Xmx512m -XX:MaxPermSize=256m -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000"
fi

# optymalizacja
JAVA_OPTS="${JAVA_OPTS} -XX:+UseLargePages -XX:+AggressiveOpts -XX:+DoEscapeAnalysis"

Tags: , ,