Sada otázek, které se často objevují při pohovorech na pozice spojené s IBM WebSphere Application Server, od juniorních až po seniorské úrovně.
Často se na mě obracíte s žádostí o sestavení seznamu otázek pro pohovory zaměřené na IBM WebSphere Application Server. Proto se tomuto tématu věnuji.
WebSphere je aplikační server, tedy middleware produkt od společnosti IBM, která je lídrem na trhu s middlewarem.
Je důležité si uvědomit, že WebSphere je celá sada produktů. Tento článek se zaměřuje pouze na WebSphere Application Server.
Pro ty, které zajímá, jaké další produkty do sady WebSphere spadají, uvádím krátký seznam:
- WebSphere Portal
- WebSphere DataPower
- WebSphere eXtreme Scale
- WebSphere Message Broker
- WebSphere MQ
- WebSphere Real Time
- WebSphere Remote Server
- WebSphere Virtual Enterprise
- WebSphere Community Edition
- A další…
Jste připraveni projít si otázky, které se mohou objevit na pohovoru?
1. Co znamená termín Ripplestart?
Ripplestart je specifický způsob restartování clusteru WAS. Spočívá v postupném zastavování a opětovném spouštění jednotlivých JVM v clusteru. Cílem je zajistit, aby byl v daný moment mimo provoz pouze jeden JVM, čímž se předejde výpadku aplikací.
Příklad: Pokud máte cluster s 5 JVM, při ripplestartu se nejprve zastaví JVM1 a ihned se znovu spustí. Teprve poté se přistoupí k zastavení dalšího JVM v pořadí.
2. Jak byste reagovali, kdyby JVM na serveru využívalo 100 % CPU a paměti?
V první řadě je nutné identifikovat, které JVM vykazuje takto vysoké zatížení. Následně se získá výpis vláken tohoto JVM pro podrobnější analýzu. Pro okamžité snížení zátěže CPU a paměti je doporučený restart daného JVM.
3. Co je to synchronizace uzlů (Node synchronization)?
IBM WAS uchovává konfiguraci v centrálním úložišti, které se nazývá „Master Repository“. Každý uzel (Node) má k dispozici i lokální úložiště.
Jakékoli změny provedené na uzlu prostřednictvím Deployment Manageru (DMGR) vyžadují synchronizaci. Díky tomu se konfigurace přenese na příslušný server uzlu.
Synchronizace probíhá jednosměrně, tedy z centrálního do lokálního úložiště.
4. Může aplikace fungovat bez problémů, pokud není DMGR v provozu?
Ano, výpadek DMGR nijak neovlivní již běžící aplikace. Ovšem provádění jakýchkoli změn nebo nasazení aplikací přes DMGR v takové situaci nebude možné.
5. Jakými způsoby je možné nasadit aplikaci do WebSphere?
Existují tři hlavní metody nasazení aplikace:
- Hot deployment – spočívá v pouhém zkopírování souboru s aplikací do určeného adresáře. Tato metoda je vhodná spíše pro neprodukční prostředí a pro produkci se nedoporučuje.
- Prostřednictvím DMGR – Nasazení lze provést skrze administraci DMGR v sekci Aplikace >> Nová aplikace.
- Skripty – Využití skriptů wsadmin nebo úloh Ant pro automatizaci procesu nasazení.
6. Proč se JVM automaticky spouští, i když je ručně zastavím/ukončím?
Mohou to být dvě hlavní příčiny:
Automatický restart je pravděpodobně aktivován pro dané JVM. Toto nastavení je standardní a lze ho zkontrolovat v sekci JVM >> Zásady monitorování.
Druhou možností je, že existuje skript (například v cronu), který pravidelně kontroluje proces JVM a v případě, že není spuštěn, ho automaticky restartuje.
7. Jaké typy souborů lze nasazovat do WebSphere?
Pro nasazení do WebSphere se obvykle používají soubory s příponou WAR, EAR, JAR nebo SAR. Nasazení lze provést přes konzoli DMGR nebo pomocí skriptů.
8. Co je to virtuální hostitel?
Virtuální hostitel umožňuje obsluhovat více URL adres (definovaných pomocí IP adresy nebo FQDN) v rámci jedné aplikace. Konfiguraci se provádí v administrátorské konzoli WAS.
Aby byla aplikace dostupná na specifické URL adrese, je nutné tuto adresu definovat ve virtuálním hostiteli a následně ji přiřadit k dané aplikaci.
9. Jak byste řešili problémy s pomalou aplikací, na které si stěžují uživatelé?
Pomalost aplikace může mít různé příčiny. Důležité je zjistit, zda problém souvisí přímo s WebSphere, nebo s jinými komponentami. Pro izolaci problému je vhodné provést následující kroky:
- Zda se pomalost projevuje u všech uživatelů, nebo jen u některých?
- Zda je pomalá celá aplikace, nebo jen některé její funkce?
- Zkusit přímý přístup k URL JVM (bez webového serveru).
Pokud se pomalost projevuje na úrovni JVM, je nutné zanalyzovat výpis vláken (thread dump) a prozkoumat logy. Je také dobré ověřit, zda se pomalost neobjevila až po nějaké nedávné změně či incidentu.
10. Jakým způsobem lze zálohovat konfiguraci WAS bez nutnosti zastavení DMGR?
Je potřeba se přesunout do složky bin, která se nachází v profilu DMGR.
Pro spuštění zálohy je potřeba použít příkaz ./backupConfig.sh -nostop
11. Jaké jsou výchozí porty WAS?
Standardní port pro HTTP je 9080 a pro HTTPS 9443. Další podrobnosti naleznete v dokumentaci k výchozím portům.
12. Jaké existují edice WebSphere?
- WAS – Network Deployment
- WAS – Developers
- WAS – z/OS
- WAS – Hypervisor
- WAS – Express
- WAS – Base
- WAS – Liberty core
13. Jakým způsobem se generuje a distribuuje plugin?
- Přihlašte se do administrátorské konzole WAS.
- Přejděte do sekce Servery >> Webové servery.
- Vyberte požadovaný server a použijte tlačítko „Generovat“ a poté „Propagovat“.
14. Jaké jsou běžné problémy, se kterými jste se setkal/a?
Při odpovídání na tuto otázku buďte upřímní ohledně svých zkušeností. Můžete zmínit následující:
- Není definován virtuální hostitel.
- Protokoly se neposouvají.
- Interní chyba serveru.
- Výjimka OutOfMemory.
- Pomalost.
- JVM se nespouští.
- Vysoké využití CPU, paměti nebo disku.
15. Jak zjistím nainstalovanou verzi WAS?
- Přejděte do složky bin, která se nachází v profilu.
- Spusťte skript
./versionInfo.sh
16. Jak zjistím, zda je JVM aktivní?
Existuje několik způsobů, jak ověřit, zda je JVM v provozu:
- Pokud máte k dispozici monitorovací nástroj, ověřte pomocí něj, zda JVM hlásí stav v pořádku.
- Přihlaste se k serveru a použijte příkaz
ps -ef | grep jvmname
. - Ověřte, zda máte přístup k URL daného JVM.
- Zkuste se připojit přes telnet na URL a port JVM.
- Zkontrolujte, zda port JVM naslouchá na serveru.
- Použijte příkaz
serverStatus.sh –all
pro zobrazení běžících procesů.
Použijte metodu, která je pro vás nejjednodušší.
17. Jaké logovací soubory generuje WebSphere?
- SystemOut.log
- SystemError.log
- native_stdout.log
- native_stderr.log
18. Jak se generuje výpis vláken (thread dump)?
Existují tři způsoby generování výpisu vláken:
- Přes konzoli DMGR: Přejděte do sekce Odstraňování problémů, vyberte JVM a klikněte na „Jádro Java“.
- Odešlete signál
kill -3 PID_JVM
. - Použijte
wsadmin.sh
, podrobnosti viz dokumentace.
19. Jaký je rozdíl mezi vertikálním a horizontálním clusterem?
Vertikální cluster má své členy (JVM) na stejném uzlu, zatímco horizontální cluster je rozložen mezi více uzlů a serverů v rámci jedné buňky.
20. Co je Garbage collection?
Garbage collection je automatizovaný proces správy paměti, který uvolňuje objekty, které již nejsou programem používány.
21. Jak se deaktivuje zabezpečení ve WebSphere?
Zabezpečení se deaktivuje spuštěním příkazu securityoff
prostřednictvím wsadmin.sh
. Po deaktivaci je nutné restartovat DMGR.
22. Jak aktivuji podrobné logování garbage collection (Verbose GC)?
Podrobné logování garbage collection není ve výchozím nastavení aktivováno. Pro aktivaci je třeba provést následující:
- Přejděte do sekce Servery >> Typ serveru >> WebSphere Application Server.
- Vyberte definici JVM >> Proces pod „Java a správa procesů“.
- V části „Další vlastnosti“ klikněte na „Virtuální stroj Java“ a zaškrtněte „Podrobný sběr odpadu“.
23. Jak zajistím, aby se WebSphere automaticky spouštěl po restartu serveru?
WebSphere standardně generuje spouštěcí skript v adresáři /etc/init.d
, který zajišťuje automatické spuštění po restartu.
Pokud z nějakého důvodu skript neexistuje, je možné ho vytvořit, vložit do /etc/init.d
a povolit ho pomocí následujících příkazů:
chkconfig --add WebSphere #nazev souboru skriptu chkconfig WebSphere on
Více informací naleznete v podrobném návodu pro automatické spouštění služeb po startu systému.
24. Jak zvětším velikost haldy JVM?
- Přihlaste se do administrátorské konzole.
- Přejděte do sekce Servery >> Typy serverů >> Aplikační server WebSphere.
- Vyberte virtuální stroj JVM >> Definice procesu >> Java.
Zde můžete upravit počáteční a maximální velikost haldy.
25. Lze synchronizovat uzel, pokud nodeagent není v provozu?
Ne, pro správnou synchronizaci musí být nodeagent plně funkční.
26. Jaké jsou příkazy pro zastavení a spuštění DMGR, Nodeagent a JVM?
Zastavení:
- JVM –
stopServer.sh JVMNAME
- Nodeagent –
stopNode.sh
- DMGR –
stopManager.sh
Spuštění:
- JVM –
startServer.sh JVMNAME
- Nodeagent –
startNode.sh
- DMGR –
startManager.sh
27. Co je nového ve WAS 8.5.5?
V kostce:
- Podpora Java SE 7
- HPEL protokolování
- Vestavěná správa zdraví (Health management)
- Liberty Profile
- Inteligentní směrování (Intelligent routing)
- Dynamické shlukování (Dynamic clustering)
- JDBC 4.1 clustering
- Podpora Web 2.0
Více informací je dostupných v dokumentaci.
28. Co znamená federace uzlů (Node federation)?
Federace uzlu ve WebSphere znamená přidání uzlu do buňky (Cell). Provede se příkazem addNode.sh
. Tento proces může trvat i několik minut v závislosti na velikosti uzlu.
29. Co je FFDC?
FFDC (First failure data capture) je mechanismus pro zachytávání dat o chybách během běhu WebSphere. Tyto informace jsou velmi užitečné pro analýzu problému. IBM podpora se na ně často dotazuje při řešení problémů.
30. Umíte dekódovat WebSphere XOR keystore?
Ano, je to možné pomocí online nástroje – http://strelitzia.net/wasXORdecoder/wasXORdecoder.html
31. Jaký skriptovací jazyk je výchozí ve WebSphere? JACL nebo Jython?
JACL je výchozí skriptovací jazyk ve WebSphere.
32. Jak se aplikuje FixPack na WebSphere 8.5.x?
Pro aplikaci oprav se používá IBM Installation Manager (IM). Podrobný postup je uveden v dokumentaci k aplikaci opravných balíčků.
33. Jaká prostředí podporujete?
Buďte upřímní a vysvětlete, která prostředí spravujete. Mezi běžná prostředí patří například:
- Vývoj (Development)
- CIT (Continuous Integration Testing)
- SIT (System Integration Testing)
- UAT (User Acceptance Testing)
- DEMO
- Předprodukční (Pre-production)
- Produkční (Production)
- Staging
- QA (Quality Assurance)
34. Kde je hostován webový server?
Popište vaši podporovanou architekturu aplikace. V typickém produkčním prostředí pro webové aplikace jsou webové servery umístěny v DMZ (demilitarizované zóně) a aplikační servery jsou v interní síti.
Mezi webovými servery a aplikačními servery je nutné povolit potřebné porty na firewallu.
35. Co je to session affinity?
Session affinity, neboli trvalá relace, umožňuje svázání požadavku s konkrétním JVM. To znamená, že opakovaný požadavek je vždy směrován na stejný JVM.
36. Je možné nasadit více aplikací na jeden JVM?
Ano, na jednom JVM je možné nasadit více aplikací za podmínky, že každá aplikace má unikátní kontextový kořen (context root).
37. Jakou databázi používáte s WebSphere?
Uveďte, jakou databázi používáte. Většina organizací používá Oracle, ale WebSphere podporuje i databáze jako:
- DB2
- Oracle Database
- Microsoft SQL Server
- Sybase
38. Jak se webový server připojuje k WAS?
Webový server se k WAS připojuje dvěma způsoby:
- Pomocí pluginu – toto je doporučený způsob instalace pluginu WAS na webový server.
- Pomocí ProxyPass – pokud používáte Apache a nechcete používat plugin, můžete se připojit k WAS JVM pomocí direktivy ProxyPass.
39. Je webový server nutný před WAS?
Pro zajištění vyšší bezpečnosti, lepšího výkonu a snazší údržby se doporučuje umístit webový server před WAS.
40. Co je to buňka (Cell)?
Buňka (Cell) je logická skupina uzlů (nodes), která může obsahovat jeden nebo více uzlů, clustery a všechny jsou spravovány z jedné administrativní konzole.
41. Jaký je výchozí timeout relace pro administrátorskou konzoli?
30 minut.
42. Co je FixPack?
FixPack je sada oprav, které poskytuje IBM. Může zahrnovat opravy chyb, bezpečnostní záplaty a vylepšení výkonu.
43. Jaké typy registrů nebo úložišť jsou podporovány ve WebSphere?
- Federované úložiště (Federated Repository)
- Lokální operační systém (Local Operating System)
- Samostatný registr LDAP (Standalone LDAP Registry)
- Samostatný vlastní registr (Standalone Custom Registry)
44. Co jsou sdílené knihovny?
Pro omezení duplicity knihovních souborů se doporučuje využívat sdílené knihovny. Jednu sdílenou knihovnu může používat více aplikací v rámci buňky.
45. Co je to kontextový kořen (context root)?
Kontextový kořen pro každou aplikaci by měl být unikátní v rámci buňky. Je definován jako deskriptor nasazení a slouží k přístupu k aplikaci.
Například: Pokud má aplikace A kontextový kořen „obchod“, bude aplikace dostupná na adrese http://server:port/obchod
46. Jaký je název konfiguračního souboru pluginu WAS?
Konfigurační soubor pluginu WebSphere se jmenuje plugin-cfg.xml
.
47. Jak se mění velikost fondu vláken WebContainer?
Velikost fondu vláken WebContainer se mění v sekci JVM >> Fondy vláken >> WebContainer.
48. Je možné změnit kontextový kořen již nasazené aplikace?
Ano, je to možné. V administrátorské konzoli vyberte aplikaci a v sekci „Kontextový kořen pro webové moduly“ proveďte změnu. Po změně je nutné JVM restartovat.
49. Jakým skriptem změním Java SDK používané profilem?
Skript managesdk.sh
, který se nachází ve složce bin
, slouží pro změnu SDK.
50. Co je PMT?
PMT (Profile Management Tool) je grafické rozhraní pro vytváření a správu profilů WebSphere.
Doufám, že vám tyto otázky pomohou při hledání práce správce WebSphere. Pokud potřebujete pomoc s přípravou životopisu a pohovoru, podívejte se na tento tutoriál.