Kategorien
Kommentar

Erneuter Ausfall der Amazon Web Services zeigt, dass Cloud Nutzer nicht aus den eigenen Fehlern lernen

Gestern war es dann wieder einmal soweit. Amazon hatte erneut mit einem schweren Ausfall in seiner Region US-East-1 zu kämpfen und zog direkt die üblichen Verdächtigen Reddit, Foursquare, Heroku und Co. mit. Dabei handelt es sich bereits um den fünften signifikanten Ausfall in den letzten 18 Monaten in dieser Region. Nach April 2011, März 2012 sowie dem 15. und 30. Juni 2012 plus vier weitere Ausfälle innerhalb nur einer Woche im Jahr 2010, nun der nächste Ausfall.

Die Hintergründe des AWS Ausfall

Die Region US-East-1 ist die älteste aller AWS Regionen. Dabei handelt es sich um das Rechenzentrum in Virginia, das erst vor kurzer Zeit wegen schwerer Gewitter in die Schlagzeilen geraten war. Letzte Woche hatte ich noch geschrieben, dass neue Public Cloud Anbieter zwar mittlerweile über aktuellere Technologien verfügen, es für Amazon auf Grund der losen Kopplung sämtlicher Services aber leicht fallen sollte, einen Austausch vorzunehmen. Es scheint, dass der Zeitpunkt mehr als überschritten ist. Das Grab US-East-1 ist größer als vermutet.

Was ist passiert?

Was genau passiert ist, kann der AWS Statusseite zu Beginn verständlicherweise nicht immer direkt entnommen werden. In der Regel wird ein paar Tage nach dem Ausfall ein ausführlicher Blogpost mit ein paar Details veröffentlicht.

Aus den Statusmeldungen lässt sich nur entnehmen, dass es wieder Performanceprobleme „mit einer kleinen Anzahl von EBS Volumes (Elastic Block Store)“ gibt.

10:38 AM PDT We are currently investigating degraded performance for a small number of EBS volumes in a single Availability Zone in the US-EAST-1 Region.
11:11 AM PDT We can confirm degraded performance for a small number of EBS volumes in a single Availability Zone in the US-EAST-1 Region. Instances using affected EBS volumes will also experience degraded performance.
11:26 AM PDT We are currently experiencing degraded performance for EBS volumes in a single Availability Zone in the US-EAST-1 Region. New launches for EBS backed instances are failing and instances using affected EBS volumes will experience degraded performance.

12:32 PM PDT We are working on recovering the impacted EBS volumes in a single Availability Zone in the US-EAST-1 Region.
1:02 PM PDT We continue to work to resolve the issue affecting EBS volumes in a single availability zone in the US-EAST-1 region. The AWS Management Console for EC2 indicates which availability zone is impaired.EC2 instances and EBS volumes outside of this availability zone are operating normally. Customers can launch replacement instances in the unaffected availability zones but may experience elevated launch latencies or receive ResourceLimitExceeded errors on their API calls, which are being issued to manage load on the system during recovery. Customers receiving this error can retry failed requests.

2:20 PM PDT We’ve now restored performance for about half of the volumes that experienced issues. Instances that were attached to these recovered volumes are recovering. We’re continuing to work on restoring availability and performance for the volumes that are still degraded.

Zudem waren auch „eine kleine Anzahl von RDS Instanzen (Relational Database Service)“ betroffen. Hier kam es zu Problemen bei der Verbindung und ebenfalls bei der Performance.

11:03 AM PDT We are currently experiencing connectivity issues and degraded performance for a small number of RDS DB Instances in a single Availability Zone in the US-EAST-1 Region.
11:45 AM PDT A number of Amazon RDS DB Instances in a single Availability Zone in the US-EAST-1 Region are experiencing connectivity issues or degraded performance. New instance create requests in the affected Availability Zone are experiencing elevated latencies. We are investigating the root cause.

Die üblichen Verdächtigen: Reddit, Foursquare, Heroku und Co.

Interessant ist, dass immer die üblichen Verdächtigen u.a. Reddit, Heroku und Foursquare von einem Ausfall der US-East-1 Region betroffen sind. Das bedeutet im Umkehrschluss, dass alle Beteiligten nicht aus den eigenen Fehlern vorheriger Ausfälle gelernt haben und genau so weitermachen wie zuvor. Das „Schöne“ an solchen Ausfällen ist, dass man einen schönen öffentlichen Rundumblick auf die Robustheit der jeweiligen Angebote der Anbieter erhält, die ihre Anwendungen auf den Amazon Web Services laufen lassen. Auch Instagram, dass bekannterweise für 1 Milliarde Dollar an Facebook verkaufte wurde, war bei einem der letzten Ausfälle schwer getroffen. Da scheint die technische Due Diligence Prüfung nicht funktioniert zu haben.

Es stellt sich die Frage, wie lange die Verantwortlichen von Reddit, Foursquare, Heroku (gehört übrigens zu Salesforce) und Co. noch warten, bis etwas an der Architektur geändert wird. Die Systemarchitekten sollten langsam damit beginnen etwas zu ändern. Gute Vorbilder sind Netflix und Okta.

Was ist zu tun?

Das ist im Einzelfall zu entscheiden. Jedoch reicht es zunächst einmal nicht aus, nur eine Region oder eine Availability Zone zu nutzen. Man muss einfach verstehen, dass Cloud Computing viel mehr bedeutet, als nur ein paar Server zu nutzen und miteinander zu verbinden. Es geht um die gesamte Architektur des eigenen Systems bzw. der eigenen Anwendung, die auf der virtuellen Infrastruktur (IaaS) aufgebaut wird. Wie ich schon in einem Artikel für die Computerwoche geschrieben habe:

Viele Unternehmen entwickeln ihre Cloud-Applikation „daheim“ in den eigenen vier Wänden. Erst nach der Fertigstellung soll der Rollout auf eine Cloud-Infrastruktur oder Cloud-Plattform erfolgen. Das ist ein Fehler.

Inbesondere IaaS-Umgebungen (Infrastructur as a Service) wie die Amazon Web Services oder Microsoft Windows Azure vermitteln den Eindruck, nur eine Vielzahl von virtuellen Maschine bereitzustellen. Den Rest übernehme die „Cloud automatisch“. Das ist fatalerweise auch der Tenor, der von vielen Medien verbreitet wird und damit ein völlig falscher Eindruck von einer Cloud entsteht.

Eine Cloud-Anwendung ist nur so viel wert wie die Architektur, auf der sie basiert. Eine Anwendung muss direkt für die Cloudentwickelt werden – Skalierbarkeit und Hochverfügbarkeit sind von Beginn an mit zu bedenken. Eine Anwendung sollte eigenständig weitere virtuelle Maschinen hochfahren können, wenn mehr Leistung benötigt wird (Skalierbarkeit) bzw. die nicht mehr benötigten virtuellen Maschinen auch selbstständig wieder herunterfahren. Genauso verhält es sich, wenn eine virtuelle Maschine in einen fehlerhaften Zustand gerät. Auch hier muss die Anwendung selbst dafür sorgen, dass entsprechend eine virtuelle Maschine als Ersatz hochgefahren wird und die defekte Maschine aus dem System verschwindet (Hochverfügbarkeit).

Die Anwendung muss daher in der Lage sein, auf jeder beliebigen virtuellen Maschine (VM) einer Cloud-Infrastruktur zu funktionieren. Das liegt unter anderem daran, dass jederzeit eine VM ausfallen kann und eine andere neu hochgefahren werden muss. Und auch die Daten, auf die eine Anwendung operiert, befinden sich zwangsläufig nicht mehr an einem einzigen Ort, sondern sind über die Cloud verteilt gespeichert.

Mehr…

Für den Fehlerfall vorbereitet sein

Selbstverständlich darf man Amazon von diesem erneuten Ausfall auf keinen Fall freisprechen. Die Region US-EAST-1 in North Virginia scheint das Problemkind zu sein. Dennoch weißt Amazon regelmäßig und vehement darauf hin: „Design for failure!“

Hierfür hat das Unternehmen eine Webseite geschaffen, auf der Whitepapers zum Download bereitstehen, die dabei helfen, fehlertolerante Anwendungen zu entwickeln und Cloud Architekturen zu verstehen. Dazu gehören u.a. die Folgenden.

AWS Cloud Architecture Best Practices Whitepaper

Dieses Whitepaper gibt einen technischen Überblick aller AWS Services und verschiedener Best Practice Ansätze für die architektonische Gestaltung, um damit effiziente und skalierbare Architekturen zu entwerfen.
Link

Building Fault-Tolerant Applications on AWS Whitepaper

