SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
CONTINOUS DELIVERY
Aber sicher?!
DevDay 2016 -- Dresden, 12.04.2016
Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 1
Jan Dittberner
T-Systems Multimedia Solutions GmbH
▶ Softwarearchitekt
▶ Themen: Linux, PKI, Automatisierung, …
▶ Debian Developer
Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 2
Continous Delivery
Entwicklungsumgebungen
Nachvollziehbare Deployments
Security-Aspekte
Fazit
Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 3
CONTINOUS DELIVERY
Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 4
CONTINOUS DELIVERY
WARUM?
▶ Features schneller beim Anwender
▶ schnelles Feedback
▶ Qualitätssteigerung
▶ mehr
”
Denkarbeit“ statt langweiliger Routine
Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 5
CONTINOUS DELIVERY
AUTOMATISIERUNG
▶ Softwarebuild
▶ Unit-, Acceptance-, Integration-, Performance-, …-Test
▶ Umgebungsbereitstellung (Provisionierung)
▶ Deployment
▶ Lieferprozesse
▶ Dokumentation
▶ Monitoring/Reporting
▶ …alles was sonst noch Routine sein sollte
Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 6
ENTWICKLUNGSUMGEBUNGEN
SYSTEMKONTEXT
Datenbank
Filesystem
Scheduler
Webservice
WebappHTTP-ProxyLoad-Balancer
Spooler
SMTP-MTASMTP-Proxy
DNS-Server
Abbildung: vereinfachtes Architekturbild
Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 7
ENTWICKLUNGSUMGEBUNGEN
PUPPET
https://puppetlabs.com
▶ Tool für Configuration Management
▶ Infrastruktur wird als Code beschrieben (Puppet DSL,
YAML, Ruby)
▶ neue Maschinen können innerhalb weniger Minuten
nachvollziehbar eingerichtet werden
▶ kann auch mit anderen Tools realisiert werden (Beispiel
cfengine, Saltstack, Ansible, …)
Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 8
ENTWICKLUNGSUMGEBUNGEN
PACKER UND VAGRANT
https://www.packer.io
https://www.vagrantup.com
▶ Mit Packer kann man sauber definierte Basisimages
erstellen
▶ Vagrant steuert (lokale) VMs über eine textuelle
Beschreibung
▶ dadurch können Entwickler mit einem produktionsnahen
OS arbeiten
▶ gleicher Puppet-Code für lokale und andere Umgebungen
▶ lokaler Test von Deployments möglich
Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 9
ENTWICKLUNGSUMGEBUNGEN
SECURITY
Auch Sicherheitsfunktionalität sollte produktionsnah umgesetzt sein:
möglichst gleiche Einstellungen, Schlüssellängen, Algorithmen, …auch in Entwicklungs- und
Testumgebungen
so nicht
Quelle: starecat.com
so auch nicht …sondern so
Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 10
NACHVOLLZIEHBARE DEPLOYMENTS
DEPLOYMENTS
▶ … müssen nachvollziehbar sein und zur Software
passen
▶ … müssen getestet werden
▶ auch Änderungen an der Persistenzschicht (z.B.
Datenbankänderungen) gehören dazu
▶ … und natürlich Konfigurationsdaten
Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 11
NACHVOLLZIEHBARE DEPLOYMENTS
JENKINS
▶ Software übersetzen, paketieren, automatisch testen mit
Maven oder anderem Build-Tool
▶ Konfiguration der Software vor dem Deployment
▶ Ausführen von Datenbankmigrationen (bei uns mit
Liquibase)
▶ Deployment auf Entwicklungs- und Testumgebungen
Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 12
NACHVOLLZIEHBARE DEPLOYMENTS
METADATEN
Information welcher Softwarestand,
in welcher Konfiguration, wo deployt ist
▶ benötigt für Testaussagen
▶ benötigt für Monitoring
▶ beim Build werden Versionen in definierte Dateien
geschrieben
▶ beim Deployment werden daraus Custom Facts für Puppet
und Wiki-Seiten
▶ von Puppet in PuppetDB übertragen
Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 13
NACHVOLLZIEHBARE DEPLOYMENTS
MONITORING
▶ Auch für Entwicklungs- und Testsysteme nützlich
▶ Vermeiden von
”
Blindflug“, Früherkennung von
Problemen
▶ Üben für den Wirkbetrieb
▶ um manuelle Einrichtung zu vermeiden registrieren
sich unsere Maschinen beim Puppetlauf selbst fürs
Monitoring durch Icinga2
Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 14
SECURITY-ASPEKTE
VERSCHLÜSSELUNG VON CREDENTIALS
▶ betriebliche Anforderung: keine Klartextpasswörter
on Disk
▶ Lösungen:
▶ Jasypt
▶ Wildfly-Vault (Applikationsserver-spezifischer
Mechanismus)
▶ Encrypted Tablespaces in Datenbank
Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 15
SECURITY-ASPEKTE
VERSCHLÜSSELUNG VON CREDENTIALS
Jasypt
http://www.jasypt.org/
▶ Verschlüsselung von Properties, Texten oder ganzen
Dateien mit Standard-Algorithmen
▶ einfach integrierbar mit Spring, Hibernate und
anderen Java-Frameworks
▶ Verschlüsselung passiert bei uns während der
Deploymentkonfiguration
▶ Entschlüsselung beim Applikationsstart/ zur Laufzeit
Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 16
SECURITY-ASPEKTE
ZERTIFIKATE
▶ Anforderung: Alle Netzwerkverbindungen müssen
TLS-verschlüsselt sein
▶ Herausforderung: mehrere hundert gültige Zertifikate
in unterschiedlichsten Keystore-Formaten benötigt
▶ Lösung:
▶ Projekt-CA inkl. OCSP-Responder für Entwicklung
und Test (aktuell auf Basis von OpenSSL)
▶ Maven-Plugins für Erzeugung von Signing-Request
und Keystore-Formaten
▶ Jenkins-Jobs für Steuerung der CA, Erzeugung von
umgebungsspezifischen Keystores und Checks auf
Zertifikatsablauf
Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 17
SECURITY-ASPEKTE
ZUGRIFF AUF MASCHINEN
▶ dedizierte Applikationsnutzer
▶ zentrale Verwaltung von SSH-Keys (SKM)
▶ Verteilung des SKM-Master-Keys per Puppet
▶ kein Zugriff auf Produktionsmaschinen für
Entwicklungs-/Testteam
Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 18
SECURITY-ASPEKTE
ABSICHERUNG DER (ORACLE-)DATENBANK
▶ Encrypted Tablespaces
▶ Database Vault
▶ ermöglicht Vier-Augen-Prinzip für
Datenbankänderungen
▶ verhindert Datenzugriff auch für DBAs
▶ zu beachten bei Datenbankmigrationen
Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 19
SECURITY-ASPEKTE
ABSICHERUNG VON DEPLOYMENTS
▶ unkonfigurierte Lieferartefakte
▶ Konfigurationsdateien nur als Templates in der
Lieferung
▶ Konfigurationsdaten liegen in getrennten
Repositories
▶ Konfiguration findet auf separaten Maschinen statt
▶ Deployment per Key-Based SSH
Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 20
FAZIT
▶ Continuos Delivery ist sinnvoll – auch für
sicherheitsrelevante Projekte
▶ Entwicklungs- und Testumgebungen so
wirkbetriebsnah wie möglich
▶ Alles automatisieren – auch Security-Aspekte
Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 21
KONTAKT
Jan Dittberner
T-Systems Multimedia Solutions GmbH
Mail: jan.dittberner@t-systems.com
Twitter: @jandd
https://coffeestats.org/
Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 22

