TECHNOLOGIE RADAR 2019/2020 - adesso Schweiz AG

Die Seite wird erstellt Niklas-Maximilian Wulf
 
WEITER LESEN
1

TECHNOLOGIE
      RADAR
   2019/2020
2   adesso
    TECHNOLOGIE
    RADAR 2019
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
4   adesso
    TECHNOLOGIE
    RADAR 2019/2020

    Radare für typische Pro-                        Ringe: Die Bewertungsskala
    jektkonstellationen
                                                    Die Elemente, die in einem Radar bewertet werden, sind als
    Jedes Projekt ist anders, aber es gibt für      Punkte dargestellt. Die Bewertung jedes Elements wird durch
    adesso typische Projektkonstellationen, die     seine Positionierung auf einem von drei Ringen abgebildet.
    häufig stark durch den Technologie-Stack        Jeder Ring steht für eine Bewertung:
    unterschieden werden können.

    Entsprechend dieser Konstellationen ist            EINSETZEN
    das Radar in „Teil-Radare“aufgeteilt:              Der innere Ring enthält Elemente, die empfohlen
     >>    Java-Projekte                               werden. Die Empfehlung resultiert aus positiven
                                                       Projekterfahrungen sowie dem Vergleich mit Alter-
     >>    Microsoft-Projekte                          nativen.
     >>    JavaScript-Projekte
     >>    Mobile-Projekte                             EVALUIEREN
                                                       Der mittlere Ring fasst Elemente zusammen, für
    Zusätzlich dazu haben wir für diese Aus-           die derzeit nicht die ausreichende oder eindeutig
    gabe ein Fokusradar Java Toolchain er-             positive Projekterfahrung vorliegt, um eine pau-
    stellt, das Plattformen und Werkzeuge der          schale Einsatzempfehlung zu geben. Elemente mit
    Java-Projekte fokussiert darstellt.                dem Status „evaluieren“ sind dennoch häufig pro-
                                                       duktiver Bestandteil von Projekten, aber eben noch
    Diese Form der Aufteilung ist natürlich            nicht in umfassender Breite im Einsatz.
    nicht völlig trennscharf. Dadurch ist es
    möglich, dass ein Element in mehreren Ra-          ÜBERDENKEN
    daren bewertet wird, und dies auch unter-          Diese Bewertung hat primär den Zweck, vor dem
    schiedlich! In einem Microsoft-Projekt ist         Hintergrund der rasanten Veränderungen in der IT
    das Betriebssystem Linux beispielsweise            für alternative Elemente zu sensibilisieren. Der Ring
    zu „evaluieren“, weil es historisch bedingt        „Überdenken“ enthält nicht selten Elemente, für die
    ein tendenziell neuer, in wenigen Micro-           schon mal eine Einsatzempfehlung existierte. Die
    soft-Projekten genutzter Lösungsbaustein           Bewertung gibt jedoch Hinweise auf aktuell favori-
    ist, während es im Java-orientierten Radar         sierte, alternative Elemente
    ü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.
5

Die Quadranten eines Radars                                    Nutzungsweise und Ziel-
                                                               setzung des Radars
Um die Elemente in einem Radar zu strukturieren, fasst jeder
Quadrant ähnliche Elementtypen zusammen. Die Quadran-          Die Einordnung der Elemente in den Rada-
ten beinhalten die im folgenden beschriebenen Kategorien:      ren ist eine Momentaufnahme und dient
                                                               primär als Diskussionsanker. Sie nimmt
                                                               keine Architekturentscheidungen vorweg,
   METHODEN UND TECHNIKEN:                                     sondern soll lediglich die Bearbeitung von
   In diesem Quadranten befinden sich Ansätze, Best            Architekturfragestellungen unterstützen.
   Practices, Vorgehensweisen und Verfahren, die un-           Die Bewertungen des Radars enthalten
   abhängig von einer technischen Unterstützung oder           keine bestimmten Annahmen über pro-
   Implementierung bewertet werden. Beispielsweise             jektspezifische Ausgangssituationen bzw.
   findet sich Continuous Integration dort wieder, unab-       unterstellen völlige Wahlfreiheit und eine
   hängig von der Bewertung potenzieller Plattformen           „Green-Field“-Situation.
   und Werkzeuge, die eine bestimmte Methodik unter-
   stützen, z. B. Jenkins für Continuous Integration.          Die heutigen Bewertungen werden somit
                                                               nicht denen von morgen entsprechen. Vie-
   WERKZEUGE:                                                  le Bewertungen werden tatsächlich auch
   Die Rubrik Werkzeuge fasst Hilfsmittel für die Unter-       kontrovers diskutiert und es gibt bei der
   stützung von Aufgaben in Softwareentwicklungspro-           Bewertung der Radarelemente bisweilen
   jekten zusammen, beispielsweise Werkzeuge für die           gänzlich gegensätzliche Einschätzungen.
   Programmierung, die Abhängigkeitsverwaltung, die            Die dadurch geführte Diskussion ist Teil
   Paketierung von Anwendungen, die Ausführung von             einer lebendigen Auseinandersetzung, die
   Tests etc.                                                  letztlich zu einem gesteigerten Bewusst-
                                                               sein für Lösungsmöglichkeiten und Quali-
   PLATTFORMEN:                                                tät führt.
   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.
