Was ist eine Cloud-native App

Definition, Vorteile und Best Practices einer Cloudnative App und was ist eine PWA?

Was ist eine Cloudnative App?


Welche Vorteile hat eine Cloudnative App?


Cloudnative Entwicklung: So gelingt Ihr Projekt!


Progressive Web App(PWA): Definition, Nutzen und Beispiele

 

In unserem Artikel klären wir diese Fragen. Sie erfahren wie Sie eine Cloudnative App nutzen können, um Ihre Prozesse zu einem Gamechanger zu machen.

Was ist eine Cloud-native App?

Cloudnative ist eine moderne Herangehensweise, um Software agiler und schneller zu entwickeln. Die App wird in viele kleine, voneinander unabhängige Teile zerlegt. Das Konzept sieht vor, dass diese Bestandteile unabhängig voneinander arbeiten und vor allem entwickelt werden können. Wie der Begriff „Cloud“ schon offenbart, läuft die Software nicht mehr On-premise, also auf Ihren stationären Servern. Die Programme sind so ausgelegt, dass der Betrieb direkt aus der Cloud-Plattform stattfindet.

Von außen betrachtet sind cloudnative Anwendungen eine Sammlung mehrerer unabhängiger, kleiner Services. Wir Entwickler nennen sie auch Microservices. Das haben Sie mit Sicherheit schon einmal gelesen. Die Microservices übernehmen verschiedene Funktionen in der Applikation. Verpackt man alle für eine Funktion wichtigen Microservices zu einem Paket, nennt man dies Container. Wenn Sie jetzt einen Teil Ihrer Anwendung optimieren wollen, müssen Sie nicht mehr die ganze Applikation „anfassen“, sondern können nur an den einzelnen Container arbeiten. Durch Systeme wie Docker wird der Container als eine Datei verpackt, die Ihnen das Deployment erleichtert. 

Wahrscheinlich kennen Sie es? Das Windows-Update-Fenster nervt Sie seit Wochen. Ihre Finger sind schon Wund vom „Später erinnern“-Button klicken. Denn Sie wissen: Wenn ich jetzt das große Update mache, dann kann ich noch ganz in Ruhe eine halbe Stunde was etwas anderem nachkommen.

Bei der Integration von Änderungen mittels Microservices und Containern, werden kleinere und häufigere kleine Updates zu Verfügung gestellt. Sie und Ihre Nutzer müssen also nicht mehr auf die großen neuen Releases warten. Bei Cloud-native Apps bekommen Sie und Ihre Nutzer diese Updates meist nicht einmal mit. Da die Applikationen aus der Cloud geladen werden, bedarf es keiner Änderungen auf der Festplatte des Nutzers.

Um cloudnative Anwendungen zu entwickeln ist ratsam Ihre Entwickler und Ihr Operations-Team mithilfe von DevOps zusammenzubringen. Mehr zu DevOps lesen Sie hier.

Die Zusammenarbeit von Ihren Dev-Team und Ihrem Operations-Team für die Entwicklung einer Cloud-native App ermöglicht Ihnen eine automatisierte und kontinuierliche Bereitstellung von Updates. Bei diesen Konzepten sprechen wir von Continuous Integration, Continuous Delivery und Continuous Deployment (CI / CD). Insbesondere sorgt CI/CD für eine kontinuierliche Automatisierung und Überwachung über den gesamten App-Lifecycle hinweg, von der Integrations- und Test- bis hin zur Bereitstellungs- und Implementierungsphase.

Welche Vorteile hat eine Cloud-native App für mein Unternehmen?

