TECHNOLOGIE RADAR 2019/2020 · beispielsweise Microsoft Azure als Cloud-Plattform für die...

28
TECHNOLOGIE RADAR 2019/2020

Transcript of TECHNOLOGIE RADAR 2019/2020 · beispielsweise Microsoft Azure als Cloud-Plattform für die...

Page 1: TECHNOLOGIE RADAR 2019/2020 · beispielsweise Microsoft Azure als Cloud-Plattform für die Entwicklung und den Betrieb verschiedenster ... Spring Spring Boot Cloud Spring Core Spring

1

TECHNOLOGIERADAR

2019/2020

Page 2: TECHNOLOGIE RADAR 2019/2020 · beispielsweise Microsoft Azure als Cloud-Plattform für die Entwicklung und den Betrieb verschiedenster ... Spring Spring Boot Cloud Spring Core Spring

2 adessoTECHNOLOGIE RADAR 2019

Page 3: TECHNOLOGIE RADAR 2019/2020 · beispielsweise Microsoft Azure als Cloud-Plattform für die Entwicklung und den Betrieb verschiedenster ... Spring Spring Boot Cloud Spring Core Spring

3

Softwareentwicklungstechnik diskutieren

Im Vergleich zu vielen Trend-Radaren, die abstrakt die grossen Themen wie z. B. Blockchain, 5G, Künstliche Intelligenz und Internet of Things adressieren, ist das Technologie-Radar ein aktiv genutztes Werkzeug für das Wissensmanagement bei adesso, das wir für Ent-scheidungen in realen Softwareentwicklungsprojekten hinzuziehen und in dem sich die Erfahrungen aus diesen Projekten spiegeln. Das Radar ist entsprechend bodenständig und praxisnah, befeuert Diskussionen, hilft aber auch, die Ergebnisse dieser zu strukturieren und zugänglich zu machen.2018 haben wir erstmals unser bis dahin nur intern verwendetes Radar mit der Bewertung von Technologien, Plattformen, Methoden und Werkzeugen der Softwareentwicklung veröf-fentlicht. Dadurch hat sich der Austausch mit unseren Kunden, mit Software Engineers und IT-Verantwortlichen intensiviert. Daran möchten wir festhalten und haben für 2019/2020 eine aktuelle Version erstellt, die viele neue Elemente und veränderte Bewertungen enthält. Wir freuen uns schon jetzt auf lebhafte Diskussionen über einzelne Technologien oder stra-tegische Überlegungen zu der Gesamtentwicklung.Neben den Radaren für Java-, Microsoft-, JavaScript- und Mobile-Projekte haben wir ein neues Fokusradar für das Thema Java Toolchain ausgearbeitet. Dieses Radar widmet sich den Elementen, die für die Umsetzung effizienter, wirtschaftlicher Entwicklungsprozesse im Java-Umfeld notwendig sind – oder auch hinderlich sind. Dazu zählen Werkzeuge, aber auch Plattformen, beispielsweise für die Unterstützung von Social-Coding-Praktiken.Die Bewertungen im Technologie-Radar sind als Momentaufnahme zu verstehen. Sie sind nicht an eine bestimmte Projektkonstellation angepasst und es ist die Aufgabe von Soft-ware Architects, die für ein Projekt richtige Auswahl an Methoden, Techniken, Plattformen und Werkzeugen zu wählen. Dennoch gibt das Radar unsere grundsätzliche Philosophie von modernem Software Engineering wieder, die sich hinter den Bewertungen verbirgt. Wir haben festgestellt, dass Sie nicht nur unsere Bewertungen im Radar interessieren, sondern auch die Prozesse für die Erstellung und Bearbeitung des Radars. Wir nutzen dafür Methoden der Softwareentwicklung, arbeiten mit Merge bzw. Pull Requests, Diskussions-plattformen und CI/CD Pipelines.Für die Anwendung auf die konkrete Projektsituation ist unser Radar ganz pragmatisch nutzbar: Malen, kringeln, streichen und unterstreichen Sie nach Belieben. Wir wünschen Ihnen viel Spass bei der Lektüre und freuen uns auf spannende Diskussionen zu dieser Ausgabe.

Thomas Franz Frank Dobelmann

Head of Technology Board Chief Technology Manager

Page 4: TECHNOLOGIE RADAR 2019/2020 · beispielsweise Microsoft Azure als Cloud-Plattform für die Entwicklung und den Betrieb verschiedenster ... Spring Spring Boot Cloud Spring Core Spring

4 adessoTECHNOLOGIE RADAR 2019/2020

Radare für typische Pro-jektkonstellationenJedes Projekt ist anders, aber es gibt für adesso typische Projektkonstellationen, die häufig stark durch den Technologie-Stack unterschieden werden können.

Entsprechend dieser Konstellationen ist das Radar in „Teil-Radare“aufgeteilt:

> Java-Projekte > Microsoft-Projekte > JavaScript-Projekte > Mobile-Projekte

Zusätzlich dazu haben wir für diese Aus-gabe ein Fokusradar Java Toolchain er-stellt, das Plattformen und Werkzeuge der Java-Projekte fokussiert darstellt.

Diese Form der Aufteilung ist natürlich nicht völlig trennscharf. Dadurch ist es möglich, dass ein Element in mehreren Ra-daren bewertet wird, und dies auch unter-schiedlich! In einem Microsoft-Projekt ist das Betriebssystem Linux beispielsweise zu „evaluieren“, weil es historisch bedingt ein tendenziell neuer, in wenigen Micro-soft-Projekten genutzter Lösungsbaustein ist, während es im Java-orientierten Radar überhaupt keine Erwähnung findet – es ist quasi Standard.

Ähnlich verhält es sich auch in umgekehrter Richtung. Microsoft-Werkzeuge und -Tech-nologien stellen immer häufiger auch Lö-sungsbausteine in Java- und JavaScript-ori-entierten Projekten dar. Der Editor Visual Studio Code und der Microsoft SQL-Server sind Beispiele dafür. JavaScript hat sich als Sprache und mit einem Ökosystem für die Entwicklung von Webanwendungen etab-liert. Deshalb erhält JavaScript einen eige-nen Radar. Gleichzeitig spielt JavaScript in Java- und Microsoft-Projekten häufig eine Rolle.

Ringe: Die BewertungsskalaDie Elemente, die in einem Radar bewertet werden, sind als Punkte dargestellt. Die Bewertung jedes Elements wird durch seine Positionierung auf einem von drei Ringen abgebildet. Jeder Ring steht für eine Bewertung:

EINSETZENDer innere Ring enthält Elemente, die empfohlen werden. Die Empfehlung resultiert aus positiven Projekterfahrungen sowie dem Vergleich mit Alter-nativen.

EVALUIEREN Der mittlere Ring fasst Elemente zusammen, für die derzeit nicht die ausreichende oder eindeutig positive Projekterfahrung vorliegt, um eine pau-schale Einsatzempfehlung zu geben. Elemente mit dem Status „evaluieren“ sind dennoch häufig pro-duktiver Bestandteil von Projekten, aber eben noch nicht in umfassender Breite im Einsatz.

