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
Services

"No Cloud without automation!" – Die Cloud vom CloudPilot steuern lassen

Der Satz, „No Cloud without automation!“ stammt nicht von mir, sondern wurde von Chris Boos, CEO der arago AG 2010 auf dem CloudCamp in Hamburg geprägt. Und auch wenn diese Aussage mehr als nachvollziehbar und einleuchtend ist, kann ich auf der Stelle mehrere Anbieter nennen, die zwar Cloud auf ihren Angeboten stehen haben, aber nicht mehr als gewöhnliche Standard Webhoster sind.

Das Chris Boos oder vielmehr die arago AG nach dem Motto „No Cloud without automation!“ leben und dessen Philosophie verinnerlicht haben, zeigen einmal mehr die Lösungen, die das Unternehmen im Portfolio hat. So steht bspw. mit dem AutoPilot bei der arago AG alles im Zeichen der Automatisierung.

Der arago Autopilot

Beim arago Autopilot handelt es sich um eine wissensbasierte Architektur, die in der Lage ist, automatisiert Incidents und Changes im IT-Betrieb nach Ursachen zu analysieren und anschließend aktiv geeignete Lösungsstrategien zu entwickeln und diese ebenfalls umzusetzen. Was IT-Administratoren und IT-Experten an dieser Stelle wahrscheinlich sehr ungerne lesen werden: Der AutoPilot kann alle ihre Aufgaben automatisiert durchführen. Dabei greift er auf einen Wissenspool zurück, der vergleichbar wie ein WiKi von entsprechenden Experten gepflegt wird. Das dort abgelegte Wissen wir genutzt und ständig zu neuen Skripten zusammengefasst.

Somit wird das Wissen der IT-Experten in einfache, modulare und wiederverwendbaren Knowledge Items (KI) erfasst und mit einem Modell der Unternehmens-IT verknüpft. So kann bspw. die Störung eines Exchange Servers, eine administrative Tätigkeit, für einen bestimmten Knoten innerhalb des Modells anhand der KIs automatisiert durch den AutoPilot durchgeführt werden. Er startet, überwacht und passt mögliche Änderungen während der Analyse an und erstellt Befehle, um das Problem zu lösen. Weiterhin sorgt er für die Dokumentation seiner Tätigkeiten. Kann eine Störung nicht automatisch behoben werden, sorgt das System dafür, dass alle Informationen und Analyse-Ergebnisse menschenlesbar in ein Ticket-System übertragen werden und der Administrator wird informiert.

Der arago CloudPilot

Beim arago CloudPilot handelt es sich um eine spezielle From des AutoPilot. Er konzentriert sich auf zwei Aufgaben:

  1. Management von Abhängigkeiten zwischen mehreren Cloud-Plattformen
  2. Management der Nutzung verschiedener Provider für eine Cloud-Plattform

Beide Punkte werden dadurch sichergestellt, dass zusätzlich zum AutoPilot ebenfalls fertige Knowledge Items ausgeliefert werden, die auf bereits bekannte Cloud-Infrastrukturen abgestimmt sind. Diese können entweder direkt eingesetzt oder vorher auf die eigene Umgebung angepasst werden. Der CloudPilot arbeitet wie ein menschlicher Administrator und integriert sich so in eine bestehende IT-Landschaft.

Dazu greift er auf einen Wissenspool zurück, in dem das gesamte Betriebswissen aller IT-Experten, wie bereits vom Autopilot bekannt, abgelegt ist. Natürlich ist der CloudPilot nur so gut wie die IT-Experten, die die Wissenbasis mit Informationen versorgen.

Stimmt der Kunde zu, wird der Wissensppol zwischen allen weiteren Kunden ausgetauscht, um damit einen höheren Wissenstand des CloudPilot zu garantieren und damit den Grad der Automation ständig zu optimieren. Der CloudPilot soll dazu beitragen, dass Wissen langfristig innerhalb eines Unternehmens zu erhalten und zu konservieren.

Zudem wird anhand des modellbasierten Ansatzes eine konsistente Integration in systemunterstützende DBs, wie Asset-Management oder CMDB/CMS sichergestellt. Darüber hinaus basiert der CloudPilot auf der Wissensgraphen-Automatisierung (Knowledgegraph Automation) und kann mittels Integration des IT-Modells in das sogenannte MARS-Modell alle Zusammenhänge und Abhängigkeiten innerhalb der IT-Infrastruktur verstehen.

