Aufrufe
vor 3 Jahren

01 | 2014 NEWS

  • Text
  • Banking
  • Experten
  • Risikovorsorge
  • Daten
  • Security
  • Sicherheit
  • Technologie
  • Msggillardon
  • Naspa
  • Metadaten
  • Anforderungen
  • Vertriebsplanung
  • Banken
  • Praxisbericht
  • Sparkassen
  • Auswirkungen
  • Fokus
Liquidität im Fokus

u Praxisbericht Build-

u Praxisbericht Build- und Deployment-Verwaltung ist eine auf Jenkins basierende Continuous-Integration-Plattform. Dort werden je Projekttyp entsprechende Build- und Deployment-Jobs definiert. Bei der Ausführung eines Jobs müssen benötigte Parameter wie Projektname und Zielumgebung angegeben werden. Diese Parameter werden an das generische Build-Skript für den jeweiligen Projekttyp übergeben. Regelmäßig eingeplante Builds werden schließlich über einen weiteren Build-Job aufgerufen, in dem die o. g. Parameter persistiert sind. Dieses Vorgehen bringt eine Reihe von Vorteilen: Abbildung 4: Release-Durchführung (beispielhaft) > > Einzelne Builds oder Teile davon können flexibel über Jenkins (z. B. über das Build-Flow-Plug-in) miteinander kombiniert werden, ohne die Implementierung der Build-Skripte zu ändern. > > Parametrisierte Builds lassen sich einfacher über externe Schnittstellen aufrufen, da keine spezifischen Jobs je Projekt bekannt sein müssen. Es ist ausreichend, Projektname, Projekttyp und Build-Aufgabe (z. B. Build, Deployment, Analyse) zu kennen und zu übergeben. So wird die Integration mit den umgebenden Workflow-Systemen vereinfacht. > > Die bestehenden Build-Skripte können zu großen Teilen bestehen bleiben; einzig die Möglichkeit der Parametrisierung wird aufgenommen. Das durch diese Modifikation entstehende Risiko, die Funktionalität der Builds zu gefährden, ist weitaus geringer als bei einer vollständigen Re-Implementierung. > > Änderungen an der Implementierung der Build-Skripte sind sofort für alle Projekte des entsprechenden Typs aktiviert, es müssen keine neuen, projektspezifischen Build-Skripte erzeugt werden. > > Berechtigungen für Builds und Deployments können an zentraler Stelle in Jenkins vergeben werden. Die Integration mit AD/LDAP ermöglicht die Nutzung unternehmensweit definierter Benutzer und Rollen. > > Die Protokollierung kann zentral gesteuert werden. Das ist beispielweise bei Aktionen wie Produktiv-Deployments relevant, die revisionssicher dokumentiert werden müssen. Abbildung 5: Release-Durchführung mit verweigertem Approval (beispielhaft) Die aus den Builds entstehenden Softwareartefakte werden neben der Installation auf den Laufzeitumgebungen auch in einem zentralen Repository abgelegt. Dieses Repository dient der Historisierung der Softwarestände auf den Laufzeitumgebungen und der Abbildung von Abhängigkeiten zwischen Einzelprojekten. Abhängigkeitsmanagement Zwischen Einzelprojekten besteht eine Vielzahl von logischen Abhängigkeiten, z. B. zwischen Batch-Jobs, die zwar in voneinander getrennten Projekten entwickelt werden, aber in der zeitlichen Einplanung und in Bezug auf Ein- und Ausgabedaten aufeinander abgestimmt sein müssen. Abhängigkeiten können zwischen verschiedenen Versionen der gleichen Komponenten unterschiedlich sein. Aktuell sind die Abhängigkeiten nicht als Metadaten erfasst und auch nicht maschinell auswertbar. Dies bedeutet 36 I NEWS 01/2014

