Kategorien
Analysen

Hinter Amazons Cloud verbergen sich geschätzte 450.000 Server

Wie viele Server benötigt es, um eine Cloud wie bspw. die der Amazon Web Services zu betreiben? Wie es innerhalb der physikalischen Infrastruktur tatsächlich aussieht, darüber gibt Amazon, wie auch alle anderen großen Internetunternehmen, keine Auskunft. Nach aktuellen Schätzungen eines Wissenschaftlers soll es sich um mindestens 454.400 Server in weltweit sieben Rechenzentren handeln.

Die Amazon Cloud ist riesig

Huan Liu, Wissenschafter in den Accenture Technology Labs, hat anhand der internen und externen IP-Adressen Amazon EC2 analysiert. Die Adressen hat er hochgerechnet, um Schätzungen für die Anzahl der Racks pro Rechenzentrum vorzunehmen. Er traf dann die Annahme, dass sich in jedem Rack 64 Blade Server befinden – vier 10U-Chassis mit jeweils 8 Blades.

Das ist eine von mehreren Annahmen für Liu’s Schätzungen, die er jedoch mit Vorbehalten dokumentiert. Photos in einer Präsentation von AWS Distinguished Engineer James Hamilton aus dem Jahr 2011, zeigen bspw. 1U „pizza box“-Rackmount-Server statt Blades. Allerdings ist nicht bekannt, ob es sich bei den Bildern tatsächlich um die aktuelle Infrastruktur von Amazon handelt.

Ein interessanter Aspekt von Liu’s Forschung ist eine hohe Konzentration von Amazons IP-Adressen in der US-East Region im nördlichen Virginia, wo Amazon mehrere Rechenzentren betreibt. Er schätzt, dass sich 5.030 Racks im Norden von Virginia befinden, bzw. ca. 70 Prozent der geschätzten Gesamtzahl von 7.100 Racks der Amazon Web Services. Im Gegensatz dazu hat die neue Amazon US-West Region (Oregon) nur 41 Racks, die Berichten zufolge in Containern bereitgestellt werden.


Weiterführende Informationen


Bildquelle: http://flockshots.de

Kategorien
Analysen

Microsoft und Amazon liefern sich Preiskampf in der Cloud

Als Anbieter mit einem großen Public Cloud Portfolio kämpft Microsoft nun nicht mehr nur mit Google, sondern liefert sich seit kurzem auch einen Preiskampf mit den Amazon Web Services. Das gute daran: die Gewinner sind die Nutzer.

Der Kampf verlagert sich in die Cloud

Nachdem Microsoft am Ende der vergangenen Woche seine Preise für Windows Azure Storage und Windows Azure Compute gesenkt hat und damit auf die Preissenkungen der Amazon Web Services, ebenfalls in der vergangenen Woche, reagiert hat, befinden sich die derzeitigen Preise für Speicherplatz und Rechenleistung aus der Cloud auf einem niedrigen Rekordniveau und befinden sich auf dem Stand hiesiger Stromtarife.

Die Frage ist, wie lange das noch so weitergehen kann, denn die Preise können im Prinzip nur weiter fallen. Betrachten wir nämlich die Tatsache, das die Stromtarife auf Erdgaspreisen, saisonalen Einflüssen und weiteren Variablen basieren, kann Cloud Computing noch günstiger werden.

Die Preisgestaltung beider Anbieter ist nicht direkt vergleichbar, da die Preise und Dienstleistungen variieren. Aber die Kernaussage dieses Wettbewerbs ist eindeutig: Die Preise werden weiter sinken.

Beispielweise kostet eine Amazon Small (Standard) On-Demand Instanz mit Linux/Unix 0,090 Dollar (ca. 0,067 EUR) pro Stunde. Eine Windows Instanz 0,115 Dollar (ca. 0,088 EUR) pro Stunde. Ich zahle derzeit ca. 0,244 EUR pro Kilowattstunde an meinen Stromanbieter.

Beide Anbieter argumentieren, dass sie ihre eigenen Einsparungen (Economies of scale) sehr gerne an ihre Kunden weiterreichen und fokussieren Entwickler, Startups, kleine Unternehmen sowie Großkunden.

Nachdem nun aber auch HP und weitere Anbieter in den Cloud Computing Markt für IaaS Ressourcen eingestiegen sind, werden die Preise noch weiter fallen.


Bildquellen: http://www.merkur-online.de, http://diepresse.com

Kategorien
Analysen

Die Amazon Web Services und der Vendor Lock-in