In diesem Whitepaper werden Funktionen für die Erhöhung der Fehlertoleranz vorgestellt, die dazu dienen, um hoch zuverlässige und hochverfügbare Anwendungen innerhalb der AWS Cloud zu entwickeln.
Link

Web Hosting Best Practices Whitepaper

Dieses Whitepaper überprüft detailliert Lösungen für das Web Application Hosting. Dazu gehört unter anderem, wie jeder AWS Service genutzt werden kann, um eine hochverfügbare und skalierbare Webanwendung zu entwerfen.
Link

Leveraging Different Storage Options in the AWS Cloud Whitepaper

Dieses Whitepaper dient dazu, einen Überblick über die Speichermöglichkeiten in der AWS Cloud zu geben und darüber hinaus Szenarien vorzustellen, um eine effektive Nutzung zu erzielen.
Link

AWS Security Best Practices Whitepaper

In diesem Whitepaper werden bestimmte Tools, Funktionen und Richtlinien beschrieben, um zu verstehen, wie Cloud Anwendungen innerhalb der AWS Infrastruktur von Grund auf geschützt werden können.
Link

Netflix und sein Chaos Monkey

Ein Grund warum Netflix ein so robustes und hochverfügbares System auf der Amazon Cloud betreibt, ist der selbst entwickelte und sogenannte Chaos Monkey. Der Chaos Monkey hilft Netflix dabei sicherzustellen, dass alle einzelnen Komponenten unabhängig voneinander arbeiten. Dazu zerstört der Chaos Monkey wahllos Instanzen und Services innerhalb der Netflix AWS Infrastruktur, um seinen Entwicklern dabei zu helfen, zu gewährleisten, dass jede einzelne Komponente antwortet, auch wenn die System-Abhängigkeiten nicht einwandfrei funktionieren.

Das gilt für die gesamte Cloud!

Alle genannten Bereiche gelten nicht nur für die Amazon Web Services, sondern ebenfalls für Windows Azure, Rackspace usw. Bevor man in die IaaS-Cloud eines Anbieter geht, sollte man sich vorher damit auseinandersetzen und verstehen, wie die Infrastruktur funktioniert und wie das eigene Systeme daraufhin entwickelt werden muss.

Kategorien
News

Amazon Web Services (AWS) erneut mit Ausfall. Wieder ein Stromausfall. Wieder in North Virginia. Schwere Stürme sind die Ursache.

Es scheint sich langsam zu einer never ending story zu entwicklen. Die Amazon Web Services (AWS) haben erneut mit einem Ausfall in der Region US-EAST-1 in North Virginia zu kämpfen. Dabei handelt es sich, wie erst kürzlich, um einen Stromausfall. Dieses Mal auf Grund schwerer Stürme.

Schwere Stürme sind für den Ausfall verantwortlich

Grund für den Stromausfall sind laut dem Stromversorger Dominion Virginia Power schwere Stürme mit 80 Meilen pro Stunde, welche die Netzteile zerstört haben die zu massiven Schäden geführt haben. Dominion Virginia Power versorgt mehrere Rechenzentren in der Region Virginia.

A line of severe storms packing winds of up to 80 mph has caused extensive damage and power outages in Virginia. Dominion Virginia Power crews are assessing damages and will be restoring power where safe to do so. We appreciate your patience during this restoration process. Additional details will be provided as they become available.

Viele Amazon Services betroffen

Von dem Ausfall sind dieses Mal deutlich mehr Services betroffen, als noch bei dem Ausfall vor zwei Wochen. Darunter Amazon CloudSearch, Amazon CloudWatch, Amazon Elastic Compute Cloud, Amazon Elastic MapReduce, Amazon ElastiCache, Amazon Relational Database Service und AWS Elastic Beanstalk.

Hier das Protokoll des Ausfalls.

Amazon CloudSearch (N. Virginia)

10:16 PM PDT We are investigating elevated error rates impacting a limited number customers. The high error rates appear related to a recent loss of power in a single US-EAST-1 Availability Zone. We are working to recover the impacted search domains and reduce the error rates which they are experiencing.

Amazon CloudWatch (N. Virginia)

8:48 PM PDT CloudWatch metrics for EC2, ELB, RDS, and EBS are delayed due to lost power due to electrical storms in the area. CloudWatch alarms set on delayed metrics may transition into INSUFFICIENT DATA state. Please see EC2 status for the latest information.
10:19 PM PDT CloudWatch metrics and alarms are now operating normally.