Weitere ähnliche Inhalte

Andere mochten auch

E learning-2 e and 2na
E learning-2 e and 2naE learning-2 e and 2na
E learning-2 e and 2na
hainira
 
20130904 splash maps
20130904 splash maps20130904 splash maps
20130904 splash maps
dbyhundred
 

Andere mochten auch (20)

Continous delivery - lad koden flyde 2014
Continous delivery - lad koden flyde 2014Continous delivery - lad koden flyde 2014
Continous delivery - lad koden flyde 2014
 
DevDay 2016: Artur Speth - DevOps - Microsoft Developer Divisions Weg ins näc...
DevDay 2016: Artur Speth - DevOps - Microsoft Developer Divisions Weg ins näc...DevDay 2016: Artur Speth - DevOps - Microsoft Developer Divisions Weg ins näc...
DevDay 2016: Artur Speth - DevOps - Microsoft Developer Divisions Weg ins näc...
 
DevDay 2016: Dave Farley - The Rationale for Continuous Delivery
DevDay 2016: Dave Farley - The Rationale for Continuous DeliveryDevDay 2016: Dave Farley - The Rationale for Continuous Delivery
DevDay 2016: Dave Farley - The Rationale for Continuous Delivery
 
Testing, CI and CD in the real world
Testing, CI and CD in the real worldTesting, CI and CD in the real world
Testing, CI and CD in the real world
 
