Effizienz durch Automatisierung in Entwicklung und Betrieb

DevOps, Cloud, effizientes Monitoring, Logging

Agile Methoden in der Softwareentwicklung sind mittlerweile State-of-the-Art in vielen Unternehmen und Organisationen. Leider endet die Agilität aber oft dort, wo Software eigentlich erst anfängt, zur Wertschöpfung beizutragen: nämlich an der Schnittstelle zum Betrieb. Wochen- oder gar monatelange Release-Zyklen sind nicht selten an der Tagesordnung und stellen ein großes Hindernis bei der schnellen und flexiblen Umsetzung von neuen oder geänderten Anforderungen dar. Wer hier schneller werden möchte, braucht neben den passenden organisatorischen Voraussetzungen vor allem die richtigen Praktiken und Werkzeuge, um Deployment-Prozesse zu automatisieren und ein effektives Monitoring von Anwendungen und Systemen sicherzustellen.

Unsere Experten haben in einer Vielzahl von Projekten in Organisationen unterschiedlichster Komplexität und Größe gelernt, worauf es hier ankommt und teilen ihr Wissen gerne mit Ihnen. Gemeinsam meistern wir die letzte Meile – egal, ob Sie »nur« Ihre interne IT beschleunigen oder gleich auf eine moderne, Cloud-basierte Architektur setzen möchten.

  • Mutation Testing in Continuous Delivery Pipelines

    Vortrag Jan Stępień Continuous Lifecycle 2017 Folien verfügbar

    Mutation testing is a method of evaluating and improving the quality of our test suites. It introduces subtle bugs to source code of our projects and checks that our tests catch those synthetic faults. High computational cost of this technique have prevented it from being widely used in our standard programming toolchain.

    Can we try to sneak it in through the backdoor of our continuous delivery pipelines? How much of it can we automate? How can our version control system help us in the process?

    Let’s try to answer those questions together.

    Mehr lesen
  • Die Grenzen von Continuous Delivery

    Vortrag Eberhard Wolff Continuous Lifecycle 2017

    “Schneller Software deployen ist ein wichtiger Wettbewerbsvorteil”, so heißt es oft. Also gilt es: Entweder die Firmen setzen Continuous Delivery um - oder sie verschwinden vom Markt. Aber in der Realität haben viele Organisationen den Sprung zu schnellen Deployments noch nicht geschafft. Warum nicht? Wenn es so viele nicht tun – ist es dann überhaupt relevant?

    Dieser Vortrag beschäftigt sich mit der Frage, warum Continuous Delivery in der Praxis nicht funktioniert - und was wir dagegen tun können. Die möglichen Maßnahmen sind technologische Tricks, aber vor allem auch organisatorische Maßnahmen und Vereinfachungen.

    Mehr lesen
  • Unendliches Vertrauen

    Artikel Eberhard Wolff

    Continuous Delivery steht für die ständige Auslieferung von Software in Produktion – ein Konzept, das mittlerweile mehr als fünf Jahre alt ist. Zeit ein Fazit zu ziehen und auf die Erfahrungen aus der Praxis zu schauen.

    Mehr lesen
  • Property-based testing: You won’t look at your tests the same way ever again

    Vortrag Jan Stępień Munich Rubyshift November 2017

    Property-based testing changes the way you look at your test suites. Instead of specifying test cases one after another, this advanced testing technique enables you to use logic to automatically generate a stream of inputs. Despite its potential, property-based testing still remains under the radar within the Ruby community. Let’s try to uncover its strengths together.

    The talk will discuss how property-based testing compares to traditional testing methods and demonstrate its principles with simple examples. We will also see how it fits into a TDD workflow and a CD pipeline. In order to bust the myth of the inapplicability of property-based testing in a real-world setting we’ll bring up some use cases from industry. Finally, we’ll wander into the world of concurrency and the automation of race condition detection.

    Mehr lesen
  • Getting started fast: Development infrastructure, CI, and test deployment to a Kubernetes cluster on AWS

    Vortrag Andreas Krüger, Jörg Müller AWS Tech Community Days Folien verfügbar

    When a new software development project is to start, infrastructure is urgently needed. This is even more important when developing a modern system based on microservices. We present, as a viable approach, hosting both development infrastructure (source control, issue tracking, documentation, continuous integration, continuous deployment pipeline) and also a test-bed for the new software itself on a Kubernetes cluster deployed to AWS. All this can be set up in a few hours or even less. We describe the software stack used and some lessons learned.

    Mehr lesen
  • Die Grenzen von Continuous Delivery

    Vortrag Eberhard Wolff BED-Con 2017

    “Schneller Software deployen ist ein wichtiger Wettbewerbsvorteil.”, so heißt es oft. Aber in der Realität haben viele Organisationen den Sprung noch nicht geschafft.

    Warum nicht? Wenn es so viele nicht tun - ist es dann überhaupt relevant? Dieser Vortrag beschäftigt sich mit der Frage, warum Continuous Delivery in der Praxis nicht funktioniert - und was wir dagegen tun können.

    Mehr lesen

    Property-based testing: You won’t look at your tests the same way ever again

    Vortrag Jan Stępień BED-Con 2017 Folien verfügbar

    Property-based testing changes the way you look at your test suites. Instead of specifying test cases one after another, this advanced testing technique enables you to use logic to automatically generate a stream of inputs. Despite its potential, property-based testing still remains under the radar within the Java community. Let’s try to uncover its strengths together.

    The talk will discuss how property-based testing compares to traditional testing methods and demonstrate its principles with simple examples. We will also see how it fits into a TDD workflow and a CD pipeline. In order to bust the myth of the inapplicability of property-based testing in a real-world setting we’ll bring up some use cases from industry. Finally, we’ll wander into the world of concurrency and the automation of race condition detection.

    Mehr lesen
  • Automatisiertes Testen mit Lognachrichten

    Artikel Matthias Putz

    Software-Systeme sind heute verteilt: Zahlreichen Microservices auf diversen Servern von verschiedenen Entwickler-Teams kommunizieren nicht mehr nur untereinander sondern auch mit, eher unzähligen, kleinen Systemen aus dem Internet der Dinge. Meist werden die notwendigen Integrationstests aufgrund der inhärenten Komplexität bei der Umsetzung und Ausführung manuell durchgeführt. Wie jedes System mit Hilfe der ohnehin vorhanden Lognachrichten einfach für automatisierte Integrationstests fit gemacht werden kann, soll im Folgenden beschrieben werden.

    Mehr lesen
  • Property-based testing: You won’t look at your tests the same way ever again

    Vortrag Jan Stępień Lightweight Java User Group München August 2017 Folien verfügbar

    Property-based testing changes the way you look at your test suites. Instead of specifying test cases one after another, this advanced testing technique enables you to use logic to automatically generate a stream of inputs. Despite its potential, property-based testing still remains under the radar within the Java community. Let’s try to uncover its strengths together.

    The talk will discuss how property-based testing compares to traditional testing methods and demonstrate its principles with simple examples. We will also see how it fits into a TDD workflow and a CD pipeline. In order to bust the myth of the inapplicability of property-based testing in a real-world setting we’ll bring up some use cases from industry. Finally, we’ll wander into the world of concurrency and the automation of race condition detection.

    Mehr lesen
  • Mutation Testing in Continuous Delivery Pipelines

    Vortrag Jan Stępień Continuous Delivery Meetup München Folien verfügbar

    Mutation testing introduces subtle bugs to source code of our projects and checks that our tests catch those synthetic problems. High computational cost of this technique have prevented it from being widely used in our standard programming toolchain. Can we try to sneak it in through the backdoor of our continuous delivery pipelines? Let’s try to answer this question together.

    Mehr lesen
  • Vault – Virtueller Schlüsselkasten

    Vortrag Simon Kölsch Continuous Lifecycle 2016 / Container Conf 2016 Folien verfügbar

    Das Thema “Sicherer Umgang mit Zugangsdaten”, gerade für funktionale Accounts, wurde über Jahre hin eher stiefmütterlich behandelt. Inzwischen sind glücklicherweise Passwörter im Quellcode von Anwendungen immer seltener zu finden. Diese zur Laufzeit in der Konfiguration zu hinterlegen, ist allerdings auch nur der erste Schritt. Zunehmende Automatisierung und komplexere verteilte Systeme stellen Entwicklung und Betrieb vor weitere Herausforderungen.

    HashiCorp bietet mit Vault ein Werkzeug, um sicher mit “Secrets” umzugehen. Dieser Vortrag gibt einen Überblick über die Funktionsweise von Vault und zeigt, welche Probleme damit zu lösen sind. Dabei wird außerdem auf den Betrieb und die benötigte Infrastruktur eingegangen.

    Skills

    Der Vortrag spricht Devs und Ops an und erfordert darüber hinaus keine speziellen Vorkenntnisse.

    Lernziele

    Vaults Funktionsweise und Anwendungsfälle kennen lernen.

    Mehr lesen

    4 Dinge, die Concourse besser macht als andere Continuous-Delivery-Systeme

    Vortrag Daniel Bornkessel Continuous Lifecycle 2016 / Container Conf 2016

    Dieser Vortrag stellt ein neues, frei verfügbares Continuous-Delivery-System vor, das den Ansprüchen komplexer Test-Pipelines gerecht wird. Die Ansätze von Concourse werden alle begeistern, die schon einmal komplexe Continuous-Delivery-Setups mit anderen Systemen wie Jenkins modelliert haben bzw. bei dem Versuch gescheitert sind, eine gute Lösung zu finden.

    Concourse bietet unter anderem:

    • ein System, das nicht Snow-Flake-Server produziert
    • Pipelines als First-Class Citizens
    • deklarative Beschreibungen von Pipelines und deren Abhängigkeiten untereinander
    • eine moderne und innovative Oberfläche

    Skills

    • Continuous Delivery
    • optimalerweise Erfahrungen mit anderen Test- oder CD-Systemen

    Lernziele

    • Concourse und seine Vorzüge bekannt machen
    • Entwickler und Teams animieren, Concourse einzusetzen
    Mehr lesen
  • Wie deploye ich richtig? Ansätze im Vergleich

    Vortrag Eberhard Wolff Continuous Lifecycle 2016 / Container Conf 2016 Folien verfügbar

    Continuous Delivery und Microservices setzten Deployment-Automatisierung voraus. Dafür gibt es nicht nur eine Vielzahl technischer Lösungen, sondern auch unterschiedliche Vorgehensweisen und Pattern.

    Der Vortrag erläutert Ansätze wie Idempotenz oder Immutable Server und gibt einen Überblick über die technologische Optionen wie Package Manager, PaaS, Docker, Chef oder Terraform. Das ist die Basis für die Wahl eines automatisierten Deployment-Ansatzes und der dafür notwendigen Technologien.

    Skills

    Grundlegendes Verständnis über Software-Installation und IT-Betrieb

    Lernziele

    • Umfassender Überblick über die verschiedenen Deployment-Optionen
    • Dabei vor allem ein Verständnis für die Konzepte und Prinzipien hinter den Optionen
    • Der Überblick über die Konzepte erlaubt eine bessere Wahl des passenden Deployment-Ansatzes und der Deployment-Strategie
    Mehr lesen

    5 Docker-Tipps aus der Praxis

    Vortrag Daniel Bornkessel Continuous Lifecycle 2016 / Container Conf 2016

    Dockers Stärke ist die Einfachheit: Ein Dockerfile ist schnell geschrieben. Aber bei größeren Teams tauchen Probleme auf: Die Übersicht über die Images geht verloren, notwendige Security Fixes können nur schwer eingespielt werden, jedes Dockerfile sieht anders aus und einige werden zu komplex.

    In diesem Talk zeige ich, wie man solche Probleme löst. Die vorgestellten Patterns und Prinzipien haben schon in mehreren Projekten ihre Nützlichkeit unter Beweis gestellt.

    Skills

    Docker-Grundlagen und ein bisschen praktische Erfahrung mit Docker

    Lernziele

    Mit relativ wenigen Konventionen und einfachen Tools kann eine Migration zum großen Einsatz von Docker viele Probleme verhindern. Es sollen Punkte aufgezeigt werden, welche oft erst relativ spät deutlich werden, aber mit einfachen Mitteln hätten verhindert werden können.

    Mehr lesen
  • Der Softwarelieferheld

    Artikel Thorsten Kamann, Carsten Pelka, Daniel Bornkessel

    Können Sie diese Frage beantworten: „Wie lange dauert es in Ihrem Unternehmen, bis eine Änderung deployt ist, die nur aus einer Zeile geändertem Code besteht?“. Und ebenfalls die anschließende Frage: „Passiert dies auf einer wiederholbaren und zuverlässigen Basis?“. Wenn Ihnen die Beantwortung der beiden Fragen Kopfschmerzen bereitet, lohnt ein Blick auf diese fünf Systeme für die Implementierung von Continuous-Delivery-Pipelines.

    Mehr lesen
  • Heise Developer Continuous Architecture Blog, „DevOps ist keine Organisation”

    Link Eberhard Wolff

    In seinem neuesten Beitrag zum „Continuous Architecture“-Blog auf heise Developer macht sich Eberhard Wolff Gedanken über das Zusammenwachsen von Entwicklung und Betrieb zu DevOps. Oft wird dies als eine organisatorische Änderung verstanden – schließlich erzwingt eine Kollaboration eine andere Teamzusammenstellung. Oder doch nicht?

  • Buildumgebung in Gefahr!

    Artikel Andreas Krüger

    Wer für eine Anwendung Verantwortung trägt, kennt den Alptraum, dass ein Angreifer Schadfunktionalität hinein schmuggeln könnte. Um diesen Alptraum zu verhindern, härten wir Anwendungen gegenüber feindseliger Interaktion, schützen Produktionsumgebungen und schotten sie ab. Aber Angreifer können auch versuchen, “über Bande zu spielen” und in eine Anwendung einzubrechen, indem sie ihre Buildumgebung manipulieren.

    Mehr lesen
  • Dynamisch überwacht: Monitoring von Microservice-Architekturen

    Vortrag Alexander Heusingfeld, Tammo van Lessen Microservices Summit 2016

    Ein Softwaresystem kann nur dann erfolgreich betrieben werden, wenn es feinmaschig überwacht wird. Mit dem Aufschwung der Microservices-Architekturen reichen die traditionellen Monitoringmittel nicht mehr aus, denn sie erfordern ein hohes Maß an Flexibilität und Dynamik von Organisation und Infrastruktur. Wegen der Verteilung auf verschiedene Systeme ist es jedoch umso wichtiger, die einzelnen Dienste sorgfältig und nachhaltig zu überwachen und Verfügbarkeit, Performance (fachlich wie technisch), Zuverlässigkeit und Wirtschaftlichkeit kontinuierlich zu messen. So entsteht ein jederzeit aktuelles, vergleichendes Bild auf die Systemlandschaft. Dafür müssen allerdings neue Konzepte für Logging, Tracing und Alarming umgesetzt werden, die die Aggregation, Korrelation und Visualisierung von Laufzeitinformationen an zentraler Stelle erlauben.

    Das Trio Logs, Metriken und Tracingdaten stellt die Grundlage zur Verfügung, eine solche Beobachtungsstelle zu realisieren. Doch was sind eigentlich wichtige Logs? Welche Metriken soll ich erfassen? Wie finde ich Bottlenecks in meiner Architektur? Diese Fragen versuchen wir in der Session zu beantworten und stellen dazu die wichtigsten Ansätze und Werkzeuge zum Überwachen von modernen verteilten Systemen vor.

    Mehr lesen
  • Heise Developer Continuous Architecture Blog, „Hat Betrieb eine Zukunft?”

    Link Eberhard Wolff

    Gerade der Betrieb ist für die Zukunft der IT entscheidend – und sollte goldenen Zeiten entgegengehen. Aber durch die Relevanz steigt auch der Druck: Nur ein Betrieb, der den Anforderungen genügt, hat eine Zukunft. Dazu ist kürzlich ein neuer Blogpost von Eberhard Wolff für heise Developer erschienen.

  • Fünf einfache Schritte zu Continuous Delivery

    Vortrag Eberhard Wolff JAX 2016 Folien verfügbar

    Die Einführung von Continuous Delivery ist komplex. Prozesse müssen grundlegend geändert werden. Kaum ein Stein bleibt auf dem anderen. Die Gefahr ist groß, dass man das Ziel und den Weg aus den Augen verliert. Die vorgestellten fünf Schritte zeigen die Bereiche, auf die man sich fokussieren muss, und wo die meisten Stolpersteine sind. Continuous Delivery ist schließlich mehr als nur Infrastrukturautomatisierung oder nur eine Prozessoptimierung.

    Mehr lesen
  • Wider den Blindflug: Logging und Metriken in verteilten Anwendungen

    Link Alexander Heusingfeld, Tammo van Lessen

    Ein Softwaresystem kann nur dann erfolgreich betrieben werden, wenn es feinmaschig überwacht wird. In dieser JAX 2015-Session beschäftigten sich unsere Kollegen Alexander Heusingfeld und Tammo van Lessen mit der Evolution von verteilten Anwendungen und deren Monitoring. Sie zeigen, welche Metriken erfasst und welche Informationen geloggt werden sollten, wie man sie zentral aggregiert und auswertet, und welche freien Tools dabei helfen, so einen reibungslosen Betrieb zu sichern.

  • When Microservices Meet Real-World Projects: Lessons Learned

    Vortrag Alexander Heusingfeld, Tammo van Lessen JavaLand 2016 Folien verfügbar

    Als Berater sehen wir oft beide Seiten der Medaille: Auf der einen Seite arbeiten wir mit Leading-Edge-Technologien, die meist gerade erst marktreif sind. Auf der anderen Seite stehen Kunden mit sehr konservativen Betriebsabteilungen, Legacy-Systemen und strikten Reglementierungen zur Datensicherheit.

    In dieser Session möchten wir von den Erfahrungen berichten, die wir im Beratungsalltag sammeln durften. Was bedeutet eigentlich “pets vs. cattle”? Warum soll sich ein Entwickler mit den Business-Use-Cases auseinandersetzen? Warum können IT-Projekte auf Grund der Unternehmensorganisationen scheitern, und was hat eine DevOps-Mentalität mit Perspektivenwechsel zu tun? Wir zeigen Wege, wie wir eine Legacy-Anwendung iterativ modernisiert und in mehrere, leichter wartbare Self-Contained-Systeme aufgeteilt haben. Dabei werden nicht nur die unterschiedlichen Ebenen von Architekturentscheidungen herausgestellt, sondern auch die Auswirkungen auf die Organisationsstruktur und kritische Punkte auf dem Weg verdeutlicht.

    Mehr lesen
  • Horizontal automation – a waste of time.

    Blog-Post Andreas Krüger

    Automation of server administration tasks is a waste of time.

    Mehr lesen
  • Don’t Fly Blind: Logging and Metrics in Microservice Architectures

    Vortrag Alexander Heusingfeld, Tammo van Lessen microXchg 2016 – The Microservices Conference Folien verfügbar

    While many organizations are keen on breaking up their monolithic applications and establishing microservice architectures, only few of them truly appreciate the impact on runtime information like log data and metrics. But without it you are almost blind in production. And without correlating events from different sources it becomes very difficult to make sense of your metrics and to draw accurate conclusions. If you want to break monoliths into a variety of distributed services, standard approaches are no longer sufficient. In this session, we will show the conceptual foundation and best-of-breed tooling for a monitoring solution of a decentralized and distributed application landscape.

    The video recording of this talk can be found at https://www.youtube.com/watch?v=nWgoyLl8wbM

    Mehr lesen
  • Entwicklung einer skalierbaren Webanwendung mit Amazon Web Services

    Artikel Christine Koppelt, Martin Eigenbrodt, Oliver Tigges

    Gemeinsam mit Heraeus Kulzer hat innoQ eine Cloud-basierte Plattform für die Abwicklung von Beauftragungsprozessen im Dentalbereich entwickelt. In dieser Fallstudie stellen wir die Rahmenbedingungen und Anforderungen des Projektes vor und zeigen, wie die technische Lösung mittels Amazon Web Services aussieht.

    Mehr lesen
  • Monitoring, Logging und Metriken in verteilten Anwendungen

    Vortrag Alexander Heusingfeld, Michael Vitz Microservices Summit

    Microservices bieten für Entwicklung und Business große Vorteile. Oft führen sie allerdings zu einem deutlich komplexeren Betrieb. Dieser Workshop zeigt die Herausforderungen beim Betrieb von verteilten Anwendungen auf. Die Teilnehmer lernen hier Tools wie den ELK-Stack, Grafana und InfluxDB und die Unterschiede zwischen Logdaten und Metriken kennen. Die Tools werden es ihnen ermöglichen, ihre betrieblichen Anforderungen zu formulieren und das richtige Maß an Monitoring für ihre Microservices zu finden. Wir zeigen, welche Komponenten man in einer modernen Logging- und Metrik-Infrastruktur verwenden kann, wie man diese aufsetzt und in bestehende Systeme wie bspw. Nagios integriert. Hierbei wird auch klar, warum und wo der Betrieb maßgeblich die Makro- und Mikro-Architektur eines Systems mitbestimmen sollte.

    Mehr lesen
  • Infrastruktur für Continuous Delivery und Microservices: PaaS oder Docker?

    Vortrag Eberhard Wolff Continuous Lifecycle 2015 – Konferenz für Continuous Delivery, DevOps und Containerisierung Folien verfügbar

    Continuous Delivery und Microservices stellen neue Anforderungen an die Infrastruktur: Microservice-Systeme haben viel mehr Artefakte, Continuous Delivery viel mehr Tests und viel häufigere Releases - und für die alle muss es jeweils eine Infrastruktur geben.

    PaaS (Platform as a Service) bietet sich an. Schließlich ist die Infrastruktur dann vollständig automatisiert und vereinheitlicht. PaaS führt aber zumindest in der klassischen IT ein Schattendasein. Docker scheint das Rennen zu machen - bietet aber konzeptionell scheinbar wenig mehr als ein einfaches Betriebssystem.

    Der Vortrag zeigt Unterschiede, Vor- und Nachteile dieser Ansätze.

    Mehr lesen

    Microservices, DevOps, Continuous Delivery – mehr als drei Buzzwords

    Vortrag Eberhard Wolff Continuous Lifecycle 2015 – Konferenz für Continuous Delivery, DevOps und Containerisierung Folien verfügbar

    Microservices sind gerade ein Hype. Sie sind endlich der Architekturansatz, mit dem alles einfacher wird. In Kern sind Microservices unabhängige Deployment-Einheiten. Daher gibt es eine Synergie von Microservices mit Continuous Delivery und Deployment-Automatisierung. Microservices betrachtet außerdem die Organisation als Auswirkung der Architektur. So unterstützen Microservices auch DevOps als Organisationsansatz. Dieser Vortrag zeigt, wie Microservices, Continuous Delivery und DevOps zusammenpassen und dass Microservices mehr als ein Hype sind.

    Mehr lesen
  • Amazon EC2 Container Service

    Artikel Martin Eigenbrodt, Phillip Ghadir

    Dank des Amazon EC2 Container Service finden Docker-Container nun auch bei den Amazon Web Services (AWS) Unterschlupf. In diesem Artikel stellen wir nach einem kurzen Überblick über die wichtigsten bisher verfügbaren Dienste den neuen Service vor, mit dem Docker-Container in der Cloud gehostet werden können.

    Mehr lesen

    Sicherheitsprobleme üblicher Build- und Deployment-Umgebungen

    Vortrag Andreas Krüger Continuous Lifecycle 2015 – Konferenz für Continuous Delivery, DevOps und Containerisierung Folien verfügbar

    Heutige Enterprise-Projekte nehmen Sicherheit ernst. Entwickler diskutieren darüber, arbeiten sich durch Audits und stellen Penetration-Test-Umgebungen zur Verfügung. Dabei bleiben Build Chain und Deployment Pipeline häufig außen vor. Aber dort übliche Werkzeuge sollen einfach aufzusetzen sein, Bequemlichkeit hat Priorität. Folgt man einschlägigen Anleitungen, so importiert man in der Regel Sicherheitslücken, die Manipulation bis zur Produktionsumgebung ermöglichen.

    Der Vortrag zeigt übliche grundlegende Sicherheitsprobleme typischer Build- und Deployment-Umgebungen auf und benennt Konzepte und Lösungsansätze, die zur Verbesserung der Situation beitragen können.

    Mehr lesen
  • Docker - Perfekte Verpackung von Microservices

    Artikel Jerry Preissler, Oliver Tigges

    Die Microservice-Bewegung ist mit viel Schwung gestartet und in großen Unternehmen angekommen. Überall werden Monolithen zerschlagen und durch eigenständige, fachlich definierte Microservices ersetzt. Entwicklungsteams können eigenverantwortlicher und autonomer agieren und damit deutlich schneller Ergebnisse ausrollen. Aus Sicht des IT-Betriebs bringen die Microservices aber auch eine Menge Herausforderungen: Statt weniger großer und etablierter Unternehmensanwendungen, existieren plötzlich Landschaften mit einer Vielzahl an kleinen, sich schnell ändernden Services, die alle konfiguriert, integriert und überwacht werden wollen. Eine Container-Technologie wie Docker kann das ideale Mittel sein, um diese Services zu verpacken und auszurollen. Aber welche Probleme löst Docker genau und welche neuen Herausforderungen bringt es mit? In diesem Artikel zeigen wir, für welche Software-Architekturen Docker geeignet ist und wie ein Einsatz von Docker dabei helfen kann, Microservice-Architekturen zu standardisieren, zu steuern und zu kontrollieren.

    Mehr lesen
  • Don’t Fly Blind: Logging and Metrics in Microservice Architectures

    Vortrag Alexander Heusingfeld, Tammo van Lessen JavaOne Conference 2015 Folien verfügbar

    While many organizations are keen on breaking up their monolithic applications and establishing microservice architectures, only few of them truly appreciate the impact on runtime information like log data and metrics. But without it you are almost blind in production. And without correlating events from different sources it becomes very difficult to make sense of your metrics and to draw accurate conclusions. If you want to break monoliths into a variety of distributed services, standard approaches are no longer sufficient.

    In this session, we will show the conceptual foundation and best-of-breed tooling for a monitoring solution of a decentralized and distributed application landscape.

    Mehr lesen
  • Continuous Delivery, DevOps, Cloud - Neue Anforderungen für neue Architekturen

    Vortrag Eberhard Wolff The Architecture Gathering 2015

    In der IT ist einiges in Bewegung. Ständig neue Releases mit Continuous Delivery, enge Kollaboration zwischen Entwicklung und Betrieb durch DevOps und ganz andere Hardware in der Cloud. Das führt zu anderen Architekturen. Dieser Vortrag zeigt, welche Qualitätsziele sich aus den neuen Anforderungen ableiten lassen und welche Konsequenzen sich für Architekturen daraus ergeben. Einfaches Deployment oder der Umgang mit weniger ausfallsicherer Cloud-Hardware werden für künftige Architekturen entscheidend sein.

    Mehr lesen
  • Caching in Business-Anwendunge­n: Einsatz, Patterns & Best Practices

    Vortrag Michael Plöd Java User Group Hamburg September MeetUp

    Das Thema Caching ist für zahlreiche Business Anwendungen relevant und der Markt für Caching-Lösungen reicht von einfachen lokalen Caches bis hin zu mächtigen und komplexen Data Grids. Ein weiteres Differenzierungsmerkmal ist die Konsistenzgarantie beziehungsweise die transaktionale Integrität, welche die unterschiedlichen Lösungen bieten. Allerdings unterscheiden sich Anwendungen, welche Geschäftsprozesse in gewachsenen Unternehmenslandschaften umsetzen stark von sozialen Netzwerken oder Internetdiensten, welche aus dem Startup-Umfeld kommen.

    Der Vortrag adressiert in erster Linie das erste Szenario: Caching in Unternehmensanwendungen, welche auf Basis einer bereits bestehenden Infrastruktur umgesetzt werden. Hierbei werden zuerst die Herausforderungen, die diese Anwendungen an das Thema Caching stellen, vorgestellt. Aspekte die hierbei betrachtet werden sind: Security, Monitoring, Audit-Compliance, Art der Daten sowie Geschäftsprozesse. Im zweiten Teil werden unterschiedliche Arten des Cachings vorgestellt und im Hinblick auf die eben erwähnten Herausforderungen bewertet. Abschließend geht der Vortrag darauf ein, welche Patterns und Best Practices sich in der Praxis bewährt haben und wie das Thema Caching möglichst transparent und deterministisch in Business-Anwendungen integriert werden kann.

    Mehr lesen
  • Moderne Software-Entwicklung: Von Continuous Integration zu Continuous Delivery

    Vortrag Eberhard Wolff JUG Dortmund

    Continuous Delivery ermöglicht es, Software viel schneller und mit wesentlich höherer Zuverlässigkeit in Produktion zu bringen, als es bisher möglich war. Grundlage dafür ist eine Continuous-Delivery-Pipeline als logische Erweiterung von Continuous Integration. Sie automatisiert das Ausrollen der Software weitgehend und bietet so einen reproduzierbaren, risikoarmen Prozess für die Bereitstellung neuer Releases. Dieser Vortrag zeigt, wie sich Continuous Delivery von Continuous Integration unterscheidet – und welche Vorteile dieser Ansatz in der Praxis bietet.

    Mehr lesen
  • Heise Developer Continuous Architecture Blog, „Continuous Integration widerspricht Feature Branches!”

    Link Eberhard Wolff

    Features Branches sind ein beliebter Ansatz, um die Entwicklung unterschiedlicher Features zu trennen – nur leider widerspricht das dem Ziel von Continuous Integration, ständig alle Änderungen zu integrieren. Was also tun?

  • Logging und Metrics

    Podcast Tammo van Lessen, Stefan Tilkov

    In der zwanzigsten Folge unseres Podcasts spricht Tammo van Lessen mit Stefan Tilkov über modernes Logging und Monitoring. Durch DevOps ist einige Bewegung in die Welt des verteilten Monitorings von Anwendungen gekommen. Aus dem Hashtag #monitoringsucks wurde dank neuer Werkzeuge recht schnell #monitoringlove. Tammo stellt einige dieser Ansätze und Tools für gutes Logging und die Erfassung von Metriken in verteilten Umgebungen vor. Mehr lesen
  • DevOps

    Podcast Oliver Wolf, Stefan Tilkov

    Oliver Wolf und Stefan Tilkov sprechen in dieser Folge über die engere Verzahnung von Softwareentwicklung und Betrieb, auch DevOps genannt. Sie beleuchten Vorteile und organisatorische Herausforderungen dieser Vorgehensweise. Außerdem geht es auch darum, wie man interne Widerstände überwinden kann, um DevOps auch in traditionell strukturierten Organisationen einzuführen. Mehr lesen
  • Software dependency analysis with graph databases (Neo4j)

    Vortrag Philipp Haußleiter, Oliver Tigges GraphConnect 2015 Folien verfügbar

    Software projects use dependency management tools (like Maven or Gem) to integrate frameworks and libraries. As these artifacts depend transitively on even more libraries it is necessary to become aware of these complex dependencies and to be able to control them. The main challenges here are to keep track of changing relations between artifacts, version incompatibilities and licence issues.

    As these complex relations span a huge dependency graph, a graph database fits as a perfect tool for storing and analysing this data. In this session we show a possible solution using the Maven Central Repository as example. You will see how to model this domain in Neo4j. We will show how Cypher queries can help to answer questions about versions, (in)compatibilites and licenses. The audience should have a basic understanding of graph databases and software dependency management to be able to follow the examples.

    See the video on Vimeo!

    Mehr lesen
  • Wider den Blindflug: Logging und Metriken in verteilten Anwendungen

    Vortrag Alexander Heusingfeld, Tammo van Lessen JAX 2015 Folien verfügbar

    Ein Softwaresystem kann nur dann erfolgreich betrieben werden, wenn es feinmaschig überwacht wird. Mit dem Aufschwung der Microservices-Architekturen reichen die traditionellen Monitoringmittel nicht mehr aus, denn der Erfolg dieses Architekturmodells hängt maßgeblich von den erfassten Kennzahlen ab. Je mehr Informationen man zur Laufzeit erfassen kann, desto genauer kann man den Gesundheitszustand des Gesamtsystems bestimmen. Dafür müssen neue Konzepte für Logging und Metriken umgesetzt werden, die die Aggregation, Korrelation und Visualisierung von Laufzeitinformationen an zentraler Stelle erlauben.

    In dieser Session zeigen wir, welche Metriken erfasst und welche Informationen geloggt werden sollten, wie man sie zentral aggregiert und auswertet, und welche freien Tools dabei helfen, so einen reibungslosen Betrieb zu sichern.

    Mehr lesen
  • Distributed Metrics and Log Aggregation

    Vortrag Alexander Heusingfeld, Tammo van Lessen JavaLand 2015 Folien verfügbar

    Most operation teams will agree, without runtime information like log data and metrics you are literally blind in production. Even if such data is available, without correlating events from different sources it becomes very difficult to make sense of your metrics and to draw accurate conclusions. With the rise of microservice architectures, which aim at breaking monoliths into zoos of distributed services, standard approaches with local logfiles and basic runtime metrics are not sufficient anymore. Instead there is an increasing need for a centralized log and metrics collection that allows for aggregating, correlating and visualizing any kind of runtime events.

    In this session, we will show both, the conceptual foundation and best practices for a monitoring solution of a decentralized and distributed application landscape. Coming from a blind example setup, we will show how logging data and runtime metrics can be captured, collected, evaluated and visualized in order to improve the operational experience and the ability to respond early to problems.

    Mehr lesen
  • Play Anwendungen mit Docker & AWS Beanstalk in die Cloud bringen

    Blog-Post Martin Eigenbrodt

    Für skalierbare Webanwendungen bietet sich die Kombination aus zustandslosen, requestbasierten Webframeworks und einem automatisch skalierendem Cloud Deployment an. In diesem Post betrachten wir konkret Play in Kombination mit Amazons Elastic Beanstalk und Docker.

    Mehr lesen
  • Logging konsolidieren und Performance gewinnen

    Artikel Stefan Bodewig, Phillip Ghadir

    Apache Log4j 2.0 ist eine Neuimplementierung von Log4j zeichnet sich vor allem durch einen höheren Durchsatz – dank asynchronem I/O – aus. Die Neuerungen des Frameworks machen Lust darauf, Log4j2 einzusetzen. Da drängt sich die Frage auf, wie die Vorzüge von Log4j2 in einem System genutzt werden können, wenn Teile noch Log4J 1, commons-logging oder Ähnliches verwenden.

    Mehr lesen
  • Wissen, was läuft

    Artikel Tammo van Lessen

    Mit gutem Logging kann man eine Menge über laufende Anwendungen oder gar Anwendungsverbunde erfahren. Eine entscheidende Einschränkung geht mit Logging einher: Logs sind nur ein Strom von eingetretenen Ereignissen. Um herauszufinden, wie gut eine Anwendung läuft, ist jedoch deren Zustand interessanter.

    Mehr lesen
  • Logging und Metriken: Näher dran statt nur dabei

    Vortrag Tammo van Lessen W-JAX 2014 Folien verfügbar

    Log-Dateien schreibt jeder. Meistens liest man darin, wenn der Kunde sich bereits über einen Fehler beschwert hat. Dann beginnt das mühsame Interpretieren der Vergangenheit. Es gibt aber noch mehr Möglichkeiten, um den Zustand seiner Anwendungen zu überwachen – und zwar im Hier und Jetzt, mit Near-Time-Überwachungen. Mittels gezielt eingesetzter Metriken kann man nahe am Geschehen sein. Und mit gewissen fachlichen Metriken weiß man nicht nur, wie gut oder schlecht seine Anwendung generell, sondern auch das Geschäft läuft. Gute Metriken in Kombination mit gutem Logging sind ein Erfolgsfaktor für den Betrieb einer modernen Anwendung.

    In dieser Session sprechen wir über die Möglichkeiten und Tools, um Daten aus Logs und Metriken automatisiert zu aggregieren und auszuwerten.

    Mehr lesen
  • Attribut-basiertes Testen mit Scala

    Artikel Tobias Neef

    Das Testen eines Software-Systems ist eine alltägliche Aufgabe mit dem Ziel, dessen Konformität bezüglich einer Spezifikation nachzuweisen. Die grüne Ampel der Testumgebung ist in vielen Projekten das Fieberthermometer, welches die Normaltemperatur des Systems verkündet oder zu Warnungen bei Überschreitung führt. Doch können wir diesem Messgerät trauen? Das Attribut-basiertes Testen ist ein Werkzeug aus der Welt der funktionalen Entwicklung, welches uns helfen kann die Zuversicht in unsere Systeme zu erhöhen.

    Mehr lesen
  • Understanding SBT: Towards a typesafe and programmable build

    Vortrag Daniel Westheide Scala User Group Berlin-Brandenburg

    Every developer hates build tools, and because of that, we tend to configure our build by copying snippets from the intarweb instead of trying to understand our build tool. This is no different or even more so the case with SBT, which in some ways is fundamentally different from other build tools.

    However, by doing so, you miss out a lot of what SBT can do for you.

    In this talk, you will learn about the most important concepts underlying SBT, how it helps you to program your build in a typesafe way, and how to extract re-usable parts of your build configuration into an SBT plugin. You’ll also see how using SBT as an interactive development environment can make your daily development work much more fun and productive.

    Mehr lesen
  • Hystrix – damit Ihnen rechtzeitig die Sicherung durchbrennt

    Artikel Arne Landwehr, Holger Kraus

    Sicherungen wurden ursprünglich eingeführt, um die Eskalation einer Situation zu verhindern. Wenn Ihnen ab und zu die Sicherung durchbrennt, ist das deshalb durchaus zu begrüßen, jedenfalls wenn es sich dabei um einen Circuit-Breaker im Sinne von Hystrix handelt. In diesem Artikel möchten wir Ihnen Hystrix vorstellen, eine Bibliothek, die ihnen dabei hilft, die Stabilität ihrer verteilten Anwendung zu verbessern und kaskadierende Fehlerszenarien zu verhindern.

    Mehr lesen
  • Paperless Office: Funktioniert das papierlose Büro? Und welchen Nutzen bringt es?

    Vortrag Martin Schmidt Donnerstalk: Paperless Office – Tipps & Tricks zum papierlosen Büro Folien verfügbar

    Seit Beginn der Computer-Ära hoffen wir auf das papierlose Büro. Bis heute bleibt es unerreicht. Wir zeigen, wie durch pragmatische Konsequenz der Papierballast zurückgedrängt und mehr Zeit für die tatsächliche Erledigung der aus der Post resultierenden Aufgaben bleibt. Ein konkretes Beispiel für einen Paperless-Workflow bringt praktischen Nutzen und zeigt, wie man auf dem Weg zu Paperless einfach produktiver werden kann.

    Mehr lesen
  • Logging und Metriken: Näher dran statt nur dabei

    Vortrag Tammo van Lessen Java User Group Darmstadt Folien verfügbar

    Log-Dateien schreibt jeder. Meistens liest man darin, wenn der Kunde sich bereits über einen Fehler beschwert hat. Dann beginnt das mühsame Interpretieren der Vergangenheit. Es gibt aber noch mehr Möglichkeiten, um den Zustand seiner Anwendungen zu überwachen – und zwar im Hier und Jetzt, mit Near-Time-Überwachungen. Mittels gezielt eingesetzter Metriken kann man nahe am Geschehen sein. Und mit gewissen fachlichen Metriken weiß man nicht nur, wie gut oder schlecht seine Anwendung generell, sondern auch das Geschäft läuft. Gute Metriken in Kombination mit gutem Logging sind ein Erfolgsfaktor für den Betrieb einer modernen Anwendung.

    In dieser Session sprechen wir über die Möglichkeiten und Tools, um Daten aus Logs und Metriken automatisiert zu aggregieren und auszuwerten.

    Mehr lesen
  • Hystrix – Wider den Totalausfall

    Artikel Phillip Ghadir

    Michael T. Nygard hat in seinem Buch „Release It!” sehr anschaulich die Folgen von sich fortpflanzenden Fehlern beschrieben. Seine klare Empfehlung lautete, Isolationsmuster wie zum Beispiel Leistungsschutzschalter – engl. Circuit Breaker – in die Software zu integrieren, um Totalausfälle zu vermeiden. Mit Hystrix hat Netflix ein Framework bereitgestellt, das den Einbau von solchen Schaltern vereinfacht. Dieser Beitrag stellt das Framework vor.

    Mehr lesen
  • Learn you an SBT for fun and profit!

    Vortrag Daniel Westheide ScalaDays Folien verfügbar

    SBT has been the subject of quite a bit of controversy among Scala developers. It’s different enough from other build tools that not everyone has the patience of really getting into it. As a natural consequence, they tend to either go back to the build tools they know or employ SBT in a way that is similar to what they are used to and doesn’t require them to fully understand it.

    While it is possible to build your projects with only a minimal comprehension of SBT, there is a lot to gain from really understanding how it works. If you are one of the people who have never gone a lot further than “sbt test”, this talk is for you.

    You will learn how it can make your daily Scala development workflow more productive. We’ll dive into the concepts behind SBT and see how we can embrace its interactive shell, how to customise our build to our needs, and what the SBT ecosystem of plugins has to offer to improve our development workflow.

    This talk will involve a lot of live SBT interaction, and also some coding. At the end of the talk, we will have seen not only what SBT and the existing ecosystem has to offer, but also built our own little SBT plugin.

    Mehr lesen
  • Wenn Systeme aus dem Ruder laufen

    Podcast Arne Landwehr, Stefan Tilkov

    In der fünfzehnten Folge unseres Podcasts spricht Arne Landwehr mit Stefan Tilkov über Stabilitäts-Pattern für verteilte Anwendungen und die Bibliothek "Hystrix". Arne erläutert dabei unter anderem, um was es sich bei "Circuit-Breakern" handelt und wie sie uns zu stabileren Systemen führen können. Mehr lesen
  • Logging und Metriken: Näher dran statt nur dabei

    Vortrag Tammo van Lessen, Christian Grobmeier W-JAX 2013 Folien verfügbar

    Log-Dateien schreibt jeder. Meistens liest man darin, wenn der Kunde sich bereits über einen Fehler beschwert hat. Dann beginnt das mühsame Interpretieren der Vergangenheit. Es gibt aber noch mehr Möglichkeiten, um den Zustand seiner Anwendungen zu überwachen - und zwar im Hier und Jetzt, mit Near-Time-Überwachungen. Mittels gezielt eingesetzter Metriken kann man nahe am Geschehen sein. Und mit gewissen fachlichen Metriken weiß man nicht nur, wie gut oder schlecht seine Anwendung generell, sondern auch das Geschäft läuft. Gute Metriken in Kombination mit gutem Logging sind ein Erfolgsfaktor für den Betrieb einer modernen Anwendung. In dieser Session sprechen wir über die Möglichkeiten und Tools, um Daten aus Logs und Metriken automatisiert zu aggregieren und auszuwerten.

    Mehr lesen
  • Versionsmanagement auf dem Tanker

    Artikel Andreas Krüger

    In verschiedenen großen Projekten mit festen Releasezyklen hat der Autor bestimmte Situationen ganz ähnlich mehrfach erlebt. Dieser Artikel berichtet von typischen Herausforderungen aus Versionsmanagement-Sicht, die sich in solchen Situationen ergeben und von praxiserprobten Möglichkeiten, sie zu meistern.

    Mehr lesen
  • Log-Daten effektiv verarbeiten mit Apache Kafka

    Artikel Phillip Ghadir, Arne Landwehr

    Mit Apache Kafka stellen wir ein ungewöhnliches Messaging-System vor. Es besticht durch persistente Speicherung der Nachrichten, hohen Transaktionsdurchsatz und gute Skalierbarkeit. Kafkas Architektur ermöglicht dadurch nicht nur den Einsatz in Online-Szenarien mit zeitnaher Verarbeitung, sondern auch in Offline-Szenarien mit stark zeitverzögerter Verarbeitung von Nachrichten. Dieser Beitrag demonstriert, wie Kafka auch mit großem Log-Aufkommen zurecht kommen kann.

    Mehr lesen
  • Micro-Cloud mit Cloud Foundry

    Artikel Phillip Ghadir, Oliver Wolf

    In dieser Ausgabe stellen wir mit Cloud Foundry einen Plattformdienst vor, mit dem Java-Anwendungen in der Cloud betrieben werden können. Die Plattform stellt Java-Anwendungen eine virtuelle Umgebung mit Ressourcen zur Verfügung. Wir haben Cloud Foundry für diese Kolumne gewählt, weil es die Cloud-Plattform auf den eigenen Rechner holt. Dadurch wird die Cloud- Entwicklung netzunabhängig.

    Mehr lesen
  • Wider Betonköpfe und Freigeister

    Artikel Oliver Wolf

    DevOps ist auf dem besten Weg, sich zum neuen IT-Hype zu entwickeln. Hinter der noch jungen agilen Bewegung steht die engere Verbindung zwischen Entwicklung und Betrieb. Für die technische Umsetzung haben sich schnell neue Automatisierungswerkzeuge etabliert.

    Mehr lesen
  • DevOps konkret: Infrastruktur mit Chef entwickeln

    Vortrag Martin Eigenbrodt jax 2012

    Ein Paradigma der DevOps-Bewegung ist “Infrastructure as Code”. Ganze Serverlandschaften werden nicht mehr konfiguriert, sondern wie Software entwickelt und vollständig automatisiert erstellt. Diese Session stellt diese grundlegenden Konzepte am Beispiel des Open-Source-Frameworks Chef vor.

    Mehr lesen
  • Hype oder hilfreich?

    Artikel Oliver Wolf

    DevOps – die engere Verbindung von Entwicklung (Development) und Betrieb (Operations) – ist ein Thema, das zurzeit heiß diskutiert wird. Aber was ist dran am Hype? Ist DevOps nur eine Modeerscheinung, gepusht von Agilitätsromantikern?

    Mehr lesen

    „Infrastructure as Code“ mit Chef

    Artikel Martin Eigenbrodt

    Im Rahmen der DevOps-Bewegung setzt sich die Erkenntnis durch, dass das Konfigurieren von Servern ähnlich wie das Entwickeln von Software behandelt werden sollte. Testbare, wiederholt ausführbare Programme ersetzen die manuelle Konfiguration. Dieser Artikel zeigt am Beispiel Chef, wie dieses Paradigma umgesetzt wird.

    Mehr lesen
  • Was wir von Lean-Start-ups lernen können: DevOps für den Rest der Welt

    Vortrag Oliver Wolf W-JAX 2011

    Für die Flickrs und Facebooks dieser Welt ist die enge Verbindung von Entwicklung und Betrieb - inzwischen unter dem Schlagwort DevOps bekannt - schon lange Realität. Aber auch Unternehmen mit “klassischer” IT, bei denen Time-to-Market eher in Monaten oder Jahren als in Tagen oder Wochen gemessen wird, können von einigen Prinzipien und Methoden der DevOps profitieren.

    Mehr lesen
  • Infrastruktur entwickeln mit Chef

    Vortrag Martin Eigenbrodt gearconf 2011

    Chef ist ein Configuration-Management-Tool. Mit Chef lassen sich Server verwalten, in dem Code geschrieben wird, anstatt (Konsolen-) Kommandos auszuführen. Dieser Vortrag zeigt, dass Chef auch in kleinen Projekten mit wenigen Servern und jenseits des Cloud Computing Vorteile gegenüber dem händischen Ansatz hat. Ausrücklich werden auch durch die Wahl des Beispiel Java-Entwickler angesprochen, die in der Ruby/Rails lastigen Dokumentation sonst häufig zu kurz kommen.

    Mehr lesen
  • Multimodule Projekte, CI u. Releases mit Ant & Ivy

    Vortrag Martin Eigenbrodt gearconf2010

    Heute gehören neben dem Compilieren von Sourcen und dem Erstellen von Artefakten auch das Ausführen von Tests und das Verwalten verwendeter Abhängigkeiten selbstverständlich zu den Aufgaben eines Buildsystems. Häufig erfordert allerdings das Bereitstellen von Releases ebenso wie das Branchen noch händisches Eingreifen. Diese fehlende Automatisierung ist ein Fehlerquelle und erzeugt - grade in agilen Projekten mit häufigen Releases - unnötige Aufwände. In diesem Vortrag werden Konzepte zur Lösung vorgestellt, um auch die Builds komplexer Projekte vollständig zu automatisieren und das Release auf Knopfdruck zu realisieren. Die Open Source Projekt Apache Ant 1.8.1, der Dependency Manager Apache Ivy und der Buildserver Hudson liefern dabei das mächtige und flexible Tooling zur Umsetzung.

    Mehr lesen