Spring Boot Admin: Einfach genial und genial einfach

14. Oktober 2018 Posted by Stephan Kopp

Spring Boot Applikationen eignen sich optimal, um eine Microservice Applikation bestehend aus vielen kleinen Applikationen zu erstellen. Doch wie überwacht und verwaltet man diese Sammlung aus einzelnen Programmen?

Das Spring Boot Admin Projekt ist hierfür eine geniale und vor allem kostenlose Ergänzung.

Spring_Boot_Admin-3.png

Spring Boot Admin Server

Als Admin Server erstellt man sich eine eigene Spring Boot Applikation, fügt die Maven Dependency und die Annotation @EnableAdminServer hinzu und das wars schon.

pom.xml

<dependency>
   <groupId>de.codecentric</groupId>
   <artifactId>spring-boot-admin-starter-server</artifactId>
</dependency>

Spring Boot Applikation

@EnableAdminServer
@SpringBootApplication
public class AdminServerApplication {

   public static void main(String[] args) {
      SpringApplication.run(AdminServerApplication.class, args);
   }
}

An diesem Server können sich jetzt alle Spring Boot Applikationen anmelden. Ein Beispiel findet man hier.


Nun zur Client Applikation, die sich am Server anmeldet

Dazu muss man lediglich das Client Paket in die Dependencies aufnehmen und zwei Parameter setzen. Das wäre die minimale Variante, aber natürlich noch längst nicht alles. Um wirklich alle Features nutzen zu können, müssen doch noch ein paar Dinge gemacht werden. Zunächst aber zu den Basics.

pom.xml

<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-client</artifactId>
    <version>2.0.3</version>
</dependency>

application.properties

spring.boot.admin.client.url=http://localhost:9090

Actuator

Dieses Paket integriert eine Menge nützlicher APIs in die eigene Applikation, welche vom Spring Boot Admin Server verwendet werden um die eigene Applikation zu überwachen und auch zu steuern.

pom.xml

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

application.properties