Der größte Vorteil von cloudnativen Applikationen deren Rechen-Ressourcen auf mehrere Umgebungen verteilt ist, ist die Beschleunigung der Entwicklung und des Betriebs. Wenn Sie die verschiedenen Container oder Microservices Ihrer App betrachten, gibt es wahrscheinlich wichtigere bzw. grundsätzliche Funktionen, die eine höhere Priorität haben. Diese können sich nun herauspicken und daran arbeiten, ohne die weniger wichtigen Container mitbearbeiten zu müssen. Die Beschleunigung des Betriebes entstammt der Cloud. Sie verteilen die benötigte Rechenleistung an einen Cloudprovider. Sie kennen es sicher aus der Praxis. Es gibt Monate, an denen Sie eine hohe Anzahl an Rechenabfragen haben und Monate, in denen Sie geringer ist. Diese Schwankung könnten Sie mit einer herkömmlichen Serverstruktur kaum bis gar nicht berücksichtigen. Die Leistung der Server muss immer für den Peak ausgelegt sein. Hier kommt die Stärke der Cloud zum Vorschein. Ihr Cloudhoster, egal ob Amazon, Oracle oder Microsoft, kann diese Nachfrage messen und passt automatisch die verfügbare Rechenleistung daran an. Im Klartext: Sie nutzen und bezahlen lediglich so viel, wie Sie bzw. Ihre Nutzer verbrauchen.

  • Schnellere Integration neuer Funktionen
  • Beschleunigte Entwicklung und Test
  • Ungebundenheit an Systeme
  • Skalierung
  • Ressourcenoptimierung

Bestehende Anwendungen in eine Cloud-native Applikation umwandeln: So gelingt das Projekt!

Sie wollen Ihre bestehenden Applikationen in die Cloud bringen? Kein Problem! Achten Sie auf die folgenden drei Ansätze und Ihrer digitalen Transformation steht nichts im Wege!

Repackaging

Beim Repackaging ist das Verpacken Ihrer bisherigen Anwendungen in Container gemeint. Machen Sie sich dabei Gedanken, welche Anwendungen von einer getrennt laufen können. Hierbei spielt nicht nur die Technik eine Rolle, sondern vor allem Ihre businesslogischen Zusammenhänge. Das können Sie mit einem Umzug vergleichen: Sie schauen Ihre Einrichtung und Gegenstände durch und packen diese in Kartons. Dies würden Sie ja auch nicht willkürlich tun, sondern in einem Zusammenhang. Gläser zu Gläsern, Bücher aus dem Wohnzimmer in einen Karton, Unterlagen aus dem Büro ebenfalls zusammen.

Replatforming

Beim Repackaging haben wir die Container gepackt und sortiert. Das Replatforming verfrachtet die Container in ein neues Framework. Stellen Sie sich vor Sie ziehen um. Nachdem Sie in der alten Wohnung Ihre Habseligkeiten in Kartons (Container) verpackt haben, werden diese nun mit einem Transporter in die neue Wohnung gebracht. Ihnen fällt in der neuen Wohnung auf: Oh, mein altes Sofa aus dem Wohnzimmer und die passende Lampe machen sich viel besser im Gästezimmer. Ihre neue Wohnung steht hier symbolisch für das Replatforming.

Beim Replatforming wird Ihre Anwendung in moderne Architektur und Platform gebracht. Das kann zum Beispiel Kubernetes sein. Der große Vorteil liegt darin, dass Sie dadurch moderne Anwendungen im selben Framework wie cloud-native Applikationen laufen lassen können.

Refactoring

Das Refactoring beschreibt die Anpassung der Architektur einer monolithischen Anwendung. Mono-was? Eine monolithische Anwendung ist in diesem Fall ein Microservice. Auf gut deutsch gesagt: Wir passen den Code der einzelnen Anwendungen und Microservices so an, dass Sie Ihre App problemlos aus der Cloud betreiben und auch skalieren können. Das Refactoring kann sehr aufwendig sein. Die neue Architektur greift auf cloud-native Prinzipien zurück, die Ihnen alle Möglichkeiten bietet, Ihre Software zu betreiben. Es ist aber auch möglich, nur einzelne Teile Ihrer App in Microservices zu refaktorieren. So können Sie nach und nach umziehen. Apropos Umzug: In unserem Umzugsbeispiel wäre das Refactoring ein Innenarchitekt. Er zeigt Ihnen welches Möbelstück oder welche Deko, platziert werden muss, damit Ihre Wohnung ein gutes Klima hat, gut aussieht und Ihnen gefällt. 

Bonus: Orchestrierung

Wünschen Sie sich auch, dass bei Ihrem Umzug automatisch alle Gegenstände Ihrer alten Wohnung, an den perfekten Ort in der neuen Wohnung kommen? Dann haben wir hier eine Lösung. Natürlich für Ihre cloud-native App. Bei der Orchestrierung werden Ihre Prozesse und Workflows in mehreren Schritten und in verschiedenen Systemen automatisiert. Automatisierung und Orchestrierung sind zwar unterschiedliche Konzepte, aber trotzdem verwandt. Die Automatisierung reduziert die manuellen Eingriffe bei IT-Systemen. Mithilfe der Orchestrierung können Sie einige IT-Prozesse, wie zum Beispiel das Serverprovisioning, automatisieren. Ihre Cloud-Native Anwendung weiß dann nämlich: Ich arbeite bald an der Auslastungsrenze, wir benötigen mehr Rechenpower!

Sie benötigen eine professionelle Meinung oder wollen die Vorteile einer App in Ihrem Unternehmen nutzen?

Schreiben Sie uns gern!

Cloud-Native vs. Monolithische Anwendungen

Cloud-Native vs. Monolithische Anwendungen: Worin unterscheiden sie sich?

Cloud-native Anwendungen

Monolithische Anwendungen

unabhängig von Plattform

Gebunden an Plattform

Rechenkapazität anpassbar

Überdimensionierte Rechenkapazität

kollaborativ

Silo-Denken

Continuous Delivery

Wasserfall

Automatisiertes Skalieren

Manuelle Skalierung

Progressive Web Apps (PWA)

Definition

Progressive Web App (kurz: PWA) - eine hybride Website. Progressive Web Apps weisen Eigenschaften von klassischen Smartphone-Apps auf, werden aber über einen Browser aufgerufen. Besonders im B2C Geschäft setzen Unternehmen auf Progressive Web Apps. Ziel der PWA ist es, unabhängig vom Betriebssystem als Website und als App zu funktionieren.

Progressive Web Apps funktionieren auf Basis von „Service Workers“. Dabei handelt es sich um ein JavaScript. Service Workers bringen einen Vorteil mit sich: Inhalte können im Hintergrund im Cache geladen werden. Es bedarf zur Ausführung der progressive App also keiner konstanten Internetverbindung. Außerdem ermöglicht das JavaScript das Aufrufen der Seite ohne Ladepausen.

Doch die Service Worker können noch viel mehr. Bei der Entwicklung der PWA werden Aufgaben für Service Worker definiert und als Skript hinterlegt. Die App-Developer können somit ganze Programmabläufe konfigurieren, die abhängig von verschiedenen Triggern vordefinierte Ereignisse auslösen. Inhalte können also bereits vor dem Klick vorgeladen werden. Das Grundgerüst von PWAs ist die Application Shell. Sie sorgt dafür, dass eine mobile Ansicht der URL generiert wird und die App auf dem jeweiligen Browser funktioniert. Die Application Shell gewährleistet außerdem, dass die PWA optisch einer nativen App ähnelt. Damit können Sie Ihr Corporate Design sowohl in einer nativen App als auch in einer Progressive Web App umsetzen.

Eine weitere wichtige Komponente der Progressiven Web App ist das Web App Manifest. Beim Web App Manifest handelt es sich um eine JSON-Datei, die auf dem Server hinterlegt wird. Die JSON-Datei macht es für Ihre Nutzer möglich, die Progressive Web App wie eine native App auf dem Endgerät zu speichern. Die PWA wird dabei allerdings nicht wie eine native App vollumfänglich heruntergeladen. Es wird nur das Grundgerüst aus dem Power Shell heruntergeladen, die die wichtigsten Funktionen offlinefähig macht. Im Web App Manifest kann außerdem ein Icon für das Abspeichern auf dem Homescreen festgelegt werden. So erscheint dem User die PWA wie eine native App und der Umweg über den Browser wird redundant.

PWA vs. Web App