Die Amazon Web Services (AWS) legen ein beachtliches Tempo vor. In regelmäßigen Abständen veröffentlicht das Unternehmen aus Seattle immer mehr Cloud Services, was Amazon innerhalb kürzester Zeit zum Cloud-Primus hat werden lassen. Der letzte Streich, der Amazon Simple Workflow liegt gerade knapp 2 Wochen zurück.

Auf dem ersten Blick ist die Leistung von Amazon wirklich sehr beachtlich. Zudem können die meisten Mitbewerber das vorgelegte Tempo kaum mithalten. Der zweite Blick trübt jedoch die Euphorie um die angebotenen Services. Denn viele Unternehmen nutzen AWS, um ihre ersten Schritte zu gehen und dabei auf eine flexible und öffentliche Cloud Infrastruktur zurückzugreifen. Aber je mehr Angebote wie bspw. Workflow Services oder speziell für die Cloud entwickelte Datenbanken veröffentlicht werden, desto größer wird ebenfalls das Bedenken einem Cloud Vendor Lock-in zum Opfer zu fallen.

Auf Grund der kostengünstigen und einfach zu nutzenden Infrastruktur für Rechenleistung und Speicherplatz, haben sich anfangs viele Kunden für den Einsatz von AWS entschieden. Diese Einfachheit ist weiterhin unumstritten und ermöglicht es insbesondere kleinen Unternehmen und Startups schnell auf die Ressourcen zurückzugreifen, die zu einem bestimmten Zeitpunkt benötigt werden, ohne große vorab Investitionen zu tätigen. Hinzu kommt das bequeme Mitwachsen der Infrastruktur, wenn unerwartet große Anfragen entstehen und die tatsächliche Abrechnung (pay as you go) der Ressourcen. Unternehmen können ihre Workloads also deutlich bequemer und flexibler in der Amazon Cloud verarbeiten lassen als im eigenen Rechenzentrum.

Jedoch führt die Einführung neuer Dienste wie Amazon DynamoDB und Simple Workflow Services (SWF) dazu, dass genau diese Workloads deutlich stärker an die AWS-Infrastruktur gebunden werden. So stellt es für Entwickler bspw. eine größere Herausforderung dar, ihre Daten von der DynamoDB zu einer nicht Amazon Datenbank zu migrieren. Im Falle von SWF, mit der Entwickler workflow-fähige Anwendungen erstellen können, wird die Lücke zwischen der on-Premise Infrastruktur und den Amazon Ressourcen immer kleiner und hebt die Grenze zwischen Kundenseite und AWS-Infrastruktur zunehmend auf.

Es scheint so, als wolle Amazon den Microsoft-Weg gehen, eben nur in der Cloud. Microsoft führte nach Betriebssystemen und Office Produkten immer weitere Funktionen ein und stimmte diese perfekt aufeinander ab. Hinzu kommen bereits vorhandene oder im Laufe der Zeit eingeführte Funktionen, die auch von anderen Herstellern angeboten wurden, aber eine untergeordnete Rolle spielten. So waren die Kunden nicht bereit für eine Funktion zu bezahlen, die in der Software bereits enthalten war, selbst wenn die vom Drittanbieter angebotene in den meisten Fällen deutlich besser war.

Eine weitere nicht zu unterschätzende Problematik ist die Abwanderung von Daten – nicht Diebstahl! Mit Amazon SWF können Anwendungs- und Serviceübergreifende Anwendungen entwickelt werden die einen flüssigen und integrierten Übergang zwischen Anwendungen auf der Kundenseite und der AWS Infrastruktur herstellen. Mit den Simple Workflow Services werden die Daten quasi aus dem eigenen Rechenzentrum in die Amazon Cloud übertragen und sind dort eng in die Workflow Prozesse und die Infrastruktur verankert.

Ähnlich verhält es sich bei der Nutzung von Amazon DynamoDB, aber auch Amazon SimpleDB. Kommt eine dieser Datenbank zum Einsatz ist ein Wechseln zu einem anderen Cloud Anbieter nicht möglich. So kann u.a. die Entwicklung einer Anwendung im Zusammenhang mit einer dieser Datenbanken nicht offline stattfinden, da Amazon DynamoDB bzw. Amazon SimpleDB nur in der Amazon Cloud laufen. Auch der AWS Storage Gateway ist aus der Lock-in Sicht eher kritisch zu betrachten, der er die Daten aus dem eigenen Rechenzentrum heraus auf Amazon S3 speichert.

Amazon ist aus gutem Grund der weltweit führende Cloud Computing Anbieter. Aber Erfolg und Macht führen in der Regel dazu, beides auch zu festigen und stetig auszubauen. Daher sollte sich jeder überlegen, in wie weit und vor allem wie integriert er welchen Service nutzen will und sich zudem nach Alternativen umschauen und eine Multi-Vendor Strategie fahren.

