FaaS – Function as a Service: „Lego Technik“ für Anwendungen
Von „FaaS“ haben Sie noch nie gehört? Stimmt – diese Abkürzung haben wir erfunden, um einen neuen und in Zukunft voraussichtlich wesentlichen Bereich der Cloud-Angebote für Sie besser Zusammenfassen zu können.
Die eigentlichen Innovationen durch die Cloud bzw. in der Cloud finden nicht im Bereich der bloßen Verlagerung klassischer Anwendungen auf Server in der Cloud statt, sondern in gänzlich neuen, kleinteiligen Angeboten von spezialisieren Teilfunktionen, aus denen Entwickler dann eine neue Generation von Anwendungen zusammensetzen können.
Diese Angebote richten sich an Administratoren und Software-Entwickler und sind meist auch nicht allgemeinverständlich, da sie keine für Endanwender nutzbare Oberfläche und Funktionalität haben. So kommt es, dass sie in der breiten öffentlichen Diskussion kaum auftauchen. Allerdings gehen nach meiner Einschätzung mindestens 90% der Investitionen auf Anbieterseite in genau diesen Bereich!
Es gibt mittlerweile eine unüberschaubare Vielfalt entsprechender Angebote von spezialisierten Anbietern, aber auch bei den großen Cloud-Providern wie Amazon, Microsoft, IBM und Google spielt sich die eigentliche Entwicklung in diesem Bereich ab.
Cloud ist nicht Outsourcing
Einfach nur die bisher schon inhouse genutzten monolithischen Anwendungen auf Server in der Cloud zu übertragen, oder gar die eigenen Server zu virtualisieren und in die Cloud zu verschieben (oder bereits virtualisierte zu verlagern), vielleicht Anwendungen per Remote Desktop Service auf einem Windows Terminal Server zu nutzen, ist eigentlich mehr klassisches Outsourcing als Cloud-Innovation.
Auch in der Vergangenheit haben ja bereits viele Unternehmen ihre internen Server und Anwendungen zu einem Dienstleister in dessen Rechenzentrum verlagert und damit Betreuung und Verwaltung abgegeben – allerdings ohne Veränderung der Infrastruktur und der Anwendungslandschaft.
Lassen Sie es mich so ausdrücken: Wer meint, Cloud sei ein neuer Name für preisgünstigere und flexiblere Outsourcing-Rechenzentren, der verpasst das beste – und versäumt es möglicherweise, seine IT rechtzeitig strategisch neu auszurichten.
Cloud-Native Anwendungen
Die neue Generation von Anwendungen ist cloud-nativ: das bedeutet, sie nutzt Laufzeitumgebungen und modulare Funktionen und Services, die es nur in der Cloud gibt. Diese Anwendungen laufen auch nur noch in der Cloud und sind auf die genutzten Dienste angewiesen.
Die Entwicklung ist einerseits einfacher als bisher, da viele komplexe Funktionalitäten nicht mehr selbst geschrieben werden müssen, und andererseits auch anspruchsvoller, weil sie aufgrund der vielseitigen Abhängigkeiten und der Verteilung der Verarbeitung viele asynchrone Abläufe enthalten und auch darauf eingerichtet sein müssen, dass nicht immer alle Dienste in einer bestimmten Reaktionszeit verfügbar sind.
Vor allem aber lassen sich so Anwendungen entwickeln, die ungleich mächtiger und funktionsreicher sind als bisher und die viel besser skalieren. Eine gut gebaute cloud-native Anwendung kann fast eine beliebige Nutzerzahl bedienen, ohne Änderungen zu benötigen.
Die so gebauten Anwendungen auf „FaaS – Basis“ erleben Sie als Endkunde dann als SaaS – Angebote von Cloud-Anbietern – oder sie entwickeln die nächste Generation ihre hausinternen Anwendungen selbst auf diese Weise. Die meisten großen SaaS-Angebote sind solche cloud-nativen Anwendungen.
Anwendungen, die spezifische für die Cloud entwickelt werden
- Nutzen den modularen Aufbau der Cloud
- Werden aus einzelnen Diensten „zusammengesetzt“ bzw. nutzen cloud-spezifische Anwendungsdienste
- Sind komplett unabhängig von einzelnen Servern oder Ressourcen
- Skalieren automatisch
- Sind schnell und berücksichtigen die Verteilung der Dienste und Datenbanken durch Caching
- Sind fehlertolerant gegenüber der temporären Nichtverfügbarkeit einzelner genutzter Dienste
- Lassen sich per Browser nutzen (ohne lokale Installation)
- Sind wieder echte Client/Server – Anwendungen mit hochfunktionaler Browser – GUI in HTML 5 / JavaScript
- Bieten neue, effiziente Bedienung (nicht an „Websites“ denken!)
- Keine „Bildschirm-Fernsteuerung“ mehr wie bei Terminal Servern / Remote Desktop Services
Beispiele für Funktionsangebote in der Cloud
Wir beschränken uns hier auf einige prominente, allgemeinverständliche Funktionsangebote, von denen Sie möglicherweise auch schon gehört haben oder die Sie bereits nutzen. Kontaktieren Sie uns gerne, wenn Sie mehr über technische Möglichkeiten Ihrer Anwendungsentwicklung in der Cloud wissen möchten!
Alexa
Amazons digitale Assistentin gibt es nicht nur in Echo-Lautsprechern. Die eigentliche Innovation im Hintergrund ist die API (Funktionsschnittstelle), um Alexa-Funktionen und Sprachsteuerung in eine neue Generation von Anwendungen zu integrieren. Der einfachste Fall ist die Entwicklung sogenannter „Skills“ in einer einfachen Skriptsprache, die Funktionen Ihrer Anwendung mit Sprachsteuerung versehen. Sie müssen sich um nichts kümmern außer der Zuordnung von Befehlen (Wörtern und Sätzen) zu Funktionen Ihrer Anwendung. Das Ergebnis laden Sie in eine fertige Laufzeitumgebung bei Amazon hoch, und schon sind Sie fertig – ihre Anwendung ist dann z.B. über Echo-Lautsprecher steuer- und nutzbar. Beispiele hierfür sind die Steuerung Ihrer SmartHome-Geräte oder der Abruf der Tagesschau. Aber auch viele Unternehmen arbeiten längst daran, ihren Kunden Angebote per Alexa / Echo bereitzustellen.
Bots
Automatische Sprach-RoBoTer kennen Sie vermutlich bereits von nervigen Hotlines oder als Chat-Angebote auf Websites. Lassen Sie sich nicht von der „Dummheit“ ersten Bot-Generation täuschen, in Henry Fords erstes Fahrzeug wären sie auch nicht in Urlaub gefahren ;-). Stellen Sie sich eine stark verbesserte Kombination von Bots mit Alexas Sprachverständnis vor, die komplexere Aufgaben auf Zuruf für Sie erledigen – und denken Sie am besten schon heute darüber nach, wo es sinnvoll für Sie ist, Ihren Kunden entsprechende Möglichkeiten anzubieten und öffnen Sie ihre Anwendungslandschaft hierfür.
IBM Watson
Mit „Watson“ bietet IBM komplexe KI-Funktionen für Anwendungen an, die dann automatisiert genutzt werden können.
Bilderkennung / Verschlagwortung
Bei Diensten zur Bildanalyse Sie – bzw. entsprechend programmierte Anwendungen – Bilder hochladen, die dann automatisch analysiert und mit den erkannten Motivinformationen verschlagwortet werden. Möglicherweise demnächst auch mit automatischer Personenerkennung… wenn auch vermutlich nicht in Deutschland bzw. der EU.
Abruf von Börsenkursen
Spezielle Dienste für den Abruf aktueller Börsenkurse gehörten mit zu den allerersten Funktionsangeboten in der Cloud. Sie ermöglichen Websites oder Finanzanwendungen den Abruf von Kursdaten von Wertpapieren und Währungen praktisch aller Börsen. Was Sie als Websites kennen, auf denen Sie manuell nachsehen, ist im Hintergrund eigentlich ein Dienst, der über Funktioinsaufrufe von Programmen genutzt werden kann. Auch die Website, die Sie kennen, ist nur ein solches „Programm“, welches den Cloud-Dienst im Hintergrund aufruft.
Sprachübersetzungen
Ein Beispiel für eine „allgemeinverständliche“ Funktion in der Cloud ist der in Deutschland ansässige Übersetzungsdienst DeepL, dessen Qualität in den unterstützten Sprachen derzeit wohl führend ist. DeepL bietet (wie auch andere Anbieter wie Microsoft oder Google) eine API (Funktionsaufrufe für Programme) an. Per Funktionsaufruf wird ein Text und die gewünschte Zielsprache übergeben, und zurückgeliefert wird eine brauchbare Übersetzung. Integriert man diese Aufrufe z.B. in das Redaktionssystem seiner Website, so dass bei jeder Aktualisierung eines Inhaltes automatisch Übersetzungen abgerufen werden, und bietet dem Besucher eine Auswahlbox für die Sprache an, kann man mit sehr wenig Aufwand und Kosten vollautomatisch eine vielsprachige Internetpräsenz anbieten.
Lesen Sie Sie demnächst auch die Dritte Folge unserer Artikelreihe zur Cloud! Unser Thema dann:
Vorteile, Nachteile, Risiken und Kosten der Cloud.