Simple Continous Integration
Simple Continous IntegrationSimple Continous Integration
Simple Continous Integration
 
DevDay 2016: Adam Bien - Eine sprachneutrale Essenz der Microservices
DevDay 2016: Adam Bien - Eine sprachneutrale Essenz der MicroservicesDevDay 2016: Adam Bien - Eine sprachneutrale Essenz der Microservices
DevDay 2016: Adam Bien - Eine sprachneutrale Essenz der Microservices
 
DevDay 2016 - Jan Dittberner - Continous Delivery - Aber sicher?!
DevDay 2016 - Jan Dittberner - Continous Delivery - Aber sicher?!DevDay 2016 - Jan Dittberner - Continous Delivery - Aber sicher?!
DevDay 2016 - Jan Dittberner - Continous Delivery - Aber sicher?!
 
DevDay 2016: Hendrik Lösch - Lose gekoppelt wie nie: DI vs. IoC
DevDay 2016: Hendrik Lösch - Lose gekoppelt wie nie: DI vs. IoCDevDay 2016: Hendrik Lösch - Lose gekoppelt wie nie: DI vs. IoC
DevDay 2016: Hendrik Lösch - Lose gekoppelt wie nie: DI vs. IoC
 
DevDay 2016: Dave Farley - Acceptance testing for continuous delivery
DevDay 2016: Dave Farley - Acceptance testing for continuous deliveryDevDay 2016: Dave Farley - Acceptance testing for continuous delivery
DevDay 2016: Dave Farley - Acceptance testing for continuous delivery
 
DevDay 2016: Frank Lamack, Denis Loh - Mixing Up Realities – Mit AR, VR, AV z...
DevDay 2016: Frank Lamack, Denis Loh - Mixing Up Realities – Mit AR, VR, AV z...DevDay 2016: Frank Lamack, Denis Loh - Mixing Up Realities – Mit AR, VR, AV z...
DevDay 2016: Frank Lamack, Denis Loh - Mixing Up Realities – Mit AR, VR, AV z...
 
Continuous Product Improvement
Continuous Product ImprovementContinuous Product Improvement
Continuous Product Improvement
 
E learning-2 e and 2na
E learning-2 e and 2naE learning-2 e and 2na
E learning-2 e and 2na
 
φυσικη β κεφ 2
φυσικη β κεφ 2φυσικη β κεφ 2
φυσικη β κεφ 2
 
Het Huwelijk
Het HuwelijkHet Huwelijk
Het Huwelijk
 
20130904 splash maps
20130904 splash maps20130904 splash maps
20130904 splash maps
 
E newsletter
E newsletterE newsletter
E newsletter
 
FACULTAD DE AUDITORIA
FACULTAD DE AUDITORIAFACULTAD DE AUDITORIA
FACULTAD DE AUDITORIA
 
Katechismus 9 - 10 jarigen - De Sacramenten
Katechismus 9 - 10 jarigen - De SacramentenKatechismus 9 - 10 jarigen - De Sacramenten
Katechismus 9 - 10 jarigen - De Sacramenten
 