Denn unter diesen Gesichtspunkten stellt sich Frage, ob Zynga wirklich nur aus Performancegründen den Weg in die eigene Cloud gewählt hat.


Bildquelle: http://www.flyingomelette.com

Kategorien
Tutorials

Amazon DynamoDB zusammen mit .NET nutzen

Amazon DynamoDB ist der aktuelle NoSQL Service der Amazon Web Services. Es handelt sich dabei um eine verwaltete, skalierbare und bei Bedarf nutzbare Datenbank inkl. bereitgestellten Durchsatz. Der Bereitgestellte Durchsatz ermittelt vorab die Anforderungen für den Lese-und Schreib-Durchsatz, auf deren Basis die Kosten berechnet werden.

Dieses Tutorial von cloudstory.in richtet sich an .NET Entwickler, die mit Amazon DynamoDB starten möchten. Es zeigt, wie eine Tabelle erstellt und darauf Operationen ausgeführt werden. Amazon DynamoDB bietet für .NET-Entwickler dazu eine Low-Level-API sowie eine Object-Persistence-API. Das Tutorial beschreibt, wie die Object-Persistence-API genutzt wird, um mit Amazon DynamoDB zu kommunizieren. Dazu wird als Beispiel eine DVD Bibliothek erstellt, mit der individuelle DVDs hinzugefügt, modifiziert, gesucht und gelöscht werden können.

Voraussetzungen

Schritt 1 – Einrichten der Umgebung

Zunächst wird in Visual Studio ein neues Projekt angelegt und die Umgebung eingerichtet.

Dazu muss eine Referenz zu der AWSSDK.dll hinzugefügt werden. Zu finden unter C:[*]Program Files[*]AWS SDK for .NET[*]bin.

[*] bitte durch einen SLASH ersetzen.

Anschließend wird eine neue Konfigurationsdatei für die Anwendung hinzugefügt. Als Standard-Dateiname kann App.config genommen werden.

Nun benötigen wir die AWS Anmeldedaten, also den AWS Access Key und Secret Key.

Wir fügen den folgenden „using“ Ausdruck hinzu.

using Amazon.DynamoDB.DataModel;

Und übernehmen den AWS Access Key und Secret Key in die App.config Datei.

Schritt 2 – Erstellen des DVD-Schema

Als Nächstes wird eine Klasse angelegt, die für das Amazon DynamoDB Schema benötigt wird.

Dazu legen wir eine neue Klasse mit dem Namen DVD.cs an.

Und fügen den folgenden „using“ Ausdruck hinzu.

using Amazon.DynamoDB.DataModel;

Wir fügen die folgenden Eigenschaften hinzu und überschreiben die ToString Methode.

public class DVD
{
    public string Title { get; set; }

    public int ReleaseYear { get; set; }

    public ListActorNames { get; set; }

    public string Director { get; set; }

    public string Producer { get; set; }

    public override string ToString(){
        return string.Format(@"{0} - {1} Actors: {2}", Title, ReleaseYear, string.Join(", ", ActorNames.ToArray()));}
    }
}

Nun müssen wir Amazon DynamoDB spezifische Attribute hinzufügen, um die Tabelle, den Hash Key und Range Key identifizieren zu können. Im Folgenden befindet sich der Code der endgültigen DVD.cs inkl. aller notwendigen Attribute.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Amazon.DynamoDB.DataModel;

namespace DVDsOnCloud
{
[DynamoDBTable("DVD")]
    public class DVD
    {
        [DynamoDBHashKey]
        public string Title { get; set; }

        [DynamoDBRangeKey]
        public int ReleaseYear { get; set; }

        [DynamoDBProperty]
        public List ActorNames { get; set; }

        public string Director { get; set; }

        public string Producer { get; set; }

        public override string ToString()
        {
            return string.Format(@"{0} - {1} Actors: {2}", Title, ReleaseYear, string.Join(", ", ActorNames.ToArray()));
        }
    }
}

Ein Hash Key ist vergleichbar mit dem Primary Key einer Tabelle. Es wird erwartet, dass dieser immer einzigartig ist und ist der am meisten genutzte Key für Anfragen. Der Range-Key ist ein sekundärer Schlüssel, der von DynamoDB verwendet wird, um einen sortierten Index-Bereich zu schaffen. Obwohl der Range Key optional ist, kann die Kombination von Hash Key und Range Key die Query-Performance optimieren.

Schritt 3 – Erstellen der DVDLibrary Hilfsklasse

Nun erstellen wir einen Wrapper für die DynamoDB API innerhalb einer Klasse, die von einem Client genutzt werden kann. Dazu erstellen wir eine neue Klasse mit dem Namen DVDLibray.cs.