Der CloudPilot ist in der Lage ca. 80% aller Vorfälle, Störungen und Probleme innerhalb des System- und Anwendungsbetriebs ohne manuellen Eingriff zu beheben. Er trifft daher Entscheidungen, wie sie ein menschlicher Administrator ebenfalls treffen würde.

Kategorien
News

MobileIron eröffnet Rechenzentrum in Deutschland für sicheres Enterprise Mobile Device Management in der Cloud

MobileIron, Lösungsanbieter im Bereich für sicheres Mobile Device und Application Management für Unternehmen, eröffnet ein Rechenzentrum in Deutschland, um dort seine MobileIron Connected Cloud zu betreiben. Dabei soll es sich nach eigenen Angaben um den ersten Mobile Device Management-Cloud-Service handeln, den Unternehmen in weniger als einer Stunde vollständig in ihre bestehende Sicherheitsinfrastruktur integrieren können.

Unternehmen können damit Smartphones und Tablets der mobilen Betriebssysteme Google Android und Apple iOS gemäß ihrer Firmenrichtlinie weltweit ausrollen und sicher verwalten. MobileIron bietet ein mehrstufiges Security-Management für mobile Endgeräte und Applikationen. Es umfasst die Erkennung von „Bad Apps“, die Identifizierung kompromittierter Geräte, selective Wipe nicht nur für E-Mail- und PIM-Daten sondern auch für Apps inklusive ihrer Daten, granular einstellbare Datenschutz-Richtlinien, ActiveSync-Zugangskontolle sowie zertifikatsbasierte Sicherheit ohne Kompromisse durch unsicheren Rollout der Zertifikate.

Die MobileIron ConnectedCloud stellt Unternehmen eine hoch skalierbare Infrastruktur zur Verfügung, mit der sie beliebig viele Smartphones und Tablets sicher administrieren können – ohne in eine eigene IT-Infrastruktur investieren zu müssen.

Kategorien
News

Symantec präsentiert seinen cloud-basierten Single Sign-On Service "O3"

Während der RSA Conference präsentiert Symantec seinen cloud-basierten Single Sign-On (SSO) und Authentifizierung Service „O3“, welches sich an einem Konzept orientiert, dass CEO Enrique Salem bereits auf der RSA 2011 vorgestellt hatte. Symantec gibt ebenfalls detaillierte Einblicke über die künftigen Möglichkeiten, die der O3 Cloud Service für Data-Loss-Prevention und Verschlüsselung bereithalten wird.

Symantec vermarktet O3 als ein cloud-basiertes Identity- und Access-Management. Unternehmen können damit die Authentifizierung und den Zugang ihrer Nutzer mit jeder Art von Endgerät verwalten und in ihre bestehende Identity-Infrastruktur, wie LDAP oder Active Directory, integrieren, um damit das Authentifizierungsverfahren in einem einzigen Prozess ohne weitere Abfragen durch das O3-Gateway vornehmen lassen. Bei dem Gateway handelt es sich um ein Login-Portal, dass die einzelnen Anwendungen auflistet, auf die der Nutzer zugreifen darf. Die Funktion ähnelt einem Reverse-Proxy.

Die erste Version von O3 ermöglicht die SSO-Zugangskontrolle und das Log-Management sowie eine Zwei-Faktor-Authentifizierung von einer Vielzahl von Drittanbietern, wenn mehr als nur einfache Passwörter benötigt werden. Die Standardpreise liegen bei 50 Dollar pro Benutzer pro Jahr für 500 Accounts.

In der Zukunft soll O3 um cloud-basierte Data-Loss-Prevention (DLP) und Verschlüsselung in Bezug auf spezifischen Datenverkehr erweitert werden. So kann bspw. eine Datei abgefangen werden, die nach Dropbox hochgeladen werden soll, per DLP überprüft werden und anschließend entschieden werden, ob der Upload durchgeführt werden darf. Eine weitere Sicherheitskontrolle könnte darin bestehen, dass die Daten solange blockiert werden, bis eine verschlüsselte Verbindung aufgebaut ist.


Bildquelle: http://www.gonow.com.br

Kategorien
Analysen

Die Herausforderungen des Cloud Computing: Verträge der Cloud Anbieter