ÜBERDENKEN Diese Bewertung hat primär den Zweck, vor dem Hintergrund der rasanten Veränderungen in der IT für alternative Elemente zu sensibilisieren. Der Ring „Überdenken“ enthält nicht selten Elemente, für die schon mal eine Einsatzempfehlung existierte. Die Bewertung gibt jedoch Hinweise auf aktuell favori-sierte, alternative Elemente

Page 5: TECHNOLOGIE RADAR 2019/2020 · beispielsweise Microsoft Azure als Cloud-Plattform für die Entwicklung und den Betrieb verschiedenster ... Spring Spring Boot Cloud Spring Core Spring

5

Die Quadranten eines RadarsUm die Elemente in einem Radar zu strukturieren, fasst jeder Quadrant ähnliche Elementtypen zusammen. Die Quadran-ten beinhalten die im folgenden beschriebenen Kategorien:

METHODEN UND TECHNIKEN: In diesem Quadranten befinden sich Ansätze, Best Practices, Vorgehensweisen und Verfahren, die un-abhängig von einer technischen Unterstützung oder Implementierung bewertet werden. Beispielsweise findet sich Continuous Integration dort wieder, unab-hängig von der Bewertung potenzieller Plattformen und Werkzeuge, die eine bestimmte Methodik unter-stützen, z. B. Jenkins für Continuous Integration.

WERKZEUGE: Die Rubrik Werkzeuge fasst Hilfsmittel für die Unter-stützung von Aufgaben in Softwareentwicklungspro-jekten zusammen, beispielsweise Werkzeuge für die Programmierung, die Abhängigkeitsverwaltung, die Paketierung von Anwendungen, die Ausführung von Tests etc.

PLATTFORMEN: Plattformen stellen eine einheitliche technische Grundlage für eine spezielle IT-Fragestellung bereit, beispielsweise Microsoft Azure als Cloud-Plattform für die Entwicklung und den Betrieb verschiedenster Services, aber auch eine Oracle-Datenbank als Platt-form für die Persistierung von Daten.

SPRACHEN UND FRAMEWORKS: Die Rubrik Sprachen und Frameworks umfasst Programmier-, Auszeichnungs- und Modellierungs-sprachen, beispielsweise Java, XML und UML sowie Frameworks, die die Lösung bestimmter Program-mieraufgaben unterstützen wie die Implementierung der Kommunikation zwischen verteilten Anwen-dungskomponenten oder die Implementierung von web-basierten Nutzerschnittstellen.

Nutzungsweise und Ziel-setzung des RadarsDie Einordnung der Elemente in den Rada-ren ist eine Momentaufnahme und dient primär als Diskussionsanker. Sie nimmt keine Architekturentscheidungen vorweg, sondern soll lediglich die Bearbeitung von Architekturfragestellungen unterstützen. Die Bewertungen des Radars enthalten keine bestimmten Annahmen über pro-jektspezifische Ausgangssituationen bzw. unterstellen völlige Wahlfreiheit und eine „Green-Field“-Situation.

Die heutigen Bewertungen werden somit nicht denen von morgen entsprechen. Vie-le Bewertungen werden tatsächlich auch kontrovers diskutiert und es gibt bei der Bewertung der Radarelemente bisweilen gänzlich gegensätzliche Einschätzungen. Die dadurch geführte Diskussion ist Teil einer lebendigen Auseinandersetzung, die letztlich zu einem gesteigerten Bewusst-sein für Lösungsmöglichkeiten und Quali-tät führt.

Page 6: TECHNOLOGIE RADAR 2019/2020 · beispielsweise Microsoft Azure als Cloud-Plattform für die Entwicklung und den Betrieb verschiedenster ... Spring Spring Boot Cloud Spring Core Spring

6 adessoTECHNOLOGIE RADAR 2019/2020

EINSETZEN

PLATT-FORMEN

SPRACHEN UND FRAME-

WORKS

EVALUIERENÜBERDENKEN

MySQL

Spark

Post-greSQL

Istio

Kafka

Keycloak

Apache CXF

EJB

Groovy

Hystrix

Axon Fra-mework

concur-rency-li-

mits

Kotlin

resilien-ce4j

JavaFX

JSF

Lucene

RCP

Scala

Spring BootSpring

Cloud

Spring Core

Spring MVC

Vert.x

JAVA-PROJEKTE IM RADAR

DB2

Ku-bernetes (self-ma-

naged)

Page 7: TECHNOLOGIE RADAR 2019/2020 · beispielsweise Microsoft Azure als Cloud-Plattform für die Entwicklung und den Betrieb verschiedenster ... Spring Spring Boot Cloud Spring Core Spring

7

EINSETZEN

METHODEN UND

TECHNIKEN

WERKZEUGE

EVALUIEREN ÜBERDENKEN

MariaDB

MongoDB

Kuberne-tes (mana-

ged)

Oracle DB

Hadoop

Elastic Search

MSSQL

ESB

Java Desktop Clients

JEE Ap-plication

Server

JEE Portal Server

SAFe

Pro-gressive

Web Apps (PWA)

Event Sourcing

Micro-services

auf Basis JEE

Re-active

Programm-ing

Do-main Dri-

ven Design (DDD)

Agile Entwick-lungspro-

zesse Requi-rements

Engineering mit IREB

Leichtge-wichtige Archi-

tekturen Res-sourcen-

orientierte Web-Schnitt-

stellen

Webservi-ces

Responsi-ve Design

Re-silient

Software Design

Ver-teilte

Architek-turen

Versions-kontrolle für Datenbanken

JaCoCo

leanIX

Nect

Servi-ce-Now

Per-formance Co-Pilot

iWelcome

Rust

Spring In-tegration

Swing

WicketVaadin

HTML 5

Hibernate

Go

Feign

RxJava

CSS 3Jersey/ RESTeasy

CDI

Apache Camel

Java

jQAssis-tant

Solr

Page 8: TECHNOLOGIE RADAR 2019/2020 · beispielsweise Microsoft Azure als Cloud-Plattform für die Entwicklung und den Betrieb verschiedenster ... Spring Spring Boot Cloud Spring Core Spring

8 adessoTECHNOLOGIE RADAR 2019/2020

Mit der Veröffentlichung von Java 11 hat Oracle das Lizenzmodell für sein passendes Java Development Kit (JDK) geändert. Zuvor konnte es mit wenigen Ein-schränkungen kostenlos genutzt werden. Im neuen Modell wird eine kostenpflichtige Lizenz für den pro-duktiven Einsatz benötigt. Bedeutet dies, dass Java nicht mehr frei ist?