management.endpoints.web.exposure.include=*
logging.file=log/logfile.txt
logging.pattern.file=%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p) %clr(${PID}){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n%wEx

Der Actuator funktioniert auch ohne Konfiguration, aber mit diesen Einstellungen passiert zusätzlich zu den Standards noch folgendes:

  • Es werden alle Endpoints aktiviert, nicht nur health und up
  • Es wird ein Logfile geschrieben und farblich formatiert, dadurch wird auch automatisch der Endpoint aktiviert um auf dieses Logfile zuzugreifen

Security

Security sollte von Beginn an immer aktiviert sein. Damit benötigt natürlich auch der Admin Server Zugang zu unserer Applikation, bzw. nur zur /actuator API. Das kann man z.B. durch einen eigenen zentralen User machen, oder auch mit selbst generierten Accounts pro Applikation. Diese Zugangsdaten müssen dem Admin Server bei der Anmeldung mitgeteilt werden.

pom.xml

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>

application.properties

spring.security.user.name=user
spring.security.user.password=password

spring.boot.admin.client.instance.metadata.user.name=${spring.security.user.name}
spring.boot.admin.client.instance.metadata.user.password=${spring.security.user.password}

Das wars schon

Dieses Basis Setup genügt, um ein zentrales (wirklich schönes) Webinterface zu haben, über das ich alle notwendigen Informationen meiner Applikationen abrufen kann. Es geht dabei nicht nur um den reinen Status up/down. Ich kann direkt auf die Logs der Services zugreifen oder mir die eingehende http Requests anschauen und noch sehr viel mehr.

Spring_Boot_Admin-7.png

Spring_Boot_Admin-4

Spring_Boot_Admin-5

Ein nettes Feature ist z.B. auch die Veränderung meiner Log Einstellungen ohne die Services neu starten zu müssen.

Spring_Boot_Admin-6

Jeder, der sich mit Spring Boot Applikationen beschäftigt, sollte sich das Spring Boot Admin Projekt mal genauer anschauen. Unter anderem deshalb liebe ich OpenSource.

Meinen Beispiel Code kann man sich hier anschauen.

Eine Reise muss im Kopf beginnen

9. Oktober 2018 Posted by Stephan Kopp

Es war lange ruhig in meinem Blog, mit diesem Artikel möchte ich ihn wieder etwas aufleben lassen. Es soll eine Geschichte einer Reise werden. Keine Sorge, obwohl ich gerade frisch aus dem Urlaub zurück bin, wird das hier jetzt kein Reiseblog (den habe ich hier). Es geht um eine Reise, die primär in meinem Kopf stattgefunden hat und meiner Meinung nach eigentlich nie zu Ende sein wird. Es geht um meine berufliche Neuausrichtung, von einem eingefleischten, gelb blutenden Lotus Notes Entwickler, hin zu einem OpenSource verfechter und Fullstack Developer.

Nach meinem Studium, bzw. schon währenddessen habe ich mich in die Lotus Notes Welt eingearbeitet. In jahrelanger Arbeit habe ich viel Erfahrung und Wissen im Infrastruktur- und Entwicklungsumfeld angehäuft. Ich habe nie ernsthaft darüber nachgedacht, etwas anderes zu machen. Die Arbeit machte Spaß, die Kollegen waren toll und an das Produkt hatte man sich irgendwann gewöhnt. Negative Meinungen konnte ich lange Zeit gar nicht nachvollziehen und habe es meistens leichtfertig auf die Unwissenheit der Leute geschoben. Selbst als die Migrationen in Richtung Exchange immer weiter um sich gegriffen haben, war ich ein eiserner Verfechter der Plattform und bin nicht müde geworden um sie zu kämpfen.

Ich kann rückwirkend gar nicht so richtig einen Zeitpunkt ausmachen, als sich diese Einstellung bei mir geändert hat. Es war mehr ein fließender Prozess. Es gab auch einige Änderungen in meinem Arbeitsumfeld, durch zahlreiche Übernahmen und Umstrukturierungen habe ich mir immer öfter Gedanken über meine Zukunft gemacht. Doch eigentlich habe ich nie wissentlich die Entscheidung getroffen, ich will ab jetzt kein Lotus Notes mehr machen. Rein aus Interesse habe ich angefangen mich eher im privaten mit anderen Themen zu beschäftigen. Auch das ist lange Jahre so gut wie auf der Strecke geblieben, ich hatte schlichtweg kein Interesse an etwas anderem.

Meine erste Exkursion war die iOS Entwicklung. Da ich mit dem iPhone zu einem absoluten Apple Fan mutiert bin, war es für mich naheliegend mich damit mal etwas zu beschäftigen. Doch so ganz konnte ich meine Wurzeln nicht los lassen. Das erste was mir eingefallen ist, war eine iOS App um auf unseren Lotus Notes Teamkalender zuzugreifen. Nach einigen Büchern, dem bekannten Stanford Online Kurs App Enwicklung und vielen, vielen Stunden war die App fertig und im App Store. Alles in meiner Freizeit und ohne damit extra Geld zu verdienen, aber es hat enorm viel Spaß gemacht. Die Lehre, die ich für mich daraus gezogen habe, war nicht dass ich meine Zukunft jetzt als iOS Entwickler Suche. Sondern vielmehr, wieviel Spaß es mir gemacht hat, mich mit etwas Neuem zu beschäftigen ohne auf die Release Zyklen einer IBM angewiesen zu sein.

Nächster Stopp war dann die Java Entwicklung. So ganz neu war es aber nicht für mich. Im Lotus Notes Umfeld hatte ich schon etwas Berührung damit, aber nicht so wirklich viel. Ich war lange Zeit kein Freund von Java, kann aber gar nicht so richtig erklären warum. Vermutlich war es eine Mischung aus Unwissenheit und ein paar schlechten Erfahrungen. Der Funke hat bei mir gezündet als ich das erste mal die JAX in Mainz besucht habe. Zunächst wurde mir klar, dass ich überhaupt nichts weiß. Ich habe viele Sessions besucht und mir ohne Ende Notizen gemacht, was ich mir alles durchlesen muss um die Zusammenhänge zu verstehen, die hier im Raum anscheinend jeder schon kennt. Mit einer riesigen Bugwelle vor mir an Dingen die ich noch nicht weiß, aber auch einer ganzen Menge Ideen und Motivation, habe ich mich dann ans Werk gemacht. Spring Boot war eines dieser Stichworte, die ich in den Sessions des öfteren gehört und mir als erstes angesehen habe. Die Lernkurve war sehr hart zu nehmen, gefühlt hinter jeder Ecke sind neue Themen aufgetaucht, die ich noch nicht kannte: Maven? Was ist das? Git? Nie gehört. REST? Kenne ich nur rudimentär. Welche Entwicklungsumgebung soll ich nehmen? Wie zum Geier bekomme ich jetzt noch ein schickes UI? Und, und und…

Das Prinzip von Spring Boot hat mir gefallen. Ohne viel Verständnis und quasi ohne Grundstudium trotzdem recht schnell zu annehmbaren Ergebnissen. Der gleiche Grund hat mich zum Vaadin Framework gebracht. Erstmal bei Java zu bleiben und trotzdem ein Browser Frontend hin zu bekommen, ohne auch noch JavaScript und HTML mit auf die Agenda zu nehmen war hilfreich. Ich habe für die Themen viel Zeit, primär Freizeit geopfert. Von der Firma und meinem Chef wurde ich hier nicht sonderlich unterstütz, außer dass ich nach langen Diskussionen die Jax Konferenz besuchen durfte. Mein Geld habe ich weiterhin mit Lotus Notes verdient, wobei hier die Motivation immer weiter nachgelassen hat.

Dann bekam ich eines Tages eine Gelegenheit, die mir zwar viele schlaflose Nächte beschert hat, aber ich habe es nie bereut. Ein Kunde kam auf mich zu, mit dem ich schon seit vielen Jahren im Notes Umfeld sehr gut zusammengearbeitet habe. Für deren Migration von Notes nach Exchange hatte ich ihnen vor einiger Zeit ein recht umfangreiches Projekt Tool entwickelt, um die Migration zu planen und soweit möglich zu automatisieren. Jetzt stand bei ihnen die Migration von einer gehosteten Exchange Umgebung in die Microsoft Cloud an. Klingt erstmal nicht kompliziert, aber die Details sind dann doch immer recht tückisch, vor allem bei einer Größenordnung von 50.000 Usern und mehr. Die Frage war, ob ich solch ein Projekt Tool noch einmal entwickeln könnte. Dieses mal kam Notes natürlich nicht in Frage und ich habe die Gelegenheit beim Schopfe gepackt, bin ins kalte Wasser gesprungen und habe gesagt dass ich das hin bekomme. Das war mein erstes Projekt außerhalb der IBM und Lotus Notes Blase, mit dem ich Geld für die Firma verdient habe. Es hat mich eine Menge Schweiß gekostet, aber am Ende habe ich eine gut funktionierende Spring Boot und Vaadin Applikation hin bekommen, die wir in einer AWS Umgebung gehostet haben. Dabei sind mir noch x weitere Themen über den Weg gelaufen: AWS, Build Pipelines, automatische Deployments, Message Queues, Active Directory und und und… Ich glaube ich habe in meinem Leben noch nie so viel gelernt wie in dieser Zeit, aber auch noch nie so wenig geschlafen. Als dieses Projekt beendet war, viel es mir sehr schwer mich wieder ernsthaft mit Lotus Notes zu beschäftigen. So einfach war es natürlich nicht, noch weitere Projekte in dieser Art zu generieren. Für mich war klar, dass meine Zukunft jetzt vielleicht nicht zwingend genau in diesem Bereich liegt, aber auf jeden Fall nicht mehr bei Lotus Notes.

Dieses Projekt liegt jetzt schon einige Zeit zurück. Ja, ich mache immer noch Lotus Notes Projekte, aber zu meinem Glück ist das mittlerweile nur noch ein ganz kleiner Teil meiner Arbeit. Eigentlich nur noch die Betreuung meines Migration Managers für Notes nach Exchange, den wir als Produkt verkaufen und ich (leider) immer noch betreuen muss. Bei Spring Boot bin ich hängen geblieben und habe auch einen weiteren Kollegen damit anstecken können, sodass ich das jetzt nicht mehr alles alleine machen muss. Für das UI Thema bin ich von Vaadin abgekehrt und habe mich mit Angular beschäftigt. Hauptsächlich aus dem Grund, da wir hier einige Synergie Effekte mit den Sharepoint Entwicklern haben, die ebenfalls damit arbeiten.

Aktuelles Thema, mit dem ich mich seit Anfang des Jahres beschäftige sind Microservices. Das habe ich auch wie üblich auf einer Konferenz aufgeschnappt und die Logik und Vorteile haben mich relativ schnell überzeugt. Als kleines Lernprojekt habe ich mit einem Kollegen Anfang des Jahres einen Teamkalender entwickelt (ja, wieder das Thema mit dem ich iOS begonnen hatte, aber mittlerweile sind wir auch nach Exchange migriert). Diesen haben wir als Microservice Applikation konzipiert, entwickelt und danach war ich von dem Konzept restlos begeistert. Das ist wohl auch bei unserem CTO gut rüber gekommen, als wir das auf einer internen Veranstaltung gezeigt haben. Prompt dürfen wir seitdem unseren Digitalhub in eine Microservice Applikation überführen und weiter entwickeln.

Ich muss sagen, ich habe damit einen Punkt meiner Reise erreicht, an dem mir die Arbeit wieder enorm viel Spaß macht. Die Reise ist damit aber bestimmt noch nicht beendet, ich bin gespannt welches Thema als nächstes um die Ecke kommt und meinen Funken wieder entzündet.

 

Ich auf dem Microsoft Tech Summit – ein Dauer Déjà-vu

21. Februar 2018 Posted by Stephan Kopp

Heute war ich zum ersten mal auf einer reinen Microsoft Veranstaltung, dem Tech Summit in Frankfurt. Ich sehe meine persönliche Zukunft eher in der (relativ) Hersteller unabhängigen Software Entwicklung, aber man muss sich ja trotzdem auf dem aktuellen Stand halten.

Mit meiner langjährigen IBM Event Erfahrung war das doch ein sehr interessanter Tag und bisweilen sogar sehr witzig. Auch wenn die Technologien sich weiter entwickelt haben und alles sehr viel moderner anmutet als die IBM Welt, ähneln sich viele Konzepte und Ideen doch gewaltig. Ich glaube die Keynote hätte man mit einfachem „Search-and-Replace“ beinahe ohne Probleme zwischen IBM und Microsoft austauschen können. Mobiles arbeiten, Zusammenarbeit im Team, Künstliche Intelligenz und natürlich alles in der Cloud. Die Produktnamen muss man tauschen, aber die Ideen sind sehr ähnlich.

Teams vs. Watson Workspace

Zusammenarbeit zwischen Personen ist ein großes Thema. Microsoft nennt sein Produkt Teams, IBM nennt es Watson Workspace. Die Konzepte sind sehr ähnlich. Persistente Chaträume als Basis, Integration weiterer Standard Produkte und Anpassbarkeit über APIs. Ich persönliche verwende Teams und finde es nicht schlecht. Es kommt aber meiner Meinung nach immer mehr auf das Team und die Leute an und nicht unbedingt auf das Werkzeug.

Watson vs. AI

Bei IBM war vor einigen Jahren alles „social“, jetzt ist es „cognitive“ und Watson. Microsoft spricht eher etwas abstrakter von „AI“, also Artificial Intelligence. Beide Konzepte sind eigentlich identisch, es geht um Machine Learning, Deep Learning und künstliche Intelligenz. Von wirklichen Anwendungsfällen, in der breiten Masse solche Techniken selbst zu entwickeln und einzusetzen, sind wir aber noch recht weit weg. Zunächst klingen die Vorträge immer sehr wissenschaftlich und Beispiele werden genannt, bei denen aus großen unübersichtlichen Datenmengen plötzlich, wie von Zauberhand sinnvolle Entscheidungen getroffen werden. Dann wird aber meistens recht schnell die Brücke zu den aktuell einzig sinnvollen Beispielen geschlagen, den Themen Bilderkennung, Text-to-Speech, Speech-to-Text und Übersetzungen. Es sind auf beiden Seiten Cloud Services, die eine API anbieten und entsprechend in die eigene Applikation integriert werden müssen. Die Unterschiede sind vermutlich marginal.

Die Idee, dass man einem Assistenten (einem Bot) die Terminplanung überlässt, habe ich auch bei beiden Herstellern schon gesehen. Ob das im echten Leben wirklich irgendjemand einsetzen würde, ist für mich fraglich.

Outlook Add-Ins vs. Notes Client Widgets

Als die Outlook Add-Ins gezeigt wurden, musste ich sehr schmunzeln. Die gleichen Demos und Ideen habe ich schon auf IBM Events zum Thema Notes Client Widgets gesehen. Alles tolle Ideen und könnte für manche Anwender wirklich sinnvoll und hilfreich sein, aber im Detail ist das alles viel zu komplex und eine Menge Bastelarbeit für überschaubaren Nutzen. Die allermeisten Admins werden sofort die Policy suchen, mit der sie ihren Anwendern solche Spielereien verbieten können, um unnötige Tickets zu vermeiden.

Power Apps vs. Notes Composite Applications vs. Embedded Experience

Power Apps sollen einfache Applikationen sein, die durch Wizards erzeugt werden. Die Idee dahinter ist, die Standard Produkte mit weiteren Funktionen und Inhalten auszustatten und sinnvoll zu verbinden. Also z.B. Daten und Funktionen aus verschiedenen Produkten und Systemen zu verbinden und somit für die Anwender effektiver zu gestalten. Ähnliches hat IBM mit den Composite Applications und Embedded Experience versucht. Technisch ist die Microsoft Lösung natürlich um einiges fortschrittlicher, aber mal sehen, ob sie auch so schnell die Lust daran wieder verlieren, wie IBM damals an ihrer Idee.

Alles recht ähnlich, bleibt abzuwarten ob Microsoft es besser hin bekommt als IBM

Alles in allem klingen viele der Ideen sehr ähnlich. Bei IBM Events war ich damals oft sehr enthusiastisch bei solchen neuen Features, wurde aber sehr schnell von der lieblosen Umsetzung und dem schlechten Marketing enttäuscht. Bin gespannt, ob sich Microsoft an der ein oder anderen Stelle besser anstellt, zutrauen würde ich es ihnen aktuell, alleine schon durch ihre Marktmacht und extrem hohen Einfluss.

Das große Manko bei all diesen Ansätzen ist die Durchdringung der Produkte. Setzt man alles aus dem Hersteller Katalog ein und setzt auf eine 100% Cloud Strategie, klingen die Integrationsmöglichkeiten sehr verlockend und einfach. Gemeinsam haben sie jedoch das Problem, sobald man von den Demo Szenarien abweicht, hat man ein Problem und eine Lösung wird schwierig, bis unmöglich, aber auf jeden Fall sehr teuer.

Ich bin und bleibe ein Fan von OpenSource und offenen Schnittstellen. Das macht Lösungen und Applikationen sehr viel flexibler und man macht sich selbst nicht so abhängig von einem einzelnen Hersteller. Trotzdem war der Tech Summit recht interessant und sei es nur um sich ein wenig über die Parallelen zwischen IBM und Microsoft zu amüsieren.

Zum Thema Microsoft bin ich auch über eine sehr interessante bis erschreckende ARD Reportage „Das Microsoft Dilemma“ gestoßen. Aktuell noch in der Mediathek verfügbar.

Ich auf dem Microsoft Tech Summit – ein Dauer Déjà-vu

21. Februar 2018 Posted by Stephan Kopp

Heute war ich zum ersten mal auf einer reinen Microsoft Veranstaltung, dem Tech Summit in Frankfurt. Ich sehe meine persönliche Zukunft eher in der (relativ) Hersteller unabhängigen Software Entwicklung, aber man muss sich ja trotzdem auf dem aktuellen Stand halten.

Mit meiner langjährigen IBM Event Erfahrung war das doch ein sehr interessanter Tag und bisweilen sogar sehr witzig. Auch wenn die Technologien sich weiter entwickelt haben und alles sehr viel moderner anmutet als die IBM Welt, ähneln sich viele Konzepte und Ideen doch gewaltig. Ich glaube die Keynote hätte man mit einfachem „Search-and-Replace“ beinahe ohne Probleme zwischen IBM und Microsoft austauschen können. Mobiles arbeiten, Zusammenarbeit im Team, Künstliche Intelligenz und natürlich alles in der Cloud. Die Produktnamen muss man tauschen, aber die Ideen sind sehr ähnlich.

Teams vs. Watson Workspace

Zusammenarbeit zwischen Personen ist ein großes Thema. Microsoft nennt sein Produkt Teams, IBM nennt es Watson Workspace. Die Konzepte sind sehr ähnlich. Persistente Chaträume als Basis, Integration weiterer Standard Produkte und Anpassbarkeit über APIs. Ich persönliche verwende Teams und finde es nicht schlecht. Es kommt aber meiner Meinung nach immer mehr auf das Team und die Leute an und nicht unbedingt auf das Werkzeug.

Watson vs. AI

Bei IBM war vor einigen Jahren alles „social“, jetzt ist es „cognitive“ und Watson. Microsoft spricht eher etwas abstrakter von „AI“, also Artificial Intelligence. Beide Konzepte sind eigentlich identisch, es geht um Machine Learning, Deep Learning und künstliche Intelligenz. Von wirklichen Anwendungsfällen, in der breiten Masse solche Techniken selbst zu entwickeln und einzusetzen, sind wir aber noch recht weit weg. Zunächst klingen die Vorträge immer sehr wissenschaftlich und Beispiele werden genannt, bei denen aus großen unübersichtlichen Datenmengen plötzlich, wie von Zauberhand sinnvolle Entscheidungen getroffen werden. Dann wird aber meistens recht schnell die Brücke zu den aktuell einzig sinnvollen Beispielen geschlagen, den Themen Bilderkennung, Text-to-Speech, Speech-to-Text und Übersetzungen. Es sind auf beiden Seiten Cloud Services, die eine API anbieten und entsprechend in die eigene Applikation integriert werden müssen. Die Unterschiede sind vermutlich marginal.

Die Idee, dass man einem Assistenten (einem Bot) die Terminplanung überlässt, habe ich auch bei beiden Herstellern schon gesehen. Ob das im echten Leben wirklich irgendjemand einsetzen würde, ist für mich fraglich.

Outlook Add-Ins vs. Notes Client Widgets

Als die Outlook Add-Ins gezeigt wurden, musste ich sehr schmunzeln. Die gleichen Demos und Ideen habe ich schon auf IBM Events zum Thema Notes Client Widgets gesehen. Alles tolle Ideen und könnte für manche Anwender wirklich sinnvoll und hilfreich sein, aber im Detail ist das alles viel zu komplex und eine Menge Bastelarbeit für überschaubaren Nutzen. Die allermeisten Admins werden sofort die Policy suchen, mit der sie ihren Anwendern solche Spielereien verbieten können, um unnötige Tickets zu vermeiden.

Power Apps vs. Notes Composite Applications vs. Embedded Experience

Power Apps sollen einfache Applikationen sein, die durch Wizards erzeugt werden. Die Idee dahinter ist, die Standard Produkte mit weiteren Funktionen und Inhalten auszustatten und sinnvoll zu verbinden. Also z.B. Daten und Funktionen aus verschiedenen Produkten und Systemen zu verbinden und somit für die Anwender effektiver zu gestalten. Ähnliches hat IBM mit den Composite Applications und Embedded Experience versucht. Technisch ist die Microsoft Lösung natürlich um einiges fortschrittlicher, aber mal sehen, ob sie auch so schnell die Lust daran wieder verlieren, wie IBM damals an ihrer Idee.

Alles recht ähnlich, bleibt abzuwarten ob Microsoft es besser hin bekommt als IBM

Alles in allem klingen viele der Ideen sehr ähnlich. Bei IBM Events war ich damals oft sehr enthusiastisch bei solchen neuen Features, wurde aber sehr schnell von der lieblosen Umsetzung und dem schlechten Marketing enttäuscht. Bin gespannt, ob sich Microsoft an der ein oder anderen Stelle besser anstellt, zutrauen würde ich es ihnen aktuell, alleine schon durch ihre Marktmacht und extrem hohen Einfluss.

Das große Manko bei all diesen Ansätzen ist die Durchdringung der Produkte. Setzt man alles aus dem Hersteller Katalog ein und setzt auf eine 100% Cloud Strategie, klingen die Integrationsmöglichkeiten sehr verlockend und einfach. Gemeinsam haben sie jedoch das Problem, sobald man von den Demo Szenarien abweicht, hat man ein Problem und eine Lösung wird schwierig, bis unmöglich, aber auf jeden Fall sehr teuer.

Ich bin und bleibe ein Fan von OpenSource und offenen Schnittstellen. Das macht Lösungen und Applikationen sehr viel flexibler und man macht sich selbst nicht so abhängig von einem einzelnen Hersteller. Trotzdem war der Tech Summit recht interessant und sei es nur um sich ein wenig über die Parallelen zwischen IBM und Microsoft zu amüsieren.

Zum Thema Microsoft bin ich auch über eine sehr interessante bis erschreckende ARD Reportage „Das Microsoft Dilemma“ gestoßen. Aktuell noch in der Mediathek verfügbar.

Nette Begrüßung am ersten Arbeitstag nach dem Urlaub

5. Februar 2018 Posted by Stephan Kopp

Wenn man es mit den Urlaubsgrüßen und Sonnen Fotos ein wenig übertreibt, wird man so von seinen Kollegen am ersten Arbeitstag begrüßt 🙂

2018 kann losgehen

2. Februar 2018 Posted by Stephan Kopp

Ich weiß es ist schon Februar, aber ich hatte die letzten 3 Wochen Urlaub und starte sozusagen erst jetzt so richtig ins neue Jahr. Ich bin kein Freund von guten Vorsätzen, primär weil ich mich eh selten daran halte. Trotzdem hat natürlich jeder so seine Vorstellungen und Wünsche an ein neues Jahr und blickt auf das Vergangene zurück.

Beruflicher Wandel

Mein Berufsleben habe ich als Lotus Notes Entwickler gestartet, das ist mittlerweile schon ein paar Jährchen her. Vor einigen Jahren, als das Ende dieser Ära abzusehen war, habe ich angefangen mich auch mit anderen Dingen zu beschäftigen. Nach einigen Experimenten bin ich dann bei Java, dem Vaadin und Spring Boot Framework gelandet. Rückblickend kann ich sagen, dass ich letztes Jahr nun erstmals mehr Zeit mit diesen neuen Themen verbracht habe und weniger mit Lotus Notes. Das Thema Notes/Domino wird mich natürlich auch weiterhin begleiten, aber ich denke der Fokus wird sich weiter darauf konzentrieren, die Kunden bestmöglich bei der Ablösung zu beraten.

Mein persönlicher Wunsch für dieses Jahr ist es, diese Projekte, die sich komplett jenseits der altbekannten Lotus Notes Welt bewegen weiter auszubauen. Die neuen Themen, Technologien und Konzepte wie Microservices, APIs, etc. machen mir viel mehr Spaß. Das sind herausfordernde Projekte und man hat die Gelegenheit sich in neue Themen und Ideen einzuarbeiten.

IBM Notes/Domino 10

Der Verkauf der Produkt Sparte hat einige Leute in der Community in helle Aufregung versetzt und positive Erwartungen und Hoffnungen geweckt. Persönlich hat mich das alles allerdings nicht überzeugt. Es ist eine naheliegende Entscheidung von IBM, aber die Hoffnung, dass mit Notes 10 jetzt eine echte Weiterentwicklung auf uns zukommt kann ich nicht teilen. Meiner Meinung nach ist das allerhöchstens eine Produktpflege, um den Kunden ein wenig den Druck von den Schultern zu nehmen, Notes möglichst schnell abzulösen. Das kommt allerdings einige Jahre zu spät und die meisten haben das Thema „End of Lotus Notes“ schon fest auf der Agenda.

Soll jetzt nicht heißen, dass ich Kunden jede Investition in die Plattform versuche auszureden. Wer weiter darauf setzen will, hat jetzt einen validen Fahrplan für die nächsten Jahre und kann bestehende Applikationen mit gutem Gewissen weiterentwickeln. Ich persönlich setze meinen Fokus aber nicht mehr auf Lotus Notes, sondern will mich weiterentwickeln und mich um interessantere Themen kümmern.

Work Life Balance

Das ist ein sehr überstrapazierter Begriff, aber für mich hat das Thema einen hohen Stellenwert. Ich arbeite um zu leben, aber ich lebe nicht nur um zu arbeiten. Natürlich stecke ich viel Zeit und Mühe in meinen Job, aber kann meine Freizeit und Urlaub auch sehr genießen. Der Start in das Jahr 2018 mit einer ausgedehnten Asien Reise war hierfür ein guter Anfang und sicher nicht meine letzte Auszeit dieses Jahr.

Das neue Jahr kann also kommen und ich bin gespannt, was mich erwartet.

2018 kann losgehen

2. Februar 2018 Posted by Stephan Kopp

Ich weiß es ist schon Februar, aber ich hatte die letzten 3 Wochen Urlaub und starte sozusagen erst jetzt so richtig ins neue Jahr. Ich bin kein Freund von guten Vorsätzen, primär weil ich mich eh selten daran halte. Trotzdem hat natürlich jeder so seine Vorstellungen und Wünsche an ein neues Jahr und blickt auf das Vergangene zurück.

Beruflicher Wandel

Mein Berufsleben habe ich als Lotus Notes Entwickler gestartet, das ist mittlerweile schon ein paar Jährchen her. Vor einigen Jahren, als das Ende dieser Ära abzusehen war, habe ich angefangen mich auch mit anderen Dingen zu beschäftigen. Nach einigen Experimenten bin ich dann bei Java, dem Vaadin und Spring Boot Framework gelandet. Rückblickend kann ich sagen, dass ich letztes Jahr nun erstmals mehr Zeit mit diesen neuen Themen verbracht habe und weniger mit Lotus Notes. Das Thema Notes/Domino wird mich natürlich auch weiterhin begleiten, aber ich denke der Fokus wird sich weiter darauf konzentrieren, die Kunden bestmöglich bei der Ablösung zu beraten.

Mein persönlicher Wunsch für dieses Jahr ist es, diese Projekte, die sich komplett jenseits der altbekannten Lotus Notes Welt bewegen weiter auszubauen. Die neuen Themen, Technologien und Konzepte wie Microservices, APIs, etc. machen mir viel mehr Spaß. Das sind herausfordernde Projekte und man hat die Gelegenheit sich in neue Themen und Ideen einzuarbeiten.

IBM Notes/Domino 10

Der Verkauf der Produkt Sparte hat einige Leute in der Community in helle Aufregung versetzt und positive Erwartungen und Hoffnungen geweckt. Persönlich hat mich das alles allerdings nicht überzeugt. Es ist eine naheliegende Entscheidung von IBM, aber die Hoffnung, dass mit Notes 10 jetzt eine echte Weiterentwicklung auf uns zukommt kann ich nicht teilen. Meiner Meinung nach ist das allerhöchstens eine Produktpflege, um den Kunden ein wenig den Druck von den Schultern zu nehmen, Notes möglichst schnell abzulösen. Das kommt allerdings einige Jahre zu spät und die meisten haben das Thema „End of Lotus Notes“ schon fest auf der Agenda.

Soll jetzt nicht heißen, dass ich Kunden jede Investition in die Plattform versuche auszureden. Wer weiter darauf setzen will, hat jetzt einen validen Fahrplan für die nächsten Jahre und kann bestehende Applikationen mit gutem Gewissen weiterentwickeln. Ich persönlich setze meinen Fokus aber nicht mehr auf Lotus Notes, sondern will mich weiterentwickeln und mich um interessantere Themen kümmern.

Work Life Balance

Das ist ein sehr überstrapazierter Begriff, aber für mich hat das Thema einen hohen Stellenwert. Ich arbeite um zu leben, aber ich lebe nicht nur um zu arbeiten. Natürlich stecke ich viel Zeit und Mühe in meinen Job, aber kann meine Freizeit und Urlaub auch sehr genießen. Der Start in das Jahr 2018 mit einer ausgedehnten Asien Reise war hierfür ein guter Anfang und sicher nicht meine letzte Auszeit dieses Jahr.

Das neue Jahr kann also kommen und ich bin gespannt, was mich erwartet.

Umstieg von Apple Watch Series 1 auf Series 3

23. September 2017 Posted by Stephan Kopp

Die Series 2 hatte ich übersprungen, weil ich damals den ersten Kaufimpuls unterdrücken konnte. Diesmal habe ich jedoch wieder zugeschlagen und mir die neue Series 3 zugelegt. Weniger aufgrund irgendwelcher neuen Features, eher als Maintenance Upgrade. Obwohl ich mit meiner “alten” Watch sehr zufrieden war, hatte ich zuletzt doch bemerkt, dass der Akku etwas gelitten hatte. Immer häufiger war er gegen Abend leer und ich musste ihn erstmal laden, bevor ich meine abendliche Runde laufen konnte um meine Ringe zu vervollständigen.

Auf LTE habe ich verzichtet und mir die reine GPS Variante in Alu und dem “Nebel” genannten Armband geholt. Für einen Einsatz gänzlich ohne iPhone habe ich persönlich keine Verwendung, deshalb konnte ich mir das Geld für den LTE Chip sparen.

Der Umstieg auf die neue Watch ist wie man es gewohnt ist von Apple vollkommen problemlos möglich:

  1. Alte Watch entkoppeln (dabei wird automatisch ein Backup gemacht)
  2. Neue Watch koppeln und aus Backup wiederherstellen

Schon sind alle meine Einstellungen und auch meine Aktivitäten und Health Daten übertragen.

Vermutlich da ich eine Modell Reihe übersprungen habe, fällt mir die gestiegene Geschwindigkeit sofort auf. Alles reagiert viel schneller und gefühlt ohne die manchmal spürbaren Verzögerungen, weil etwas vom iPhone nachgeladen werden musste. Dass Siri jetzt auch über die Uhr Sprachfeedback gibt, ist auch ein Komfort Gewinn. Ich benutze Siri primär über die Watch zur Steuerung meiner diversen Lampen und HomeKit Geräte. Da ist es hilfreich, wenn Siri per Sprachausgabe Feedback gibt und man nicht immer auf die Uhr schauen muss um zu prüfen, ob der Befehl wirklich verstanden wurde.

Ansonsten begrüße ich die ruhige Hand von Apple bei der Weiterentwicklung der Hardware und auch der Software. Kleine Verbesserungen, die aber das Gesamtgefüge nicht zu sehr verändern. Trotz neuer Hardware und neuer Software findet man sich wie gewohnt zurecht. Manche mögen das kritisieren, aber ich bin kein Freund davon bei jedem Produktzyklus unbedingt alles grundlegend neu machen zu wollen.


Filed under: Apple

Mein #1 iOS 11 Feature: Anwesenheitserkennung in HomeKit

20. September 2017 Posted by Stephan Kopp

Ich bin ein leidenschaftlicher Heimautomatisierer und benutze HomeKit schon seit längerem ausgiebig. Es ist eine beachtliche Sammlung von Geräten geworden, die mittlerweile steuerbar sind.

Mit iOS11 kommt jetzt endlich eine lange vermisste Funktion hinzu, die Erkennung ob jemand zuhause ist! Endlich kann man in den Automatisierungen als Bedingung auswählen, ob eine bestimmte Person, oder überhaupt irgendjemand zuhause ist.


Filed under: Apple, iOS

DNUG Vortrag: Notes Applikationen im Lego Prinzip modernisieren

20. Mai 2017 Posted by Stephan Kopp

Auf der diesjährigen DNUG, am 31.5. in Berlin darf ich einen Vortrag über die Modernisierung von Notes Applikationen halten. Weitere Informationen und Details gibt es hier.

In meinem Vortrag möchte ich auf die Möglichkeiten eingehen, wie man komplexe, monolithische Applikationen modernisieren kann. Ein großes Thema dabei sind Microservices. Es geht darum, wie man mit solchen Applikationen sinnvoll umgehen kann, um nachhaltig eine moderne, auf Microservices basierende Applikation zu erhalten. Dabei werden keine automatischen Migrationstools oder Frameworks verwendet, hier geht es um echte Entwicklungsarbeit, um die Applikation fit für die nächsten Jahrzehnte zu machen ohne sie erneut von einem einzelnen Hersteller abhängig zu machen. Ob man dabei zunächst auf der Domino Plattform bleibt, oder schon anfängt die einzelnen Module mit neuen Technologien zu entwickeln, bleibt jedem selbst überlassen.


Filed under: Development

Notes application modernization with Vaadin :: A step-by-step beginner tutorial

1. März 2017 Posted by Stephan Kopp

Modernization of IBM Notes/Domino applications should be done outside of the Notes/Domino universe, which means in the first step to create a non-xpage frontend and connect it to your existing Notes application. I’m currently working in multiple projects with Vaadin and I’ve created a step-by-step tutorial as a beginners guide to start with Domino application modernization using REST, Spring Boot and Vaadin.

It is not a deep dive into all involved technologies and frameworks. The intention was to create a step-by-step guide for a classic Domino developer now looking forward to modernize applications with new technologies. Not discussing every single topic and technology in detail, just something to get startet und to get a working example without much effort.

If you have questions or in case of any problems and errors, don’t hesitate to contact me!

Start with the tutorial here, or just download the application from the repository.

 


Filed under: Development

Die Zukunft von Notes Applikationen: Domino als Backend: JA / XPage oder Notes Client als Frontend: NEIN

24. Februar 2017 Posted by Stephan Kopp

Dieses Jahr und auch letztes Jahr schon, war ich nichtmehr auf der IBM Connect. Meine Einschätzung aus der Ferne: Ich habe auch dieses Jahr nicht viel verpasst… Dank Volker Weber habe ich die wichtigsten News über den Slack Team Space verfolgt, den er angelegt hatte (Infos findet ihr hier).

Meine Einschätzung über die Zukunft von Notes Applikationen hat sich im Grunde bestätigt. IBM wird die Plattform Domino soweit am Leben erhalten, dass die Applikationen dort im Hintergrund noch viele Jahre betrieben werden können. Mit den Frontends sollte man sich aber mittel- bis langfristig vom Notes Client und XPage Umsetzungen weg bewegen. Die Zukunft der Applikationen liegt im Browser und dort sollte man auf OpenSource Technologien setzen.

Es gibt viele Hersteller auf dem Markt, die hierfür mehr oder weniger sinnvolle Lösungen anbieten. IBM hat auf der Konferenz einige davon hervorgehoben, lässt die Partner Lösungswege zur Modernisierung aufzeigen und konzentriert sich selbst auf die Wartung der Plattform.

Jeder Entwickler kann aber auch ohne solche Komplettlösungen dieses Konzept selbst umsetzen. Die Oberfläche einer Applikation für den Browser entwicklen, z.B. mit Angular, Vaadin oder ähnlichen Frameworks. Die bestehenden Notes Applikationen über APIs ansprechen, steuern und bereits vorhandene Funktionen weiter verwenden. Damit verabschiedet man sich nach und nach vom Notes Client und betreibt den Domino Server langfristig nur noch als Datenbank System und Applikationsserver.

Ich sehe das als sinnvollen Weg um die bestehenden Applikationen zu modernisieren. Viele davon sind Business kritisch und nur mit sehr hohem Aufwand und Risiko komplett zu ersetzen.


Filed under: Development, IBM Notes/Domino

Knock, knock… is this thing still alive? It seems to be, somehow

28. Januar 2017 Posted by Stephan Kopp

IBM released some information about the IBM Notes/Domino 9.0.1 Feature Pack 8. You can see the details here. Some of the features are quite interesting, especially Java 1.8 and the possibility to store view indizes outside of the nsf file. So it seems that IBM has still a few developers working at least on the Domino server code.

If I remember correctly, I saw those features on the roadmap for “this year” the last time I visited IBM Connect. This was in 2015 and I was there already disappointed, because I saw the nearly same roadmap in the second year without any progress…

It is disappointing to see how IBM is laying this product to rest, but let’s move on and get the best out of it!


Filed under: IBM Notes/Domino

Nicht wegwerfen, sondern recyceln: IBM Notes Applikationen im Lego-Prinzip modernisieren

11. Januar 2017 Posted by Stephan Kopp

Viele Nutzer von IBM Notes stehen vor der Frage, wie sie veraltete Applikationen fit für die Zukunft machen. Eine „R.I.P. and Replace“-Strategie macht meist wenig Sinn und wird viel zu teuer. Das Beispiel eines Energiemarktdienstleisters zeigt, wie die Software sinnvoll recycelt werden kann.

weiter lesen…


Filed under: IBM Notes/Domino

Vorträge auf dem EntwicklerCamp

10. Januar 2017 Posted by Stephan Kopp

Dieses Jahr bin ich mit zwei Vorträgen auf Rudis EntwicklerCamp vertreten.

Im ersten Vortrag, Vaadin, Spring Boot und REST – Ein Einstieg für Domino Entwickler möchte ich ein wenig die Möglichkeiten des Vaadin Frameworks für Notes Entwickler beleuchten.

Den zweiten Vortrag, Benutzer-, Gruppen-, Mail-In-Verwaltung automatisieren mit dem Domino User Manager halte ich zusammen mit meinem Kollegen Denny Sternberg. Hier geht es um die Vereinfachung der Administration von Domino Umgebungen mit Hilfe des OpenSource Projektes von Andreas Artner, aber auch darüber hinaus.

Weitere Details gibt es hier: http://www.entwicklercamp.de


Filed under: General