Modulare Software

Mit dem Stand der Technik laufen wir weg von monolithischen Strukturen


Mit dem Stand der Technik laufen wir weg von monolithischen Strukturen."

  • Wie teilt man einen Monolithen?

    Die Basis sind virtuelle Container bzw. Container Images. Dies ist ein relativ isoliertes und unveränderliches Paket aus einer Software und den zur Laufzeit benötigten Werkzeugen und Dateien. Ein Image ist folglich für sich genommen lauffähig und äußerst robust.

  • Wo kann man mit diesen Containern arbeiten?

    z.B. auf einer Openshift Container Plattform.


    "Die OpenShift Container Platform (früher als OpenShift Enterprise bekannt) ist die lokale private Plattform von Red Hat als Serviceprodukt, die auf einem Kern von Anwendungscontainern aufgebaut ist, die von Docker bereitgestellt werden. Die OpenShift Container Platform stellt Kubernetes-Umgebungen für Unternehmen zur Verfügung, die zum Erstellen, Bereitstellen und Verwalten von containerbasierten Anwendungen auf jedem öffentlichen oder privaten Rechenzentrum dienen, auf denen Red Hat Enterprise Linux unterstützt wird. Im Vergleich zu virtuellen Maschinen enthalten Container kein eigenes Betriebssystem und benötigen weniger Ressourcen. Man spricht von einer Virtualisierung von Anwendungen, da es sich nicht um eine reine Betriebssystemvirtualisierung handelt." (Quelle: Wikipedia)


Wie sollte man mit solchen Containern arbeiten?

Devops toolchain


➝ CI/CD

  • "Continuous Integration" (kurz: CI) ist die Praxis, den gesamten neuen Quellcode mehrmals täglich auf einem gemeinsam genutzten Versionskontrollserver wie GitHub zu konsolidieren.
  • "Continuous Delivery" (kurz: CD) dient dazu, Software in kurzen Zyklen auszuliefern (Release) und so sicherzustellen, dass die Software jederzeit zuverlässig freigegeben werden kann. Es zielt darauf ab, Software mit vollständiger Automatisierung zu erstellen, zu testen und freizugeben. Der Ansatz trägt dazu bei, die Kosten, die Zeit und das Risiko der Bereitstellung von Änderungen zu reduzieren, indem mehr inkrementelle Updates für Anwendungen in der Produktion ermöglicht werden. Ein unkomplizierter und wiederholbarer Bereitstellungsprozess ist wichtig für Continuous Delivery.
  • Dotnet Core Anwendungen
  • Kommunikation an:
  • Kafka (Message Queue)
  • Datenbanken (Oracle/MSSQL)
  • Rest APIs
  • Frontends mit Blazor/Angular/HTML…

CI/CD - Webinar

Auf dem Weg zu „softwaredefinierten Fahrzeugen“ in der heutigen Automobilwelt ist der Hauptunterscheidungsfaktor die Software. Inspiriert von der Smartphone-Industrie erwarten Benutzer die neueste Software für ihre Fahrzeuge per Over-The-Air (OTA) für neue aktualisierte oder verbesserte Funktionen und behobene Probleme, wie die Firmware und Anwendungen auf ihren Smartphones. Um dieser Herausforderung gerecht zu werden, muss kontinuierlich Software bereitgestellt, die ständig weiterentwickelt getestet werden muss. Continuous Integration/Continuous Deployment hilft, dieses Ziel zu erreichen.

Elemente einer CI/CD-Pipeline

Die Schritte in einer CI/CD-Pipeline stellen verschiedene Untergruppen von Aufgaben dar, die in sogenannte Pipeline-Phasen eingeteilt werden. Zu diesen Phasen gehören üblicherweise:

 

  • Build – Die Phase, in der die Anwendung kompiliert wird.
  • Test – Die Phase, in der der Code getestet wird. Hier lassen sich durch Automatisierung sowohl der Zeit- als auch der Arbeitsaufwand verringern.
  • Release – Die Phase, in der die Anwendung ins Repository gestellt wird.
  • Bereitstellung – In dieser Phase wird der Code in der Produktionsumgebung bereitgestellt.
  • Validierung und Compliance – Welche Schritte zur Validierung eines Builds notwendig sind, bestimmen die Anforderungen des jeweiligen Unternehmens. Scanning Tools für die Image-Sicherheit, wie Clair, sichern die Qualität von Images, indem diese mit bekannten Schwachstellen (CVEs) verglichen werden.


  • Jede Änderung vom Entwickler geht auf das DEV-System (automatisiert)
  • Feature/Change Request abgeschlossen?
  • Merge auf Main Branch ➝ Deploy auf das Q-System (automatisiert) ➝ Bereit für Business Tests
  • Business ok ? ➝ Release Erstellung durch Operations Team ➝ Deploy auf P-System (manuell)
  • Rest Api Calls von Maschinen aus über den aktuellen Arbeitsschritt eines Materials
  • Generierung Kafka Message
  • Interne Verbuchung (Materialverbräuche/SAP Ankündigung)
  • Aufträge spiegeln den aktuellen Stand in der Produktion wider

Bestandteile/Anbindung

  • SAP
  • Order Management
  • Legacy System (Fördertechnik, Kisten-Speicher)
  • Lagerhaus
  • UMC als Benutzerverwaltung
  • MES Reporting
  • Scheduling/Planning

Unsere Leistungen für Sie im Überblick:

  • Beratungsleistungen zum modularen Software Design
  • Konzeption und Definition von virtuellen IT-System-Landschaften
  • Definition und Konzeption von CI CD Pipelines
  • Implementierungsleistungen innerhalb Ihres Projektteams
  • Eigenständige Teilprojektumsetzung innerhalb Ihres Systems nach Spezifikation
  • Beratungs- und Implementierungsleistung in Hinblick auf die Kombination interner Module mit Standartprodukten des MOM-Layer
Share by: