REST-Services mit Dropwizard ruck-zuck erstellt, dokumentiert und getestet



Ähnliche Dokumente
Produktionsfähige Applikationen

OWASP Stammtisch München Sep 2014 XSS und andere Sicherheitslücken aus der Perspektive des Programmcodes

Continuous Database Integration mit Flyway

Continuous Delivery. für Java Anwendungen. Axel Fontaine Software Development Expert

Internet Explorer Version 6

Java EE Projektseminar

Comparing Software Factories and Software Product Lines

Planung für Organisation und Technik

Release Automation für Siebel

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Mapbender3 Workshop. Astrid Emde AGIT 2015 Salzburg

BIF/SWE - Übungsbeispiel

Copyright 2014 Delta Software Technology GmbH. All Rights reserved.

ATHOS Benutzertreffen

Design mit CASE-Tools

OWB 10.2 Experts im Einsatz: Automatisierung von Designschritten bei der Bayer Healthcare AG. Referent: Lutz Bauer, Senior Systemberater, MT AG

DevOps bei den ID Build-Automatisierung statt Silo-Betrieb

Die 1ste und einzige Software. die basierend auf einem Domain Model die Persistence Layer automatisch generiert

PHP & Windows. Jan Burkl System Engineer, Zend Technologies. All rights reserved. Zend Technologies, Inc.

Ora Education GmbH. Lehrgang: Oracle Application Server 10g R3: Administration

Erste Erfahrungen mit NSASJ anhand der OmnivoBase Portierung. September 2013

HANDBUCH LSM GRUNDLAGEN LSM

Architecture Blueprints

Tipps & Tricks für das Testen von Microservices

Make-loses Java für mehr Produktivität: Das z 2 -Environment. Henning Blohm

Automatisiertes Testen von Java EE-Applikationen mit Arquillian

Gesunde Dokumentation mit Asciidoctor

Eine technische Plattform für Smart-Client-Systeme. Alexander Ziegler

AGILE APPLICATION LIFECYCLE MANAGEMENT IM ATLASSIAN ECOSYSTEM

Systemvoraussetzungen

Graphen in Apex von Thomas Hernando.

Zend PHP Cloud Application Platform

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, Java Forum Stuttgart 2007

Kontinuierliche Architekturanalyse. in 3D

Informationswirtschaft II Rational Unified Process (RUP)

Informationswirtschaft II

Abschlussarbeiten für StudentInnen

Christoph Behounek, eggs unimedia

Das Interceptor Muster

Nico Orschel AIT GmbH & Co KG Marc Müller 4tecture GmbH. 95 Prozent brauchen es, 5 Prozent machen es: Load Testing mit VS leicht gemacht

White Paper. Konfiguration und Verwendung des Auditlogs Winter Release

Oliver Paulus, 7. Februar Spring Framework Einführung. Oliver Paulus, Was ist Spring?

Neues bei den Nagios Business Process AddOns

Spring Dynamic Modules for OSGi Service Platforms

ARTS Server 3.5. Produktbeschreibung. Uptime Services AG

Ablösung von Control-M durch JobScheduler

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Was versteht man unter Softwaredokumentation?

Systemvoraussetzungen

quickterm Systemvoraussetzungen Version: 1.0

Neue Funktionen in Innovator 11 R5

Perceptive Document Composition

E-Business Architekturen

Weblogic Server: Administration für Umsteiger

Effizenzsteigerung bei Villeroy & Boch durch den Einsatz von Magento und Zend

Java Server Faces. Andy Bosch. Das Standard-Framework zum Aufbau webbasierter Anwendungen. An imprint of Pearson Education

Entwicklung einer Methode zur Bewertung der Transformierbarkeit von On-Premise Anwendungssystemen in Software as a Service Lösungen

Dokumentation zu IBM Lotus Mashups

Use AMW to deploy to OpenShift

Überblick Produkte. ORACLE AS 10g R3 JAVA Programming. (5 Tage)


