iX Developer Effektiver entwickeln 2016
5,99 €*
Lieferzeit Sofort lieferbar
- Continous Delivery: Basiswissen
- DevOps: IT-Kulturwandel
- Microservices: Architekturkonzept
- inkl. Heft-DVD
Continuous Delivery
… verspricht Produktivsetzungen der entwickelten Software auf Knopfdruck bei besserer Qualität. Was sind die zentralen Ideen dahinter, welche Voraussetzungen muss man schaffen, um damit erfolgreich zu sein, und was sind die wichtigsten Tools?
DevOps
… lebt nicht nur von geeigneten Werkzeugen, sondern vor allem von gegenseitigem Vertrauen und geteilter Verantwortung. Erst dann lässt sich die Idee hinter DevOps umsetzen, wie Erfahrungen mit entsprechenden Tools aus der Praxis zeigen..
Einführung
Präambel
Wie DevOps, Continuous Delivery und Containerisierung zum idealen Gespann werden8Qualitätssicherung
Zuverlässige Tests in der agilen Softwareentwicklung12Build-Security
Risiken beim Bau von Anwendungen und Lösungsansätze für die Sicherheit16Systemautomatisierung
Entwicklungs- und Produktionsumgebungen automatisiert bereitstellen und verwalten24Continuous Delivery
Eine Einführung in Continuous Delivery – Tutorial
Grundlagen36Commit Stage40
Acceptance Test Stage46
Bereitstellen der Infrastruktur50
Integrationswerkzeug
Continuos Integration und Continuous Delivery mit Jenkins54Datenbanken
Schemamigrationen mit Liquibase und Flyway60DevOps
IT-Kultur
DevOps führt Systemverwalter und Softwareentwickler zusammen66Automatisierungs-Tools
Chef, Puppet und Ansible: Im Dienst der Continuous Integration70APM
DevOps und Application Performance Management76DevSec
DevOps, Compliance und Sicherheit82Strategien gegen die Blockade
Softwareinnovationen im Maschinenbau86Change Management
Agil allein reicht nicht – Veränderungen bei der 1&1 MyWebsite90BizDevOps
Nächster Schritt in der Evolution mit einem holistischen Ansatz94Microservices
Architekturkonzept
Microservices: Modularisierung ohne Middleware100Patterns
Der perfekte Microservice106Enterprise IT
Warum Microservices in großen Unternehmen mehr als nur Software sind114Java-Microframeworks
Ein Blick auf Spark, Ninja, Jodd und Ratpack120Container
Einführung
Wie Docker die IT-Landschaft revolutioniert126Docker-Tools
Multi-Tier-Applikationen mit Docker Compose, Machine und Swarm130Ökosystem
Mehr als das Standardvorgehen:Tool-Auswahl für komplexe Docker-Szenarien136
Orchestrierung
Mit Google Kubernetes< viele Docker-Container verwalten145Virtualisierung
Docker-Container sicher betreiben150Sonstiges
Editorial3DVD-Inhalt6
Inserentenverzeichnis113
Impressum113
Der ewige Kreis
Die Softwareentwicklung zeigt derzeit Mut zur Größe – zur kleinen Größe. Der Trend geht weg von monolithischen Systemen hin zu kleinen Bausteinen wie Microservices. Auch die Zeiträume zwischen Releases schrumpfen: Statt alle ein bis drei Jahre ein großes Major Release herauszubringen und durch Service Packs zu ergänzen, veröffentlichen Unternehmen mithilfe von Continuous Delivery eine neue Softwareversion, sobald sich eine Komponente ändert. Große Internetfirmen wie Google, Amazon oder Facebook aktualisieren ihre Plattformen inzwischen im Minutentakt. Dass die Nutzer davon nur bei Änderungen der Oberfläche etwas mitbekommen, zeigt, wie reibungslos die kontinuierlichen Prozesse funktionieren können. Ein Wartungsfenster am Wochenende existiert im Internet nicht. Die Softwareentwicklung wird zum ewigen Kreis. Container bieten Entwicklern eine in sich abgeschlossene und damit überschaubare Umgebung zum Testen und Ausrollen der Anwendungen. Dank der einfachen Reproduzierbarkeit können die Teams auf große Testumgebungen verzichten. Ändern sich die Anforderungen oder Umgebungen, passen sie einfach die Schablone an und rollen neue Container aus.
Containerisierung, Komponenten oder kontinuierliche Prozesse sind keine Erfindung der 2010er-Jahre, sondern haben in der ein oder anderen Ausprägung immer wieder den Weg in die Schlagzeilen geschafft. Oft scheiterten sie in der Realität jedoch an Komplexität und Inkompatibilitäten. Es gibt jedoch entscheidende Unterschiede, die den aktuellen Techniken und Tools zum Erfolg verhelfen sollten. Microservices punkten durch die Unabhängigkeit der einzelnen Dienste voneinander: Jeder hat seine eigene Ablaufumgebung und kommuniziert über Standardnetzwerkprotokolle mit der Außenwelt. Frühere Modularisierungskonzepte bedienten oftmals eine spezielle Sprache oder verwendeten einen Applikationsserver und scheiterten an der Zusammenarbeit über die Grenzen hinweg. Docker-Container haben einen klaren Fokus auf Entwickler und sind leichter zu verwenden als vorherige Ansätze. Jenkins ist besonders wegen seiner Flexibilität und des offenen Plug-in-Konzepts zur festen Größe für Continuous Delivery geworden. Bei den Konfigurations-Management-Systemen buhlen vor allem Chef, Puppet und Ansible mit unterschiedlichen Stärken um die Gunst der Anwender.
Die technische Basis und die weitgehend quelloffenen Werkzeuge sind jedoch nur die halbe Miete. DevOps, also das Zusammenspiel von Softwareentwicklern (Dev) und den Administratoren (Ops), erfordert ein Umdenken der Beteiligten: Die Fraktionen müssen zusammenarbeiten und bei Problemen gemeinsam nach Lösungen suchen. Wenn Entwickler im Prozess der kontinuierlichen Verteilung eine Komponente ändern und damit einen neuen Build anstoßen, der die Änderung sofort ins Livesystem übernimmt, kommt ihnen und ihrem Werk zudem eine höhere Bedeutung zu als bisher. Der Satz „You build it, you run it“ von Amazons CTO Werner Vogels bringt es auf den Punkt: Jeder Entwickler ist für seinen Code verantwortlich und bekommt dadurch mehr Bezug zum Gesamtprodukt.
Der Kulturwandel erfordert Umdenken auf allen Ebenen. In einigen Projekten erweist es sich als sinnvoll, dass sich das Management aus dem Tagesgeschäft heraushält und somit den einzelnen Teams mehr Verantwortung zuteilt. Auch traditionelle Unternehmen wie Maschinenbauer können durchaus von moderner Softwareentwicklung profitieren und mit den passenden Ansätzen den Produktionsbetrieb in der Fabrik optimieren, ohne dort den reibungslosen Ablauf zu gefährden. Damit schließt er sich wieder, der ewige Kreis. Mit diesem Heft möchten wir Ihnen helfen, sich bei den Themen Continuous Delivery, DevOps, Containerisierung und Microservices zurechtzufinden. iX und heise Developer wünschen Ihnen viel Spaß beim Lesen!
Rainald Menge-Sonnentag & Alexander Neumann
Auf der Heft-DVD
Multimedia: Videos (Continuous Lifecycle 2015): The Rationale for Continuous Delivery Dave Farleys Keynote-Vortrag von der Continuous Lifecycle 2015 ist ein zeitgemäßer Überblick zu den mit Continuous Delivery und DevOps verbundenen Entwicklungsprozessen. Reinventing your Workplace – Struktur, Technik und Kultur bei 1&1 MyWebsite Der Vortrag von Matthias Kainer und Marcel Devantier zeigt, wie Struktur, Technik und Kultur Hand in Hand gehen, welche Werkzeuge man dabei verwenden kann und wie schwierig es ist, alles zu ändern.
Microservices, DevOps, Continuous :Delivery – mehr als drei Buzzwords: Eberhard Wolffs Vortrag zeigt, wie Microservices, Continuous Delivery und DevOps zusammenpassen und dass Microservices mehr als ein Hype sind.
Branch-Modelle mit Git: Verschiedene Entwicklungsszenarien erfordern passende Branches. Der Vortrag von Bjørn Stachmann und René Preißel zeigt Möglichkeiten, diese und weitere Release-Prozesse mit Git umzusetzen.
Audio (SoftwareArchitekTOUR):
• Modularisierte Architektur für große Systeme
• Know-how für Architekten
• Architekturanalyse und -bewertung
• Soziale Kompetenz für Architekten
Software: Ubuntu 14.04.4: Long-Term-Support-Release der populären Linux-Distribution, die für viele Artikel des Hefts herangezogen wurde.
Eclipse 4.5.2: Auf der Heft-DVD finden Leser das zweite Update der Entwicklungsumgebung in der Mars-Distribution für Java-Entwickler.
DevOps- und Produktivitätswerkzeuge: Continuous Delivery und DevOps sind ohne diese auf DVD zu findenden Tools nur schwer vorstellbar: Ansible, Chef, Puppet, Docker, Kubernetes, Marathon, Aurora, Mesos, Vagrant, Flyway,ˇ Liquibase, Jenkins, VirtualBox.
Listings und Lizenzen: Die Listings zu den Heftartikeln und die Lizenzen zu den Softwarepaketen auf der Heft-DVD.
Microservices (Broschüre zum Buch):Diese von Eberhard Wolff konfektionierte Broschüre gibt eine kurze Einführung in das Thema Microservices und stellt dar, was Microservices überhaupt sind und welche Vorteile sie haben. Das soll den Einstieg in das Thema erleichtern und helfen, die Einsetzbarkeit und den Nutzen von Microservices in einem bestimmten Kontext abzuschätzen. So können Microservices vom Hype zum sinnvollen Bestandteil im Werkzeugkasten eines Architekten werden. Continuous Delivery – Der pragmatische
Einstieg (Buchauszüge):Continuous Delivery ermöglicht es, Software viel schneller und mit wesentlich höherer Zuverlässigkeit in Produktion zu bringen. Eberhard Wolffs Buch hilft, sich mit dem Aufbau einer Continuous-Delivery-Pipeline vertraut zu machen, und erklärt, welche Technologien Entwickler dazu einsetzen können.
iX Developer „Bessere Software“:Das von heise Developer 2013 zusammengestellte Heft zur Qualitätssicherung in der Softwareentwicklung setzt auf 180 Seiten den Fokus auf die Schlagwörter „Agile ALM“, „Continuous Delivery“ und „DevOps“.
Anmelden