Wir fügen die folgenden „using“ Ausdrücke hinzu.

using Amazon;
using Amazon.DynamoDB;
using Amazon.DynamoDB.Model;
using Amazon.DynamoDB.DataModel;
using Amazon.SecurityToken;
using Amazon.Runtime;

Schritt 4 – Hinzufügen der öffentliche Mitglieder und des Konstruktors

Nun fügen wir den Konstruktor zur DVDLibrary Klasse hinzu. Der Konstruktor verwendet den AWS Security Token Authentifizierung, um die Anmeldedaten zu überprüfen.

AmazonDynamoDB client;
public DVDLibrary()
{
    AmazonSecurityTokenServiceClient stsClient = new AmazonSecurityTokenServiceClient();
    RefreshingSessionAWSCredentials sessionCredentials = new RefreshingSessionAWSCredentials(stsClient);
    client = new AmazonDynamoDBClient(sessionCredentials);
}

Schritt 5 – Initialisierung der Amazonas DynamoDB Tabelle

In diesem Schritt initialisieren wir Amazon DynamoDB Tabelle. Wir stellen sicher, dass die Tabelle nicht existiert und erstellen eine neue. Zudem konfigurieren wir die benötigten Parameter, wie den bereitgestellten Durchsatz, Hash Key und Range Key. Das Erstellen einer Amazon DynamoDB Tabelle dauert eine Weile. Zu dieser Zeit können keine weiteren Operationen durchgeführt werden. Daher wird die Methode solange blockiert, bis der Status der Tabelle in den Zustand „Active“ wechselt.

public void Init()
{
    List currentTables = client.ListTables().ListTablesResult.TableNames;
    if (!currentTables.Contains("DVD"))
    {
        CreateTableRequest reqCreateTable = new CreateTableRequest();
        CreateTableResponse resCreateTable=new CreateTableResponse();

        reqCreateTable.TableName = "DVD";

        reqCreateTable.ProvisionedThroughput = new ProvisionedThroughput();
        reqCreateTable.ProvisionedThroughput.ReadCapacityUnits=10;
        reqCreateTable.ProvisionedThroughput.WriteCapacityUnits=10;

        reqCreateTable.KeySchema = new KeySchema();

        reqCreateTable.KeySchema.HashKeyElement = new KeySchemaElement();
        reqCreateTable.KeySchema.HashKeyElement.AttributeName = "Title";
        reqCreateTable.KeySchema.HashKeyElement.AttributeType = "S";

        reqCreateTable.KeySchema.RangeKeyElement = new KeySchemaElement();
        reqCreateTable.KeySchema.RangeKeyElement.AttributeName = "ReleaseYear";
        reqCreateTable.KeySchema.RangeKeyElement.AttributeType = "N";

        resCreateTable = client.CreateTable(reqCreateTable);

        while (resCreateTable.CreateTableResult.TableDescription.TableStatus != "ACTIVE")
        {
            System.Threading.Thread.Sleep(5000);
        }
    }

}

Bei Amazon DynamoDB besteht die Möglichkeit, den Anforderungsdurchsatz festzulegen, den eine Tabelle erreichen soll. Der Service sorgt dann dafür, die Ressourcen bereitstehen, mit denen die erforderliche Durchsatzrate erreicht wird. Die Durchsatzanforderungen können in Bezug auf die Lesekapazität und Schreibkapazität in der Tabelle festgelegt werden. Dazu werden beim Erstellen einer Tabelle die erforderlichen Lese- und Schreibkapazitätsanforderungen angegeben. Auf dieser Basis partitioniert Amazon DynamoDB automatisch die entsprechende Anzahl von Ressourcen und reserviert diese, damit der Durchsatz erreicht wird.

Schritt 6 – Hinzufügen einer neuen DVD

Nun erstellen wir eine Funktion mit dem Namen AddDVD, die das DVD Objekt akzeptiert und ein Element in der Amazon DynamoDB erstellt.

public void AddDVD(DVD dvd)
{
    DynamoDBContext context = new DynamoDBContext(client);
    context.Save(dvd);
}

Schritt 7 – Ändern einer vorhandenen DVD

Als Nächstes erstellen wir eine Methode ModifyDVD, die versucht eine vorhandene DVD zu laden, diese zu modifizieren und anschließend zu speichern. Wird das Element nicht gefunden, kommt es zu einer Exception.

public void ModifyDVD(DVD dvd)
{
    DynamoDBContext context = new DynamoDBContext(client);
    DVD oDVD = context.Load(dvd.Title, dvd.ReleaseYear);
    if(oDVD==null)
        new Exception("Non-existent DVD");
    context.Save(dvd);
}