Mit der Adaption von Cloud Computing Technologien und Services stehen Unternehmen Herausforderungen gegenüber, die es zu bewältigen gilt. Zum einen müssen organisatorische Voraussetzungen geschaffen und Aufklärungsarbeit innerhalb des Unternehmens geleistet werden, um die Akzeptanz und das Verständnis zu stärken. Zum anderen treffen aber auch viele “Widerstände” von außen auf das Unternehmen. Das sind neben Fragen bzgl. der Sicherheit und des Datenschutz ebenfalls Themen zur Verfügbarkeit und Performanz des ausgewählten Cloud Service sowie dessen Integrationsfähigkeit in die bereits bestehende IT-Infrastruktur und die nahtlose Unterstützung der vorhandenen Geschäftsprozesse. Und wie auch schon aus den klassischen Sourcingmöglichkeiten bekannt, besteht auch im Cloud Computing die Angst, in die Abhängigkeit eines einzigen Anbieters zu verfallen. So müssen auch hier die Interoperabilität und die Schnittstellen des Anbieters sowie ein Vergleich zu anderen Anbieteren vorgenommen werden.

Ist die Entscheidung für die Nutzung des Cloud Computing gefallen, ist es für Unternehmen zunächst an der Zeit, eine Ist-Analyse der bestehenden IT-Infrastruktur und Systeme vorzunehmen, um auf Basis dieser zu planen, welche Cloud Services adaptiert werden sollen. Hier kann bspw. eine Kosten-/ Nutzen-Analyse weiterhelfen, bei der auch eine Risikobewertung nicht fehlen sollte. Um erste Erfahrungen auf dem Cloud Computing Gebiet zu sammeln, sollte ein Pilotprojekt initiiert werden, welches auf Grund des Cloud Computing Konzepts schnell und kostengünstig gestartet werden kann. Dieses sollte einem Gesamtverantwortlichen “Cloud” untergeordnert sein, der als zentrale Stelle innerhalb der Organisation für die Adaption und Beratung der einzelnen Abteilungen für dieses Thema zuständig ist. Mit den gesammelten Erfahrungen können dann weitere Projekte gestartet werden und die Adaption unterschiedlicher Cloud Services sukzessive vorgenommen werden.

Verträge der Cloud Anbieter

Bevor ein Unternehmen einen Vertrag mit einem Cloud Anbieter eingeht, sollte es sich vorab intensiv mit dem Auswahlprozess und den Inhalten des Vertrags beschäftigen, um zu erkennen, welche Bedingungen im Vertrag auf jedenfall enthalten sein müssen.

Nach Frank Ridder sind die Standardverträge auf Grund der Compliance- und Datenschutz-Anforderungen der Cloud Anbieter ohne Anpassungen für Unternehmen so nicht annehmbar. Weiterhin fehlen “[…] Regelungen bezüglich der zukünftigen Entwicklung der Preise und Qualität der Dienste […]”. Zudem behalten sich viele Cloud Anbieter vor, “[…] die Bedingungen des Vertrages nach Abschluss im Ganzen oder teilweise zu ändern.” Ein Schutz vor steigenden Preisen ist ebenso wenig enthalten, wie “Eine Garantie, dass der Service in Zukunft verbessert werde oder zumindest auf dem gleichen Niveau bleibt […]”.

Ridder rät daher, “[…] mit den Providern zusätzliche Vertragsklauseln auszuhandeln, die vor Zusatzkosten oder steigenden Preisen schützen […]”. Zudem müssen insbesondere Unternehmen mit hohen Sicherheitsanforderungen unbedingt nachverhandeln. Dadurch kann sich der Preis aber auch das eigene Risiko erhöhen. Aus diesem Grund muss das Unternehmen bereits vor dem Weg in die Cloud eine detaillierte Risiko-Analyse vornehmen und diese während den gesamten Vertragsverhandlungen und der Vertragslaufzeit fortführen.


Bildquelle: http://imageshack.us

Kategorien
News

Ericsson wird Mitglied der OpenStack Community

Der Internet- und Telekommunikationsanbieter Ericsson wird Mitglied der OpenStack Community, um Internetprovider und Webhoster dabei zu unterstützen, Cloud Computing Anbieter zu werden. Ericsson möchte dabei verstärkt beim Fehlermanagement helfen und Support für VMware liefern.

OpenStack ist eine Open Source Community die Software für den Betrieb von Private und Public Clouds entwickelt. Ericsson möchte seinen Teil bei der Entwicklung von OpenStack beitragen, um damit Carrier-Grade-Services und Anwendungen zu unterstützen.

Die Dienste und Anwendungen sollen eine Reihe von Bereichen abdecken. Einer dieser Bereiche ist das Fehlermanagement, was in OpenStack derzeit noch vollständig fehlt. Ericsson möchte darüber hinaus für eine gute VMware Unterstützung sorgen einschließlich der Möglichkeit, virtuelle Maschinen zwischen Hosts zu migrieren. Darüber hinaus wird das Unternehmen aber am ehesten einen Beitrag für die Verbesserung der Netzwerk-Funktionen leisten können.

Während des Mobile World Congress hat Ericsson bereits ein bevorstehendes Management-Tool für OpenStack-basierte Clouds vorgestellt. Die Demo nutzt eine Testumgehend, bestehend aus drei Rechenzentren, die über verschiedene Kontinente verteilt sind. Das Tool dient zum Erstellen und Verbinden virtueller Rechenzentren an jedem der drei physischen Standorte und führt diese zusammen, um eine verteilte virtuelle Private Cloud zu erstellen. Das Tool kann ebenfalls die Bereitstellung von Cloud-Services oder Anwendungen automatisieren. Ericsson hat darüber hinaus eine automatisierte Service-Level-Agreement-Prüfung integriert.

Zusammen mit der Technologie von Telcordia, die Ericsson erworben hat, wird das Management-Tool in Ericssons netzwerkfähiges Cloud-Konzept passen. Ericssons Konzept ermöglicht Betreibern das Bereitstellen von Cloud-Services und das Konfigurieren der dafür benötigten Netzwerk-Ressourcen zur selben Zeit.

Kategorien
Services

Zimory – Heterogenes Cloud Management aus Deutschland

Das Management von Cloud Services nimmt für Unternehmen einen immer größeren Stellenwert ein und wird sich in den kommenden Jahren mit Cloud Brokerage Services verändern. Aber wie sollen Unternehmen überhaupt Cloud Services verwalten, wenn keine angeboten werden? Um potentiellen Anbietern von Cloud Services unter die Arme zu greifen gibt es Cloud Management Plattformen. Diese helfen dabei, bereits virtualisierte Ressourcen entweder direkt als Cloud Service bereitzustellen bzw. diese einem Cloud Service zur Verfügung zu stellen.

Auf dem derzeit noch eher amerikanisch geprägten Markt des Cloud Management existieren ebenfalls Lösungen aus Deutschland. Eine kommt aus Berlin: Zimory.

Zimory wurde im Jahr 2007 gegründet und bietet nach eigenen Aussagen eine dynamische, unabhängige und elastische Cloud Management Lösung, mit der Service-Anbieter oder Unternehmen mit eigenen Rechenzentren ihre bereits virtualisierten Ressourcen für den Einsatz als Cloud Services nutzbar machen können.

Im Gespräch mit CloudUser | Ξxpert nannte Rüdiger Baumann, CEO von Zimory Deutschland als aktuellen Zielmarkt, wobei sich Zimory allerdings sehr kurzfristig auch international aufstellen wird. Zudem fokussiert sich Zimory derzeit verstärkt auf Anbieter von Virtual Private Clouds (VPC). So verwundert es nicht, dass bspw. die „Dynamic Services for Infrastructure“ von T-Systems vollständig durch die Zimory Cloud Management Lösung provisioniert und verwaltet werden.

Zimory Cloud Management Architektur

Zimory möchte Anbieter in die Lage versetzen, in kurzer Zeit einen Enterprise-Grade-Cloud-Service aufzubauen, der eine sichere Verarbeitung sensibler Daten in der Cloud ermöglicht. Zudem soll dabei die horizontale Skalierbarkeit sichergestellt werden, um auch im Falle einer nicht erwarteten Nachfrage der Nutzer flexibel agieren zu können. Der heterogene Stack der Plattform ist offen gestaltet und unterstützt VMware, Xen, OracleVM, KVM und Microsoft HyperV. Auf Nachfrage von CloudUser | Ξxpert, wäre es ebenfalls möglich OpenStack bei Bedarf zu adaptieren. Wobei die Nachfrage dafür derzeit gegen Null tendiert. Neben einer offenen Schnittstelle sind ebenfalls bereits Anbindungen für NetApp und EMC2 vorhanden. Eine API zur Anbindung von Firewall Systemen ist ebenfalls vorhanden. Hier arbeitet Zimory mit Cisco zusammen.