HERZLICH WILLKOMMEN SHAREPOINT DEEP DIVE FOR ADMINS IOZ AG 2

Echolot Qualitätssicherung mit Sonar

Mapbender3 Workshop. Christian Wygoda. FOSSGIS Dessau 2012

INSTALLATIONSANLEITUNG der Version 2.1 (Jänner 2014)

Faclets. Eine alternative View Technologie um JSF Applikationen OHNE JSP zu entwickeln Wird unter java.net gehostet Open Source, CDDL Lizenz

Oracle APEX Installer

SINT Rest App Documentation

Xpert.IVY das GUI ist entscheidend!

Http Viewer. Integration ereview in FileNet P8/SAP via ACSAP

APEX und Workflows: Spaghetticode oder Integration. Sven Böttcher. Consultant, Apps Associates GmbH

Virtual Unified Environments Infrastructure Service Installation und Lifecycle im Oracle Produktumfeld

ONET: FT-NIR-Netzwerke mit zentraler Administration & Datenspeicherung. ONET Server

Sind Cloud Apps der nächste Hype?

MSSQL Server Fragen GridVis

Database Change Management für Continuous Delivery. Diana Lander und Andreas Falk NovaTec Consulting GmbH

Kurzfassung der Studienarbeit

Web- Applikationen. in Java-Web

Vergleich von ERPConnect Services (ECS) gegenüber Duet Enterprise for Microsoft SharePoint and SAP

Remote Eclipse RCP Management

Softwareentwicklungsprozess im Praktikum. 23. April 2015

Consultant & Geschäftsführer, enpit consulting OHG ugb@enpit.de

Moderne Datenbankentwicklung mit Hilfe von SQL Server Data Tools

Frankfurt,

Fujitsu BeanConnect TM V3.0 Software 0 FUJITSU LIMITED 2013

JPC Visualisierung in Java

TUSReport Installationsanleitung

White Paper. Embedded Treiberframework. Einführung

Requirements Management mit RequisitePro. Rational in der IBM Software Group. Der Rational Unified Process als Basis für die Projektarbeit

Online Banking System

Systemanalyse I Software-Entwicklung. Die Phase Design.? Prof. Dr. Susann Kowalski

Value Delivery and Customer Feedback

Hivemind Ein leichtgewichteter Container

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein:

MO 27. Aug. 2007, 17:00 UHR JAVA FRAMEWORKS TIPPS VON PROFI-GÄRTNERN GEGEN WILDWUCHS

Von ODBC zu OLE DB. Neue Möglichkeiten der Datenintegration. Harald Gladytz, Team Vertrieb ESRI Niederlassung Leipzig

ORACLE Business Components for Java (BC4J) Marco Grawunder

Redmine, das Projekt Management Werkzeug

LOAD TESTING 95% BRAUCHEN ES, 5 % MACHEN ES: LOAD TESTING MIT VS LEICHTGEMACHT NICO ORSCHEL MVP VS ALM, CONSULTANT

Transkript:

.consulting.solutions.partnership REST-Services mit Dropwizard ruck-zuck erstellt, dokumentiert und getestet Alexander Schwartz, Principal IT Consultant Berlin Expert Days 2015

REST-Services ruck-zuck fertig mit Dropwizard 1 Application Server Evolution 5 2 Dropwizard 10 3 Beispielanwendung 14 4 Vorteile Drowizard 19 Alexander Schwartz / Microservices mit Dropwizard / Berlin Expert Days 2015 / msg systems 17.09.2015 2

REST-Services ruck-zuck fertig mit Dropwizard 1 Application Server Evolution 5 2 Dropwizard 10 3 Beispielanwendung 14 4 Vorteile Drowizard 19 Alexander Schwartz / Microservices mit Dropwizard / Berlin Expert Days 2015 / msg systems 17.09.2015 5