Schritt 8 – Alle DVDs ausgeben

Um alle DVDs auszugeben, führen wir einen Table Scan durch.

public IEnumerable GetAllDVDs()
{
    DynamoDBContext context = new DynamoDBContext(client);
    IEnumerable alldvds=context.Scan();
    return alldvds;
}

Wie bei jeder anderen Datenbank auch, ist ein vollständiger Scan auf Amazon DynamoDB kostspielig. Diese Operation berücksichtigt nicht den Hash Key und Range Key und durchläuft jedes Element. Der Scanvorgang wird beendet, wenn die aggregierte Größe der gescannten Objekte 1MB übersteigt. Der Client muss die Operation für den Rest der Elemente dann erneut starten.

Schritt 9 – DVDs auf Basis des Titels und Erscheinungsjahrs suchen

Um nach den DVDs zu suchen, benötigen wir den Hash Key als auch den Range Key. Daher wird diese Methode beide Schlüssel nutzen, um die DVDs zu durchsuchen.

public IEnumerable SearchDVDs(string title, int releaseyear)
{
    DynamoDBContext context = new DynamoDBContext(client);
    IEnumerable alldvds = context.Query(title, Amazon.DynamoDB.DocumentModel.QueryOperator.Equal, releaseyear);
    return alldvds;
}

Schritt 10 – DVDs auf Basis des Titels suchen

Wenn das Erscheinungsjahr nicht zu den Suchkriterien gehören soll, nutzen wir nur die folgende Methode, die nur auf Basis des Titels sucht.

public List>SearchDVDByTitle(string title)
{
    DynamoDBContext context = new DynamoDBContext(client);
    QueryRequest reqQuery = new QueryRequest();
    reqQuery.TableName = "DVD";
    reqQuery.HashKeyValue = new AttributeValue() { S = title };

    QueryResponse resQuery = client.Query(reqQuery);

    return resQuery.QueryResult.Items;
}

Schritt 11 – Löschen der DVD

Mit der folgenden Methode löschen wir eine DVD.

public void DeleteDVD(DVD dvd)
{
    DynamoDBContext context = new DynamoDBContext(client);
    DVD oDVD = context.Load(dvd.Title, dvd.ReleaseYear);
    if (oDVD == null)
        new Exception("Non-existent DVD");
    context.Delete(dvd);
}

Im Folgenden befindet sich der gesamte Quellcode für die DVDLibrary.cs.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Amazon;
using Amazon.DynamoDB;
using Amazon.DynamoDB.Model;
using Amazon.DynamoDB.DataModel;
using Amazon.SecurityToken;
using Amazon.Runtime;

namespace DVDsOnCloud
{
    class DVDLibrary
    {
        AmazonDynamoDB client;
        public DVDLibrary()
        {
            AmazonSecurityTokenServiceClient stsClient = new AmazonSecurityTokenServiceClient();
            RefreshingSessionAWSCredentials sessionCredentials = new RefreshingSessionAWSCredentials(stsClient);
            client = new AmazonDynamoDBClient(sessionCredentials);
        }

        public void Init()
        {
            List currentTables = client.ListTables().ListTablesResult.TableNames;
            if (!currentTables.Contains("DVD"))
            {
                CreateTableRequest reqCreateTable = new CreateTableRequest();
                CreateTableResponse resCreateTable=new CreateTableResponse();

                reqCreateTable.TableName = "DVD";

                reqCreateTable.ProvisionedThroughput = new ProvisionedThroughput();
                reqCreateTable.ProvisionedThroughput.ReadCapacityUnits=10;
                reqCreateTable.ProvisionedThroughput.WriteCapacityUnits=10;

                reqCreateTable.KeySchema = new KeySchema();

                reqCreateTable.KeySchema.HashKeyElement = new KeySchemaElement();
                reqCreateTable.KeySchema.HashKeyElement.AttributeName = "Title";
                reqCreateTable.KeySchema.HashKeyElement.AttributeType = "S";

                reqCreateTable.KeySchema.RangeKeyElement = new KeySchemaElement();
                reqCreateTable.KeySchema.RangeKeyElement.AttributeName = "ReleaseYear";
                reqCreateTable.KeySchema.RangeKeyElement.AttributeType = "N";

                resCreateTable = client.CreateTable(reqCreateTable);

                while (resCreateTable.CreateTableResult.TableDescription.TableStatus != "ACTIVE")
                {
                    System.Threading.Thread.Sleep(5000);
                }
            }

        }

public void AddDVD(DVD dvd)
{
    DynamoDBContext context = new DynamoDBContext(client);
    context.Save(dvd);
}

