TECHNOLOGIE RADAR 2019/2020 - adesso Schweiz AG
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
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 PLATTFORMEN 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 PLATTFORMEN 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 PLATTFORMEN 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 PLATTFORMEN 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