Continuous Delivery mit OpenShift, 2nd Edition



Ähnliche Dokumente
Continuous Delivery mit OpenShift

Daniel Tschan Technischer Leiter. Continuous Delivery mit OpenShift

Use AMW to deploy to OpenShift

Platform as a Service (PaaS) & Containerization

Continuous Delivery in der Realität eines Großunternehmens

OpenShift Tech Lab. Daniel Tschan CTO. Anselm Strauss Senior System Engineer

Build-Pipeline mit Jenkins

Continuous Database Integration mit Flyway

Cloud-Provider im Vergleich. Markus

Continuous Delivery in der Praxis

MOBILE ON POWER MACHEN SIE IHRE ANWENDUNGEN MOBIL?!

Database Change Management für Continuous Delivery. Diana Lander und Andreas Falk NovaTec Consulting GmbH

Continuous Integration mit Jenkins

MOBILE ENTERPRISE APPLICATION PLATFORM (MEAP)

DevOps bei den ID Build-Automatisierung statt Silo-Betrieb

Consultant & Geschäftsführer, enpit consulting OHG ugb@enpit.de

MOBILE ENTERPRISE APPLICATION PLATFORM (MEAP)

Atlassian Git Essentials Nahtlose Entwicklungsworkflows aus einer Hand

Erfolgreicher Ums9eg auf Git

IBM SPSS Modeler Entity Analytics - Erweiterte Konfiguration

Einreichung zum Call for Papers

Entwicklungsumgebungen. Packer, Vagrant, Puppet. Alexander Pacnik Mannheim,

Uwe Baumann artiso Solutions

End-to-End Automatisierung Mehr als Continuous Integration & Continuous Delivery

Platform as a Service (PaaS) Prof. Dr. Ch. Reich

TimeMachine. Installation und Konfiguration. Version 1.4. Stand Dokument: install.odt. Berger EDV Service Tulbeckstr.

Erfahrungsbericht zu JBoss SOA Platform 6 Tech Talk 2013, 17. Oktober 2013, Bern

Überblick IBM Offerings für Cloud-Provider

Deploy von PHP-Applikationen

Microsoft Azure Fundamentals MOC 10979

seit Java 1.1 Bestandteil der API: packages java.sql, javax.sql

Wir implementieren Lösungen. + DevOps-in-the-Box. Rainer Heinold VP Technology and Services

SINT Rest App Documentation

Renée Bäcker. Perl $foo Magazin

Release Automation für Siebel

Puzzle Tech Talk. Workshops Application Deployment in einer OpenStack Cloud

Oracle Database Backup Service - DR mit der Cloud

Bekannte Tools in einem agilen Ansatz. Frank Schwichtenberg SourceTalkTage 2013 Göttingen,

Value Delivery and Customer Feedback

Container Hype. TODO : Vollflächiges Container Bild. Håkan Dahlström Source:

DevOps und Continuous Delivery. Von Release Automation bis zur Feedbackschleife. Matthias Zieger codecentric AG

Installation & Konfiguration AddOn CopyObjects

SAP DB und OpenOffice.org

Virtual Unified Environments Infrastructure Service Installation und Lifecycle im Oracle Produktumfeld

Was ist ein «Nintex Workflow»? Nintex - Eine Übersicht Januar 2014

SharePoint Continuous Integration mit TFS Online & Azure VMs Torsten Mandelkow Christian Pappert Microsoft

SharePoint s Best Practice Was funktioniert (wirklich)? DI(FH) Chris Holubarz Teamlead SharePoint

Betriebshandbuch. MyInTouch Import Tool

Upgrade-Leitfaden. Apparo Fast Edit. Wechsel von Version 2 auf Version oder Wechsel von Version auf Version 3.0.

ALM mit Visual Studio Online. Philip Gossweiler Noser Engineering AG

Wiederherstellen der Beispieldatenbanken zum Buch Microsoft Project 2010

Continuous Delivery in der Praxis

KURZANLEITUNG CYBERDUCK MIT CLOUD OBJECT STORAGE

Grails. Weiterführende Themen zu Internet- und WWW-Technologien. Matthias Springer. 06. Juni 2011

Buildsystem. Maven & Scons. Controls Entwicklungsforum Januar 2012