6   adesso
    TECHNOLOGIE
    RADAR 2019/2020

                              PLATT­
                             FORMEN

    JAVA-PROJEKTE                                     Ku-
                                                   bernetes

    IM RADAR
                                                   (self-ma-
                                                     naged)
                                                                        Istio

                                                                                   Post-
                                                                                  greSQL

                                 DB2

                                                                 Keycloak
                                                                                    Spark

                                                           MySQL
                                                                                  Kafka

                      ÜBERDENKEN       EVALUIEREN

                        Apache
                                                                                     Spring
                         CXF
                                                                Spring                Boot
                                                                Cloud
                                         Axon Fra-
                           EJB            mework

                                                                                Spring Core

                             Groovy
                                                concur-
                                               rency-li-                 Spring
                                                 mits                     MVC

                                   Hystrix
                                                                                       Vert.x

                                                               Kotlin
                                          JavaFX

                                                     JSF
                                                                                resilien-
                                                                                  ce4j

                                                           Lucene

                                                                           RCP
                         SPRACHEN
                        UND FRAME-                                                     Scala
                          WORKS
ESB                                                                                7
  Solr
                                                                                                                                     METHODEN
                                                                                                        Java
                                                                                                                                        UND
                                                                                                      Desktop                        TECHNIKEN
                                                                                 Micro-               Clients
                                                                                services
                                                                                auf Basis
                                                                                   JEE
                                                       Re-
                                                      active
                        MariaDB                     Programm-
                                                        ing                                                                     JEE Ap-
                                                                                       Do-                      Event          plication
    MongoDB                                                                          main Dri-                 Sourcing          Server
                                                                Agile
                                                                                    ven Design
                                                               Entwick-
                                                                                      (DDD)
                                                              lungspro-
                                                                                                   Requi-
                         Kuberne-                               zesse                             rements
                        tes (mana-                                                               Engineering
                           ged)                                                                   mit IREB
                                                                                                                              Pro-
 Oracle DB                                                Leichtge-
                                                                                                                            gressive
                                                       wichtige Archi-
                                                          tekturen              Res-                                        Web Apps            JEE Portal
                                                                              sourcen-                                       (PWA)                Server
                                                                             orientierte                  Versions-
                    Hadoop                                                  Web-Schnitt-                 kontrolle für
                                                    Re-                        stellen                   Datenbanken
                                                   silient
                                                  Software
                                                   Design
  MSSQL                                                                                                            Ver-
                            Elastic                                                  Webservi-                    teilte                               SAFe
                            Search                     Responsi-                                                Architek-
                                                       ve Design                       ces
                                                                                                                  turen

                                      EINSETZEN                                                                                       EVALUIEREN    ÜBERDENKEN

                             Apache
  Java
                             Camel

                                                             JaCoCo                                                                  iWelcome
              CDI

 Jersey/                      CSS 3
RESTeasy                                                                         jQAssis-
                                                                                   tant

                                                                                                                            leanIX
                    Feign

RxJava

                               Go

        Hibernate                                                                                               Nect

                        HTML 5
                                                                                        Per-
                                                                                     formance
  Rust                                                                                Co-Pilot

                     Spring In-                           Servi-
                     tegration                           ce-Now
                                                                                                                                     WERKZEUGE
Swing
             Vaadin
                               Wicket