Amazon Elastic Compute Cloud (N. Virginia)

8:21 PM PDT We are investigating connectivity issues for a number of instances in the US-EAST-1 Region.
8:31 PM PDT We are investigating elevated errors rates for APIs in the US-EAST-1 (Northern Virginia) region, as well as connectivity issues to instances in a single availability zone.
8:40 PM PDT We can confirm that a large number of instances in a single Availability Zone have lost power due to electrical storms in the area. We are actively working to restore power.
8:49 PM PDT Power has been restored to the impacted Availability Zone and we are working to bring impacted instances and volumes back online.
9:20 PM PDT We are continuing to work to bring the instances and volumes back online. In addition, EC2 and EBS APIs are currently experiencing elevated error rates.
9:54 PM PDT EC2 and EBS APIs are once again operating normally. We are continuing to recover impacted instances and volumes.
10:36 PM PDT We continue to bring impacted instances and volumes back online. As a result of the power outage, some EBS volumes may have inconsistent data. As we bring volumes back online, any affected volumes will have their status in the „Status Checks“ column in the Volume list in the AWS console listed as „Impaired.“ If your instances or volumes are not available, please login to the AWS Management Console and perform the following steps: 1) Navigate to your EBS volumes. If your volume was affected and has been brought back online, the „Status Checks“ column in the Volume list in the console will be listed as „Impaired.“ 2) You can use the console to re-enable IO by clicking on „Enable Volume IO“ in the volume detail section. 3) We recommend you verify the consistency of your data by using a tool such as fsck or chkdsk. 4) If your instance is unresponsive, depending on your operating system, resuming IO may return the instance to service. 5) If your instance still remains unresponsive after resuming IO, we recommend you reboot the instance from within the Management Console. More information is available at: http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/monitoring-volume-status.html

Amazon ElastiCache (N. Virginia)

8:43 PM PDT This service is currently affected by a power event. Please see the EC2 status for further information.
9:25 PM PDT We can confirm that a large number of cache clusters are impaired. We are actively working on recovering them.
10:21 PM PDT We are continuing to recover impacted Cache Nodes. Our APIs are operating normally.

Amazon Relational Database Service (N. Virginia)

8:33 PM PDT We are investigating connectivity issues for a number of RDS Database Instances in the US-EAST-1 region.
9:24 PM PDT We can confirm that a large number of RDS instances are impaired. We are actively working on recovering them.
10:43 PM PDT RDS APIs are operating normally. We are continuing to recover impacted RDS instances and volumes.

AWS Elastic Beanstalk (N. Virginia)

9:00 PM PDT This service is currently affected by a power event. Please see the EC2 status for further information.

Erneut bekannte Webseiten und Services betroffen

Der Ausfall hat mit Instagram, Pinterest und Netflix wieder viele bekannte Webseiten und Services betroffen. Ebenfalls der PaaS Anbieter Heroku, der viele Startups und mobile Anwendungen zu seinen Kunden zählt ist betroffen. Wohingegen Pinterest und Netflix erreichbar sind, ist Instagram vollständig down. Erst am 14. Juni 2012 gab es in North Virginia einen Stromausfall im Amazon Rechenzentrum.

Kategorien
News

Windows Azure Konkurrent AppHarbor ist nun in Europa verfügbar

AppHarbor ist ein .NET Platform-as-a-Service, den Entwickler in Kombination mit Git oder Mercurial nutzen können, um ihren Code zu übertragen. AppHarbor kompiliert im Anschluss den Code und führt eine Reihe von Unit Tests durch. Ist die Anwendung fehlerfrei, wird der Code auf die skalierbare Cloud Plattform von AppHarbor ausgerollt. Wie von PaaS Angeboten bekannt, können sich Entwickler bei der Nutzung von AppHarbor auf das Wesentliche konzentrieren und sich nicht um die Installation und Konfiguration der Server und Software kümmern.

Heroku ist ein Platform-as-a-Service, der unterschiedliche Programmiersprachen unterstützt. Die erste war Ruby im Jahr 2007 und wurde zu einem riesigen Erfolg. Es folgten weitere Sprachen wie Java, Node.js, Scala, Clojure, Python und PHP. AppHarbor machte sich im letzten Jahr daran „Heroku für .NET“ zu unterstützen.