JBoss AS 7. Installation, Konfiguration und Betrieb. Alexander Pacnik Karlsruhe,

Installation von NetBeans inkl. Glassfish Anwendungs-Server

Verbinden von IBM Informix mit Openoffice mittels JDBC

Installation von xpetstore auf Tomcat unter Verwendung von C-JDBC und eines Clusters aus HypersonicSQL Backends

Windows HPC Server 2008 aus der Betreiberperspektive

Webcast-Serie IT Transformation in die Cloud, Teil 1. Public Cloud - mit Best-Practice-Beispiel hetras GmbH - Henning von Kielpinski, ConSol* GmbH

Bes 10 Für ios und Android

Seite Out-Of-Band-Authentifizierung (OOBA) 8.1 Einleitung

Hacking-Lab Online Hack&Learn 9. December 2008

THEMA: "SAS STORED PROCESSES - SCHNELL GEZAUBERT" HELENE SCHMITZ

MailUtilities: Remote Deployment - Einführung

Wo finde ich die Software? - Jedem ProLiant Server liegt eine Management CD bei. - Über die Internetseite

Android Testautomatisierung mit dem Framework Robotium

Portal for ArcGIS - Eine Einführung

SQL Azure Technischer Überblick. Steffen Krause Technical Evangelist Microsoft Deutschland GmbH

Möglichkeiten von Cloud Computing für Entwicklung und Test. Michael Eichenberger SBB Informatik Developer Day 10. Dezember 2013

Python SVN-Revision 12

Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

Archive / Backup System für OpenVMS

Panagon Capture 3.0 Dokumentation

Ora Education GmbH. Lehrgang: Oracle Application Server 10g R3: Administration

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Maven 2 Softwareprojekte mit Kultur

Core Solutions of Microsoft Exchange Server 2013 MOC 20341

Build Management Tool?

Application Lifecycle Management mittels Polarion und custom Plug-Ins

Serbest Hammade / Resh serbest.hammade@hammade.de. Do, 21. Juni 2012

Überblick Produkte. ORACLE AS 10g R3 JAVA Programming. (5 Tage)

NoSQL mit Postgres 15. Juni 2015

Installation des GeoShop Redirector für Apache (Stand ) ================================================================

datenfabrik. Validieren von -Adressen 1

ORM & OLAP. Object-oriented Enterprise Application Programming Model for In-Memory Databases. Sebastian Oergel

Dynamic Ressource Management

Thomas Wagner 2009 (im Rahmen der TA) Installation von MySQL 5.0 und Tomcat 5.5

Ablösung von Control-M durch JobScheduler

Transkript:

Daniel Tschan CTO Continuous Delivery mit OpenShift, 2nd Edition OpenShift Tech Lab, Bern, 27.10.2014

1 Grundlagen

Kleine Geschichte «Integration Hell» und «Works on My Machine» 1991: Object Oriented Design: With Applications 1999: Extreme Programming Explained 2001: CruiseControl 2005: Hudson 2010: Continuous Delivery

Voraussetzungen Agiler Entwicklungsprozess Continuous Integration

Continuous Integration Versionsverwaltung für Quelltext Automatisiertes kompilieren jeder Codeversion Tests automatisch ausführen, auf prod. Stack Häufiges einchecken/integrieren Automatisches Reporting Automatisches Deployment auf Integration

Warum Continuous Delivery? Continuous Integration weiterentwickeln Fehlerquellen eliminieren Effizienz steigern Flexibilität erhöhen Feedbackzyklen verkürzen Zusammenarbeit verstärken

Continuous Delivery Möglichst identische Umgebungen Ein Artifakt für alle Umgebungen Eindeutige Versionsnummer Vollautomatisiertes Deployment auf Knopfdruck Environment Detection DB Management Tool/Migrationsskripte

OpenShift Platform as a Service (PaaS) Produkt von Red Hat Public oder private cloud Softwarestacks auf Knopfdruck Java, Ruby, JavaScript, Python, PHP,.NET,... 3 Applikationen gratis hosten auf openshift.com

Liquibase Versioniert die Datenbank Bestimmt die auszuführenden Migrationsskripte Führt diese in korrekter Reihenfolge aus