8   adesso
    TECHNOLOGIE
    RADAR 2019/2020

    JAVA-PROJEKTE IM RADAR

    Mit der Veröffentlichung von Java 11 hat Oracle das       JEE-Weiterentwicklung
    Lizenzmodell für sein passendes Java Development          Ähnlich wie mit OpenJDK verfährt Oracle mit der Über-
    Kit (JDK) geändert. Zuvor konnte es mit wenigen Ein-      gabe der Java-EE-Weiterentwicklung an die Communi-
    schränkungen kostenlos genutzt werden. Im neuen           ty als Jakarta EE unter der Schirmherrschaft der Eclip-
    Modell wird eine kostenpflichtige Lizenz für den pro-     se Foundation. Diese hatte bereits seit längerem einen
    duktiven Einsatz benötigt. Bedeutet dies, dass Java       stärkeren Einfluss mit beschleunigter Weiterentwick-
    nicht mehr frei ist?                                      lung gefordert, was zuletzt in die parallele Entwicklung
                                                              des Eclipse MicroProfile mündete. Getrieben von ver-
                                                              schiedenen Industriegrössen wurden neue Standards
    Oracle JDK vs. Open JDK
                                                              entwickelt, um den Einsatz von Java-EE-Technologien
    Mit Java 11 hat sich auch die Beziehung des Oracle JDKs   in Microservices-Landschaften zu vereinfachen. Das
    zum OpenJDK geändert. Das OpenJDK steht schon seit        Profil wird rasant weiterentwickelt und hat inzwischen
    Jahren mit öffentlich verwaltetem Sourcecode zur          die Version 2.2 erreicht, in der die bekannten Jakar-
    Verfügung. Aber es konnte nie garantiert werden,          ta-EE-Funktionen um Spezifikationen für Resilience,
    dass sich ein Programm auf beiden JDK-Varianten           Konfigurationsmanagement, Health Check, Metriken,
    gleich verhält. Somit gab es bei freier Verfügbarkeit     JWT-Authentication, Open API und Open Tracing er-
    des Oracle JDKs wenige Gründe, auf die quelloffene        weitert werden.
    Variante zu setzen. Die Unterschiede wurden nun be-
                                                              User haben die Wahl zwischen verschiedenen Ser-
    seitigt und die Quellen des OpenJDKs dienen heute als
                                                              ver-Distributionen: Entweder in klassischen all-inclu-
    Grundlage für beide Distributionen. Was Oracle heu-
                                                              sive Formaten (z. B. Payara, TomEE oder WildFly), die
    te mit seiner JDK-Distribution verkauft, ist also pro-
                                                              mit definierten Profilen verschiedene Paketierungen
    fessioneller Support. Das grösste Manko: Von Oracle
                                                              anbieten, oder als Customizable Server (z. B. Open-
    werden über die Zeitrahmen der halbjährlichen Re-
                                                              Liberty oder Thorntail (ehemals WildFly Swarm)), bei
    lease-Zyklen hinaus keine fertig gebauten Versionen
                                                              dem sich jedes Feature modular auswählen lässt.
    des OpenJDKs mit Bug- und Security-Fixes bereitge-
    stellt. In Softwareprojekten kann die Auswahl des         Ein Wermutstropfen ist, dass Oracle nicht bereit ist,
    geeigneten JDKs jedoch nicht aufgeschoben werden.         bei seinen Namensrechten auf Java Kompromisse ein-
    Eine generelle Empfehlung ist es daher, auf die alle      zugehen. Dies verhindert die API-kompatible Weiter-
    drei Jahre erscheinenden LTS-Versionen zu setzen und      entwicklung der Standards, was Migrationsaufwände
    nicht dem Release-Zyklus zu folgen. Neue Features         für bestehende Projekte bedeuten wird. Es gibt Lö-
    stehen dadurch erst später zur Verfügung, aber für        sungsansätze, die besprochen werden, aber bis zur
    die meisten Projekte dürfte der Nutzen unter dem          Umsetzung muss dies als Negativpunkt bei der Tech-
    Aufwand einer ständigen Migration liegen.                 nologieauswahl gewertet werden.
    Einige Unternehmen, die stark mit dem Java-Öko-           Diese Veränderungen benötigen Zeit. Wir empfehlen
    system verbunden sind, bieten eigene Distributionen       abzuwarten, wie sich Jakarta EE und das MicroProfile
    mit dem Versprechen an, Fixes für mehrere Jahre zu        weiterentwickeln werden. Bei jeder Auswahl geeig-
    liefern. Red Hat hat die aktuelle Schirmherrschaft        neter Technologien müssen immer die individuellen
    über das OpenJDK-Projekt übernommen, um die Be-           Umstände bewertet werden. Mit dem Spring-Techno-
    teiligungen aller Unternehmen zu koordinieren. Oracle     logie-Stack steht eine bewährte Alternative bereit, die
    gibt also sein Monopol über das JDK auf und teilt die     für die meisten neuen Projekte eine geeignete Basis
    Verantwortung mit der Java Community. Somit steht         bietet.
    Java heute freier zur Verfügung als zuvor und der Ein-    Mit Jakarta EE ist es einfacher als je zuvor, sich an
    fluss der Community auf das OpenJDK ist wichtiger         der Weiterentwicklung der Enterprise-Umgebung zu
    geworden. Damit haben User eine bessere Wahlfrei-         beteiligen. Die Transition bedarf etwas Zeit, aber die
    heit, um die für sie passende Distribution zu finden.     Schaffung des MicroProfile zeigt deutlich, dass der
    Eine allgemeine Empfehlung für die Auswahl einer          Bedarf und die Bereitschaft aller Player gross ist, dem
    konkreten Distribution lässt sich schwer geben, da        Standard zu einer neuen Blüte zu verhelfen.
    viele individuelle Kriterien wie benötigte Support-Zei-   Unser Fazit: Java wird zwar konservativ, aber konti-
    ten oder Plattformverfügbarkeit berücksichtigt wer-       nuierlich weiterentwickelt und ist in einer Welt von
    den müssen.                                               Cloud-Infrastrukturen und containerisierten Anwen-
                                                              dungen immer noch unsere erste Wahl für IT-Projekte.
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.
10   adesso
     TECHNOLOGIE
     RADAR 2019/2020

                        PLATT­FORMEN

     JAVASCRIPT-
     PROJEKTE
                                                                      Native-
                                                                       Script

     IM RADAR

                                                ReactNa-
                                                  tive

                       ÜBERDENKEN      EVALUIEREN

                                                                            Lodash

                         Angular JS                        ReactJS

                                                                             RxJS

                                                ECMA-
                                                Script
                                                NEXT

                                      Aurelia

                                                                     Pact

                                                                        Ember
                        SPRACHEN UND
                        FRAMEWORKS
11

                                                                                                                       METHODEN
                                                                                                                       UND
                                              No-                                                                      TECHNIKEN
                                            Backend

                                                                            Redux

                                                       State
                                                      Manage-
                                                       ment
                                                      Library                                          Resour-
                                         Sin-                                                         ce-orien-
                                       gle-Page                      TDD/BDD                          ted Client
                                                                                                     Architecture
                                       Applicati-                                                      (ROCA)
                                          ons                                           Tool-
                                                                                      gestützte
                                                                                     Komponen-
                                                                                      ten-Doku-
                                                                 Progres-            mentation
                                              Respon-            sive Web
                                              sive Web             Apps
                                                 App                                               Web
                                                                                                  Compo-                Web-An-
    Node.js
                                                                                                   nents                wendung
  – Server-Si-                       Consu-                                       Off-                                als reaktives
 de-JavaScript                     mer-driven              Micro               line-First                                System
                                    Contracts            Frontends

                                                                                                         Web-ba-
                                                                  Kom-
                                                                                                       sierte Desk-
                                                                 ponen-             Mobile
                                   API-First                                                            top-Apps
                                                               ten-Archi-            First
                                                                 tektur

                           EINSETZEN                                                                                          EVALUIEREN     ÜBERDENKEN

ECMA-                                                           Babel
                 Angular                   Angular                                                 Protractor
Script 6
                                             CLI                                 Jest
                                                                                                                                              Yeoman

                                                                                                                       Compodoc
                                                           ESLint
                                       Codelyzer                                                    SASS
JavaScript
                                                                               Prettier

                 Jasmine

                                                           NPM                                                                        Gulp

                                          Karma
                                                                                 storybook
                                                                                                           Graph QL

 TypeScript                                                             Yarn
                                                     Webpack

                                                                                                                      Grunt
                                        TSLint                                      WebXR

   Vue.js
                                                    WebAuthn

                                                                                 Bower                                 WERKZEUGE
