YouTube: https://www.youtube.com/watch?v=Ev3pssBlVI4&index=6&list=PLnKL6-WWWE_VtIMfNLW3N3RGuCUcQkDMl
JBoss EAP is a heavy-duty Java application server. It's a perfect match for huge banking applications, but also perfect impedance mismatch with DevOps processes. This is the story how we persuaded the Behemoth to work with Chef automation. The goal was to manage multitude of our JBoss clusters and be able to rebuild the infrastructure on-demand.
5. JBoss?
The JBoss Enterprise Application Platform is a
Java EE-based application server runtime
platform used for building, deploying, and hosting
highly-transactional Java applications and services.
6. Chef
Configuration management tool written in Ruby
and Erlang. It uses a pure-Ruby, domain-specific
language for writing system configuration
"recipes".
9. Why did we care?
- already automated lower levels of stack
Paweł Bartusch @ https://youtu.be/U50w_ZoQygA
- needed for full CI/CD pipeline
Waldemar Piszczewiat @ https://youtu.be/9-X8qytNznA
- crucial to have accounting
git blame
21. Reading the JBoss output
"extension" => {
"org.jboss.as.webservices" => undefined, …
NameError: undefined local variable or
method `undefined' for main:Object
22. Reading the JBoss output
"extension" => {
"org.jboss.as.webservices" => undefined, …
NameError: undefined local variable or
method `undefined' for main:Object
sed 's/undefined/{}/g' … success!
32. Handover – number of commits
bph_jboss_srv bph_jboss_ml bph_jboss_app
80 Tomasz Torcz 254 Tomasz Torcz 50 Tomasz Torcz
9 Waldemar Piszczewiat 67 Bartosz Trudnowski 10 Bartosz Trudnowski
4 Krzysztof Kowalczyk 17 Waldemar Piszczewiat 7 Waldemar Piszczewiat
4 Bartosz Trudnowski 4 Bartosz Dempc 6 Krzysztof Kowalczyk
3 Waldemar Buczak 1 Waldemar Buczak
1 Grzegorz Prusik 1 Grzegorz Krysik
33. Data bags – number of commits
dev test prod
218 Waldemar Piszczewiat 273 Waldemar Piszczewiat 40 Bartosz Dempc
53 Tomasz Torcz 194 Bartosz Dempc 17 Paweł Rodziewicz
8 Bartosz Trudnowski 107 Grzegorz Prusik 13 Grzegorz Prusik
5 Technical CICD account 49 Rafał Markowski 6 Michał Szor
3 Waldemar Buczak 43 Grzegorz Krysik 6 Waldemar Piszczewiat
2 Bartosz Dempc 24 Grzegorz Słaby 5 Grzegorz Słaby
… …
34. Reading the Chef output
* execute[Updating SG01 property
spring.profiles.active to
cbpm,sit,mockReport,localStorage] action run
(skipped due to not_if)
35. Managable config
- many similar, but maybe different clusters?
- json-diff
- testing, moving configuration
- copy&paste
- easy to revert