2 Umsetzung bei Puzzle

Umsetzungsbeispiel mit Java EE Database Stack + App Jenkins App

Identische Umgebungen DEV INT STG PRD dedicated

Jenkins CD Support bisher Promoted Builds Plugin Auf Knopfdruck Build X auf Umgebung Y deployen Parametrized Trigger Plugin X und Y an Deploy Job übergeben Copy Artifact Plugin Deployment Artifakt von Build nach Deploy Job kopieren Freestyle Jobs Konfiguration und Kombination der Plugins

Jenkins Workflow Support DSL basierend auf Groovy Entwickelt für Continuous Delivery Pipelines Entwickelt von CloudBees (Jenkins Enterprise) Resume nach Restart/Crash von Jenkins

Jenkins Workflow Support Wiederverwenden von DSL Scripts über integrierten Git Server: http://jenkins.example/workflowlibs.git Bleeding Edge: JENKINS-26481 Benötigt Jenkins >= 1.580.1 Installation: Plugin «Workflow: Aggregator»

Ein Artifakt Workflow Build Job auf Puzzle Jenkins Server node { git url: "https://github.com/puzzle/quickstart-javaee6-liquibase.git" String mvnhome = tool("maven3") sh "${mvnhome}/bin/mvn -B verify" sh "mv target/javaee6-liquibase.war \ target/root.war" } def openshift = new com.puzzleitc.openshift() openshift.tar(".", "target/root.war")

Automatisiertes Deployment Workflow Deploy Job auf Puzzle Jenkins Server This build is parametrized: Run Parameter: BUILD Project: name of build job Choice Parameter: TIER Choices: dev, int, stg, prd String Parameter: LOGIN Password Parameter: PASSWORD

Automatisiertes Deployment Groovy CPS DSL: node { def openshift = new com.puzzleitc.openshift() openshift.deploy( build: BUILD, tier: TIER, user: LOGIN, password: PASSWORD, serverdev: "broker.openshift-dev.puzzle.ch", serverprd: "broker.openshift.puzzle.ch", appdev: "techlabdev", appprd: "techlab", options: "--hot-deploy") }

Deployen auf Knopfdruck

Environment Detection Umgebungsspezifische Konfiguration über Umgebungsvariabeln: DNS Name Datenbankverbindungsdaten Daten-/Logverzeichnisse

Environment Detection Umgebungsvariabeln setzen: Automatisch durch OpenShift rhc env set (automatisieren!)

DB Change Management Liquibase ist Teil des Deployments Alle Liquibase Change Sets sind Teil des Deployments Applikation führt bei Start Liquibase aus Liquibase führt Change Sets aufgrund des Datenbankstandes aus

Liquibase Integration public class LiquibaseProducer { @Resource(lookup = "java:ourdatasource") DataSource datasource; @Produces @LiquibaseType public CDILiquibaseConfig createconfig() { CDILiquibaseConfig config = new CDILiquibaseConfig(); config.setchangelog("/db.changelog.xml"); return config; }

Liquibase Integration @Produces @LiquibaseType public DataSource createdatasource() throws SQLException { public datasource; } } @Produces @LiquibaseType public ResourceAccessor create() { public public ClassLoaderResourceAccessor( getclass().getclassloader()); }

Warum Liquibase in der App? Applikationsartefakt von Umgebung unabhängig Applikation und DB sind immer kompatibel Datenbankverbindung gegeben Unterstützt Cluster und Cloud Deployments

Warum nicht OpenShift Jenkins? Verletzt ein «Artefakt für alle Umgebungen» Schwer zu warten: custom build script in jedem Job Kein Workflow Support Ressourcen beschränkt Maven Version hardcoded

Nächste Schritte OpenShift Umgebungsvariabeln zentral verwalten Integration von Artifactory in Prozess Weiterentwickeln Prozess für OpenShift Scalable Apps

Referenzen Continuous Delivery OpenShift User Guide Liquibase Documentation Jenkins Workflow Plugin

Q & A

15 Jahre Puzzle ITC Jubiläums Tech Talk 22. Oktober 2015 Save The Date

DDL vs DML Aus fachlicher Sicht identisch: DROP TABLE table DELETE FROM table