12   adesso
     TECHNOLOGIE
     RADAR 2019/2020

     JAVASCRIPT-PROJEKTE IM RADAR

     Durch die starke Verbreitung von client- sowie server-   PWAs auf dem Vormarsch
     seitigen JavaScript-Lösungen in den letzten Jahren ist   Ein weiterer starker Trend sind die sogenannten
     JavaScript zu einem ernst zu nehmenden Teil unserer      „Progressive Web Apps”. Dabei handelt es sich
     Angebotspalette geworden. Dafür benötigen wir ne-        um Webanwendungen, die wie native mobile oder
     ben dem Reifen von Sprachen und Frameworks auch          Desktopanwendungen genutzt werden können
     eine verlässliche und stabile Toolchain. In unserem      und die auch Hardware der Geräte nutzen können.
     aktuellen Radar spiegelt sich diese Reifung insbe-       Da schon 2018 das „Year of PWAs“ ausgerufen
     sondere durch neue Elemente in den Quadranten für        wurde und der Browser Support mittlerweile gut
     „Werkzeuge“ und „Sprachen und Frameworks“ wider.         genug ist, um PWA-Features produktiv einsetzen
                                                              zu können, ist auch das für uns eines der Top-The-
                                                              men im Jahr 2019.
     Front- und Backend einheitlich
                                                              Für unsere Kunden ist Sicherheit von jeher ein
     Client-seitige Single Page Applications (SPAs) sind      wichtiger Faktor bei der Entscheidung zum Ein-
     mittlerweile im grossen Mass im Einsatz. Auch die        satz von Technologien. Wir möchten im aktuellen
     Einführung der server-seitigen Technologie Node.js       Technologie-Radar den Fokus auf aktuelle Au-
     ersetzt in mehreren unserer Projekte die üblichen Ba-    thentifizierungsschnittstellen im Webumfeld le-
     ckend-Technologien – sowohl in grossen als auch in       gen. WebAuthn ist aus unserer Sicht ein wichtiger
     kleinen Unternehmen. Durch den Einsatz derselben         Baustein für die Verbindung vielschichtiger und
     Programmiersprache im Frontend und Backend konn-         sicherheitsrelevanter Prozesse im Netz.
     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.
13

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.

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.
14   adesso
     TECHNOLOGIE
     RADAR 2019/2020

                        PLATT­FORMEN
                                                                         Yammer

     MICROSOFT-
     PROJEKTE                            Windows

     IM RADAR                            10 Mobile
                                                          Azure
                                                         Service               SQL Server
                                                         Fabric

                                                                         UWP

                                                                               SharePoint

                           Windows                                 Microsoft
                           Phone 8                                   365
                                                          Dyna-                Dynamics
                                                        mics 365                 365
                                                      Operations and
                                                        Financial

                                                                                    Azure
                                                                  BizTalk          DevOps
                                                                                   Server

                       ÜBERDENKEN    EVALUIEREN

                                                                               CAML
                                                               d3.js

                                        R Server

                                                              datatables.
                                                                               jQuery
                                                                  net
                           ADO.Net

                                                                       knockout.
                                                 .Net Core                js

                                                                                    less
                                     jQuery UI

                                                                         Entity
                                                                       Framework
                                                                          Core

                                                             Kendo UI

                        SPRACHEN UND
                        FRAMEWORKS
15

                                                                                                                                      METHODEN
                                                                                                                                      UND
                                                                                                                                      TECHNIKEN
    Azure
  Functions

                               Azure
                              Web und
                                                                                                           Microsoft
                   iOS        Mobile                                                                       Solutions
                                                                                                          Framework
                                                                                                             (MSF)
   IIS

                                Azure                       Do-
                               DevOps                     main Dri-
 Azu-             Azure
                                                         ven Design
   re            Storage
                                                           (DDD)
Network
  Ser-
                                                                                          FastTrack
           Azu-
                           Azure AD
          re Ku-
         bernetes
          Service
                                                             CMMI                  DevOps und
                                                                                 Anwendungsle-
                              MS Data                                            benszyklus-Ver-
Azure AD         Azure        & AI Plat-                                            waltung
  B2C          Datenban-        form
                  ken
   Azu-                                                                     Con-                         Scrum
 re Com-                                                                  tinuous
                               Azure                  Agile Pla-
pute Ser-       ASP.NET                             nungsmetho-         integration
   vices        Web API                             den (KanBan)            (CI)

                                        EINSETZEN                                                                                      EVALUIEREN   ÜBERDENKEN

                                                    Balsa-          Browser                           Microsoft              Visual
                            .NET Fra-                                Stack           LINQPad                                 Studio
         ASP.NET                                    miq_ms                                              Flow
                             mework                                                                                           Code
                                                                                                                 Terra-
                                                                                                               form (von
                                                                                                               HashiCorp)
                                                Fiddler            Git_ms        K2 Black          MS Build
              bootstrap                                                           Pearl
                              ASPX
                                                                                                                       Sysinter-
Entity Fra-                                                                                                            nals Tools
 mework                                             HyperV             ILSpy
                                                                                        Nintex         PowerShell
                                                                                        Forms
                LINQ
                               C#
                                                               Nintex
Mono for                                        NuGet         Workflows                                                                    Browserify
                                                                                                     PowerApps
Xamarin                                                                               Power BI
                   Rx
                             Microsoft                                Postman
                              Graph                                 / DHC REST
                                                                       Client                                    Mi-
                                                     NUnit                        WebEssen-
  MS Bot                                                                                                       crosoft
