Navigation überspringen

Weniger Hardware, mehr Cloud

Die Zeit der Monolithen geht zu Ende. Lange war es üblich, dass Software in einer einzigen Anwendung viele Funktionen zur Verfügung stellte. Das machte die Skalierung kompliziert und jede Wartung wurde zu einem regelrechten Großereignis.

Mittlerweile bieten Microservices als Apps in der Cloud viel einfachere Erweiter- und Skalierbarkeit. Microservices sind Anwendungen, die jeweils eine eigene Code-Basis haben. Sie werden um bestimmte Funktionalitäten gebaut und können – das ist ein großer Vorteil – unabhängig voneinander bereitgestellt werden. Für eine Detailänderung reicht es dann, die entsprechende App zu ändern.

„Mit Microservices können wir Anwendungen modularisieren und hochkomplexe Software in kleine, gut handhabbare Dienste zerlegen“, erklärt Christoph Wellner. Der Lead Consultant und sein Team konzipieren und entwickeln komplexe Softwarelösungen für Kunden, die sich für Cloud-native Apps interessieren.

„Die Gesamtfunktion bleibt mit Microservices erhalten, kann aber schnell und nahtlos um neue Funktionen erweitert werden“, weiß Wellner. So wächst eine Anwendung über kleine wöchentliche oder sogar tägliche Updates einfach weiter.

In der Cloud können Unternehmen das Kostenmodell perfekt auf ihre Bedürfnisse zuschneiden, es gibt also keine brachliegenden Ressourcen.“

Christoph Wellner, Lead Consultant

Weg von der Hardware

„Wenn wir solche Microservices in der Cloud betreiben, erhalten wir weitere Vorteile“, erklärt Wellner: „Mit Cloud Computing können wir ganz nach Bedarf auf einen geteilten Pool von konfigurierbaren Ressourcen zuzugreifen und das jederzeit und von überall.“ Serviceanbieter stellen dafür die passende Infrastruktur mit minimalem Managementaufwand zur Verfügung.

Dadurch sparen Unternehmen die Kosten für „das Blech“, wie Wellner es nennt. Sie müssen also keine eigene Hardware anschaffen, betreiben oder warten. Stattdessen können sie in der Cloud ein Kostenmodell perfekt auf ihre Bedürfnisse zuschneiden, es gibt also keine brachliegenden Ressourcen, weil man vielleicht Hardware angeschafft hat, die dann selten oder nie gebraucht wird.

Kommt es in Spitzenzeiten zu einer erhöhten Last, können schnell zusätzliche Ressourcen bereitgestellt werden – ohne auf Lieferzeiten angewiesen zu sein. Wenn sich die Last wieder normalisiert hat, können die Ressourcen einfach wieder zurückgegeben werden, so dass dafür keine weiteren Kosten anfallen.

Dabei garantiert der Cloud-Betreiber jederzeit die Ausfallsicherheit der von ihm zur Verfügung gestellten Komponenten, kümmert sich um Updates und weitere Wartungsarbeiten. Dazu kommt der Vorteil der geografischen Verteilung: Cloud-Anbieter betreiben ihre Rechenzentren weltweit, dadurch können die Services, die man nutzt, nah am Verwender sein. So vermeidet man Netzwerklatenz.

Modellierung im Zentrum

Das Thema Cloud-native Apps gewinnt zunehmend an Relevanz, das zeigen auch die Ergebnisse der Studie „Cloud Native 2020“: 63 Prozent der befragten Unternehmen setzen bereits Cloud-native Apps ein, davon allerdings 40 erst seit kurzem. Zweidrittel der Befragten rechnen damit, dass Cloud Native in den kommenden Jahren eine hohe oder sehr hohe Bedeutung für Unternehmen haben wird.

Bei der Entwicklung von Apps für die Cloud ist das sogenannte Domain-driven Design (DDD) die Herangehensweise der Wahl. DDD ist eine Sammlung von Methoden, die die Bedeutung der Domäne und deren Modellierung ins Zentrum der Architekturarbeiten stellt.

Die Domäne ist das Anwendungsgebiet beziehungsweise der Einsatzbereich der Software. Expertise und Kenntnisse für den Einsatzbereich liegen bei den Mitarbeitenden in diesem Bereich, nicht bei den Softwareentwicklern. Die Fachlichkeit und die Fachlogik für die Entwicklung steuern also in der Regel Menschen ohne Kenntnisse in der Softwareentwicklung bei. Als Abbildung des Einsatzbereichs entsteht dann ein Domänenmodell als Grundlage für die Entwicklung. Bei DDD geht man davon aus, dass der größte Teil der Komplexität einer Software nicht in der technischen Umsetzung liegt, sondern in dieser Modellierung der Domäne.

