hat sich schon mal jemand hier mit dem Thema beschäftig, Anwendungen zu entwickeln die vollständig auf einer Cloud laufen sollen?
Wenn ja, welche Werkzeuge werden üblicherweise eingesetzt?
Ja, das machen wir für unsere Kunden tagtäglich.
Werkzeuge: Wow. Ne Menge
Grundsätzlich kann man so ziemlich alles in der Cloud laufen lassen. Fragt sich nur, auf welcher Ebene.
"Cloud", egal bei welchem Anbieter, bietet ja immer verschiedene Abstraktionsebenen an. Das fängt von IaaS (Infrastructure as a Service) an wo man eben VM's mietet (ist so ziemlich das teuerste), und geht über PaaS (Platform as a Service) z.B. Docker oder Kubernetes wo man seine Anwendungen auf der Plattform "Cloud" laufen lässt bis hin zu SaaS (Software as a Service), wo man z.B. gleich komplette hochverfügbare Datenbankcluster oder Message-Queues oder Event-Processing Plattformen etc.pp. mieten kann.
Containerisierung hat den Vorteil, dass der Overhead einen Container laufen zu lassen sehr gering ist. Man bekommt also deutlich mehr durch Container voneinander isolierte Prozesse auf der gleichen Hardware zum laufen als es z.B. mit VM's der Fall wäre - damit ist das im Betrieb am Ende am günstigsten. Dabei ist das egal ob das in der Cloud gemietete oder selber gekaufte Hardware im eigenen RZ ist (kurzum: Container lohnen sich so oder so). Ausnahme: Windows-Container. Die mag keiner betreiben (selbst MS in Azure nicht
), sie sind groß, unhandlich, haben viel overhead... Also Finger weg davon.
Will heissen: Was Du in einem Linux-Container bei Dir am Laufen hast, kannst Du in aller Regel auch problemlos genau so in die Cloud hieven.
Mit was das gebaut wird, sei es in Rust, Go, .NET, Delphi, wegen mir auch Java (naja.. lieber ned
, ist am Ende eigentlich egal.
Für die Cloud sind die verwendeten Architekturpatterns deutlich wichtiger als die eigentliche Technologie. Also isolierte, unabhängig skalierbare, zustandslose Dienste, die asynchron miteinander kommunizieren, also z.B. über Message Queues oder Event-Streaming Systeme. CQRS (command and
query responsibility segregation, also nicht schreiben und gleich die modifizierten Daten zurückliefern, sondern entweder nur schreiben oder nur lesen). Wenn man das beachtet, dann flutscht das eben egal wo man es betreibt, sei es im eigenen RZ oder eben in der Cloud.