Cloud-Computing

Was ist Cloud-Computing?

Beim Cloud-Computing gehören mir die Geräte, auf denen die Software läuft, nicht mehr sondern ich miete diese bei einem Rechenzentrums-Betreiber. Gegenüber einem klassischen Rechenzentrum miete ich aber auch nicht eine konkrete Maschine sondern nur eine virtuelle Maschine mit festgelegten Parametern. D.h. der Betreiber kann die Maschine ggf. auf andere Hardware verschieben solange sie die Mindestanforderungen erfüllt.

Vorteile

Ich kann diese Maschine mieten, die meinen Anforderungen entspricht. Die Miete beginnt dann, wenn ich die Maschine brauche und kann - je nach Vertrag - kurzfristig wieder beendet werden.

Die Bereitstellung einer Maschine dauert nur wenige Minuten. Im Gegensatz zu klassischer Beschaffung bei eigenen Rechenzentren oder Hosting-Partnern ist dies ein Quantensprung.

Die einzelnen Parameter (Rechenleistung, Festplattengröße, Datendurchsatz, Netzwerkdurchsatz) lassen sich klar bestimmen. Im Verlauf der Miete können sie geändert werden. Man steht nicht mehr mit unpassender Hardware da.

Cloud-Computing stellt Kostentransparenz her. Für jeden der o.g. Parameter kann ich erkennen, wie es sich auf die Kosten auswirkt. Designentscheidungen bei der Architektur meines Systems und Auswirkungen auf die Kosten sind für das Entwicklungsteam erkennbar.

Nachteile

Ich unterwerfe mich dem Management des Cloud-Anbieters. Ggf. werde ich gezwungen bestimmte Patches zu akzeptieren.

Je nach Anwendungsfall muss ich mich über die juristischen Implikationen des Rechenzentrums-Standorts informieren.

Das Entwicklungsteam muss sich mit einer weiteren Komplexitätsebene auseinander setzen.

Nutzen für die Agilität

Entwicklungsteams können die volle Kontrolle über ihr System bekommen. Sie sind nicht mehr abhängig von anderen Abteilungen.

Business-Value und Entscheidungen im Entwicklungsprozess rücken näher zusammen.

Ggf. lassen sich Rückkopplungszyklen weiter verkürzen.

Herausforderungen für agile Teams

Cloud-Computing ist "eine Wissenschaft für sich", d.h. plötzlich müssen Fragen beantwortet werden, für die vielleicht das Wissen fehlt. Das Team kann sich dieses Wissen aneignen und/oder experimentieren. Die Cloud-Umgebung ist safe-to-fail.

Kosten für die Hardware-Plattform werden dem Team transparent. Kosten für Administration fließen in die Entwicklungszeit ein. End-to-End Verantwortung wird Realität.

 

 

Fallstricke

Das Entwicklungsteam

  • kann nicht vollständig alleine Cloud-Instanzen erzeugen und nutzen
  • darf die Cloud-Instanzen nicht administrieren
  • hat keine Budget-Gewalt für Cloud-Leistungen
  • ist zu juniorig besetzt