Oracle JDK vs. Open JDKMit Java 11 hat sich auch die Beziehung des Oracle JDKs zum OpenJDK geändert. Das OpenJDK steht schon seit Jahren mit öffentlich verwaltetem Sourcecode zur Verfügung. Aber es konnte nie garantiert werden, dass sich ein Programm auf beiden JDK-Varianten gleich verhält. Somit gab es bei freier Verfügbarkeit des Oracle JDKs wenige Gründe, auf die quelloffene Variante zu setzen. Die Unterschiede wurden nun be-seitigt und die Quellen des OpenJDKs dienen heute als Grundlage für beide Distributionen. Was Oracle heu-te mit seiner JDK-Distribution verkauft, ist also pro-fessioneller Support. Das grösste Manko: Von Oracle werden über die Zeitrahmen der halbjährlichen Re-lease-Zyklen hinaus keine fertig gebauten Versionen des OpenJDKs mit Bug- und Security-Fixes bereitge-stellt. In Softwareprojekten kann die Auswahl des geeigneten JDKs jedoch nicht aufgeschoben werden. Eine generelle Empfehlung ist es daher, auf die alle drei Jahre erscheinenden LTS-Versionen zu setzen und nicht dem Release-Zyklus zu folgen. Neue Features stehen dadurch erst später zur Verfügung, aber für die meisten Projekte dürfte der Nutzen unter dem Aufwand einer ständigen Migration liegen.

Einige Unternehmen, die stark mit dem Java-Öko-system verbunden sind, bieten eigene Distributionen mit dem Versprechen an, Fixes für mehrere Jahre zu liefern. Red Hat hat die aktuelle Schirmherrschaft über das OpenJDK-Projekt übernommen, um die Be-teiligungen aller Unternehmen zu koordinieren. Oracle gibt also sein Monopol über das JDK auf und teilt die Verantwortung mit der Java Community. Somit steht Java heute freier zur Verfügung als zuvor und der Ein-fluss der Community auf das OpenJDK ist wichtiger geworden. Damit haben User eine bessere Wahlfrei-heit, um die für sie passende Distribution zu finden. Eine allgemeine Empfehlung für die Auswahl einer konkreten Distribution lässt sich schwer geben, da viele individuelle Kriterien wie benötigte Support-Zei-ten oder Plattformverfügbarkeit berücksichtigt wer-den müssen.

JEE-WeiterentwicklungÄhnlich wie mit OpenJDK verfährt Oracle mit der Über-gabe der Java-EE-Weiterentwicklung an die Communi-ty als Jakarta EE unter der Schirmherrschaft der Eclip-se Foundation. Diese hatte bereits seit längerem einen stärkeren Einfluss mit beschleunigter Weiterentwick-lung gefordert, was zuletzt in die parallele Entwicklung des Eclipse MicroProfile mündete. Getrieben von ver-schiedenen Industriegrössen wurden neue Standards entwickelt, um den Einsatz von Java-EE-Technologien in Microservices-Landschaften zu vereinfachen. Das Profil wird rasant weiterentwickelt und hat inzwischen die Version 2.2 erreicht, in der die bekannten Jakar-ta-EE-Funktionen um Spezifikationen für Resilience, Konfigurationsmanagement, Health Check, Metriken, JWT-Authentication, Open API und Open Tracing er-weitert werden.

User haben die Wahl zwischen verschiedenen Ser-ver-Distributionen: Entweder in klassischen all-inclu-sive Formaten (z. B. Payara, TomEE oder WildFly), die mit definierten Profilen verschiedene Paketierungen anbieten, oder als Customizable Server (z. B. Open-Liberty oder Thorntail (ehemals WildFly Swarm)), bei dem sich jedes Feature modular auswählen lässt.

Ein Wermutstropfen ist, dass Oracle nicht bereit ist, bei seinen Namensrechten auf Java Kompromisse ein-zugehen. Dies verhindert die API-kompatible Weiter-entwicklung der Standards, was Migrationsaufwände für bestehende Projekte bedeuten wird. Es gibt Lö-sungsansätze, die besprochen werden, aber bis zur Umsetzung muss dies als Negativpunkt bei der Tech-nologieauswahl gewertet werden.

Diese Veränderungen benötigen Zeit. Wir empfehlen abzuwarten, wie sich Jakarta EE und das MicroProfile weiterentwickeln werden. Bei jeder Auswahl geeig-neter Technologien müssen immer die individuellen Umstände bewertet werden. Mit dem Spring-Techno-logie-Stack steht eine bewährte Alternative bereit, die für die meisten neuen Projekte eine geeignete Basis bietet.

Mit Jakarta EE ist es einfacher als je zuvor, sich an der Weiterentwicklung der Enterprise-Umgebung zu beteiligen. Die Transition bedarf etwas Zeit, aber die Schaffung des MicroProfile zeigt deutlich, dass der Bedarf und die Bereitschaft aller Player gross ist, dem Standard zu einer neuen Blüte zu verhelfen.

Unser Fazit: Java wird zwar konservativ, aber konti-nuierlich weiterentwickelt und ist in einer Welt von Cloud-Infrastrukturen und containerisierten Anwen-dungen immer noch unsere erste Wahl für IT-Projekte.

JAVA-PROJEKTE IM RADAR

Page 9: TECHNOLOGIE RADAR 2019/2020 · beispielsweise Microsoft Azure als Cloud-Plattform für die Entwicklung und den Betrieb verschiedenster ... Spring Spring Boot Cloud Spring Core Spring

9

Selektierte Einzelbewertungen Die folgenden Bewertungen aus unserem Java-Radar möchten wir Ihnen näher vorstellen:

Microservices auf Basis von JEE • evaluieren > Die im MicroProfile definierten Erweiterungen zum JEE-Standard schliessen die Funkti-

onslücken, um Java Enterprise Server sinnvoll in Microservice-Architekturen einsetzen zu können. Kombiniert mit modernen Servern wie Open Liberty und Thorntail ist es einfach möglich, robuste Business-Anwendungen zu implementieren, die zusätzlich zu den An-forderungen an Funktionen und Features auch den operativen Anforderungen moderner Anwendungen gerecht werden.

Spring Boot • einsetzen > Spring Boot hat sich seit mehreren Jahren in vielen unserer Projekte für die Implementa-

tion von businesskritischen Anwendungen bewährt. Es unterstützt viele Funktionen, die in modernen Architekturen benötigt werden, um zukunftssichere Applikationen schnell und einfach zu entwickeln.

Kubernetes (self-managed) • überdenken > Kubernetes ist ein anbieterunabhängiger Defacto-Standard für Container-Manage-

ment-Plattformen. Der selbst gehostete Betrieb von Kubernetes ist aufgrund der Kom-plexität zu überdenken. Stattdessen empfehlen wir einen gemanagten Betrieb von Kuber-netes. Das Microsoft-Radar enthält z. B. eine Einsatzempfehlung für Azure Kubernetes Services (AKS).

ISTIO • evaluieren > Istio ist eine Service-Mesh-Implementierung für Kubernetes und OpenShift, welche Quer-

schnittsthemen der Plattformen wie Sicherheit, API-Management, Resilienz, Monitoring und Topologiedokumentation der Container-Plattformen übernimmt. Istio nutzt das Si-decar-Pattern von Kubernetes und wir haben in diversen Einsatzszenarien festgestellt, dass es besonders in komplexeren Microservice-Architekturen ein nützliches Lösungs-element sein kann.

jQAssistant • einsetzen > jQAssistant ist ein Werkzeug, welches die Architektur einer Anwendung in eine Graphda-

tenbank importiert. Dies ermöglicht Abfragen zu erstellen, um die Architektur zu prüfen. Über Plugins kann jQAssistant beispielsweise in den Build-Prozess integriert werden und einen Build fehlschlagen lassen, wenn gegen eine Architekturregel verstossen wurde. jQAssistant hat sich bereits in mehreren adesso-Projekten als nützliches Werkzeug er-wiesen.

Page 10: TECHNOLOGIE RADAR 2019/2020 · beispielsweise Microsoft Azure als Cloud-Plattform für die Entwicklung und den Betrieb verschiedenster ... Spring Spring Boot Cloud Spring Core Spring

10 adessoTECHNOLOGIE RADAR 2019/2020

JAVASCRIPT- PROJEKTE IM RADAR

EINSETZENEVALUIERENÜBERDENKEN

Native-Script

ReactNa-tive

Lodash

ReactJS

RxJS

ECMA-Script NEXT

Pact

Angular JS

Aurelia

Ember

PLATT FORMEN

SPRACHEN UND FRAMEWORKS

Page 11: TECHNOLOGIE RADAR 2019/2020 · beispielsweise Microsoft Azure als Cloud-Plattform für die Entwicklung und den Betrieb verschiedenster ... Spring Spring Boot Cloud Spring Core Spring

11

EINSETZEN EVALUIEREN ÜBERDENKEN

Node.js – Server-Si-

de-JavaScript

API-First

Consu-mer-driven

Contracts

Kom-ponen-

ten-Archi-tektur

Micro Frontends

Mobile First

Off-line-First

Progres-sive Web

AppsRespon-sive Web

App

Sin-gle-Page

Applicati-ons

State Manage-

ment Library

TDD/BDD

Tool-gestützte

Komponen-ten-Doku-mentation

Web Compo-

nents

Web-ba-sierte Desk-

top-Apps

No-Backend

Redux

Resour-ce-orien-ted Client

Architecture (ROCA)

Web-An-wendung

als reaktives System

Angular CLI

Babel

Codelyzer

ESLint

Jest

Karma

NPM

Prettier

Protractor

SASS

storybook

TSLint

WebpackYarn

Compodoc

Graph QL

WebAuthn

WebXR

Bower

Grunt

Gulp

Yeoman

AngularECMA-Script 6

Jasmine

JavaScript

TypeScript

Vue.js

METHODEN UND TECHNIKEN

WERKZEUGE

Page 12: TECHNOLOGIE RADAR 2019/2020 · beispielsweise Microsoft Azure als Cloud-Plattform für die Entwicklung und den Betrieb verschiedenster ... Spring Spring Boot Cloud Spring Core Spring

12 adessoTECHNOLOGIE RADAR 2019/2020

Durch die starke Verbreitung von client- sowie server-seitigen JavaScript-Lösungen in den letzten Jahren ist JavaScript zu einem ernst zu nehmenden Teil unserer Angebotspalette geworden. Dafür benötigen wir ne-ben dem Reifen von Sprachen und Frameworks auch eine verlässliche und stabile Toolchain. In unserem aktuellen Radar spiegelt sich diese Reifung insbe-sondere durch neue Elemente in den Quadranten für „Werkzeuge“ und „Sprachen und Frameworks“ wider.

Front- und Backend einheitlichClient-seitige Single Page Applications (SPAs) sind mittlerweile im grossen Mass im Einsatz. Auch die Einführung der server-seitigen Technologie Node.js ersetzt in mehreren unserer Projekte die üblichen Ba-ckend-Technologien – sowohl in grossen als auch in kleinen Unternehmen. Durch den Einsatz derselben Programmiersprache im Frontend und Backend konn-ten wir die Agilität kleiner Teams erhöhen und die Erstellungs- und Instandhaltungskosten für unsere Kunden reduzieren.

In den letzten Jahren wurden viele monolithische server-seitige Applikationen in leichtgewichtige Mic-roservices aufgebrochen (u. a. auch mit Node.js). Da die Komplexität der SPAs immer weiter zugenommen hat, gibt es mittlerweile auch im Frontend die Be-strebung, die Monolithen aufzuteilen. Der Ansatz von Micro Frontends wird daher aus unserer Sicht an Be-deutung gewinnen.

PWAs auf dem VormarschEin weiterer starker Trend sind die sogenannten „Progressive Web Apps”. Dabei handelt es sich um Webanwendungen, die wie native mobile oder Desktopanwendungen genutzt werden können und die auch Hardware der Geräte nutzen können. Da schon 2018 das „Year of PWAs“ ausgerufen wurde und der Browser Support mittlerweile gut genug ist, um PWA-Features produktiv einsetzen zu können, ist auch das für uns eines der Top-The-men im Jahr 2019.

Für unsere Kunden ist Sicherheit von jeher ein wichtiger Faktor bei der Entscheidung zum Ein-satz von Technologien. Wir möchten im aktuellen Technologie-Radar den Fokus auf aktuelle Au-thentifizierungsschnittstellen im Webumfeld le-gen. WebAuthn ist aus unserer Sicht ein wichtiger Baustein für die Verbindung vielschichtiger und sicherheitsrelevanter Prozesse im Netz.

JAVASCRIPT-PROJEKTE IM RADAR

Page 13: TECHNOLOGIE RADAR 2019/2020 · beispielsweise Microsoft Azure als Cloud-Plattform für die Entwicklung und den Betrieb verschiedenster ... Spring Spring Boot Cloud Spring Core Spring

13

Jest • einsetzen > Jest ist ein leichtgewichtiges Testing Framework, welches uns vor allem durch seine ein-

fache Bedienung, gute Performance und interessanten Features wie Snapshot Testing überzeugt. Es ist sehr leicht zu konfigurieren und gibt dem Entwickler ein schnelles und aussagekräftiges Feedback über den Status seiner Tests. Darüber hinaus bietet Jest eine einfache Migration von bestehenden Unittests, wodurch es sich auch für bereits laufende Projekte als eine echte Alternative zu Karma, Mocha und Co. eignet.

PWAs • einsetzen > Der Begriff Progressive Web App (PWA) stellt im Wesentlichen einen Eigenschaftenkata-

log dar, dessen Anwendung eine Webseite zu einer Web App mit Merkmalen einer nativen App macht. Neben der responsiven Umsetzung muss eine PWA als Mindestanforderung offline funktionieren, Push-Benachrichtigungen unterstützen, den App-Zustand über Links verfügbar machen und über HTTPS ausgeliefert werden. Werden diese Anforde-rungen erfüllt, erlauben alle mobilen Browser (mit Einschränkungen bei Safari Mobile), dass sich die PWA neben nativen Apps auf dem Hauptbildschirm platzieren und sich dem Nutzer fortan wie eine native App präsentieren kann – also z. B. ohne Navigationsleiste oder sonstige Hinweise, dass die App in einem Webbrowser läuft.

Micro Frontends • einsetzen > Micro Frontends sind ein Architekturstil, der an dem Grundgedanken der Microservice-Ar-

chitektur angelehnt ist. Da in den vergangen Jahren dank der SPAs die Frontend-Anwen-dungen immer komplexer wurden, haben wir es auch hier mittlerweile häufig mit grossen monolithischen Anwendungen zu tun, die sehr komplex in Bezug auf Wartbarkeit und Erweiterbarkeit sind. Mit einer Micro-Frontend-Architektur kann ein solcher Monolith in mehrere kleine eigenständige Web Apps aufgeteilt werden. Zudem bietet dieser Ansatz die Möglichkeit, verschiedene Frameworks parallel zu nutzen.