Es handelt sich bei der Cloud Management Lösung daher um einen sehr umfangreichen Stack innerhalb der Plattform, mit dem ebenfalls das Billing abgewickelt werden und das System dazu die Daten direkt an ein SAP übergeben kann.

zimory scale: Datenbank-Elastizität für Clouds

Relationale Datenbanken gehören zu den technisch größten Herausforderungen im Cloud Computing. Insbesondere die Skalierbarkeit macht Probleme. Hier setzt „zimory scale“ an. Auf Basis von sogenannten Satelliten-Datenbanken bietet zimory scale Erweiterungsmöglichkeiten für vorhandene relationale Dantenbanksystem-Installationen. Bei den Satelliten handelt es sich um konsistente Kopien der Master-Datenbank, welche für Lese-Skalierbarkeit und Elastizität sorgen.

So wird bspw. eine Oracle Datenbank in eine MySQL Datenbank gespiegelt, aus welcher dann wiederum die Satelliten-Datenbanken erzeugt (geklont) werden. Die ersten Betatest bei zwei Kunden laufen, nach Aussage von Rüdiger Baumann, bisher wie erwartet.

zimory scale Architektur

Im Hintergrund von „zimory scale“ werden die jeweiligen Applikationen als einzelne Images abgelegt. Die Anfragen an die Datenbank werden nicht direkt vom Master, sondern von einem seiner Satelliten bearbeitet. Das Gesamtsystem ist so konzipiert, dass immer das Verhalten der Master-Datenbank nach außen abgebildet wird. Das bedeutet, dass die eigentlichen Anwendungen nicht bemerken, dass eigentlich ein Satellit die Aufgaben bearbeitet, da die Arbeitsweise und Semantik des Systems exakt der Master-Datenbank entsprechen. Da die Satelliten alle Anfragen entgegennehmen, entlasten sie somit den Master. Das Rückgrat der Elastizität und Skalierbarkeit bilden daher die Satelliten ab.

Die Satelliten-Datenbanken können sowohl lokal als auch verteilt über ein WAN genutzt werden. So ist es bspw. möglich, sie im eigenen Rechenzentrum als Master oder auch in Managed und cloud-basierten Umgebungen zu betreiben.

Kategorien
News

Der Kampf zwischen Microsoft und Google um die Cloud spitzt sich weiter zu

Der kürzlich veröffentliche G-Cloud CloudStore der britischen Regierung hat ebenfalls Services von Google und Microsoft im Portfolio. Das ist natürlich nicht verwunderlich, aber dennoch heizt es den Kampf zwischen Google und Microsoft im lukrativen Cloud Computing Markt nun auch in Großbritannien weiter an.

In der ersten Version des Katalogs ist Google als Google Ireland Ltd. registriert und hat dort Google Apps for Business sowie Chrome OS, Google Message Discovery, Google Earth Builder und Google Maps API Premier im Angebot.

Microsoft hat dafür gesorgt, dass sie in allen Bereichen wie PaaS, IaaS, SaaS und Cloud Consulting Services vertreten sind. Zu den Produkten zählen die Microsoft Consulting Services, CRM Online, Windows Azure und Office 365. Hinzu kommt, dass der G-Cloud CloudStore auf Windows Azure betrieben wird.

Die Frage welches der beiden Unternehmen die Kontrolle über die Cloud Nutzung in Großbritannien übernehmen wird, wurde durch eine frühere Auseinandersetzung der beiden in den Vereinigten Staaten eingeleitet.

So beschuldigt Microsoft Google, sich vor der Veröffentlichung der von der US-Regierung geforderten Zertifizierung für die Nutzung von Google Anwendungen durch die US-Behörden zu drücken. Auf der anderen Seite hat Google rechtliche Schritte gegen die US-Regierung wegen angeblicher Begünstigungen von Microsoft-Diensten eingeleitet.

In Großbritannien hat Microsoft, aufgrund seiner langjährigen Beziehungen zu der Regierung, eindeutig die Oberhand. Zudem wurde mit der Aktualisierung des Enterprise Agreement (EA) Lizenzmodell im vergangenen Jahr das wohl weltweite größte Cloud-Geschäft seiner Art abgeschlossen. Die 21.000.000,00 Pfund schwere Vereinbarung läuft über drei Jahre, in der ebenfalls die größten Microsoft Reseller involviert sind.

Microsoft hat bereits eine Schlüsselrolle in der ersten Ausbaustufe der G-Cloud gespielt, da Stuart Aston, Chief Security Advisor bei Microsoft UK, zu einem der Co-Leads in der G-Cloud Arbeitsgruppe gewählt wurde. Ein weiterer Microsoft Cloud Partner, Solidsoft, nahm ebenfalls eine bedeutende Rolle in der Entwicklung des CloudStore Frameworks ein.

Man kann nur vermuten, in welche Richtung sich der Kampf in der Cloud bewegen wird. Aber so oder ähnlich kann es weitergehen: Microsoft in Person von Frank Shaw, Corporate Vice President gab im offiziellen Microsoft Blog kürzlich aggressive Äußerungen in Bezug auf Googles neue Datenschutzbestimmungen von sich.

Der Inhalt des Posts nennt drei Gründe, warum Microsofts E-Mail-Dienste besser sind als die von Google. Der Beitrag erklärt:

  • Google liest die E-Mails mit.
  • Googles Suche im Internet ist an die Google-ID gebunden.
  • Das Anschauen von YouTube Videos ist ebenfalls an die Google-ID gebunden.
  • Microsoft sei angeblich besser, denn sie verwenden niemals Informationen aus E-Mails, um Werbeanzeigen zu schalten oder eine Verknüpfung mit der Benutzer-ID herzustellen.

Das letzte Argument ist ein wenig fragwürdig, da bei der Nutzung von Google Apps for Business keine Werbeanzeigen geschaltet werden. Dafür zahlt man schließlich einen monatlichen Beitrag. Dennoch bleibt abzuwarten, wie es weitergeht.


Bildquelle: http://blog.acrowire.com, http://www.androidnext.de

Kategorien
Tutorials

How-To: Amazon EC2 Linux Micro Instanz um eine Swap Partition erweitern um deren Leistung zu erhöhen

Amazon EC2 Micro Instanzen stehen nur 613 MB Arbeitsspeicher zur Verfügung. Das reicht in den meisten Fällen nicht, um große Datenmengen performant zu verarbeiten. Hinzu kommt, dass die Linux Micro Instanzen standardmäßig keine Swap Partition haben.

Mit den folgenden Schritten wird einer Linux basierten Amazon EC2 Micro Instanz eine Swap Partition hinzugefügt, wodurch deren Leistung erhöht werden kann.

Zunächst melden wir uns als Root an und geben folgenden Befehl ein, um die Werte für die gewünschte Blockgröße anzugeben.

dd if=/dev/zero of=/swapfile bs=1M count=1024

Anschließend richten wir das Swapfile ein.

mkswap /swapfile

Nun aktivieren das Swapfile.

swapon /swapfile

Um das Swapfile während des Bootvorgangs zu aktivieren, tragen wir folgendes in die /etc/fstab ein.

/swapfile swap swap defaults 0 0

Bildquelle: http://tux.crystalxp.net

Kategorien
News

Die britische Regierung eröffnet ihren offiziellen CloudStore

Mit einem eigenen CloudStore will es die britische Regierungen Organisationen des eigenen öffentlichen Sektors ermöglichen die Suche und Beschaffung neuer IT-Lösungen zu erleichtern.

Das sich hinter dem CloudStore befindliche G-Cloud Framework beinhaltet derzeit über 1700 Cloud Computing Services von weltweit über 250 Anbietern. In einem zweiten Schritt im Frühjahr sollen weitere Lösungen folgen.

Die Webseite des CloudStore ist derzeit noch ein Pilot und bietet eine durchsuchbare Datenbank für Cloud Services aus den Bereichen Infrastructure-as-a-Service (IaaS), Software-as-a-Service (SaaS), Platform-as-a-Service (PaaS) und speziellen Cloud Services. Abteilungen des öffentlichen Sektors sind damit in der Lage, auf Basis eigener Parameter geeignete IT-Lösungen zu finden.

Da die Vielzahl der Services pro Einheit abgerechnet werden, erhoffen sich die Ministerien nun kostengünstiger auf IT-Ressourcen zurückgreifen zu können. Dabei sollen die Verträge(!) auf maximal 12 Monate ausgelegt sein.

Der CloudStore wartet noch auf das Feedback der derzeitigen Nutzer, bevor die Pilotphase beendet wird. Die Infrastruktur des CloudStore arbeit dabei auf Microsoft Windows Azure.

Weitere Infos gibt es unter http://www.govstore.net.


Bildquelle: http://www.v3.co.uk