{"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":"Softwarearchitektur und Systemdesign: Ein \u00dcberblick und ein Ressourcen-Guide","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Hallo Kollegen.<\/p>\n<p>Heute pr\u00e4sentieren wir Ihnen die \u00dcbersetzung eines Artikels von Tugberk Ugurlu, der in \u00fcberschaubarem Umfang die Prinzipien des Designs moderner Softwaresysteme darstellt. Folgendes teilt der Autor \u00fcber sich selbst mit:<\/p>\n<p><img decoding=\"async\" alt=\"Softwarearchitektur und Systemdesign: Ein \u00dcberblick und ein Ressourcen-Guide\" src=\"\/wp-content\/uploads\/2019\/07\/30de77ffad15171ce493ce5003c99360.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nDa es unm\u00f6glich ist, ein so umfangreiches Thema wie Architektur- und Entwurfsmuster im Rahmen eines kurzen Artikels zu erfassen, empfehlen wir nicht nur den Text von Herrn Ugurlu, sondern auch die zahlreichen Links, die er darin bereitwillig platziert hat. Wenn es Ihnen gef\u00e4llt, ver\u00f6ffentlichen wir gern auch einen spezielleren Text \u00fcber das Design vernetzter Systeme.<\/p>\n<p><img decoding=\"async\" alt=\"Softwarearchitektur und Systemdesign: Ein \u00dcberblick und ein Ressourcen-Guide\" 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 Unsplash<\/i><\/p>\n<p>Wenn Sie sich noch nie mit Herausforderungen wie der Entwicklung eines Software-Systems von Grund auf besch\u00e4ftigt haben, kann es zu Beginn dieser Arbeit manchmal unklar sein, wo Sie anfangen sollen. Ich denke, es ist wichtig, zun\u00e4chst die Grenzen abzustecken, um eine klare Vorstellung davon zu bekommen, was genau Sie entwerfen m\u00f6chten. Danach sollten Sie die \u00c4rmel hochkrempeln und loslegen, ohne diese Grenzen zu \u00fcberschreiten. Ein guter Ausgangspunkt k\u00f6nnte ein Produkt oder eine Dienstleistung sein (idealerweise eines, das Ihnen sehr gut gef\u00e4llt), um dessen Implementierung zu analysieren. Sie k\u00f6nnten \u00fcberrascht sein, wie einfach dieses Produkt aussieht und welche komplexen Herausforderungen tats\u00e4chlich dahinterstecken. Vergessen Sie nicht: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=k9Zbuuo51go\">einfach ist oft 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, ist: Treffen Sie keine Annahmen! Von Anfang an sollten die bekannten Fakten \u00fcber dieses System und die damit verbundenen Erwartungen konkretisiert werden. Hier sind einige gute Fragen, deren Antworten Ihnen helfen k\u00f6nnen, mit dem Entwurf zu beginnen:<\/p>\n<ul>\n<li>Was ist das Problem, das wir zu l\u00f6sen versuchen? <\/li>\n<li>Wie viele Benutzer werden voraussichtlich gleichzeitig mit unserem System interagieren?<\/li>\n<li>Welche Schreib- und Lese-Muster werden wir verwenden? <\/li>\n<li>Was sind die erwarteten Ausfallf\u00e4lle und wie beabsichtigen wir, damit umzugehen?<\/li>\n<li>Welche Anforderungen stellen wir an die Konsistenz und Verf\u00fcgbarkeit des Systems? <\/li>\n<li>M\u00fcssen wir bei der Arbeit irgendwelche Anforderungen bzgl. externer Pr\u00fcfungen und Regulierungen ber\u00fccksichtigen?<\/li>\n<li>Welche Arten von vertraulichen Daten planen wir zu speichern?<\/li>\n<\/ul>\n<p>\nDas sind nur einige Fragen, die sowohl mir als auch den Teams, in denen ich im Laufe meiner beruflichen Laufbahn t\u00e4tig war, hilfreich waren. Wenn Sie Antworten auf diese Fragen (und auf andere, die im Kontext Ihrer T\u00e4tigkeit relevant sind) kennen, k\u00f6nnen wir nach und nach in die technischen Details der Aufgabe eintauchen.<\/p>\n<p><b>Wir setzen den Ausgangspunkt<\/b><\/p>\n<p>Was verstehe ich hier unter dem \u201eBasisniveau\u201c? Heutzutage lassen sich die meisten Probleme in der Softwareindustrie mit bereits bestehenden Methoden und Technologien l\u00f6sen. In diesem Kontext haben Sie einen gewissen Vorteil, wenn Sie mit Herausforderungen konfrontiert werden, die andere bereits zuvor gel\u00f6st haben. Vergessen Sie nicht, dass Programme zur L\u00f6sung der Probleme von Unternehmen und Nutzern entwickelt werden. Daher streben wir an, diese Probleme auf die direkteste und einfachste Weise (aus Sicht des Nutzers) zu l\u00f6sen. Warum ist es wichtig, dies im Hinterkopf zu behalten? Vielleicht f\u00fchlen Sie sich in Ihrem Koordinatensystem wohler, wenn Sie f\u00fcr jede Herausforderung eine einzigartige L\u00f6sung finden, weil Sie denken: \u201eWas f\u00fcr ein Programmierer w\u00e4re ich, wenn ich \u00fcberall den Mustern folge?\u201c Tats\u00e4chlich liegt <b>die Kunst hier darin, Entscheidungen dar\u00fcber zu treffen, wo und was zu tun ist.<\/b>. Nat\u00fcrlich steht jeder von uns von Zeit zu Zeit vor einzigartigen Herausforderungen, die jede f\u00fcr sich eine echte Herausforderung darstellen. Wenn wir jedoch ein klares Fundament haben, wissen wir, wo wir unsere Energie investieren sollten: entweder in die Suche nach bestehenden L\u00f6sungen f\u00fcr die vorliegende Aufgabe oder in eine tiefere Analyse und das Verst\u00e4ndnis dieser.<\/p>\n<p>Ich denke, ich konnte Sie \u00fcberzeugen, dass es f\u00fcr einen Spezialisten, der die architektonischen Bestandteile einiger bemerkenswerter Softwaresysteme umfassend versteht, von unsch\u00e4tzbarem Wert ist, um die Kunst des Architekten zu meistern und ein solides Fundament in diesem Bereich aufzubauen.<\/p>\n<p>Gut, wo fangen wir an? Bei <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\">Donna Martin<\/a><\/noindex> finden Sie ein Repository auf GitHub mit dem Namen <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\">system-design-primer<\/a><\/noindex>, das Ihnen hilft, das Design von gro\u00df angelegten Systemen zu erlernen und sich auf Vorstellungsgespr\u00e4che zu diesem Thema vorzubereiten. Im Repository gibt es einen Abschnitt mit Beispielen f\u00fcr <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/tree\/1144b8ef4c441af73f7cbfd51f56b8eb62350a66#real-world-architectures\">echte Architekturen<\/a><\/noindex>, in dem unter anderem erforscht wird, wie einige namhafte Unternehmen <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/tree\/1144b8ef4c441af73f7cbfd51f56b8eb62350a66#company-architectures\">, wie beispielsweise Twitter, Uber usw., an das Design ihrer Systeme herangehen.<\/a><\/noindex>, zum Beispiel, Twitter, Uber usw.<\/p>\n<p>Bevor wir uns diesem Thema zuwenden, lassen Sie uns die wichtigsten architektonischen Herausforderungen, mit denen wir in der Praxis konfrontiert werden, n\u00e4her betrachten. Dies ist entscheidend, da eine Vielzahl von Aspekten des komplexen Problems konkretisiert und dann im Rahmen der bestehenden Vorschriften dieser Systeme gel\u00f6st werden 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 Interviews zur Systemgestaltung<\/a><\/noindex>, in dem er seine Erfahrungen beim Screening von Hunderten von Bewerbern teilt. Obwohl das Video eindeutig die Gestaltung gro\u00dfer Systeme und die erfolgreichen Kriterien, die bei der Auswahl von Kandidaten f\u00fcr solche Positionen wichtig sind, behandelt, stellt es dennoch eine umfassende Ressource dar\u00fcber dar, was beim Design von Systemen am wichtigsten ist. 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>Vertiefen Sie Ihr Wissen \u00fcber Datenspeicherung und -abruf.<\/b> <\/p>\n<p>In der Regel hat Ihre Entscheidung, wie Sie Ihre Daten langfristig speichern und abrufen, einen entscheidenden Einfluss auf die Systemleistung. Daher sollten Sie zun\u00e4chst die erwarteten Eigenschaften von Schreib- und Lesevorg\u00e4ngen in Ihrem System verstehen. Anschlie\u00dfend m\u00fcssen Sie in der Lage sein, diese Kennzahlen zu bewerten und Ihre Auswahl basierend auf diesen Bewertungen zu treffen. Doch nur wenn Sie mit den bestehenden Datenspeicherungsmustern vertraut sind, k\u00f6nnen Sie diese Aufgabe effektiv bew\u00e4ltigen. Grunds\u00e4tzlich erfordert dies fundierte Kenntnisse \u00fcber <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 durch au\u00dfergew\u00f6hnliche Skalierbarkeit und Langlebigkeit gekennzeichnet sind. Daher sollten Ihnen Kenntnisse \u00fcber Datenstrukturen 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> \u2013 ein Server f\u00fcr Datenstrukturen, der verschiedene Arten von Werten unterst\u00fctzt. Er erm\u00f6glicht die Arbeit mit Datenstrukturen wie Listen und Mengen und das Abrufen von Daten mithilfe g\u00e4ngiger Algorithmen, wie etwa <noindex><a rel=\"nofollow\" href=\"https:\/\/redis.io\/topics\/lru-cache\">LRU<\/a><\/noindex>, und organisiert diese Vorg\u00e4nge auf eine langlebige und hochverf\u00fcgbare Weise. <\/p>\n<p><img decoding=\"async\" alt=\"Softwarearchitektur und Systemdesign: Ein \u00dcberblick und ein Ressourcen-Guide\" 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 Unsplash<\/i><\/p>\n<p>Sobald Sie sich mit verschiedenen Datenstorage-Mustern vertraut gemacht haben, sollten Sie sich mit der Konsistenz und Verf\u00fcgbarkeit von Daten besch\u00e4ftigen. Zun\u00e4chst m\u00fcssen Sie die <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#cap-theorem\">CAP-Theoreme<\/a><\/noindex> mindestens in groben Z\u00fcgen verstehen, und dann sollten Sie dieses Wissen verfeinern, indem Sie sich n\u00e4her mit etablierten Mustern der <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#consistency-patterns\">Konsistenz<\/a><\/noindex> \u0438 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#availability-patterns\">Verf\u00fcgbarkeit<\/a><\/noindex>. Auf diese Weise erweitern Sie Ihren Horizont in diesem Bereich und erkennen, dass das Lesen und Schreiben von Daten in Wirklichkeit zwei sehr unterschiedliche Probleme darstellen, die jeweils ihre eigenen spezifischen Herausforderungen mit sich bringen. Mit ein paar Mustern zur Sicherstellung von Konsistenz und Verf\u00fcgbarkeit k\u00f6nnen Sie die Systemleistung erheblich steigern und gleichzeitig eine unterbrechungsfreie Datenbereitstellung in Ihren Anwendungen garantieren.<\/p>\n<p>Abschlie\u00dfend m\u00f6chte ich im Zusammenhang mit Speicherfragen auch das Caching ansprechen. Sollte es sowohl auf dem Client als auch auf dem Server stattfinden? Welche Daten werden in Ihrem Cache gespeichert? Und warum? Wie organisieren Sie die Cache-Invalidierung? Erfolgt dies regelm\u00e4\u00dfig in bestimmten Zeitabst\u00e4nden? Wenn ja, wie oft? Ich empfehle, mit diesen Themen zu beginnen bei <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#cache\">dem n\u00e4chsten Abschnitt<\/a><\/noindex> dem oben erw\u00e4hnten Lehrbuch zur Systemgestaltung. <\/p>\n<p><b>Kommunikationsmuster<\/b><\/p>\n<p>Systeme bestehen aus verschiedenen Komponenten; dies k\u00f6nnen sowohl unterschiedliche Prozesse sein, die innerhalb desselben physischen Knotens arbeiten, als auch verschiedene Maschinen, die in unterschiedlichen Teilen Ihres Netzwerks agieren. Einige dieser Ressourcen innerhalb Ihres Netzwerks k\u00f6nnen privat sein, w\u00e4hrend andere \u00f6ffentlich und f\u00fcr externe Nutzer zug\u00e4nglich sein m\u00fcssen.<\/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 des Systemdesigns begegnen wir hier erneut einer Reihe neuartiger Herausforderungen. Lassen Sie uns untersuchen, wie <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#asynchronism\">asynchrone Aufgabenschleifen<\/a><\/noindex>, und welche v<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#communication\">erschiedene Kommunikationsmuster vorhanden sind<\/a><\/noindex>. <\/p>\n<p><img decoding=\"async\" alt=\"Softwarearchitektur und Systemdesign: Ein \u00dcberblick und ein Ressourcen-Guide\" 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 Unsplash<\/i><\/p>\n<p>Bei der Organisation der Kommunikation mit der Au\u00dfenwelt ist es immer von gro\u00dfer Bedeutung <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#security\">\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c<\/a><\/noindex>, wof\u00fcr man ebenfalls mit aller Ernsthaftigkeit an die Sache herangehen und aktiv daran arbeiten muss. <\/p>\n<p><b>Verbindungverteilung<\/b><\/p>\n<p>Ich bin mir nicht sicher, ob es gerechtfertigt ist, dieses Thema in ein eigenes Kapitel auszulagern. Trotzdem werde ich dieses Konzept hier ausf\u00fchrlich darlegen, wobei ich der Auffassung bin, dass der Inhalt dieses Abschnitts am treffendsten mit dem Begriff \u201eVerbindungverteilung\u201c (connection distribution) beschrieben wird.<\/p>\n<p>Systeme werden durch die richtige Kombination vieler Komponenten gebildet, und ihre Kommunikation basiert oft auf etablierten Protokollen wie TCP und UDP. Diese Protokolle allein reichen jedoch h\u00e4ufig nicht aus, um alle Anforderungen moderner Systeme zu erf\u00fcllen, die oft unter hoher Last betrieben werden und stark von den Benutzeranforderungen abh\u00e4ngen. Es ist h\u00e4ufig notwendig, Methoden zur Lastenverteilung zu finden, um mit solch hohen Systemlasten umzugehen.<\/p>\n<p>Die Grundlage dieser Verteilung bildet ein gut bekanntes <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/DNS\">Domain-Name-System<\/a><\/noindex> (DNS). Dieses System erm\u00f6glicht die Umwandlung von Domainnamen, beispielsweise durch gewichtete Rundlaufalgorithmen (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 grundlegend, und praktisch jedes gr\u00f6\u00dfere System im Internet, mit dem wir heute konfrontiert sind, befindet sich hinter einem oder mehreren Load-Balancern. Load-Balancer helfen dabei, Kundenanfragen auf mehrere verf\u00fcgbare Instanzen zu verteilen. Es gibt sowohl hardware- als auch softwarebasierte Load-Balancer; in der Praxis hat man jedoch h\u00e4ufiger mit softwarebasierten zu tun, beispielsweise mit <noindex><a rel=\"nofollow\" href=\"http:\/\/www.haproxy.org\/\">HAProxy<\/a><\/noindex> \u0438 <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 Proxys<\/a><\/noindex> sind konzeptionell ebenfalls sehr \u00e4hnlich wie Load-Balancer, wobei es zwischen den 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>. Diese Unterschiede m\u00fcssen unbedingt ber\u00fccksichtigt werden, wenn Sie ein System entwerfen, das auf Ihre Bed\u00fcrfnisse zugeschnitten ist.<\/p>\n<p>Es ist auch wichtig, \u00fcber <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Content_Delivery_Network\">Content Delivery Networks<\/a><\/noindex> (CDN). CDN \u2013 ein global verteiltes Netzwerk von Proxy-Servern, das Informationen von Knoten liefert, die geographisch n\u00e4her am jeweiligen Benutzer liegen. CDN-Netzwerke sind besonders vorteilhaft, wenn Sie mit statischen Dateien arbeiten, die in JavaScript, CSS und HTML verfasst sind. Au\u00dferdem sind heute cloudbasierte Dienste 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>, welche Ihnen eine globale Verteilung und reduzierte Latenzen beim Umgang mit dynamischen Inhalten bieten. Solche Dienste sind jedoch meist dann n\u00fctzlich, wenn man mit zustandslosen Webdiensten arbeitet. <\/p>\n<p><b>Lassen Sie uns \u00fcber Gesch\u00e4ftslogik sprechen. Die Strukturierung von Gesch\u00e4ftslogik, Aufgabenstr\u00f6men und Komponenten<\/b><\/p>\n<p>Wir haben also verschiedene infrastrukturelle Aspekte des Systems besprochen. Wahrscheinlich denkt der Nutzer nicht \u00fcber all diese Elemente Ihres Systems nach und ehrlich gesagt, k\u00fcmmert er sich \u00fcberhaupt nicht darum. Was den Nutzer interessiert, ist, wie die Interaktion mit Ihrem System erfolgt, welche Ergebnisse durch bestimmte Handlungen erzielt werden k\u00f6nnen und wie das System Benutzerbefehle ausf\u00fchrt und mit Benutzerdaten umgeht.<\/p>\n<p>Wie aus dem Titel dieses Artikels hervorgeht, wollte ich \u00fcber Softwarearchitektur und Systemdesign sprechen. Ich hatte daher nicht geplant, Designmuster zu behandeln, die beschreiben, wie Softwarekomponenten erstellt werden. Allerdings wird mir beim Nachdenken immer klarer, dass die Grenze zwischen Softwaredesignmustern und Architekturmustern sehr verschwommen ist und dass diese beiden Konzepte eng miteinander verbunden sind. Nehmen wir zum Beispiel <noindex><a rel=\"nofollow\" href=\"https:\/\/martinfowler.com\/eaaDev\/EventSourcing.html\">Ereignisprotokollierung<\/a><\/noindex> (Event Sourcing). Wenn Sie dieses Architektur-Muster \u00fcbernehmen, wird es nahezu alle Aspekte Ihres Systems beeinflussen: die dauerhafte Speicherung von Daten, den Konsistenzgrad, der in Ihrem System herrscht, die Struktur der Komponenten darin usw. Daher m\u00f6chte ich einige Architektur-Muster erw\u00e4hnen, die speziell die Gesch\u00e4ftslogik betreffen. Auch wenn ich in diesem Artikel mit einer einfachen Liste auskommen muss, empfehle ich Ihnen, sich damit vertraut zu machen und \u00fcber die damit verbundenen Ideen nachzudenken. Hier sind 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 Verantwortlichkeiten in Befehle und Abfragen (CQRS)<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/martinfowler.com\/eaaDev\/EventSourcing.html\">Ereignisprotokollierung<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/doc.akka.io\/docs\/akka\/2.5\/guide\/actors-intro.html\">Aktorenmodell<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/215605\/\">Entwurfsmuster 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 der einzige Teilnehmer sind, der f\u00fcr den Designprozess des Systems verantwortlich ist. Vielmehr werden Sie wahrscheinlich mit Kollegen zusammenarbeiten m\u00fcssen, die sowohl in Bezug auf Ihre Aufgaben als auch dar\u00fcber hinaus t\u00e4tig sind. In diesem Fall kann es erforderlich sein, die gew\u00e4hlten technologischen L\u00f6sungen gemeinsam mit den Kollegen zu bewerten, die gesch\u00e4ftlichen Anforderungen herauszufiltern und zu verstehen, wie Aufgaben am besten parallelisiert werden k\u00f6nnen.<\/p>\n<p><img decoding=\"async\" alt=\"Softwarearchitektur und Systemdesign: Ein \u00dcberblick und ein Ressourcen-Guide\" 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 Unsplash<\/i><\/p>\n<p>Zun\u00e4chst m\u00fcssen Sie ein pr\u00e4zises und allgemein anerkanntes Verst\u00e4ndnis dar\u00fcber entwickeln, was das Gesch\u00e4ftsziel ist, das Sie zu erreichen versuchen, und mit welchen Variablen Sie dabei umgehen m\u00fcssen. Methoden des Gruppensimulierens wie insbesondere <noindex><a rel=\"nofollow\" href=\"https:\/\/techbeacon.com\/devops\/introduction-event-storming-easy-way-achieve-domain-driven-design\">Event Storming<\/a><\/noindex> k\u00f6nnen diesen Prozess erheblich beschleunigen und Ihre Erfolgschancen erh\u00f6hen. Diese Arbeit kann durchgef\u00fchrt werden, bevor oder nachdem Sie die <noindex><a rel=\"nofollow\" href=\"https:\/\/www.infoq.com\/news\/2015\/02\/service-boundaries-healthcare\/\">Grenzen Ihrer Services<\/a><\/noindex>, festgelegt haben, und dann vertiefen, w\u00e4hrend das Produkt reift. Basierend auf dem Ma\u00df an Konsistenz, das 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, in dem Sie arbeiten. Wenn es darum geht, die Architektur Ihres Systems zu erl\u00e4utern, kann es hilfreich sein, <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>, insbesondere wenn es darum geht, zu verstehen, wie tief Sie in die Details des Problems eindringen m\u00fcssen, indem Sie die Dinge 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 kehren wir immer wieder zum Verst\u00e4ndnis der Dom\u00e4ne zur\u00fcck, sodass Kenntnisse und Erfahrungen 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> f\u00fcr Sie 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.0.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 \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\" \/>\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.0.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 \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\" \/>\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: \u00dcberblick und Ressourcenleitfaden | ProHoster","description":"Hallo, Kollegen. Heute pr\u00e4sentieren wir Ihnen die \u00dcbersetzung eines Artikels von Tugberk Ugurlu, der sich bem\u00fcht hat, in vergleichsweise kleinem Umfang die Prinzipien des Designs moderner Softwaresysteme zu erl\u00e4utern. Hier ist, was der Autor \u00fcber sich selbst in aller K\u00fcrze mitteilt: Da es schlichtweg unm\u00f6glich ist, in einem Hub-Rest eine so enorme Thematik wie Architektur- und Designmuster im Jahr 2019 abzudecken, empfehlen wir","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 \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","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}]}}