        public void ModifyDVD(DVD dvd)
        {
            DynamoDBContext context = new DynamoDBContext(client);
            DVD oDVD = context.Load(dvd.Title, dvd.ReleaseYear);
            if(oDVD==null)
                new Exception("Non-existent DVD");
            context.Save(dvd);
        }

        public IEnumerable GetAllDVDs()
        {
            DynamoDBContext context = new DynamoDBContext(client);
            IEnumerable alldvds=context.Scan();
            return alldvds;
        }

        public IEnumerable SearchDVDs(string title, int releaseyear)
        {
            DynamoDBContext context = new DynamoDBContext(client);
            IEnumerable alldvds = context.Query(title, Amazon.DynamoDB.DocumentModel.QueryOperator.Equal, releaseyear);
            return alldvds;
        }

        public List>SearchDVDByTitle(string title)
        {
            DynamoDBContext context = new DynamoDBContext(client);
            QueryRequest reqQuery = new QueryRequest();
            reqQuery.TableName = "DVD";
            reqQuery.HashKeyValue = new AttributeValue() { S = title };

            QueryResponse resQuery = client.Query(reqQuery);

            return resQuery.QueryResult.Items;
        }


        public void DeleteDVD(DVD dvd)
        {
            DynamoDBContext context = new DynamoDBContext(client);
            DVD oDVD = context.Load(dvd.Title, dvd.ReleaseYear);
            if (oDVD == null)
                new Exception("Non-existent DVD");
            context.Delete(dvd);
        }
    }

 }

Der komplette Quellcode

Im Folgenden ist der vollständige Code des Clients zu finden, der auf die DVDLibrary zugreift.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DVDsOnCloud
{
    class Program
    {
        static void Main(string[] args)
        {
            //Create the helper object
            DVDLibrary DVDLib= new DVDLibrary();

            //Initialize
            DVDLib.Init();

            //Create the DVD object
            DVD dvd = new DVD() { Title = "Businessman", ReleaseYear = 2011, ActorNames = new List { "Mahesh", "Kajal" }, Director = "Puri Jagannath", Producer = "Venkat" };

            //Add the new DVD
            DVDLib.AddDVD(dvd);

            //Print all the DVDs
            foreach (var odvd in DVDLib.GetAllDVDs())
                Console.WriteLine(odvd.Title);

            //Create a new DVD object with modified values
            DVD newdvd = new DVD() { Title = "Businessman", ReleaseYear = 2011, ActorNames = new List { "Mahesh Babu", "Kajal Agarwal" }, Director = "Puri Jagannath", Producer = "Venkat" };

            //Commit the changes
            DVDLib.ModifyDVD(newdvd);


            //Search for the DVD
            foreach (var dvd in DVDLib.SearchDVDs("Businessman",2011))
                Console.WriteLine(dvd.Director);

            //Delete the DVD
            DVDLib.DeleteDVD(newdvd);
         }
    }
}

Quelle: http://cloudstory.in

Kategorien
News

Das Red Hat Enterprise MRG Grid ist nun auch für die Amazon Web Services verfügbar

Mit der im Rahmen einer Enterprise Linux Premium Subscription verfügbaren Funktion Red Hat Cloud Access können Unternehmen jetzt Red Hat Enterprise MRG Grid sowohl vor Ort als auch über die Amazon Web Services nutzen.

Durch die Integration von Messaging-, Realtime- und Grid-Technologien erhalten Unternehmen mit Red Hat Enterprise MRG eine Plattform für hochleistungsfähige, verteilte Rechenumgebungen – egal, ob es sich dabei um serviceorientierte Architekturen (SOA), Virtualisierungssysteme oder Cloud Computing handelt. Red Hat Enterprise MRG Grid eignet sich für Einsatzgebiete mit hohem Durchsatz (HTC, High-Throughput) und hoher Rechenleistung (HPC, High-Performance Computing).

Das Red Hat Enterprise MRG Grid wurde kürzlich via DevPay auf die Amazon Web Services erweitert, wodurch Kunden in der Lage sind Hybrid Clouds aufzubauen oder Enterprise MRG in der Cloud einzusetzen. Als ein durch Red Hat zertifizierter Cloud Anbieter, ermöglichen es die Amazon Web Services ihren Kunden, die gleichen Images (AMI) sowohl On-Premise als auch in der AWS Cloud per In-Cloud-Update-Service (von Red Hat) zu nutzen. Bugfixes und Updates werden per in-Cloud-Service bereitgestellt, wodurch die Images automatisch immer auf den aktuellen Stand sind.

Red Hat Enterprise MRG Grid steht seit gestern weltweit für die Amazon Elastic Compute Cloud (EC2) bereit.

Kategorien
News

AnyCloud der Game-Changer im Cloud Computing?