Alles „as a Service“

Für den Entwickler liegt der Hauptfokus bei DDD darauf, die Fachlichkeit des Einsatzbereichs zu verstehen und eine gemeinsame Sprache zu erstellen. Mit dieser „ubiquitären Sprache“ können sich dann „Fachler“ und Entwickler so austauschen, dass es weniger zu Missverständnissen kommt. 

Für die fertige Anwendung können dann Cloud-Plattformen eine zuverlässige, skalierbare Infrastruktur zur Verfügung stellen (Infrastructure as a Service, IaaS). Darüber hinaus bieten Cloud-Unternehmen wie Amazon, Microsoft oder Google vorkonfigurierte Umgebungen an, die das Entwickeln, Ausführen und Verwalten von Anwendungen flexibel und recht komfortabel unterstützen. Systeme wie Kubernetes zur automatisierten Bereitstellung, Skalierung und Verwaltung von eigenständigen Containern-Anwendungen hat mittlerweile jeder große Cloudbetreiber genauso wie Build Pipelines, die scriptgesteuert den Quellcode von Anwendungen testen und dann ausspielen (Platform as a Service, PaaS).

Zahlreiche Anwendungen gibt es mittlerweile auch als Online-Dienst (Software as a Service, Saas), zum Beispiel CRM-Systeme oder – das kennen sicher die meisten – Office-Anwendungen wie Microsoft Office 365. Mit dem Umstieg in die Cloud können Unternehmen also nicht nur „das Blech“ loswerden, sie gewinnen darüber hinaus Flexibilität – und sparen Kosten.


Datenmodellierung

Eine der wichtigsten Komponenten Ihres Data Warehouses ist das Datenmodell. Wie eine Landkarte stellt es die Zusammenhänge zwischen den Geschäftsobjekten präzise dar und definiert, welche Daten für welche Reports bereitgestellt werden. Ein mächtiges Instrument für die Anforderungsanalyse und Dokumentation. Und ein Herzstück, das alles beeinflusst: den Ladeprozess, die Geschäftsregeln, die Historisierung und Auditfähigkeit sowie Data-Marts und Reporting. Ist das Design des Datenmodells wohldurchdacht, vereinfacht es die Entwicklung der Ladeprozesse und des Berichtswesens – und spart dadurch Kosten. Fehler hingegen beeinträchtigen den Wert Ihrer Daten erheblich und sind im Nachhinein nur aufwendig zu beheben. Unsere Spezialisten haben viele Jahre Erfahrung in der Datenmodellierung. Greifen Sie darauf zurück. Es lohnt sich.

Anwendungsentwicklung und Anwendungswartung

Explodierende Kosten und unendliche Verzögerungen in IT-Projekten? Nicht mit uns. Durch unsere große Erfahrung mit komplexen Systemen senken wir das Projektrisiko deutlich. Denn für Ihr Vorhaben nennen wir nicht nur einen verbindlichen Preis, sondern auch ein festes Lieferdatum – und lassen uns auch daran messen. Wie wir das machen? Mit unseren Angeboten gehen wir ins Detail, benennen exakte Leistungen von der Vorstudie und der Analyse über die Implementierung bis hin zur Realisierung des kompletten Projekts. So wissen Sie genau, was auf Sie zukommt. Gerne übernehmen wir die Aufgaben auch als Werkleistung. Testen Sie uns – wir stehen zu unserem Wort!

Anwendungsmodernisierung und Software Engineering

Kostenersparnis, optimierter Betrieb und einfachere Wartung: Eine gelungene Anwendungsmodernisierung bringt viele Vorteile. Wir sind darauf spezialisiert! So sorgt unser Team dafür, dass Ihre fachlichen Anforderungen besser unterstützt werden und Ihre bewährten Anwendungen sicher und performant laufen – auf moderner Hardware und mit neuen Betriebssystemen. Dazu tauschen wir nicht einfach nur alte gegen neue Technik aus. Wir transformieren Ihre Anwendungen. So unterstützen wir Ihre dynamisch wachsenden Geschäftsprozesse, auch durch klassisches Software-Engineering.