WebXR • evaluieren > WebXR ist ein junger Standard, der immer mehr an Bedeutung gewinnt. XR steht für „Ex-

tended Reality” und beschreibt die Erweiterungen oder das Überdecken der Realität mit virtuellen Inhalten – also ein gemeinsamer Standard für AR und VR. Es können AR- und VR-Features in einer Webanwendung bzw. im Browser genutzt werden. Die denkbaren Einsatzgebiete sind vielfältig und wir haben bereits erste Projekte für unsere Kunden damit umgesetzt.

WebAuthn • evaluieren > Die Web Authentication API (auch WebAuthn) benutzt eine asymmetrische Verschlüs-

selung anstelle eines Passwortes oder einer SMS zur Registration und Authentifikation. Hierbei übernimmt ein von der Webseite losgelöstes Browser-Modul die Authentifizie-rung. Die vom Server geschickte Challenge wird mithilfe von Identifikationsmerkmalen (Iris, Stimme, Fingerabdruck, Smartcard oder anderer Tokens) signiert. Im Anschluss wird sie an den Server zurück übertragen, welcher die Korrektheit mittels des öffentlichen Schlüssels nachprüfen kann. Somit werden keine Schlüssel über das Netzwerk übertragen und der Nutzer muss sich keine Passwörter mehr merken.

Selektierte Einzelbewertungen Das Radar für JavaScript-Projekte enthält über 50 bewährte Elemente. Nachfolgend sind bei-spielhaft fünf Elemente aus unterschiedlichen Kategorien und mit hoher Aktualität aufge-führt.

Page 14: TECHNOLOGIE RADAR 2019/2020 · beispielsweise Microsoft Azure als Cloud-Plattform für die Entwicklung und den Betrieb verschiedenster ... Spring Spring Boot Cloud Spring Core Spring

14 adessoTECHNOLOGIE RADAR 2019/2020

MICROSOFT- PROJEKTE IM RADAR

EVALUIERENÜBERDENKEN EINSETZEN

Azure DevOps Server

BizTalk

Dynamics 365

Dyna-mics 365

Operations and Financial

Microsoft 365

SharePoint

SQL Server

UWP

Azure Service Fabric

Yammer

Windows 10 Mobile

Windows Phone 8

CAMLd3.js

datatables.net jQuery

knockout.js

less

.Net Core

Entity Framework

Core

R Server

ADO.Net

jQuery UI

Kendo UI

PLATT FORMEN

SPRACHEN UND FRAMEWORKS

Page 15: TECHNOLOGIE RADAR 2019/2020 · beispielsweise Microsoft Azure als Cloud-Plattform für die Entwicklung und den Betrieb verschiedenster ... Spring Spring Boot Cloud Spring Core Spring

15

EVALUIEREN ÜBERDENKEN

ASP.NET Web API

EINSETZEN

Azure

MS Data & AI Plat-

form

Azure AD

Azure AD B2C

Azu-re Com-

pute Ser-vices

Azure Datenban-

ken

Azure DevOps

Azu-re Ku-

bernetes Service

Azu-re

Network Ser-

Azure Storage

Azure Web und

Mobile

IIS

iOS

Azure Functions

Agile Pla-nungsmetho-den (KanBan)

CMMI

Con-tinuous

integration (CI)

DevOps und Anwendungsle-benszyklus-Ver-

waltung

Do-main Dri-

ven Design (DDD)

FastTrack

Scrum

Microsoft Solutions

Framework (MSF)

Balsa-miq_ms

Browser Stack

Fiddler Git_ms

HyperV ILSpy

K2 Black Pearl

LINQPadMicrosoft

Flow

MS Build

Nintex Forms

Nintex WorkflowsNuGet

NUnit

Postman / DHC REST

Client

Power BI PowerApps

PowerShell

Sysinter-nals Tools

Terra-form (von HashiCorp)

Visual Studio Code

VMWare

WebCom-piler

WebEssen-tials

Mi-crosoft Teams/Groups

Browserify

InfoPath

.NET Fra-meworkASP.NET

ASPXbootstrap

C#

Entity Fra-mework

LINQ

Microsoft Graph

Mono for Xamarin

MS Bot Framework

Rx

SignalIR

F#

LINQ2SQL

METHODEN UND TECHNIKEN

WERKZEUGE

Page 16: TECHNOLOGIE RADAR 2019/2020 · beispielsweise Microsoft Azure als Cloud-Plattform für die Entwicklung und den Betrieb verschiedenster ... Spring Spring Boot Cloud Spring Core Spring

16 adessoTECHNOLOGIE RADAR 2019/2020

Bei Microsoft-Projekten stellen wir fest, dass Cloud-Plattformen eine zunehmend wichtige Rolle spielen. Zentral ist dabei aber deren Integration in die bestehenden On-Premises-Umgebungen unserer Kunden. Die Microsoft Cloud bietet eine Basis für An-wendungen, die sich aus dezentralisierten Diensten zusammensetzen, egal ob diese On-Premises oder aus der Cloud bereitgestellt werden. Die Microsoft Cloud besteht aus Azure für Infrastructure- und Plat-form-as-a-Service-Diensten. Office 365 ist die Platt-form für den kollaborativen Einsatz. Darüber hinaus steht mit Dynamics 365 eine Umgebung für Business Applications bereit. Unsere Kunden profitieren zu-nehmend davon, dass sich Azure-Dienste wie bei-spielsweise Machine Learning oder Cognitive Services Plattform-unabhängig nutzen lassen.

Business Productivity Collaboration ist die Basis für einen modernen Ar-beitsplatz. Dafür stellt Microsoft diverse einfache und effektive Lösungen bereit. Unsere Kunden setzen hier vermehrt auf Microsoft 365, bei dem kollabora-tive Dienste wie SharePoint, Skype for Business oder Teams um Sicherheitskomponenten wie beispielswei-se Conditional Multi-Factor Access ergänzt werden.

PowerApps und Flow sind inzwischen etablierte Tools, um Services innerhalb von Microsoft 365 zu verknüp-fen. Wir stellen zunehmend fest, dass Microsoft Cog-nitive Services wichtige Elemente für die Workforce Automation eines modernen Arbeitsplatzes darstel-len.

Customer Experience Management (CEM)Die Bereitstellung relevanter, aufbereiteter Informati-onen über den kompletten Customer Lifecycle hinweg ist ein Schlüssel zum Erfolg. Die Dynamics-365-Platt-form bietet dazu unter anderem die Common Data Service und Power Apps. Damit schaffen wir für unse-re Kunden eine durchgängige Verbindung von Infor-mationen, Touchpoints und Prozessen und können zu einem nachhaltigen CEM beitragen.

Business Intelligence, Advanced Analytics und Künstliche Intelligenz (KI)Die Analyse von Informationen und Daten spielt für viele unserer Kunden gerade bei Digitalisierungsvorha-ben, Customer Management, klassischen DWH-The-men und auch im Bereich KI eine wesentliche Rolle. Die Azure-Komponenten der Microsoft-Data-Platt-form unterstützen Big-Data- und Advanced-Analy-tics-Themen und bieten damit eine hochskalierbare Infrastruktur quasi aus der Steckdose. Der Aufwand für den Aufbau und den Betrieb einer eigenen In-house-Big-Data-Plattform ist für unsere Kunden also kein limitierender Faktor mehr.

MICROSOFT-PROJEKTE IM RADAR

Page 17: TECHNOLOGIE RADAR 2019/2020 · beispielsweise Microsoft Azure als Cloud-Plattform für die Entwicklung und den Betrieb verschiedenster ... Spring Spring Boot Cloud Spring Core Spring

17

Microsoft Data & AI Platform • einsetzen > Das maschinelle Lernen nimmt in unseren Projekten einen immer höheren Stellenwert

ein. Mit den Cognitive Services und mit LUIS stehen vortrainierte, intelligente Komponen-ten für die Bearbeitung von Daten, Bildern, Sprache und Text bereit. Das erlaubt eine ein-fache Operationalisierung und Integration in Applikationen und Workflows. Der Microsoft SQL-Server und die dazu verfügbaren BI-Services haben nach wie vor einen festen Platz in unseren BI-Projekten und beweisen mit den aktuellen Versionen ihre Leistungsfähigkeit. Die Verfügbarkeit von Power BI in reinen On-Premises-Szenarien hat die Attraktivität weiter erhöht. In Branchen ohne starke regulatorische Einschränkungen beobachten wir eine zunehmende Nachfrage nach Cloud-Data-Platform-Lösungen mit Komponenten wie Azure SQL Database, Azure Analysis Services sowie den Modern-BI-Ansätzen auf Basis von Azure Data Lake, Azure Databricks und Power BI.

Microsoft Bot Framework • einsetzen > Bei der Erstellung von Bots setzt Microsoft auf ein für Entwickler zugängliches Frame-

work. Für Szenarien wie Bestellprozesse, FAQs oder Ticketsysteme können somit die Ent-wicklungsaufwände erheblich reduziert werden. Die so erstellten Assistenten können in verschiedene Anwendungen integriert werden. Kanäle wie zum Beispiel Teams, Slack oder der Facebook Messenger werden unterstützt – auch mit natürlicher Sprache als Eingabe-medium.

Microsoft 365 • einsetzen > In unseren Projekten erkennen wir den Bedarf, den modernen Arbeitsplatz technologisch

von der Infrastruktur über die Integration von Microsoft Cloud Services bis zur Anwen-dungsentwicklung abzubilden. Microsoft 365 mit Office 365 und Enterprise Mobility und Security bietet die erforderliche technologische Grundlage. Über die Sicherheits- und Compliance-Dienste von Microsoft 365 werden Anwendungen gemäss den Regularien der Unternehmen abgesichert.

Dynamics 365 • einsetzen > In unseren Projekten erkennen wir den Trend, dass der Reifegrad der Kunden im Thema

CRM und CEM steigen soll. Nachdem sich inzwischen klassische CRM-Funktionen etab-liert haben, werden die gewonnenen Daten nun verwendet, um mehr kaufmännischen Nutzen zu generieren. Hierbei stehen die Digitalisierung des Marketings und optimierte Lead-Nurturing-Prozesse im Fokus. Zunehmend soll auch im Bereich der Services weite-res Potenzial gehoben werden. Die Dynamics-365-Plattform hält Lösungsbausteine und Werkzeuge für Low-Code Development bereit, um optimierte Lösungen zu schaffen, die sich einfach in bestehende Architekturen integrieren lassen.

Azure Kubernetes Services (AKS) • einsetzen > Microservices ist das State-of-the-art Architekturmuster für den Aufbau moderner, mo-

dularer Anwendungen. Es setzt darauf, sehr viele kleine Services in einem harmonischen Zusammenspiel arbeiten zu lassen. Kubernetes ist ein Orchestrator, der in solchen Umge-bungen hilft, Komplexität zu vermeiden. Mithilfe des .NET Core verpacken wir unsere Ser-vices in Docker Container, die dann durch Kubernetes orchestriert und betrieben werden. Solche Lösungen können einfach betrieben werden und erfüllen auch alle Anforderungen an DevOps-Paradigmen.

MICROSOFT-PROJEKTE IM RADARSelektierte Einzelbewertungen Aus der Vielzahl der Einträge im Radar für Microsoft-Projekte sind nachfolgend die Elemente aufgeführt, die eine hohe Relevanz für unsere Kunden aufweisen:

Page 18: TECHNOLOGIE RADAR 2019/2020 · beispielsweise Microsoft Azure als Cloud-Plattform für die Entwicklung und den Betrieb verschiedenster ... Spring Spring Boot Cloud Spring Core Spring

18 adessoTECHNOLOGIE RADAR 2019/2020

MOBILE ENTWICKLUNG IM RADAR

EINSETZEN

PLATT FORMEN

SPRACHEN UND FRAMEWORKS

EVALUIERENÜBERDENKEN

Teamcity

BitbucketVisual

Studio Team-service

SAP iOS

Android Auto/Apple

Car

Android TV

Google Home/

HomeKit

XCode Server

Angular

Ionic

Kotlin

PDFKit

SAP UI5

Vuforia (AR)

RxSwift

Swift for Android

GreenDAO

Robolectric

Realm

ReactNa-tive

Qt for Mobile

Page 19: TECHNOLOGIE RADAR 2019/2020 · beispielsweise Microsoft Azure als Cloud-Plattform für die Entwicklung und den Betrieb verschiedenster ... Spring Spring Boot Cloud Spring Core Spring

19

EINSETZEN EVALUIEREN ÜBERDENKEN

Android

METHODEN UND TECHNIKEN

WERKZEUGE

iOS

inMotion

Cordova

Sales-force CRM

(Mobile SDK)

Amazon Alexa

Usability Testing

Optimistic UI

Depen-dency

Injection

Backend as a Ser-

vice

Asset Ge-neration

Viper

End-to-End Testing

Predictive UI

GradleFastlane

Cocoapods

Xcode

An-droid

Studio/ IntelliJ

VisualStu-dio

Saucelabs

SonarQube

Grunt

Gulp

Webpack

SwaggerUI Postman

NuGet

Xray (Jira)

AppCodeTFS/De-

vOps

Carthage

LoRa

Visu-alStudio

online

Microsoft Flow

BlackbeltJavaObjectiveC

Swift

C#

RxAndro-id/RxJava

Appium/ Selenium

Xamarin.Native & Xa-marin.Forms

SQLCipher

TypeScript

Angular.JS

PSPDFKit

Tensor-flow.Lite

Flutter/Dart

Page 20: TECHNOLOGIE RADAR 2019/2020 · beispielsweise Microsoft Azure als Cloud-Plattform für die Entwicklung und den Betrieb verschiedenster ... Spring Spring Boot Cloud Spring Core Spring

20 adessoTECHNOLOGIE RADAR 2019/2020

