Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Spring-Boot in der Enterprise Praxis

Spring-Boot in der Enterprise Praxis

Bed-Con 2015

Avatar for André von Deetzen

André von Deetzen

September 17, 2015
Tweet

More Decks by André von Deetzen

Other Decks in Technology

Transcript

  1. Rahmenbedinungen • JVM basiert • Oracle als Datenbank • RedHat

    als Betriebssystem • Alle Kundenservices basieren auf SOAP • Zwei Rechenzentren (Architektur) -grundsätze • Interne Kommunikation zwischen Systemen basiert auf REST • Jede Applikation wird als Betriebssystempaket ausgeliefert • 12-Factor-Apps • Build-Prozess als kleinster gemeinsamer Nenner
  2. “Organizations […] design systems […] which are copies of the

    communication structures of these organizations” - M. Conway
  3. Lokale Konfiguration auf der Workstation application.properties JVM Properties (-D) Umgebungsvariablen

    users.properties @PropertySource( value = "classpath:/myapp/users.properties", ignoreResourceNotFound = true ) In .gitignore eingetragen
  4. Actuator • Monitoring and Management (HTTP / JMX) • Remote

    Shell • Metrics • Auditing • Tracing • Process Monitoring 23 { ... "heap.committed": 986624, "heap.init": 262144, "heap.used": 52765, "mem": 986624, "mem.free": 933858, "processors": 8, "threads": 15, "threads.daemon": 11, "uptime": 494836, "instance.uptime": 489782, "datasource.primary.active": 5, "datasource.primary.usage": 0.25 ... } http://spring-boot-app/metrics
  5. Konfigurationsmanagement mit Ansible <Presentation title> | Author: <Name Surname> |

    Creation date: <date> Wir nutzen die gleichen Ansible-Playbooks in unseren Rechenzentren / QS – System als auch für die Entwicklungsumgebung. Datenbankmigration wird mit Flyway von Ansible durchgeführt Staging QS / Abnahme Trainingssystem Wirksystem
  6. Spring-Boot und systemd Alle unsere Dienste werden als Standarddienste beim

    Betriebsystem (CentOS 7 oder Red Hat Enterprise Linux 7) registriert und überwacht. Damit starten unsere Dienste nach einem Reboot erneut wie alle anderen Dienste auf dem System.
  7. Spring-Boot und systemd Alle unsere Dienste werden als Standarddienste beim

    Betriebsystem (CentOS 7 oder Red Hat Enterprise Linux 7) registriert und überwacht. Damit starten unsere Dienste nach einem Reboot erneut wie alle anderen Dienste auf dem System. [Unit] Description=My Application [Service] EnvironmentFile=/etc/sysconfig/myapplication ExecStart=/usr/bin/java -jar /opt/myapp/app.jar User=myappuser WorkingDirectory=/opt/myapp [Install] RequiredBy=default.target