Praxisbericht t einerseits, dass Einzelkomponenten nicht risikolos zwischen Systemumgebungen wie Test und Produktion transportiert werden können, da nicht ohne weitgehende Tests sichergestellt werden kann, dass alle benötigten Abhängigkeiten dort in der entsprechenden Version vorhanden sind. Andererseits müssen beim Build der entsprechenden Komponenten alle potenziellen Abhängigkeiten ebenfalls gebaut werden, um einen konsistenten Stand zu erstellen. Das führt zu einer langen Laufzeit der Builds, was wiederum die Reaktionszeit auf kritische Änderungen/Bug-Fixes sowie den Hardwarebedarf für die Build-Server erhöht. Weiterhin gilt auch, dass durch unbekannte Abhängigkeiten nicht nur die Deployments neuer Versionen, sondern ebenso die Wiederherstellung eines Last-known-good-Status mit großen Risiken behaftet sind. Wird beispielsweise in einer neuen Version einer Komponente ein Fehler festgestellt, so kann nicht ohne Weiteres die vorhergehende Version wieder eingespielt werden, da bereits weitere Komponenten von der neuen Version abhängig sein könnten. Diese Problematik wird weiter verschärft, je komplexer und tiefer verschachtelt transitive Abhängigkeiten sind. Das Vorhandensein unbekannter Abhängigkeiten macht auch die Trennung von Test- und Produktionsumgebungen unsicher. So kann beispielsweise Komponente A, die auf Test in Version 1.1 und in Produktion erst in Version 1.0 vorhanden ist, Seiteneffekte auf Komponente B haben. Wird jetzt eine neue Version von Komponente B vor Komponente A produktiv genommen, so entsteht der Fall, dass die Kombination A(v1.1)+B getestet wurde, in Produktion aber A(v1.0)+B deployed ist. Solange der Betrieb durch ein gut eingespieltes Kernteam erfolgt, ist es möglich, dass keine ernsthaften Probleme auftreten – man „weiß ja“, welche Komponenten Seiteneffekte hervorrufen. Dass dieser Zustand weder verlässlich ist noch aktuellen Risikomanagementvorgaben entspricht, liegt auf der Hand. Diesen Zustand auf einmal zu bereinigen, ist aus mehreren Gründen nicht möglich: Erstens bindet das Erfassen aller Abhängigkeiten nahezu alle Entwicklungsbereiche für einen langen Zeitraum. Zweitens kann während der Bereinigung keine Entwicklung stattfinden, und drittens müssen alle Build-Verfahren auf einmal umgestellt werden. Das in der KfW entwickelte und angewandte Vorgehen ermöglicht es, durch einen iterativen Ansatz des Abhängigkeitsmanagements für neue Projekte zu nutzen, und macht existierende Projekte im Rahmen des Abhängigkeitsmanagements adressierbar. Dazu werden während der SCM-Migration die Projektkoordinaten Gruppe, Artefakt-ID und Version als automatisiert verarbeitbare Metadaten in jedem Projekt abgelegt. Diese Metadaten können aus Projekttyp und Projektname erzeugt werden. Die Version wird für alle Artefakte initial auf 1.0.0 gesetzt. Weiterhin wird für jeden Projekttyp definiert, wie Distributionen eines Projekts zusammengestellt werden. Mit diesen Informationen ist es möglich, Build-Artefakte in einem Artefact Repository – in vorliegenden Projekt wurde Sonatype Nexus mit Apache Maven verwendet – zu versionieren. Zwar wird durch diesen Schritt noch kein Abhängigkeitsmanagement eingeführt, die grundlegenden Voraussetzungen dafür werden aber geschaffen: > > Projekte sind in einer bestimmten Version eindeutig adressierbar. > > Ein Repository, in dem versionierte Artefakte abgelegt werden können, ist vorhanden und kann genutzt werden, um Abhängigkeiten aufzulösen. > > Ein Build-Verfahren, das das Abhängigkeitsmanagement unterstützt, ist etabliert. Neue Projekte nutzen diese Möglichkeit unmittelbar; auf bestehende Projekte hat das Vorgehen zunächst keine Auswirkung. So kann das Entwicklungsteam eines Legacy-Projekts selbst im Einzelfall entscheiden, ob und wenn ja wann die formelle Abbildung der Abhängigkeiten erfolgen soll. Um die Nachvollziehbarkeit von Deployments auf Laufzeitumgebungen wie Test, QA oder Produktion zu gewährleisten, wird im Artefact Repository je Umgebung eine Stage definiert. „Promotions“ von einer Stage zur anderen, also z. B. der Transport von Test auf Produktion, können so mit entsprechenden Berechtigungen oder ei- NEWS 01/2014 I 37

msg

01 | 2018 public
02 | 2017 public
01 | 2017 public
02 | 2016 public
01 | 2016 public
02 | 2015 public
01 | 2015 public
01 | 2014 public
01 | 2014 msg systems study
01 | 2015 msg systems Studienband
Future Utility 2030
Lünendonk® Trendstudie
Digitale Transformation | DE
Digital Transformation | EN
DE | inscom 2014 Report
EN | inscom 2014 Report

msgGillardon

03 | 2016 NEWS
02 | 2016 NEWS
01 | 2016 NEWS
03 | 2015 NEWS
02 | 2015 NEWS
01 | 2015 NEWS
02 | 2014 NEWS
01 | 2014 NEWS
02 | 2013 NEWS
01 | 2012 NEWS
02 | 2011 NEWS
01 | 2010 NEWS
MaRisk
01 | 2017 banking insight
01 | 2015 banking insight
01 | 2014 banking insight
01 | 2013 banking insight
01 | 2012 banking insight
02 | 2011 banking insight
01 | 2011 banking insight
01 | 2010 banking insight
2016 | Seminarkatalog | Finanzen

Über msg



msg ist eine unabhängige, international agierende Unternehmensgruppe mit weltweit mehr als 6.000 Mitarbeitern. Sie bietet ein ganzheitliches Leistungsspektrum aus einfallsreicher strategischer Beratung und intelligenten, nachhaltig wertschöpfenden IT-Lösungen für die Branchen Automotive, Banking, Food, Insurance, Life Science & Healthcare, Public Sector, Telecommunications, Travel & Logistics sowie Utilities und hat in über 35 Jahren einen ausgezeichneten Ruf als Branchenspezialist erworben.

Die Bandbreite unterschiedlicher Branchen- und Themenschwerpunkte decken im Unternehmensverbund eigenständige Gesellschaften ab: Dabei bildet die msg systems ag den zentralen Kern der Unternehmensgruppe und arbeitet mit den Gesellschaften fachlich und organisatorisch eng zusammen. So werden die Kompetenzen, Erfahrungen und das Know-how aller Mitglieder zu einem ganzheitlichen Lösungsportfolio mit messbarem Mehrwert für die Kunden gebündelt. msg nimmt im Ranking der IT-Beratungs- und Systemintegrationsunternehmen in Deutschland Platz 7 ein.


© 2018 by msg systems ag - powered by yumpu Datenschutz | Impressum