Die Durchdringung von Mobile Devices im privaten und beruflichen Kontext schreitet immer weiter voran. Eine Mobile-Strategie ist Kernbestandteil der Digita-lisierungsvorhaben, die uns im letzten Jahr begegnet sind. Gerade im Bereich „Digital Workplace“ nimmt die Zahl der Projekte, in denen Mitarbeitende bei ihrer täglichen Arbeit mit mobilen Lösungen unterstützt werden, weiter zu. Im Zuge der wachsenden Bedeu-tung von Mobile für Unternehmen versuchen immer mehr Unternehmen auch intern Prozess- und Archi-tektur-Knowhow für Mobile-Projekte aufzubauen.

Weg von OfflineEine weiterer Trend, den wir in unseren Projekten be-obachten, ist eine Wegentwicklung von der weiterge-henden Offline-Fähigkeit von Applikationen. Aktuelle Apps verfügen zwar über eine stabile Basisfunktiona-lität, ihren eigentlichen Funktionsumfang erreichen sie aber meist nur im Zusammenspiel mit Backends und Cloud-Diensten bei bestehender Online-Verbin-dung, sodass die Offline-Fähigkeit sich meist auf ein Caching der lokalen Daten bis zur nächsten On-line-Verbindung beschränkt. Zusätzlich getrieben wird diese Entwicklung durch Themen wie Machine Learning oder Chatbots, die in den meisten Fällen eine ständige Verbindung zu den jeweiligen Backends benötigen.

Cross-Plattform-LösungenAus technologischer Sicht hat das letzte Jahr ver-gleichsweise wenige disruptive Änderungen gebracht. Auf nativer Seite sind Swift und Kotlin nach wie vor gesetzt und auch im Bereich der Cross-Plattform-Fra-meworks war im letzten Jahr wenig Bewegung zu be-obachten. Als Cross-Plattform-Lösungen setzen wir nach wie vor hauptsächlich auf Cordova/Ionic und Xa-marin (Native & Forms). Je nach Projekt entscheiden wir uns bereits während der Konzeption, welche der genannten Technologien zum Einsatz kommt.

Alternative Cross-Plattform-Lösungen wie React.Na-tive oder Flutter beobachten wir nach wie vor und prü-fen in regelmässigen Abständen einen Einsatz. React.Native bietet gegenüber unserem aktuellen Toolset keine gravierenden Vorteile, die einen Ein- oder Um-stieg attraktiv machen würden. In Flutter sehen wir grosses Potenzial. Jedoch hat das Framework nach einem anfänglichen Pushen durch Google auch im letzten Jahr keinen wirklichen Schub erfahren, sodass abzuwarten bleibt, ob sich Flutter kurzfristig etabliert oder sich in die lange Reihe der von Google beerdigten Projekte einreiht.

MOBILE ENTWICKLUNG IM RADAR

Page 21: TECHNOLOGIE RADAR 2019/2020 · beispielsweise Microsoft Azure als Cloud-Plattform für die Entwicklung und den Betrieb verschiedenster ... Spring Spring Boot Cloud Spring Core Spring

21

CoreML & ARKit • evaluieren > Die nativen ML Frameworks von iOS und Android bieten spannende Möglichkeiten, so-

wohl im Zusammenspiel mit den immer besser werdenden Kameras als auch in Kombina-tion mit individuellen Modellen z. B. auf Tensorflow.Lite Basis.

RxSwift • überdenken > Nachdem es in den letzten beiden Jahren eine Reactive-„Welle“ gab und entsprechende

Frameworks auf allen Plattformen und in allen Sprachen in den Projekten zu finden wa-ren, ebbt die Euphorie bzgl. Reactive gerade im iOS-Bereich ab, da die Frameworks bzw. der Reactive-Ansatz als solches aktuell bei iOS keine spürbaren Probleme löst.

SwaggerUI • einsetzen > Da alle von uns entwickelten Lösungen mit mindestens einem Backend kommunizieren,

ist Swagger.UI inzwischen in jedem Mobilen Projekt im Einsatz. Die Qualität des generier-ten Client Codes ist zwar gerade im iOS-Bereich (noch) nicht immer optimal, die Vorteile von Swagger überwiegen aber trotzdem deutlich, sodass es in zukünftigen Projekten für uns eine gesetzte Technologie ist.

Qt • evaluieren > Auch wenn Qt und C++ sicher keine neuen Technologien sind, ist die Cross-Plattform-Ent-

wicklung mit Qt gerade für Kunden aus dem Bereich Manufacturing Industries eine inte-ressante Variante, da bestehende Maschinen-Interfaces oder Displays häufig auf C++/Qt-Basis entwickelt werden und es hier Synergien geben kann.

Azure DevOps • einsetzen > Auch wenn Azure DevOps auf kurze und vermutlich auch mittelfristige Sicht unsere be-

stehende Toolchain nicht ersetzen wird, setzen wir es verstärkt für Kunden ein, die eine eigene Build-/Toolchain aufbauen möchten bzw. eine exklusive Instanz für ihr Projekt haben möchten. Daneben kommt DevOps bei unseren Xamarin-Projekten zum Einsatz. Einer der grossen Vorteile ist dabei die komfortable Verknüpfung von Tickets, Builds, Re-lease etc.

MOBILE ENTWICKLUNG IM RADAR

Selektierte Einzelbewertungen Besonderes Augenmerk im Rahmen unserer Radar-Bewertungen setzen wir auf diese Ele-mente:

Page 22: TECHNOLOGIE RADAR 2019/2020 · beispielsweise Microsoft Azure als Cloud-Plattform für die Entwicklung und den Betrieb verschiedenster ... Spring Spring Boot Cloud Spring Core Spring

22 adessoTECHNOLOGIE RADAR 2019/2020

FOKUS-RADAR: JAVA TOOLCHAIN

EINSETZEN

Jenkins

VMware ESX Server

GoCD

EVALUIERENÜBERDENKEN

Bamboo

Failsafe

PLATT FORMEN

SPRACHEN UND FRAMEWORKS

Page 23: TECHNOLOGIE RADAR 2019/2020 · beispielsweise Microsoft Azure als Cloud-Plattform für die Entwicklung und den Betrieb verschiedenster ... Spring Spring Boot Cloud Spring Core Spring

23

EINSETZEN EVALUIEREN ÜBERDENKEN

Docker

Elastic Stack als Log-Platt-

form

Gitlab

Graylog 2Nexus

Auto-matisierte End-to-end

Tests

Conti-nuous

Delivery

Continu-ous Integ-

ration

Ansible

Balsamiq

BitbucketChef

Eclipse

Gradle

Intellij IDEA / Webstorm

JIRAJMeter

jQAssis-tant

Maven

OWASP Dependendy

Check

Postman

Puppet

Rest-assu-red

Sonarqube

SpiraTest

Swagger

Vagrant

Structure 101

Gatling

Java Mission Control

logFaces

Test-Ma-nager/

Lab-Mana-ger

UpSource

YouTrack

Java Me-lody

METHODEN UND TECHNIKEN

WERKZEUGE

Page 24: TECHNOLOGIE RADAR 2019/2020 · beispielsweise Microsoft Azure als Cloud-Plattform für die Entwicklung und den Betrieb verschiedenster ... Spring Spring Boot Cloud Spring Core Spring

24 adessoTECHNOLOGIE RADAR 2019/2020

Java als technologische Plattform hat zweifelsfrei seit vielen Jahren die Reife für den breiten und vielfältigen Einsatz in Unternehmen. Gleichzeitig verändert sich das Ökosystem jedoch immer wieder grundlegend, da Innovationen insbesondere im methodischen Quad-ranten zu veränderten Entwicklungsprozessen füh-ren. Diese stellen neue Anforderungen an die Werk-zeuge und Plattformen.

Social CodingEin Beispiel für diese Veränderungen sind Soci-al Coding Practices, die über den Einsatz in Open—Source-Projekten auf GitHub, GitLab und Co. hinaus heute auch sinnvoll in unseren Kundenprojekten ein-gesetzt werden. Für den Einsatz in Kundenprojekten werden, teilweise von den Open-Source-Plattformen selbst, passende Pakete ihrer Plattformen bereitge-stellt, die so z. B. On-Premise oder mit entsprechen-den Integrationen und Funktionen für den Einsatz in Unternehmen ausgestattet sind.

Die Leader in diesem Segment sind GitLab und Atlas-sian Bitbucket, wobei beide Systeme unterschiedliche Philosophien verfolgen. Während GitLab sich als voll-integrierten Stack innerhalb eines geschlossenen Öko-systems sieht und den gesamten Projektprozess vom Requirements Engineering über Code-Verwaltung und -Build bis zur containerbasierten Auslieferung abbil-den will, ist Bitbucket eher als Baustein im Kontext des gesamten Atlassian-Stacks gedacht. Dieser er-weitert Git als Configuration Management-Werkzeug um Komponenten der Zusammenarbeit, überlässt aber die anderen Bestandteile des Prozesses etablier-ten Tools wie Jira, Confluence oder Bamboo.

Mehr Cloud-artige StrukturenEin Trend, der ebenfalls aus der Open-Source-Welt in die Unternehmenswelt „schwappt“, ist ungebrochen der Trend zu „cloud-artigen“ Strukturen. Auf der Welle der Container-Nutzung sind Themen wie Cloud-native heute in Unternehmen präsent. Kubernetes-basierte Plattformen werden von immer mehr Unternehmen eingesetzt und verändern die Art und Weise wie Soft-ware entwickelt wird, wie Software-Delivery-Prozes-se gestaltet sind, wie Software betrieben wird. Be-sonders interessant ist hier auch die Wechselwirkung zwischen den Features der modernen Betriebsplatt-formen und den Softwarearchitekturen, die beispiel-weise für Aufgaben, die bisher als Teil der Software-entwicklung „eingebaut“ wurden, nun durch Services der Betriebsplattformen abgebildet werden können.

Konzepte wie Side-Cars mit Istio oder Service-Regis-tries einer Kubernetes-Plattform sind Beispiele dafür. Im Projekt ergeben sich hierdurch zahlreiche neue Herausforderungen, die einerseits den Softwareent-wicklungsprozess selbst betreffen, andererseits den Betrieb dieser Stacks umfassen. Ersteres ist in vielen Projekten mittels Prozess-Frameworks wie Git Flow bereits gelebte Realität, benötigt aber auch eine Anlaufphase. Letzteres zieht tiefgreifende Verände-rungen nach sich, weil das erforderliche Know-How im Projektteam um Themen wie Software Defined Networking, Kapazitätsplanung, Überwachung und Orchestrierung sowie Lifecycle ergänzt werden und mit entsprechenden Werkzeugen (Ansible, Kuber-netes usw.) unterfüttert werden muss. Zudem ent-stehen hierdurch neue Herausforderungen für den klassischen IT-Betrieb, weil die Projekte wesentliche Teile der Betriebsverantwortung übernehmen – hier-für muss die IT an der Schnittstelle zu den Projekten entsprechend aufgestellt sein, um dieser technisch wie organisatorisch anspruchsvollen Anforderung ge-recht werden zu können.

FOKUS-RADAR: JAVA TOOLCHAIN

Page 25: TECHNOLOGIE RADAR 2019/2020 · beispielsweise Microsoft Azure als Cloud-Plattform für die Entwicklung und den Betrieb verschiedenster ... Spring Spring Boot Cloud Spring Core Spring

25

Nexus • einsetzen > Nexus wird im Rahmen der adesso-Continuous-Integration-Infrastruktur zur Ablage von

Artefakten bereitgestellt und wird in vielen adesso-Projekten erfolgreich eingesetzt.

Chef, Puppet, Ansible • einsetzen > Chef oder alternativ Puppet/Ansible sind Systemkonfigurationswerkzeuge für die Pro-

visionierung von hauptsächlich Unix-basierten Systemen. Speziell im Rahmen von Pro-jekten mit DevOps-Anteilen sind sie interessante Kandidaten. Sie sind verbreitete und notwendige Lösungen, die sich längst etabliert und in Projekten bewährt haben.

Bamboo • überdenken > Eine einfache Möglichkeit, Continuous Integration trotz schwieriger Ausgangslage und

Infrastruktur einzusetzen. Allerdings hat Bamboo keinen Support für Pipeline as Code.

Bitbucket • einsetzen > Das Tool ermöglicht professionelle Softwareentwicklung mit oder ohne Branching-Mo-

delle. Durch Social Coding Features ist eine intensive und professionelle Auseinanderset-zung mit dem Code im Team möglich.

Gitlab • einsetzen > Gitlab ist als Alternative zum Atlassian Stack zu bewerten. Viele unserer Projekte bevor-

zugen Gitlab insbesondere gegenüber der Kombination aus Bitbucket, Bamboo und Co. wegen der tiefen Integration und der Unterstützung von Pipeline as Code.

Selektierte Einzelbewertungen Aus den Einträgen im Radar für Java Toolchain möchten wir die Bewertung der folgenden Elemente hervorheben:

Page 26: TECHNOLOGIE RADAR 2019/2020 · beispielsweise Microsoft Azure als Cloud-Plattform für die Entwicklung und den Betrieb verschiedenster ... Spring Spring Boot Cloud Spring Core Spring

26 adessoTECHNOLOGIE RADAR 2019/2020

Die adesso-Softwarearchitekten:

Page 27: TECHNOLOGIE RADAR 2019/2020 · beispielsweise Microsoft Azure als Cloud-Plattform für die Entwicklung und den Betrieb verschiedenster ... Spring Spring Boot Cloud Spring Core Spring

27

Das Technologie-Radar wird fortlaufend von den adesso-Experten evaluiert und erweitert. Die Print-Ausgabe erscheint einmal jährlich.

In der Zwischenzeit wenden Sie sich für Fragen, Hinweise oder Aktualisierungen gerne an: [email protected]

Page 28: TECHNOLOGIE RADAR 2019/2020 · beispielsweise Microsoft Azure als Cloud-Plattform für die Entwicklung und den Betrieb verschiedenster ... Spring Spring Boot Cloud Spring Core Spring

28 adessoTECHNOLOGIE RADAR 2019

adesso Schweiz AGVulkanstrasse 1068048 ZürichT +41 58 520 98 00

[email protected]