Framework                                                                           tials                      Teams/
                                                               WebCom-                                         Groups
                          SignalIR                              piler
                                               VMWare

         F#

                                                                                                   InfoPath                           WERKZEUGE

          LINQ2SQL
16   adesso
     TECHNOLOGIE
     RADAR 2019/2020

     MICROSOFT-PROJEKTE IM RADAR

     Bei Microsoft-Projekten stellen wir fest, dass            Business Intelligence, Advanced Analytics und
     Cloud-Plattformen eine zunehmend wichtige Rolle           Künstliche Intelligenz (KI)
     spielen. Zentral ist dabei aber deren Integration in      Die Analyse von Informationen und Daten spielt für
     die bestehenden On-Premises-Umgebungen unserer            viele unserer Kunden gerade bei Digitalisierungsvorha-
     Kunden. Die Microsoft Cloud bietet eine Basis für An-     ben, Customer Management, klassischen DWH-The-
     wendungen, die sich aus dezentralisierten Diensten        men und auch im Bereich KI eine wesentliche Rolle.
     zusammensetzen, egal ob diese On-Premises oder            Die Azure-Komponenten der Microsoft-Data-Platt-
     aus der Cloud bereitgestellt werden. Die Microsoft        form unterstützen Big-Data- und Advanced-Analy-
     Cloud besteht aus Azure für Infrastructure- und Plat-     tics-Themen und bieten damit eine hochskalierbare
     form-as-a-Service-Diensten. Office 365 ist die Platt-     Infrastruktur quasi aus der Steckdose. Der Aufwand
     form für den kollaborativen Einsatz. Darüber hinaus       für den Aufbau und den Betrieb einer eigenen In-
     steht mit Dynamics 365 eine Umgebung für Business         house-Big-Data-Plattform ist für unsere Kunden also
     Applications bereit. Unsere Kunden profitieren zu-        kein limitierender Faktor mehr.
     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.
17

Selektierte 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:

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.
18   adesso
     TECHNOLOGIE
     RADAR 2019/2020

                        PLATT­FORMEN

     MOBILE                                             XCode
                                                        Server
                                                                              Google
                                                                              Home/

     ENTWICKLUNG                                                             HomeKit

     IM RADAR                                                  Android TV

                                                       Android
                                                      Auto/Apple
                                                         Car
                                                                                    Teamcity

                                              SAP iOS

                                                                        Bitbucket
                                          Visual
                                       Studio Team-
                                         service

                       ÜBERDENKEN    EVALUIEREN

                                                               PDFKit         Ionic

                                          Realm
                          Vuforia
                           (AR)

                                                                   Kotlin

                                                                                    Angular

                                                      ReactNa-
                                                        tive
                                    RxSwift
                                                                                  SAP UI5

                                                                         Qt for
                                                   Swift for             Mobile
                                                   Android

                                                               GreenDAO

                        SPRACHEN UND                                         Robolectric
                        FRAMEWORKS
19

                                                                                                                                      METHODEN
                                                                                                                                      UND
                     Amazon
                      Alexa
                                                                                                                                      TECHNIKEN
  Sales-
force CRM
 (Mobile
   SDK)
                                                                                             End-
                                                                                            to-End
                                                                                            Testing

                       inMotion

                                                                Asset Ge-
                                                                neration
      Cordova

                                                                                                                            Predictive
                                                                                                                               UI
                                                                                Backend
                                                   Optimistic                   as a Ser-
                                                       UI                         vice                Viper

            iOS

                       Android                              Usability                   Depen-
                                                             Testing                     dency
                                                                                       Injection

                                      EINSETZEN                                                                                           EVALUIEREN   ÜBERDENKEN

                                                                                                        VisualStu-
     ObjectiveC              Java                                        Fastlane                          dio                            Blackbelt
                                                   Gradle                                 An-
                                                                                         droid
                                                                                        Studio/
                                                                                        IntelliJ                     Xray (Jira)
                   Swift
                                                                        Xcode
 TypeScript
                                                  Cocoapods                                            Saucelabs

                                                                                     SonarQube                                     Microsoft
                             C#
                                                                        Grunt                                                        Flow
 RxAndro-
                                                   Gulp
 id/RxJava                                                                                             NuGet

                  Appium/
                                                                SwaggerUI           Postman
                  Selenium
                                                                                                                  Visu-
                                              Webpack                                                           alStudio
                                                                                                                 online
    SQLCipher
                        Xamarin.                              TFS/De-
                       Native & Xa-
                       marin.Forms                             vOps                                                           AppCode

                                                                                             LoRa
  Tensor-
 flow.Lite
                      Flutter/                            Carthage
                        Dart
                                                                                                                                      WERKZEUGE
 Angular.JS
                    PSPDFKit
20   adesso
     TECHNOLOGIE
     RADAR 2019/2020

     MOBILE ENTWICKLUNG IM RADAR

     Die Durchdringung von Mobile Devices im privaten          Cross-Plattform-Lösungen
     und beruflichen Kontext schreitet immer weiter voran.     Aus technologischer Sicht hat das letzte Jahr ver-
     Eine Mobile-Strategie ist Kernbestandteil der Digita-     gleichsweise wenige disruptive Änderungen gebracht.
     lisierungsvorhaben, die uns im letzten Jahr begegnet      Auf nativer Seite sind Swift und Kotlin nach wie vor
     sind. Gerade im Bereich „Digital Workplace“ nimmt         gesetzt und auch im Bereich der Cross-Plattform-Fra-
     die Zahl der Projekte, in denen Mitarbeitende bei ihrer   meworks war im letzten Jahr wenig Bewegung zu be-
     täglichen Arbeit mit mobilen Lösungen unterstützt         obachten. Als Cross-Plattform-Lösungen setzen wir
     werden, weiter zu. Im Zuge der wachsenden Bedeu-          nach wie vor hauptsächlich auf Cordova/Ionic und Xa-
     tung von Mobile für Unternehmen versuchen immer           marin (Native & Forms). Je nach Projekt entscheiden
     mehr Unternehmen auch intern Prozess- und Archi-          wir uns bereits während der Konzeption, welche der
     tektur-Knowhow für Mobile-Projekte aufzubauen.            genannten Technologien zum Einsatz kommt.
                                                               Alternative Cross-Plattform-Lösungen wie React.Na-
                                                               tive oder Flutter beobachten wir nach wie vor und prü-
     Weg von Offline
                                                               fen in regelmässigen Abständen einen Einsatz. React.
     Eine weiterer Trend, den wir in unseren Projekten be-     Native bietet gegenüber unserem aktuellen Toolset
     obachten, ist eine Wegentwicklung von der weiterge-       keine gravierenden Vorteile, die einen Ein- oder Um-
     henden Offline-Fähigkeit von Applikationen. Aktuelle      stieg attraktiv machen würden. In Flutter sehen wir
     Apps verfügen zwar über eine stabile Basisfunktiona-      grosses Potenzial. Jedoch hat das Framework nach
     lität, ihren eigentlichen Funktionsumfang erreichen       einem anfänglichen Pushen durch Google auch im
     sie aber meist nur im Zusammenspiel mit Backends          letzten Jahr keinen wirklichen Schub erfahren, sodass
     und Cloud-Diensten bei bestehender Online-Verbin-         abzuwarten bleibt, ob sich Flutter kurzfristig etabliert
     dung, sodass die Offline-Fähigkeit sich meist auf         oder sich in die lange Reihe der von Google beerdigten
     ein Caching der lokalen Daten bis zur nächsten On-        Projekte einreiht.
     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.
21

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

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.
22   adesso
     TECHNOLOGIE
     RADAR 2019/2020

                        PLATT­FORMEN

                                                   Bamboo

     FOKUS-RADAR:
     JAVA TOOLCHAIN
                                                 GoCD

                                                                Jenkins

                                                    VMware
                                                   ESX Server

                       ÜBERDENKEN   EVALUIEREN

                                                  Failsafe

                        SPRACHEN UND
                        FRAMEWORKS
23

                                                                                                                                METHODEN
                                                                                                                                UND
                                                                                                                                TECHNIKEN

Nexus
                  Graylog 2

                                                      Conti-
                                                      nuous
                                                     Delivery

                   Gitlab

 Elastic Stack
                                                       Auto-
 als Log-Platt­
                                                     matisierte                      Continu-
      form
                                                     End-to-end                     ous Integ-
                                                       Tests                          ration
                   Docker

                              EINSETZEN                                                                                            EVALUIEREN   ÜBERDENKEN

                                                    Chef          Bitbucket                Maven                     Vagrant

                                     Sonarqube                                                         Postman                     Gatling
                                                                  Intellij IDEA /        OWASP
                                                                    Webstorm           Dependendy
                                                    Balsamiq                              Check

                                                                                                                                Java
                                                                                                         Structure             Mission
                                          Eclipse                  jQAssis-                                                    Control
                                                                     tant                                   101
                                                                                        Swagger

                                                       Puppet
                                                                          JIRA            Rest-assu-
                                      JMeter
                                                                                             red               logFaces

                                                       Gradle
                                                                                                                           Java Me-
                                                                       Ansible
                                                                                                                             lody
                                                                                              Test-Ma-
                                      SpiraTest                                                nager/
                                                                                             Lab-Mana-
                                                                                                 ger

                                                                        UpSource

                                            YouTrack
                                                                                                                                WERKZEUGE