Jetzt fragen Sie sich sicher: Wo ist der Unterschied zwischen Progressive Web App und Web App? Beide Varianten laufen browserbasiert auf verschiedenen mobilen Betriebssystemen wie Android, iOS und Windows Phone. Beide beinhalten ein Responsive Design und lassen sich sowohl mobil als auch am Desktop über den Browser abrufen. Fairerweise muss man sagen, dass der Ansatz der PWA nicht neu ist. Er präsentiert sich aber wesentlich ausgereifter als bei traditionellen Web Apps. Die Funktionen der PWA passen sich den Gegebenheiten des Endgerätes an. Nutzer, deren Gerät oder Browser also nicht alle Features der App ausführen kann, können die Applikation trotzdem nutzen. Zwar nur in abgespeckter Variante, wie z.B. ohne GPS oder Kompass, wenn das Gerät dies nicht mitbringt, aber die anderen Funktionen. Zaubern können die PWAs leider (noch) nicht.

PWA Beispiel

Wir betrachten ein Beispiel für eine Progressive Web App. Es handelt sich um eine Onlineplattform, zum Verwalten von Fotos und Videos. Nutzer können ihre Bilder und Videos hochladen und kategorisieren und mit ihren Freunden und Verwandten teilen. Außerdem erlaubt die App die Nutzung der Kamera. Nicht alle Geräte und Browser erlauben aber die Nutzung der Kamera. Manche Geräte wie Desktop-PC’s haben meist nicht einmal eine Kamera. Beim Starten der Anwendung prüft die Progressive Web App, ob eine Kamera angeschlossen ist und ob der diese vom Browser unterstützt wird. Wenn keine Kamera angeschlossen oder unterstützt wird, steht dem Nutzer diese Funktion nicht zur Verfügung. Alle anderen Funktionen, wie z.B. das Erstellen von Alben oder der Output von Videos ist aber trotz dessen möglich. Auch wenn die Kompatibilität der Kamera nicht gegeben ist, kann der Nutzer Bilder vom Speicher des Endgerätes hochladen.

Populäre Beispiele für Progressive Web Apps

Wenn Sie eine dieser Website genutzten haben, sind Sie bereits mit einer PWA in Kontakt gekommen:

www.wikipedia.org

www.airbnb.de

www.spotify.de

www.twitter.de

www.trivago.de

www.starbucks.de/app

 

Woran Sie eine Progressive Web App und den Service Worker erkennen?

Haben Sie schon einmal eine Webseite mit dem Tool "Untersuchen" betrachtet? Oftmals nutzt man dieses, um Informationen zum Code oder zu Cookies zu erlangen. Wenn Sie im Reiter oben auf "Quellcode" klicken sehen Sie eine Liste von Services, die von der Webseite verwendet werden. Diese sehen Sie auf dem folgenden Bild am Beispiel von Twitter:

Dort sehen Sie im linken Teil des Bildes eine Aufzählung von Diensten. Unter anderem nutzt Twitter Google Analytics. Darunter finden Sie auch schon das Javascript des Service Workers.

Ein weiteres Indiz, dass Sie eine PWA nutzen, zeigt Ihnen auch Ihr Browser an. In der Adresszeile verstecken sich oftmals viele nützliche Informationen und Handlungsmöglichkeiten. Neben dem SSL-Zertifikat auf der linken Seite der Web-Adresse sehen Sie rechts verschiedene Icons zum Übersetzen der Seite oder um die Seite zu den Favoriten hinzuzufügen. Im Falle, dass Sie auf eine PWA gestoßen sind kommt dort ein weiteres Icon zum Vorschein:

Auch Instagram lässt sich als Progressive Web App sowie als Native App auf dem Endgerät installieren.

Sie möchten Ihre Anwendung in einer Cloudnative App oder einer Progressive Web App darstellen um Ihre Umsätze zu steigern oder Ihren Kunden eine bessere Userexperience zu bieten?

Unsere Softwareentwickler freuen sich auf Ihre Mail!

Sie wollen mehr über Apps wissen?

Sie möchten Ihre eigene App entwickeln lassen, aber haben noch Fragen zum Prozess?

Unser Vertriebsexperte Jan Faltin hilft Ihnen gern weiter.

Jan-Philip Faltin
Tel.: +49 5308 7070 0
Mail: vertrieb@bws-group.de

Mehr zu unseren Leistungen finden Sie hier