Zunächst war AppHarbor nur in den USA verfügbar. Seit gestern können nun auch europäische Entwickler den Service nutzen. Die Anwendungen aus der EU werden zwar weiterhin auf den Amazon Web Services gehostet, jedoch nun in der Region EU-West (Dublin) anstatt in der Region US-East, wo sich alle anderen Anwendungen befinden.

Alle Add-ons im AppHarbor Katalog funktionieren mit EU basierten Anwendungen. Einige, wie bspw. der SQL-Server werden je nach Ort der Anwendungen bereitgestellt. Für Add-ons, die derzeit die Nutzung in der EU nicht unterstützen, wird aktuell eine Benachrichtigung angezeigt, wenn das Add-on an eine EU Anwendung ausgerollt wird.

AppHarbor wurde entwickelt, um den Microsoft Windows Azure Einschränkungen, wie dem Lockin in Microsofts eigene Datenbank oder der nicht Unterstützung von Git, zu begegnen.

Kategorien
News

Salesforce.com stellt fünf neue Services für die Erstellung von Cloud 2-Apps vor

Mit Appforce, Siteforce, VMforce, ISVforce und Heroku hat salesforce.com fünf neue Cloud Plattform Services für die Erstellung von Cloud 2-Apps vorgestellt. Force.com 2 beseitigt dabei Hardware- und Softwarekomplexität und ermöglicht Unternehmen und ISVs, Anwendungsentwicklungsprojekte zu beschleunigen.

  • Appforce – Kollaborative Apps für verschiedene Abteilungen
    Appforce hilft Unternehmen leistungsfähige und skalierbare Apps für alle Abteilungen zu erstellen. Nutzer können Formulare anlegen, Reports anpassen, Unternehmensprozesse visuell abbilden und gleichzeitig sicher stellen, dass diese messbar und prüffähig sind. Und sie können über Salesforce Chatter zusammenarbeiten.
  • Siteforce – Pixelgenaue Erstellung von Webseiten ohne Code
    Die Erstellung von Webseiten ist oft langwierig und mühsam und fordert kontinuierlich neue Landing Pages, Produkte und Kampagnen. Zusätzlich stehen Entwickler heute vor der Herausforderung, soziale, mobile und Echtzeit-Funktionen zu integrieren. Siteforce gibt Anwendern die Werkzeuge an die Hand, um einfache Änderungen vornehmen zu können. Web-Entwickler haben die Möglichkeit, schnell leistungsstarke Seiten zu liefern. Siteforce macht es einfach, in Echtzeit Seiten zu entwerfen, Inhalte zu verwalten und vorgefertigte Komponenten wiederzuverwenden.
  • VMforce – Der Weg für Java-Entwickler in die Cloud
    VMforce, die salesforce.com-Partnerschaft mit VMware, ermöglicht es 6 Millionen Java-Entwicklern, ihre bestehende Java-Expertise sowie die Vorteile des Cloud Computings einzusetzen und neue, mobile und soziale Echtzeit-Anwendungen für Unternehmen in der Cloud zu erstellen. Mit VMforce können Entwickler ihre Java-Anwendungen direkt auf Force.com laufen lassen, die beliebten Java-Entwicklungsumgebungen Spring Framework und Eclipse IDE nutzen und offene Standards, wie zum Beispiel JPA für die Entwicklung von Javaanwendungen für Unternehmen verwenden. VMforce ist derzeit für ausgewählte Kunden als Beta-Programm verfügbar.
  • Heroku – Die Ruby Cloud Application-Plattform
    Heroku ist die führende Ruby Platform-as-a-service, die von Beginn an in einer offenen Umgebung erstellt wurde, um die Vorteile der Programmiersprache nutzen zu können. Ruby ist die führende Sprache für die Erstellung einer neuen Generation von Apps. Diese sind sozial, kollaborativ und ermöglichen Echtzeit-Zugang zu Informationen über mobile Endgeräte. Heroku ist heute Grundlage für mehr als 105.000 Apps.
  • ISVforce – Ermöglicht ISVs die Erstellung und Bereitstellung von multi-tenant Cloud-Apps
    ISVforce bietet ISVs umfassende Services für Anwendungsentwicklung, Tests und Bereitstellung, automatische Upgrade-Möglichkeiten, den AppExchange-Marktplatz für Cloud Apps sowie eine Echtzeit-Konsole zur Überwachung der Nutzung durch Kunden. ISVforce legt all diese Services hinter jede ISV App. Führende ISVs wie Blackboard, BMC und CA nutzen ISVforce um Anwendungen zu erstellen und zu liefern.