Application Server Evolution Traditionelle JEE Anwendungen brauchen einen Container Browser Container WAR/EAR Database Alexander Schwartz / Microservices mit Dropwizard / Berlin Expert Days 2015 / msg systems 17.09.2015 6

Application Server Evolution Best Practices für Application Server #1: Eine Anwendung pro Container Vorteile: Anwendungsspezifische Konfiguration für Datenbank, Treiber, SSL, Thread Pools, Neustart des Containers betrifft nur eine Anwendung Redeployment der Anwendung mit Neustart möglich #2: Ein Container pro Anwendung Vorteile: Konfiguration kann beim Deployment der Anwendung angepasst werden Anwendung läuft genau auf der getesteten Container-Version Anwendung bekommt genau die gewünschte Container-Version und JEE-Version Alexander Schwartz / Microservices mit Dropwizard / Berlin Expert Days 2015 / msg systems 17.09.2015 7

Application Server Evolution Wechselseitige Abhängigkeit zwischen Anwendung und Container Folgen: Nicht genutzt Features in traditionellen Containern Unnötig komplizierte Prozesse für Continuous Integration / Continuous Delivery Is JEE Dead? (Brian O Neill 03/2008) JEE is dead (Brian O Neill 10/2012) Applikationsserver sind tod (Eberhardt Wolff 05/2014) Alexander Schwartz / Microservices mit Dropwizard / Berlin Expert Days 2015 / msg systems 17.09.2015 8

Application Server Evolution Application Server Lösung: Kombiniere Anwendung mit Container Dropwizard Spring Boot Effekt: Alles in einem JAR: einfache Installation und Staging Schneller Start: angenehme Entwicklung Vert.x # migrate database java -jar application.jar db migrate config.yml # start application java -jar application.jar server config.yml Alexander Schwartz / Microservices mit Dropwizard / Berlin Expert Days 2015 / msg systems 17.09.2015 9

REST-Services ruck-zuck fertig mit Dropwizard 1 Application Server Evolution 5 2 Dropwizard 10 3 Beispielanwendung 14 4 Vorteile Drowizard 19 Alexander Schwartz / Microservices mit Dropwizard / Berlin Expert Days 2015 / msg systems 17.09.2015 10

Dropwizard Entstehung von Dropwizard Yammer migrierte von einer monolithischen Rails-Anwendung zu modularen Dropwizard- Microservices. Version Datum Ereignis 0.1 12/2011 Initiales Release 06/2012 Microsoft kauft Yammer 0.7 04/2014 Forms, Java 7, Jetty 9 0.8 03/2015 JAX RS 2.0, Jersey 2.x Alexander Schwartz / Microservices mit Dropwizard / Berlin Expert Days 2015 / msg systems 17.09.2015 11

Dropwizard Dropwizard Komponenten Jetty für HTTP Jersey für REST Jackson für JSON Metrics für Monitoring Freunde : Hibernate Validator, JDBI, Hibernate, Liquibase, Freemarker, Alexander Schwartz / Microservices mit Dropwizard / Berlin Expert Days 2015 / msg systems 17.09.2015 12

Dropwizard Dropwizard Komponenten Browser Dropwizard + Anwendung YAML Konfigurationsdatei Datenbank Alexander Schwartz / Microservices mit Dropwizard / Berlin Expert Days 2015 / msg systems 17.09.2015 13

REST-Services ruck-zuck fertig mit Dropwizard 1 Application Server Evolution 5 2 Dropwizard 10 3 Beispielanwendung 14 4 Vorteile Drowizard 19 Alexander Schwartz / Microservices mit Dropwizard / Berlin Expert Days 2015 / msg systems 17.09.2015 14