24   adesso
     TECHNOLOGIE
     RADAR 2019/2020

     FOKUS-RADAR: JAVA TOOLCHAIN

     Java als technologische Plattform hat zweifelsfrei seit    Mehr Cloud-artige Strukturen
     vielen Jahren die Reife für den breiten und vielfältigen   Ein Trend, der ebenfalls aus der Open-Source-Welt in
     Einsatz in Unternehmen. Gleichzeitig verändert sich        die Unternehmenswelt „schwappt“, ist ungebrochen
     das Ökosystem jedoch immer wieder grundlegend, da          der Trend zu „cloud-artigen“ Strukturen. Auf der Welle
     Innovationen insbesondere im methodischen Quad-            der Container-Nutzung sind Themen wie Cloud-native
     ranten zu veränderten Entwicklungsprozessen füh-           heute in Unternehmen präsent. Kubernetes-basierte
     ren. Diese stellen neue Anforderungen an die Werk-         Plattformen werden von immer mehr Unternehmen
     zeuge und Plattformen.                                     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-
     Social Coding                                              sonders interessant ist hier auch die Wechselwirkung
     Ein Beispiel für diese Veränderungen sind Soci-            zwischen den Features der modernen Betriebsplatt-
     al Coding Practices, die über den Einsatz in Open—         formen und den Softwarearchitekturen, die beispiel-
     Source-Projekten auf GitHub, GitLab und Co. hinaus         weise für Aufgaben, die bisher als Teil der Software-
     heute auch sinnvoll in unseren Kundenprojekten ein-        entwicklung „eingebaut“ wurden, nun durch Services
     gesetzt werden. Für den Einsatz in Kundenprojekten         der Betriebsplattformen abgebildet werden können.
     werden, teilweise von den Open-Source-Plattformen          Konzepte wie Side-Cars mit Istio oder Service-Regis-
     selbst, passende Pakete ihrer Plattformen bereitge-        tries einer Kubernetes-Plattform sind Beispiele dafür.
     stellt, die so z. B. On-Premise oder mit entsprechen-      Im Projekt ergeben sich hierdurch zahlreiche neue
     den Integrationen und Funktionen für den Einsatz in        Herausforderungen, die einerseits den Softwareent-
     Unternehmen ausgestattet sind.                             wicklungsprozess selbst betreffen, andererseits den
     Die Leader in diesem Segment sind GitLab und Atlas-        Betrieb dieser Stacks umfassen. Ersteres ist in vielen
     sian Bitbucket, wobei beide Systeme unterschiedliche       Projekten mittels Prozess-Frameworks wie Git Flow
     Philosophien verfolgen. Während GitLab sich als voll-      bereits gelebte Realität, benötigt aber auch eine
     integrierten Stack innerhalb eines geschlossenen Öko-      Anlaufphase. Letzteres zieht tiefgreifende Verände-
     systems sieht und den gesamten Projektprozess vom          rungen nach sich, weil das erforderliche Know-How
     Requirements Engineering über Code-Verwaltung und          im Projektteam um Themen wie Software Defined
     -Build bis zur containerbasierten Auslieferung abbil-      Networking, Kapazitätsplanung, Überwachung und
     den will, ist Bitbucket eher als Baustein im Kontext       Orchestrierung sowie Lifecycle ergänzt werden und
     des gesamten Atlassian-Stacks gedacht. Dieser er-          mit entsprechenden Werkzeugen (Ansible, Kuber-
     weitert Git als Configuration Management-Werkzeug          netes usw.) unterfüttert werden muss. Zudem ent-
     um Komponenten der Zusammenarbeit, überlässt               stehen hierdurch neue Herausforderungen für den
     aber die anderen Bestandteile des Prozesses etablier-      klassischen IT-Betrieb, weil die Projekte wesentliche
     ten Tools wie Jira, Confluence oder Bamboo.                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.
25

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

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.
26   adesso
     TECHNOLOGIE
     RADAR 2019/2020

                       Die adesso-Softwarearchitekten:
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: info@adesso.ch
adesso Schweiz AG
28 Vulkanstrasse
         adesso
                 106
         TECHNOLOGIE
  8048 Zürich
         RADAR 2019
  T +41 58 520 98 00

  info@adesso.ch
  www.adesso.ch
Sie können auch lesen