{"id":36518,"date":"2019-10-31T22:12:07","date_gmt":"2019-10-31T19:12:07","guid":{"rendered":"https:\/\/prohoster.info\/blog\/programmnaya-arhitektura-i-proektirovanie-sistem-obshhaya-kartina-i-putevoditel-po-resursam\/"},"modified":"2019-10-31T22:12:07","modified_gmt":"2019-10-31T19:12:07","slug":"programmnaya-arhitektura-i-proektirovanie-sistem-obshhaya-kartina-i-putevoditel-po-resursam","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/programmnaya-arhitektura-i-proektirovanie-sistem-obshhaya-kartina-i-putevoditel-po-resursam","title":{"rendered":"Architektur und Systemdesign: ein \u00dcberblick und Leitfaden zu Ressourcen","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Hallo, Kollegen.<\/p>\n<p>Heute wird Ihnen die \u00dcbersetzung des Artikels von Tugberk Ugurlu angeboten, der sich bem\u00fcht hat, in vergleichsweise kurzer Form die Prinzipien des Designs moderner Softwaresysteme darzulegen. Hier ist, was der Autor \u00fcber sich selbst in Kurzfassung mitteilt:<\/p>\n<p><img decoding=\"async\" alt=\"Architektur und Systemdesign: ein \u00dcberblick und Leitfaden zu Ressourcen\" src=\"\/wp-content\/uploads\/2019\/07\/30de77ffad15171ce493ce5003c99360.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nDa es absolut unm\u00f6glich ist, ein so kolossales Thema wie Architektur-Muster + Entwurfsmuster bis zum Stand von 2019 in einem \u00fcbersichtlichen Artikel abzudecken, empfehlen wir nicht nur den Text von Herrn Ugurlu, sondern auch die zahlreichen Links, die er darin freundlicherweise bereitgestellt hat. Wenn es Ihnen gef\u00e4llt, k\u00f6nnen wir auch einen spezialisierten Text \u00fcber das Design verteilter Systeme ver\u00f6ffentlichen.<\/p>\n<p><img decoding=\"async\" alt=\"Architektur und Systemdesign: ein \u00dcberblick und Leitfaden zu Ressourcen\" src=\"\/wp-content\/uploads\/2019\/07\/4ccec9506aedb91bb601ebc32b6762be.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<i>Foto <noindex><a rel=\"nofollow\" href=\"https:\/\/unsplash.com\/photos\/6EnTPvPPL6I?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">von Isaac Smith<\/a><\/noindex> von der Website Unsplash<\/i><\/p>\n<p>Wenn Sie noch nie mit Herausforderungen konfrontiert waren, wie man ein Softwaresystem von Grund auf neu entwirft, ist es manchmal unklar, wo man anfangen soll. Ich denke, es ist notwendig, zun\u00e4chst die Grenzen abzustecken, um mehr oder weniger sicher zu wissen, was genau Sie entwerfen m\u00f6chten, und dann \u2013 die \u00c4rmel hochzukrempeln und zu arbeiten, ohne diese Grenzen zu \u00fcberschreiten. Ein guter Ausgangspunkt kann ein Produkt oder eine Dienstleistung sein (idealerweise eines, das Ihnen sehr gef\u00e4llt), und Sie sollten sich mit seiner Umsetzung vertraut machen. M\u00f6glicherweise werden Sie \u00fcberrascht sein, wie einfach dieses Produkt aussieht und welche enormen Komplexit\u00e4ten sich tats\u00e4chlich dahinter verbergen. Vergessen Sie nicht: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=k9Zbuuo51go\">einfach ist meist kompliziert<\/a><\/noindex>, und das ist in Ordnung.<\/p>\n<p>Ich denke, der beste Rat, den ich denen geben kann, die mit dem Entwurf eines Systems beginnen, lautet: Machen Sie keine Annahmen! Von Anfang an m\u00fcssen die Fakten, die \u00fcber dieses System bekannt sind, und die damit verbundenen Erwartungen konkretisiert werden. Hier sind einige gute Fragen, deren Antworten Ihnen helfen werden, mit dem Entwurf zu beginnen:<\/p>\n<ul>\n<li>Was ist das Problem, das wir zu l\u00f6sen versuchen? <\/li>\n<li>Wie hoch ist die maximale Anzahl von Benutzern, die mit unserem System interagieren werden?<\/li>\n<li>Welche Muster f\u00fcr das Schreiben und Lesen von Daten werden wir verwenden? <\/li>\n<li>Was sind die erwarteten Ausfallf\u00e4lle, und wie gedenken wir, damit umzugehen?<\/li>\n<li>Welche Erwartungen bestehen an die Konsistenz und Verf\u00fcgbarkeit des Systems? <\/li>\n<li>M\u00fcssen bei der Arbeit irgendwelche Anforderungen im Zusammenhang mit externen Pr\u00fcfungen und Regulierungen ber\u00fccksichtigt werden?<\/li>\n<li>Welche Arten von vertraulichen Daten beabsichtigen wir zu speichern?<\/li>\n<\/ul>\n<p>\nDies sind nur einige Fragen, die mir und den Teams, an denen ich im Laufe meiner beruflichen Laufbahn teilgenommen habe, n\u00fctzlich waren. Wenn Sie die Antworten auf diese Fragen kennen (und auf alle anderen, die im Kontext relevant sind, in dem Sie arbeiten), k\u00f6nnen Sie allm\u00e4hlich in die technischen Details der Aufgabe eintauchen.<\/p>\n<p><b>Legen wir den Ausgangswert fest<\/b><\/p>\n<p>Was verstehe ich hier unter \u201eAusgangswert\u201c? Tats\u00e4chlich k\u00f6nnen die meisten Probleme in der Softwareindustrie heutzutage \u201emit\u201c bestehenden Methoden und Technologien gel\u00f6st werden. Indem Sie sich in dieser Landschaft zurechtfinden, haben Sie einen gewissen Vorteil, wenn Sie mit Herausforderungen konfrontiert werden, die jemand vor Ihnen gel\u00f6st hat. Denken Sie daran, dass Programme zur L\u00f6sung von Gesch\u00e4fts- und Benutzerproblemen geschrieben werden, weshalb wir bestrebt sind, die Aufgaben auf die direkteste und einfachste (aus der Sicht des Benutzers) Weise zu l\u00f6sen. Warum ist es wichtig, sich daran zu erinnern? Vielleicht gef\u00e4llt es Ihnen in Ihrem Koordinatensystem, f\u00fcr jede Aufgabe einzigartige L\u00f6sungen zu finden, da Sie denken, \u201ewas f\u00fcr ein Programmierer bin ich, wenn ich \u00fcberall Mustern folge\u201c? In Wirklichkeit <b>liegt die Kunst darin, Entscheidungen dar\u00fcber zu treffen, wo und was zu tun ist<\/b>. Nat\u00fcrlich m\u00fcssen wir alle von Zeit zu Zeit mit einzigartigen Problemen umgehen, von denen jedes eine echte Herausforderung darstellt. Wenn unser Ausgangswert jedoch klar definiert ist, wissen wir, wo wir unsere Kr\u00e4fte einsetzen: entweder auf die Suche nach bereits vorhandenen L\u00f6sungen f\u00fcr die uns gestellte Aufgabe oder auf deren weitere Untersuchung und ein tieferes Verst\u00e4ndnis.<\/p>\n<p>Ich denke, ich konnte Sie \u00fcberzeugen, dass, wenn ein Spezialist sicher versteht, wie die architektonischen Komponenten bestimmter bemerkenswerter Softwaresysteme beschaffen sind, dieses Wissen unerl\u00e4sslich sein wird, um die Kunst eines Architekten zu erlernen und eine solide Grundlage in diesem Bereich zu schaffen.<\/p>\n<p>Gut, wo fangen wir an? Bei <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\">Donna Martin<\/a><\/noindex> gibt es ein Repository auf GitHub mit dem Namen <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\">system-design-primer<\/a><\/noindex>, aus dessen Materialien Sie lernen k\u00f6nnen, wie man gro\u00df angelegte Systeme entwirft und sich auf Vorstellungsgespr\u00e4che zu diesem Thema vorbereitet. Im Repository gibt es einen Abschnitt mit Beispielen <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/tree\/1144b8ef4c441af73f7cbfd51f56b8eb62350a66#real-world-architectures\">echter Architekturen<\/a><\/noindex>, wo insbesondere betrachtet wird, wie einige Unternehmen ihre Systeme entwerfen <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/tree\/1144b8ef4c441af73f7cbfd51f56b8eb62350a66#company-architectures\">einige bekannte Unternehmen<\/a><\/noindex>, wie Twitter, Uber usw.<\/p>\n<p>Bevor wir jedoch zu diesem Material \u00fcbergehen, lassen Sie uns die wichtigsten architektonischen Herausforderungen, mit denen man in der Praxis konfrontiert ist, n\u00e4her untersuchen. Das ist wichtig, da man eine Vielzahl von Aspekten eines hartn\u00e4ckigen und vielschichtigen Problems konkretisieren und es dann im Rahmen der geltenden Regulierung in diesem System l\u00f6sen muss. <noindex><a rel=\"nofollow\" href=\"https:\/\/jg.gg\/\">Jackson Gabbard<\/a><\/noindex>, ein ehemaliger Mitarbeiter von Facebook, hat <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=ZgdS0EUmn70\">ein 50-min\u00fctiges Video \u00fcber Vorstellungsgespr\u00e4che zur Systemgestaltung aufgenommen<\/a><\/noindex>, in dem er seine eigene Erfahrung beim Durchsehen von Hunderten von Bewerbern teilt. Obwohl das Video ausdr\u00fccklich die Gestaltung gro\u00dfer Systeme und die Erfolgskriterien, die f\u00fcr die Auswahl eines solchen Kandidaten wichtig sind, behandelt, wird es dennoch eine umfassende Ressource dar\u00fcber sein, welche Dinge bei der Systemgestaltung am wichtigsten sind. Ich empfehle auch <noindex><a rel=\"nofollow\" href=\"https:\/\/jg.gg\/2016\/07\/31\/architecture-and-systems-design-interview\/\">eine Zusammenfassung<\/a><\/noindex> dieses Videos.<\/p>\n<p><b>Erwerben Sie Kenntnisse \u00fcber Datenspeicherung und -abruf<\/b> <\/p>\n<p>In der Regel hat Ihre Entscheidung, wie Sie Ihre Daten langfristig speichern und bereitstellen werden, einen entscheidenden Einfluss auf die Systemleistung. Daher m\u00fcssen Sie in erster Linie die erwarteten Lese- und Schreibmerkmale Ihrer Daten im System verstehen. Danach sollten Sie in der Lage sein, diese Kennzahlen zu bewerten und Entscheidungen basierend auf den getroffenen Bewertungen zu treffen. Sie k\u00f6nnen diese Aufgabe jedoch nur effektiv bew\u00e4ltigen, wenn Sie mit den bestehenden Datenspeicherungsmustern vertraut sind. Grunds\u00e4tzlich setzt dies solide Kenntnisse in Bezug auf <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#database\">die Auswahl der Datenbank<\/a><\/noindex>. <\/p>\n<p>Datenbanken k\u00f6nnen als Datenstrukturen betrachtet werden, die au\u00dfergew\u00f6hnliche Skalierbarkeit und Langlebigkeit aufweisen. Daher sollte das Wissen \u00fcber Datenstrukturen Ihnen auch bei der Auswahl einer bestimmten Datenbank von gro\u00dfem Nutzen sein. Zum Beispiel <noindex><a rel=\"nofollow\" href=\"https:\/\/redis.io\/topics\/data-types-intro\">Redis<\/a><\/noindex> ist ein Datenbankserver, der verschiedene Arten von Werten unterst\u00fctzt. Er erm\u00f6glicht die Arbeit mit Datenstrukturen wie Listen und Mengen und das Abrufen von Daten mithilfe bekannter Algorithmen, wie zum Beispiel <noindex><a rel=\"nofollow\" href=\"https:\/\/redis.io\/topics\/lru-cache\">LRU<\/a><\/noindex>, und organisiert diese Arbeit in einem langlebigen und hochverf\u00fcgbaren Stil. <\/p>\n<p><img decoding=\"async\" alt=\"Architektur und Systemdesign: ein \u00dcberblick und Leitfaden zu Ressourcen\" src=\"\/wp-content\/uploads\/2019\/07\/8e30da0e8edd592609466f3c6c6f66d1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>Foto <noindex><a rel=\"nofollow\" href=\"https:\/\/unsplash.com\/photos\/JuFcQxgCXwA?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">Samuel Zeller<\/a><\/noindex> von der Website Unsplash<\/i><\/p>\n<p>Sobald Sie sich ausreichend mit verschiedenen Datenablage-Mustern vertraut gemacht haben, sollten Sie sich mit der Konsistenz und Verf\u00fcgbarkeit von Daten besch\u00e4ftigen. Zuerst m\u00fcssen Sie die <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#cap-theorem\">CAP-Theorie<\/a><\/noindex> zumindest grob verstehen und dann dieses Wissen verfeinern, indem Sie sich eingehender mit etablierten Mustern der <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#consistency-patterns\">Konsistenz<\/a><\/noindex> und <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#availability-patterns\">Verf\u00fcgbarkeit<\/a><\/noindex>besch\u00e4ftigen. So erweitern Sie Ihren Horizont in diesem Bereich und erkennen, dass das Lesen und Schreiben von Daten tats\u00e4chlich zwei sehr unterschiedliche Probleme sind, die jeweils ihre eigenen Herausforderungen mit sich bringen. Mit einigen Mustern zur Gew\u00e4hrleistung von Konsistenz und Verf\u00fcgbarkeit k\u00f6nnen Sie die Systemleistung erheblich steigern und gleichzeitig eine kontinuierliche Datenversorgung f\u00fcr Ihre Anwendungen garantieren.<\/p>\n<p>Abschlie\u00dfend, wenn wir \u00fcber Fragen der Datenablage sprechen, sollte auch das Caching erw\u00e4hnt werden. Sollte es sowohl auf dem Client als auch auf dem Server gleichzeitig durchgef\u00fchrt werden? Welche Daten werden Sie im Cache haben? Und warum? Wie organisieren Sie die Cache-Invalidierung? Wird sie regelm\u00e4\u00dfig in bestimmten Zeitintervallen durchgef\u00fchrt? Wenn ja, wie h\u00e4ufig? Ich empfehle, diese Themen im <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#cache\">n\u00e4chsten Abschnitt<\/a><\/noindex> des oben genannten Leitfadens zur Systemarchitektur zu beginnen. <\/p>\n<p><b>Kommunikationsmuster<\/b><\/p>\n<p>Systeme bestehen aus verschiedenen Komponenten; dies k\u00f6nnen verschiedene Prozesse sein, die innerhalb eines physischen Knotens arbeiten, oder verschiedene Maschinen, die in verschiedenen Teilen Ihres Netzwerks t\u00e4tig sind. Einige dieser Ressourcen in Ihrem Netzwerk k\u00f6nnen privat sein, andere m\u00fcssen jedoch \u00f6ffentlich und f\u00fcr externe Verbraucher zug\u00e4nglich sein.<\/p>\n<p>Es ist notwendig, die Kommunikation dieser Ressourcen untereinander sowie den Austausch von Informationen zwischen dem gesamten System und der Au\u00dfenwelt sicherzustellen. Im Kontext der Systemarchitektur stehen wir hier erneut vor einer Reihe neuer einzigartiger Herausforderungen. Wir betrachten, wie <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#asynchronism\">asynchrone Aufgabenstr\u00f6me<\/a><\/noindex>n\u00fctzlich sein k\u00f6nnen und welche<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#communication\">vielf\u00e4ltigen Kommunikationsmuster zur Verf\u00fcgung stehen<\/a><\/noindex>. <\/p>\n<p><img decoding=\"async\" alt=\"Architektur und Systemdesign: ein \u00dcberblick und Leitfaden zu Ressourcen\" src=\"\/wp-content\/uploads\/2019\/07\/e4dc98256b755acf931097d218f8b0dd.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>Foto <noindex><a rel=\"nofollow\" href=\"https:\/\/unsplash.com\/photos\/DgZxBnZeQo8?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">Tony Stoddard<\/a><\/noindex> von der Website Unsplash<\/i><\/p>\n<p>Bei der Organisation der Kommunikation mit der Au\u00dfenwelt ist es immer sehr wichtig, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#security\">Sicherheit<\/a><\/noindex>was mit der gleichen Ernsthaftigkeit angegangen werden sollte. <\/p>\n<p><b>Verbindungsverteilung<\/b><\/p>\n<p>Ich bin mir nicht sicher, ob die Herausstellung dieses Themas als eigenst\u00e4ndiger Abschnitt f\u00fcr alle gerechtfertigt erscheint. Dennoch werde ich dieses Konzept hier ausf\u00fchrlich darlegen, wobei ich der Meinung bin, dass das Material dieses Abschnitts am besten mit dem Begriff \u201eVerteilung von Verbindungen\u201c (connection distribution) beschrieben wird.<\/p>\n<p>Systeme werden durch die richtige Verbindung vieler Komponenten gebildet, und ihre Kommunikation untereinander wird oft auf der Basis etablierter Protokolle organisiert, wie z.B. TCP und UDP. Diese Protokolle sind jedoch h\u00e4ufig nicht ausreichend, um alle Anforderungen moderner Systeme zu erf\u00fcllen, die oft unter hoher Last betrieben werden und stark von den Bed\u00fcrfnissen der Benutzer abh\u00e4ngen. Es ist oft notwendig, M\u00f6glichkeiten zur Verteilung von Verbindungen zu finden, um mit solchen hohen Lasten im System umzugehen.<\/p>\n<p>Die Grundlage dieser Verteilung bildet das wohl bekannte <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/DNS\">Domain Name System<\/a><\/noindex> (DNS). Ein solches System erm\u00f6glicht die Umwandlung eines Domainnamens, zum Beispiel gewichteter Rundlaufalgorithmus (weighted round robin) und latenzbasierte Methoden, die helfen, die Last zu verteilen. <\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%91%D0%B0%D0%BB%D0%B0%D0%BD%D1%81%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BD%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B8\">Lastenausgleich<\/a><\/noindex> ist prinzipiell wichtig, und praktisch jedes gr\u00f6\u00dfere System im Internet, mit dem wir heute zu tun haben, befindet sich hinter einem oder mehreren Lastenausgleichsger\u00e4ten. Lastenausgleichsger\u00e4te helfen, Kundenanfragen auf viele verf\u00fcgbare Instanzen zu verteilen. Lastenausgleichsger\u00e4te gibt es sowohl in hardware- als auch in softwarebasierter Form, jedoch haben wir es in der Praxis oft mit softwarebasierten L\u00f6sungen zu tun, wie z.B. <noindex><a rel=\"nofollow\" href=\"http:\/\/www.haproxy.org\/\">HAProxy<\/a><\/noindex> und <noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/ru\/elasticloadbalancing\/\">ELB<\/a><\/noindex>. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer#reverse-proxy-web-server\">Reverse Proxies<\/a><\/noindex> sind konzeptionell ebenfalls sehr \u00e4hnlich wie Lastenausgleichsger\u00e4te, obwohl es zwischen diesen beiden eine Reihe von <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer#load-balancer-vs-reverse-proxy\">deutlichen Unterschieden<\/a><\/noindex>gibt. Diese Unterschiede m\u00fcssen unbedingt ber\u00fccksichtigt werden, wenn Sie ein System unter Ber\u00fccksichtigung Ihrer Anforderungen entwerfen.<\/p>\n<p>Es ist auch wichtig, sich \u00fcber <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Content_Delivery_Network\">Content Delivery Networks<\/a><\/noindex> (CDN) zu informieren. Ein CDN ist ein globales, verteiltes Netzwerk von Proxy-Servern, das Informationen aus den Knoten liefert, die geografisch n\u00e4her am jeweiligen Benutzer liegen. CDNs sind besonders vorteilhaft, wenn Sie mit statischen Dateien arbeiten, die in JavaScript, CSS und HTML geschrieben sind. Dar\u00fcber hinaus sind heutzutage solche Cloud-Services weit verbreitet, die Traffic-Manager bereitstellen, wie zum Beispiel <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/traffic-manager\/traffic-manager-overview?ranMID=24542&amp;ranEAID=je6NUbpObpQ&amp;ranSiteID=je6NUbpObpQ-9vzliSFGJdQqkHaqdUFnUQ&amp;epi=je6NUbpObpQ-9vzliSFGJdQqkHaqdUFnUQ&amp;irgwc=1&amp;OCID=AID2000142_aff_7593_1243925&amp;tduid=(ir__ntizratyeckfrlt1kk0sohz30m2xjibo1hl6incq00)(7593)(1243925)(je6NUbpObpQ-9vzliSFGJdQqkHaqdUFnUQ)()&amp;irclickid=_ntizratyeckfrlt1kk0sohz30m2xjibo1hl6incq00\">Azure Traffic Manager<\/a><\/noindex>, die Ihnen globale Verteilung und reduzierte Latenzzeiten bei der Arbeit mit dynamischen Inhalten bieten. Solche Dienste sind jedoch in der Regel nur dann n\u00fctzlich, wenn Sie mit zustandslosen Webdiensten arbeiten m\u00fcssen. <\/p>\n<p><b>Lassen Sie uns \u00fcber Gesch\u00e4ftslogik sprechen. Strukturierung von Gesch\u00e4ftslogik, Aufgabenfl\u00fcssen und Komponenten<\/b><\/p>\n<p>Wir haben also verschiedene infrastrukturelle Aspekte des Systems besprochen. H\u00f6chstwahrscheinlich denkt der Benutzer nicht einmal \u00fcber all diese Elemente Ihres Systems nach und ehrlich gesagt, k\u00fcmmert er sich \u00fcberhaupt nicht darum. Der Benutzer interessiert sich daf\u00fcr, wie es ist, mit Ihrem System zu interagieren, was er erreichen kann, wenn er so handelt, und wie das System die Benutzerbefehle ausf\u00fchrt, was es mit den Benutzerdaten macht und so weiter.<\/p>\n<p>Wie aus dem Titel dieses Artikels hervorgeht, wollte ich \u00fcber Softwarearchitektur und Systemdesign sprechen. Ich hatte nicht vor, Entwurfsmuster zu behandeln, die beschreiben, wie Softwarekomponenten erstellt werden. Je mehr ich jedoch dar\u00fcber nachdenke, desto mehr scheint mir, dass die Grenze zwischen Entwurfsmustern und Architekturmustern sehr verschwommen ist und diese beiden Konzepte eng miteinander verbunden sind. Nehmen wir zum Beispiel <noindex><a rel=\"nofollow\" href=\"https:\/\/martinfowler.com\/eaaDev\/EventSourcing.html\">Ereignisregistrierung<\/a><\/noindex> (Event Sourcing). Wenn Sie dieses Architekturpattern \u00fcbernehmen, wird es fast alle Aspekte Ihres Systems beeinflussen: langfristige Datenspeicherung, das in Ihrem System akzeptierte Konsistenzniveau, die Form der Komponenten darin usw. Daher habe ich beschlossen, einige Architekturpatterns zu erw\u00e4hnen, die sich direkt mit Gesch\u00e4ftslogik befassen. Auch wenn ich mich in diesem Artikel auf eine einfache Liste beschr\u00e4nken muss, empfehle ich Ihnen, sich damit vertraut zu machen und die Ideen, die mit diesen Mustern verbunden sind, zu durchdenken. Hier ist sie:<\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/SOLID_(%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)\">SOLID-Prinzipien<\/a><\/noindex> <\/li>\n<li>Konzepte <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9F%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5\">Objektorientiertes Design<\/a><\/noindex>, insbesondere <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/ingeniouslysimple\/aggregates-in-domain-driven-design-5aab3ef9901d\">Aggregate<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/ingeniouslysimple\/command-vs-event-in-domain-driven-design-be6c45be52a9\">Befehle und Ereignisse<\/a><\/noindex> <\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/267125\/\">Hexagonale Architektur<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/martinfowler.com\/bliki\/CQRS.html\">Trennung von Befugnissen von Befehlen und Anfragen (CQRS)<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/martinfowler.com\/eaaDev\/EventSourcing.html\">Ereignisregistrierung<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/doc.akka.io\/docs\/akka\/2.5\/guide\/actors-intro.html\">Aktor-Modell<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/215605\/\">Entwurfsmuster von MVC, MVVM und MVP<\/a><\/noindex><\/li>\n<\/ul>\n<p>\n<b>Kollaborative Ans\u00e4tze<\/b><\/p>\n<p>Es ist \u00e4u\u00dferst unwahrscheinlich, dass Sie in einem Projekt die einzige Person sind, die den Prozess der Systemgestaltung verantwortet. Vielmehr werden Sie wahrscheinlich mit Kollegen interagieren m\u00fcssen, die sowohl innerhalb Ihrer Aufgabe als auch dar\u00fcber hinaus arbeiten. In diesem Fall k\u00f6nnte es notwendig sein, die gew\u00e4hlten technologischen L\u00f6sungen gemeinsam mit den Kollegen zu bewerten, Gesch\u00e4ftsbed\u00fcrfnisse zu identifizieren und zu verstehen, wie Aufgaben am besten parallelisiert werden k\u00f6nnen.<\/p>\n<p><img decoding=\"async\" alt=\"Architektur und Systemdesign: ein \u00dcberblick und Leitfaden zu Ressourcen\" src=\"\/wp-content\/uploads\/2019\/07\/ad39e031dcac8e69fafb637603043bfb.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>Foto <noindex><a rel=\"nofollow\" href=\"https:\/\/unsplash.com\/photos\/3V8xo5Gbusk?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">Kaleidico<\/a><\/noindex> von der Website Unsplash<\/i><\/p>\n<p>Zun\u00e4chst m\u00fcssen Sie eine pr\u00e4zise und allgemein anerkannte Vorstellung davon entwickeln, welches Gesch\u00e4ftsziel Sie anstreben und mit welchen beweglichen Elementen Sie dabei umgehen m\u00fcssen. Methoden des Gruppeneinrichtens, insbesondere <noindex><a rel=\"nofollow\" href=\"https:\/\/techbeacon.com\/devops\/introduction-event-storming-easy-way-achieve-domain-driven-design\">Event-Sturm<\/a><\/noindex> (Event Storming), helfen, diesen Prozess erheblich zu beschleunigen und Ihre Erfolgschancen zu erh\u00f6hen. Diese Arbeit kann beginnen, bevor Sie <noindex><a rel=\"nofollow\" href=\"https:\/\/www.infoq.com\/news\/2015\/02\/service-boundaries-healthcare\/\">die Grenzen Ihrer Dienste<\/a><\/noindex>, umrei\u00dfen, und dann vertiefen, w\u00e4hrend das Produkt reift. Basierend auf dem Grad der \u00dcbereinstimmung, der hier erreicht wird, k\u00f6nnen Sie auch eine <noindex><a rel=\"nofollow\" href=\"https:\/\/martinfowler.com\/bliki\/UbiquitousLanguage.html\">gemeinsame Sprache<\/a><\/noindex> f\u00fcr den begrenzten Kontext formulieren, in dem Sie arbeiten. Wenn Sie \u00fcber die Architektur Ihres Systems berichten m\u00fcssen, kann Ihnen m\u00f6glicherweise <noindex><a rel=\"nofollow\" href=\"https:\/\/c4model.com\/\">das C4-Modell<\/a><\/noindex>, vorgeschlagen von <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/simonbrown\">Simon Brown<\/a><\/noindex>, helfen, insbesondere wenn es darum geht zu verstehen, wie tief Sie in die Details des Problems eintauchen m\u00fcssen, um die Dinge zu visualisieren, die Sie kommunizieren m\u00f6chten.<\/p>\n<p>Wahrscheinlich gibt es in diesem Bereich auch andere ausgereifte Technologien, die ebenso n\u00fctzlich sind wie das dom\u00e4nenspezifische Design. Dennoch kommen wir auf das Verst\u00e4ndnis des Fachgebiets zur\u00fcck, weshalb Wissen und Erfahrung im Bereich <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9F%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5\">dom\u00e4nenspezifisches Design<\/a><\/noindex> von Nutzen sein sollten.<br \/>\n<br \/>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/piter\/blog\/461283\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435, \u043a\u043e\u043b\u043b\u0435\u0433\u0438. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043d\u0430 \u0432\u0430\u0448 \u0441\u0443\u0434 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u0422\u0443\u0433\u0431\u0435\u0440\u043a\u0430 \u0423\u0433\u0443\u0440\u043b\u0443 (Tugberk Ugurlu), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0437\u044f\u043b\u0441\u044f \u0432 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043e\u0431\u044a\u0435\u043c\u0435 \u0438\u0437\u043b\u043e\u0436\u0438\u0442\u044c \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0441\u043e\u0444\u0442\u0432\u0435\u0440\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c. \u0412\u043e\u0442 \u0447\u0442\u043e \u0430\u0432\u0442\u043e\u0440 \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442 \u043e \u0441\u0435\u0431\u0435 \u0432 \u0441\u0443\u0445\u043e\u043c \u043e\u0441\u0442\u0430\u0442\u043a\u0435: \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0440\u0435\u0448\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043e\u0445\u0432\u0430\u0442\u0438\u0442\u044c \u0432 \u0445\u0430\u0431\u0440\u043e\u0441\u0442\u0430\u0442\u044c\u0435 \u0442\u0430\u043a\u0443\u044e \u043a\u043e\u043b\u043e\u0441\u0441\u0430\u043b\u044c\u043d\u0443\u044e \u0442\u0435\u043c\u0443, \u043a\u0430\u043a \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u044b\u0435 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b + \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044e \u043d\u0430 2019 \u0433\u043e\u0434, \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":27331,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-36518","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435, \u043a\u043e\u043b\u043b\u0435\u0433\u0438. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043d\u0430 \u0432\u0430\u0448 \u0441\u0443\u0434 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u0422\u0443\u0433\u0431\u0435\u0440\u043a\u0430 \u0423\u0433\u0443\u0440\u043b\u0443 (Tugberk Ugurlu), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0437\u044f\u043b\u0441\u044f \u0432 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043e\u0431\u044a\u0435\u043c\u0435 \u0438\u0437\u043b\u043e\u0436\u0438\u0442\u044c \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0441\u043e\u0444\u0442\u0432\u0435\u0440\u043d\u044b\u0445.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/programmnaya-arhitektura-i-proektirovanie-sistem-obshhaya-kartina-i-putevoditel-po-resursam\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u0430\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0438\u0441\u0442\u0435\u043c: \u043e\u0431\u0449\u0430\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u0430 \u0438 \u043f\u0443\u0442\u0435\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u043f\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435, \u043a\u043e\u043b\u043b\u0435\u0433\u0438. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043d\u0430 \u0432\u0430\u0448 \u0441\u0443\u0434 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u0422\u0443\u0433\u0431\u0435\u0440\u043a\u0430 \u0423\u0433\u0443\u0440\u043b\u0443 (Tugberk Ugurlu), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0437\u044f\u043b\u0441\u044f \u0432 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043e\u0431\u044a\u0435\u043c\u0435 \u0438\u0437\u043b\u043e\u0436\u0438\u0442\u044c \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0441\u043e\u0444\u0442\u0432\u0435\u0440\u043d\u044b\u0445.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/programmnaya-arhitektura-i-proektirovanie-sistem-obshhaya-kartina-i-putevoditel-po-resursam\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:12:07+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:12:07+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Softwarearchitektur und Systemdesign: Gesamtbild und Ressourcenf\u00fchrer | ProHoster","description":"Hallo, Kollegen. Heute m\u00f6chten wir Ihnen die \u00dcbersetzung eines Artikels von Tugberk Ugurlu (Tugberk Ugurlu) pr\u00e4sentieren, der sich in vergleichsweise geringem Umfang mit den Prinzipien des modernen Software-Designs besch\u00e4ftigt.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/programmnaya-arhitektura-i-proektirovanie-sistem-obshhaya-kartina-i-putevoditel-po-resursam","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u0430\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0438\u0441\u0442\u0435\u043c: \u043e\u0431\u0449\u0430\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u0430 \u0438 \u043f\u0443\u0442\u0435\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u043f\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c | ProHoster","og:description":"\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435, \u043a\u043e\u043b\u043b\u0435\u0433\u0438. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043d\u0430 \u0432\u0430\u0448 \u0441\u0443\u0434 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u0422\u0443\u0433\u0431\u0435\u0440\u043a\u0430 \u0423\u0433\u0443\u0440\u043b\u0443 (Tugberk Ugurlu), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0437\u044f\u043b\u0441\u044f \u0432 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043e\u0431\u044a\u0435\u043c\u0435 \u0438\u0437\u043b\u043e\u0436\u0438\u0442\u044c \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0441\u043e\u0444\u0442\u0432\u0435\u0440\u043d\u044b\u0445.","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/programmnaya-arhitektura-i-proektirovanie-sistem-obshhaya-kartina-i-putevoditel-po-resursam","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:12:07+00:00","article:modified_time":"2019-10-31T19:12:07+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"36518","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-22 03:40:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:43:33","updated":"2026-01-22 03:40:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/36518","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=36518"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/36518\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/27331"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=36518"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=36518"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=36518"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}