Silicon Valley 2014 - API Antipatterns
Silicon Valley 2014 - API AntipatternsSilicon Valley 2014 - API Antipatterns
Silicon Valley 2014 - API Antipatterns
 
MongoSF 2011 - Using MongoDB for IGN's Social Platform
MongoSF 2011 - Using MongoDB for IGN's Social PlatformMongoSF 2011 - Using MongoDB for IGN's Social Platform
MongoSF 2011 - Using MongoDB for IGN's Social Platform
 

Ähnlich wie Continuous Delivery - Aber Sicher?!

Boost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with DockerBoost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with Docker
Steven Grzbielok
 

Ähnlich wie Continuous Delivery - Aber Sicher?! (20)

DevSecOps .pptx
DevSecOps .pptxDevSecOps .pptx
DevSecOps .pptx
 
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...
 
Oracle AVDF in der Praxis
Oracle AVDF in der PraxisOracle AVDF in der Praxis
Oracle AVDF in der Praxis
 
Kaps - Continuous Deployment Roadmap
Kaps - Continuous Deployment RoadmapKaps - Continuous Deployment Roadmap
Kaps - Continuous Deployment Roadmap
 
Applikationsmodernisierung: Der Weg von Legacy in die Cloud
Applikationsmodernisierung: Der Weg von Legacy in die CloudApplikationsmodernisierung: Der Weg von Legacy in die Cloud
Applikationsmodernisierung: Der Weg von Legacy in die Cloud
 
Dev Day Stephan Pirnbaum.pdf
Dev Day Stephan Pirnbaum.pdfDev Day Stephan Pirnbaum.pdf
Dev Day Stephan Pirnbaum.pdf
 
Azure Days 2019: Master the Move to Azure (Konrad Brunner)
Azure Days 2019: Master the Move to Azure (Konrad Brunner)Azure Days 2019: Master the Move to Azure (Konrad Brunner)
Azure Days 2019: Master the Move to Azure (Konrad Brunner)
 
Akzeptanz-Test getriebene Produktentwicklung
Akzeptanz-Test getriebene ProduktentwicklungAkzeptanz-Test getriebene Produktentwicklung
Akzeptanz-Test getriebene Produktentwicklung
 
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development EnvironmentsVortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
 
Desktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application VirtualizationDesktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application Virtualization
 
Middleware Basics für den DBA
Middleware Basics für den DBAMiddleware Basics für den DBA
Middleware Basics für den DBA
 
DevOps: Automatisierte Deployments mit TFS & Octopus Deploy
DevOps: Automatisierte Deployments mit TFS & Octopus DeployDevOps: Automatisierte Deployments mit TFS & Octopus Deploy
DevOps: Automatisierte Deployments mit TFS & Octopus Deploy
 
Foreman: Docker Integration (Webinar vom 05. Oktober_2016)
Foreman: Docker Integration (Webinar vom 05. Oktober_2016)Foreman: Docker Integration (Webinar vom 05. Oktober_2016)
Foreman: Docker Integration (Webinar vom 05. Oktober_2016)
 
070-685 Zertifizierungsprüfung deutsch
070-685 Zertifizierungsprüfung deutsch070-685 Zertifizierungsprüfung deutsch
070-685 Zertifizierungsprüfung deutsch
 
Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.
Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.
Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.
 
Gradle - Beginner's Workshop (german)
Gradle - Beginner's Workshop (german)Gradle - Beginner's Workshop (german)
Gradle - Beginner's Workshop (german)
 
Vagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenVagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und Architekten
 
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
 
Boost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with DockerBoost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with Docker
 
Kontinuierliches (Nicht)-Funktionales Testen von Microservices auf K8s
Kontinuierliches (Nicht)-Funktionales Testen von Microservices auf K8sKontinuierliches (Nicht)-Funktionales Testen von Microservices auf K8s
Kontinuierliches (Nicht)-Funktionales Testen von Microservices auf K8s
 

Continuous Delivery - Aber Sicher?!