Beispielanwendung (Ausgewählte) Ideen des Domain Driven Designs Fachliche Domäne (Daten und Funktionalität) wird als Aggregates, Entities und Value Objects implementiert Funktionalität wird ggf. zusätzlich Services implementiert Fachlicher Code ist nicht von technischem Framework-Code abhängig Daten werden in Repositories abgelegt Interfaces des Repositories ist Teil der fachlichen Domäne, Implementierung des Repositories ist Teil der außenliegenden Schichten Umliegende Systeme werden über Adapter angebunden und können einen Anticorruption Layer beinhalten Literatur: Eric Evans: Domain-Driven Design: Tackling Complexity in Software, 2004 Vaughn Vernon: Implementing Domain-Driven Design, 2013 Alexander Schwartz / Microservices mit Dropwizard / Berlin Expert Days 2015 / msg systems 17.09.2015 15

Beispielanwendung Dropwizard Komponenten Browser Framework Dropwiz. Adapter Application Domain Core Repository Database Legende: Aufruf IoC / DI http://fideloper.com/hexagonal-architecture Alexander Schwartz / Microservices mit Dropwizard / Berlin Expert Days 2015 / msg systems 17.09.2015 16

Beispielanwendung Demo Zeit für Programmcode! Alexander Schwartz / Microservices mit Dropwizard / Berlin Expert Days 2015 / msg systems 17.09.2015 17

Beispielanwendung Dropwizard Komponenten Jersey / JAX-RS 2.0 REST X JDBI, Hibernate, Liquibase Datenbank X Freemarker, Mustache View X Metrics Monitoring X AssertJ, Basisklassen Test Test X Google Guice Bereich Core Add-On Extra Dependency Injection Swagger Dokumentation X Lombok Entwicklung X JBoss Keycloak Sicherheit X Arquillian Graphene GUI Test X Shazam Gwen BDD Test X X Alexander Schwartz / Microservices mit Dropwizard / Berlin Expert Days 2015 / msg systems 17.09.2015 18

REST-Services ruck-zuck fertig mit Dropwizard 1 Application Server Evolution 5 2 Dropwizard 10 3 Beispielanwendung 14 4 Vorteile Drowizard 19 Alexander Schwartz / Microservices mit Dropwizard / Berlin Expert Days 2015 / msg systems 17.09.2015 19

Vorteile Dropwizard Dropwizard bringt viele Standardkomponenten mit Chance auf gleichartige, kleine Anwendungen Viele Wahlmöglichkeiten junges, aktives Ökosystem Gute Dokumentation für die ersten Schritte Erprobte Komponenten Metriken integriert Wiederverwendung von JEE Knowhow Einfaches Deployment als JAR Datei Gute Vorbereitung für Tests @ahus1de Alexander Schwartz / Microservices mit Dropwizard / Berlin Expert Days 2015 / msg systems 17.09.2015 20

Links Dropwizard Homepage http://dropwizard.io/ Eric Evans: Domain Driven Design Quickly http://www.infoq.com/minibooks/domain-driven-design-quickly Vaughn Vernon: Implementing Domain-Driven Design https://vaughnvernon.co/?page_id=168 Guice für Dropwizard https://github.com/hubspot/dropwizard-guice Swagger für Dropwizard https://github.com/federecio/dropwizard-swagger Lombok http://projectlombok.org/ JBoss Keycloak http://keycloak.jboss.org/ Keycloak Dropwizard Integration https://github.com/ahus1/keycloak-dropwizard-integration Arquillian Graphene http://arquillian.org/modules/graphene-extension/ Shazam Gwen https://github.com/shazam/gwen Gwen: BDD-Framework für lesbare und refaktorisierbare Tests in Java http://heise.de/-2520872 https://github.com/ahus1/bdd-examples/ JGiven: Behavior-Driven Development in Plain Java http://jgiven.org/ @ahus1de Alexander Schwartz / Microservices mit Dropwizard / Berlin Expert Days 2015 / msg systems 17.09.2015 21

Alexander Schwartz Principal IT Consultant +49 171 5625767 alexander.schwartz@msg-systems.com msg systems ag (Headquarters) Robert-Buerkle-Str. 1, 85737 Ismaning Germany www.msg-systems.com @ahus1de.consulting.solutions.partnership