Der Platform-as-a-Service Anbieter und Gartner Cool Vendor 2011 CloudBees startet seinen neuen Dienst „AnyCloud“ und will damit die Cloud Welt auf den Kopf stellen.

Dabei handelt es sich um einen Hybrid PaaS mit der Java Entwickler ihre Anwendungen auf den Public Clouds der Anbieter als auch auf den eigenen Private Clouds ausrollen können.

Laut CloudBees werden Java-Entwickler oft als gut etablierte Unternehmen wahrgenommen, die über traditionelle on Premise Stacks verfügen. AnyCloud richtet sich daher eher an kleinere Unternehmen und Startups, die deutlich agiler agieren (können).

Mit AnyCloud erhalten Entwickler die Flexibilität ihre Anwendungen über mehrere Rechenzentren hinweg zu verteilen und zu verwalten. Dazu gehören die Amazon Web Services (AWS), andere Infrastructure-as-a-Service (IaaS) Anbieter sowie Managed Services Anbieter und eigene Private Cloud Lösungen eines Unternehmens.

Kategorien
Analysen

Amazon Web Services vs. Microsoft Windows Azure – Ein direkter Vergleich

Viele Unternehmen befinden sich derzeit in der Evaluation von Public Cloud Services wie IaaS. Die ersten Gedanken streifen dann die beiden großen und vermeintlich bekanntesten Anbieter in der Szene – die Amazon Web Services und Microsoft Windows Azure.

Beide verfügen mittlerweile über ein sehr umfangreiches und stetig wachsendes Angebot an Cloud Services. Möchte man beide Portfolios jedoch miteinander vergleichen steigen die Herausforderungen mit der Anzahl der Services.

Amazon Cloud vs. Windows Azure

Die folgende Tabelle stellt das Cloud Service Portfolio 1:1 gegenüber und schafft Klarheit, wer in welchem Bereich was anbietet, wie der Name des jeweiligen Service lautet und unter welcher URL weitere Informationen zu diesem zu finden sind.

Funktion

Amazon Web Services

Microsoft Windows Azure

Rechenleistung

Virtuelle Maschinen Elastic Compute Cloud Role Instances
High Performance Computing Cluster Compute Instances HPC Scheduler
MapReduce Elastic Map Reduce Hadoop on Azure
Dynamische Skalierung Auto Scaling Auto Scaling Application Block

Speicher

Unstrukturierter Speicher Simple Storage Service Azure Blob
Flexible Entities SimpleDB Azure Tables
Block Level Storage Elastic Block Store Azure Drive
Archivierung Amazon Glacier
Stroage Gateway AWS Storage Gateway

Datenbanken

RDBMS Relational Database Service SQL Azure
NoSQL DynamoDB Azure Tables

Caching

CDN CloudFront CDN
In-Memory ElastiCache Cache

Netzwerk

Load Balancer Elastic Load Balancer Fabric Controller / Traffic Manager
Hybrid Cloud Virtual Private Cloud Azure Connect
Peering Direct Connect
DNS Route 53

Messaging & Anwendungen

Async Messaging Simple Queue Service Azure Queues
Push Notifications Simple Notification Service Service Bus
Bulk Email Simple Email Service
Workflows Amazon Simple Workflow Service
Suche Amazon CloudSearch

Monitoring

Ressourcen Monitoring CloudWatch System Center

Sicherheit

Identitätsmanagement Identity Access Management Azure Active Directory

Deployment

Ressourcenerstellung CloudFormation
Web Application Container Elastic Beanstalk Web Role
Kategorien
News

Cloudscaling veröffentlicht einen AWS-Clone auf Basis von OpenStack als Private Cloud Plattform für Unternehmen

Auf Basis von OpenStack hat der US-amerikanische Cloud-Anbieter Cloudscaling eine Plattform veröffentlicht, mit der Unternehmen sich eine eigene Private Cloud aufbauen können.

Hierbei ist Cloudscaling nicht der erste Anbieter der den OpenStack Weg geht. Bereits im vergangenen November hatte Rackspace ein ähnliches Angebot veröffentlicht.

Die neue Plattform – Cloudscaling OCS – integriert das Open Cloud OS, welches vollständig auf OpenStack basiert und Verwaltungs-und Sicherheitsfunktionen umfasst. Darüber hinaus stehen dem Kunden neben kompletten Hardware Blueprints ebenfalls detaillierte Hardware-Konfigurationen für Rechen-, Speicher und Netzwerk-Umgebungen zur Verfügung.

Nach eigenen Angaben hat sich Cloudscaling mit dem neuen Angebot das Ziel gesetzt, eine AWS ähnliche Cloud bereizustellen, mit der sich Kunden eine Private Cloud nach den eigenen Wünschen und Bedürfnissen aufbauen können.

