2009-01-30 13 views
6

Wenn Sie eine verteilte Anwendung für einfaches Scale-out entwerfen, oder wenn Sie nur eines der neuen "Cloud Computing" -Angebote von Amazon, Google oder Microsoft nutzen möchten sind einige typische Konzepte oder Komponenten, die Sie in der Regel am Ende mit:"cloud architecture" -Konzepte in Systemarchitekturdiagrammen

  • verteilt Blob Speicher (auch bekannt als S3)
  • asynchron, dauerhafte Nachrichtenwarteschlangen (aka SQS)
  • nicht-Relational-/nicht-transaktionalen Datenbanken (wie SimpleDB, Google BigTable, Azure SQL Services)
  • verteilt Hintergrund Arbeitnehmer Pool
  • Lastausgleich, edge-Service-Prozesse Benutzeranforderungen Handhabung (oft virtualisiert)
  • verteilten Caches (wie memcached)
  • CDN (Content-Delivery-Netzwerk wie Akamai)

Jetzt Wenn es darum geht, eine Architektur zu entwerfen und zu skizzieren, die solche Muster verwendet, gibt es irgendwelche allgemein gebräuchlichen Symbole, die ich verwenden könnte? Oder sogar einen Download mit ein paar coolen Visio-Schablonen? :)

Es muss kein formelles System wie UML sein, aber ich denke, es wäre toll, wenn es Symbole gäbe, die jeder kennt und versteht, wie wir zum Beispiel häufig Formen für Datenbanken oder Dokumente haben. Ich denke, es wäre wichtig, es nicht mit traditionellen Konzepten wie einem normalen Dateisystem (lokal oder Netzwerkserver/SAN) oder einer relationalen Datenbank zu verwechseln.

Einfach gesagt, möchte ich in der Lage sein, einige Schlussfolgerungen über die Skalierbarkeit oder Datenkonsistenz einer Anwendung zu ziehen, indem ich einfach das Systemarchitektur-Übersichtsdiagramm anschaue.

Update: Vielen Dank für Ihre Antworten. Ich mag die Idee, ein kleines "Wolkensymbol" auf die traditionellen Symbole zu setzen. Allerdings lasse ich diesen Thread offen für den Fall, dass jemand bestimmte Symbole findet (vielleicht in einem Buch oder so) - oder einige aufgemotzte Visio Schablonen hochladen;)

+0

Aus einer höheren Perspektive - warum eine solche Unterscheidung abgrenzen? Eine Datenbank ist eine Datenbank. Ich denke, dass eine "Wolke" mit dem passenden Symbol darin Ihren Punkt herüberbringen würde. Eine detailliertere Perspektive - die tatsächliche Struktur betrachtend, hätte man N Maschinen vernetzt. – jim

+0

"Eine Datenbank ist eine Datenbank" - ich glaube nicht. Zum Beispiel würde eine verteilte Datenbank natürlich besser skalieren, aber sie wäre vielleicht weniger "genau" als eine Transaktionsdatenbank, sie hat normalerweise weniger Funktionalität (zB keine Joins) etc. – realMarkusSchmidt

Antwort

5

Hier sind zwei Sätze von Symbolen, die gut auf Konzepte in Cloud-Plattformen abbilden.

Für Windows Azure: http://davidpallmann.blogspot.com/2011/07/windows-azure-design-patterns-part-1.html (download here)

EDIT Februar 2014 ==> Hier ist eine komplette Reihe vor kurzem von Microsoft veröffentlicht: http://www.microsoft.com/en-us/download/details.aspx?id=41937Dies ist jetzt die beste Option für Windows Azure zu verwenden.

Amazon Web Services: http://aws.typepad.com/aws/2011/12/introducing-aws-simple-icons-for-your-architecture-diagrams.html

Und @markus war offensichtlich gut vor der Kurve, da er diese Frage gestellt, lange bevor diese zur Verfügung standen.

+0

Wow, vielen Dank - endlich die Antwort, nur 3,5 Jahre später: D Beide sehen wirklich gut aus. – realMarkusSchmidt

3

Ich kenne keine der unterscheidenden Symbole, aber wenn Sie etwas brauchen - Ich würde für die traditionellen gehen und jedem ein kleines Wolkensymbol hinzufügen. Jeder kennt die traditionelle Bedeutung - und auf einer abstrakten Ebene spielt es keine Rolle, ob es eine Cloud ist oder nicht - und das Cloud-Symbol fügt die Informationen hinzu, die es in einer Cloud-Umgebung ausführt.

Aber erklären Sie die Symbole, wenn Sie dies einem Kunden präsentieren möchten.

0

wäre interessiert, eine visio Vorlage zu sehen. Von einer sehr hohen Ebene aus gesehen, reicht es aus, eine Clould über eine traditionelle Datenbank zu setzen, jedoch reicht es nicht aus, den vollständigen Import einer Cloud-Komponente auszudrücken, insbesondere wenn es notwendig ist, sie in ein Diagramm aufzunehmen - zum Beispiel asynchron Nachrichtenbusse Prost - Kalyan