Kategorien
News

Mit UptimeCloud die Kosten in der Cloud in Echtzeit ermitteln

Mit UptimeCloud steht ein neuer gehosteter Service für das Monitoring der Kosten auf den Amazon Web Services bereit, der Nutzern bei der Verwaltung und der Vorhersage zukünftiger Ausgaben unterstützen soll.

Dazu steht dem Benutzer ein Dashboard zur Verfügung, auf dem er die Echtzeit-Kosten der AWS Nutzung einsehen sowie Prognosen für die Ausgaben der nächsten Stunden, Tage, Wochen, Monate oder Jahre erhält und ihm darüber hinaus Empfehlungen ausgeprochen werden, wie er Kosten einsparen kann.

Mit dem Forecast können Benutzer ein monatliches Budget festlegen und erhalten eine Benachrichtigung, sobald die Kosten die Marke überschreiten. Wenn sich das Verhalten der Cloud-Nutzung ändern sollte, zeigt UptimeCloud dem Anwender zudem wie sich diese Änderungen auf die Kosten auswirken wird. Darüber hinaus steht ebenfalls ein detaillierter Überblick zur unternehmensweiten Cloud Nutzung zur Verfügung. So können alle Kosten pro Anwendung, Projekt, Benutzer, Benutzerkonto, Instanz und weiteren Faktoren, inkl. Forecast, eingesehen werden. UptimeCloud greift dabei u.a. auch auf das von Amazon bereitgestellte AWS-Identity-und Access-Management-Tool zurück. Das bedeutet, dass somit ebenfalls Informationen über Ressourcen, die von einzelnen Personen in einem Unternehmen verwendet werden, dargestellt werden können.

Auf Basis von Empfehlungen hilft UptimeCloud den Benutzern ebenfalls die Kosten zu senken. Wobei sich dieses derzeit nur auf die bessere Ausnutzung der AWS Preise konzentriert und nicht bei der Optimierung der Infrastruktur hilft.

Unternehmen können UptimeCloud für 30 Tage kostenlos testen. Anschließend wird pro Anzahl der laufenden Instanzen auf AWS abgerechnet. Die Kosten für 101 bis 250 Instanzen belaufen sich auf 295 Dollar pro Monat, für 1.001 bis 2.500 Instanzen 1.845 Dollar pro Monat und für 5.001 bis 10.000 Instanzen 5.945 Dollar pro Monat.

Kategorien
News

Cloudyn – Überwachen und Optimieren der AWS Nutzung

Läuft mein Cloud-Service und wenn ja, läuft dieser effizient? Diese Fragen müssen sich Unternehmen stellen, wenn Sie sich für Cloud Computing entscheiden. Eine Möglichkeit besteht in der Nutzung der anbietereigenen Monitoringtools wie bspw. Amazon CloudWatch. Jedoch sollte auch der Einsatz einer unabhängigen Lösung in Betracht gezogen werden.

Mit Cloudyn steht nun ein weiterer gehosteter Dienst zur Verfügung, mit dem die eigene Cloud Nutzung überwacht werden kann und welcher Empfehlungen ausspricht, um die Nutzung zu optimieren und darüber hinaus ebenfalls Kosten einzusparen.

Der Service steht Anfangs nur für Kunden der Amazon Web Services zur Verfügung. Cloudlyn plant für das zweite Quartal allerdings ebenfalls die Unterstützung für Rackspace und weiterer Provider in der Zukunft. Der Service steht derzeit bis zum 1. Mai 2012 für jeden kostenlos bereit. Danach wird für die Nutzung eine Servicegebühr erhoben.

Für die Anmeldung benötigt der Nutzer seine AWS Logindaten. Cloudyn analysiert die Datenbanken, Server und Speicher die das Unternehmen auf AWS im Einsatz hat und untersucht die Nutzungsmuster von CPU, Speicher, I/O und Netzwerk. Auf einem Dashboard werden dem Nutzer anschließend die Instanzen aufgelistet die nicht oder nur wenig genutzt werden und auf welchen Dienst diese am häufigsten zugreifen. Auf dieser Basis werden dann Empfehlung für eine optimalere Nutzung ausgesprochen.

Nachdem Cloudlyn eine Woche lang die Nutzungsmuster analysiert hat, erhält der Anwender eine Reihe von Szenarien zur Optimierung und zum Senken der Kosten. Die Szenarien zeigen auf wo Anpassungen gemacht werden können und wie viel Kapital damit am Ende eingespart werden könnte. Wie bspw. die Eliminierung nicht benötigter aber aktuell aktiver Ressourcen.