{"id":35006,"date":"2019-10-31T22:01:47","date_gmt":"2019-10-31T19:01:47","guid":{"rendered":"https:\/\/prohoster.info\/blog\/5-printsipov-zdravogo-smysla-dlya-sozdaniya-cloud-native-apps\/"},"modified":"2019-10-31T22:01:47","modified_gmt":"2019-10-31T19:01:47","slug":"5-printsipov-zdravogo-smysla-dlya-sozdaniya-cloud-native-apps","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/novosti-interneta\/5-printsipov-zdravogo-smysla-dlya-sozdaniya-cloud-native-apps","title":{"rendered":"5 Grunds\u00e4tze des gesunden Menschenverstands zur Erstellung cloud-nativer Apps","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>\u201eCloud-native\u201c Anwendungen werden speziell f\u00fcr den Betrieb in Cloud-Infrastrukturen entwickelt. Sie bestehen in der Regel aus einer Sammlung von lose gekoppelten Mikrodiensten, die in Containern verpackt sind, und diese Container werden von der Cloud-Plattform verwaltet. Solche Anwendungen sind standardm\u00e4\u00dfig fehlertolerant und funktionieren zuverl\u00e4ssig sowie skalierbar, selbst bei schwerwiegenden Infrastrukturausf\u00e4llen. Auf der anderen Seite gibt es eine Reihe von Einschr\u00e4nkungen (Vertr\u00e4gen), die die Cloud-Plattform den Containeranwendungen auferlegt, um eine automatische Verwaltung zu erm\u00f6glichen.<\/p>\n<p><img decoding=\"async\" alt=\"5 Grunds\u00e4tze des gesunden Menschenverstands zur Erstellung cloud-nativer Apps\" src=\"\/wp-content\/uploads\/2019\/06\/1f4af6f356ed36d3fbd8adef333501fa.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nObwohl viele Organisationen die Notwendigkeit und Wichtigkeit des Wechsels zu Cloud-Anwendungen erkennen, wissen sie oft nicht, wo sie anfangen sollen. In diesem Beitrag betrachten wir eine Reihe von Prinzipien, deren Einhaltung bei der Entwicklung von Containeranwendungen es erm\u00f6glicht, das Potenzial von Cloud-Plattformen auszusch\u00f6pfen und eine zuverl\u00e4ssige Leistung sowie Skalierbarkeit der Anwendungen selbst bei schwerwiegenden Ausf\u00e4llen der IT-Infrastruktur zu gew\u00e4hrleisten. Das \u00fcbergeordnete Ziel der hier dargestellten Prinzipien ist es, zu lernen, wie man Anwendungen erstellt, die automatisch von Cloud-Plattformen wie Kubernetes verwaltet werden k\u00f6nnen.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Entwurfsprinzipien f\u00fcr Software<\/h3>\n<p>\nIm Bereich der Programmierung beziehen sich Prinzipien auf allgemeine Regeln, die bei der Softwareentwicklung eingehalten werden m\u00fcssen. Sie k\u00f6nnen auf jede Programmiersprache angewendet werden. Jedes Prinzip hat seine eigenen Ziele, die meist durch Muster und Praktiken erreicht werden. Es gibt auch eine Reihe grundlegender Prinzipien zur Erstellung qualitativ hochwertiger Software, aus denen alle anderen abgeleitet sind. Hier sind einige Beispiele f\u00fcr grundlegende Prinzipien:<\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/KISS_(%D0%BF%D1%80%D0%B8%D0%BD%D1%86%D0%B8%D0%BF)\">KISS<\/a><\/noindex> (Keep it simple, stupid) \u2013 \u00dcberkomplizierung vermeiden;<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Don%E2%80%99t_repeat_yourself\">DRY<\/a><\/noindex> (Don\u2019t repeat yourself) \u2013 Wiederholen Sie sich nicht;<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/YAGNI\">YAGNI<\/a><\/noindex> (You aren\u2019t gonna need it) \u2013 Erstellen Sie nichts, was nicht unmittelbar ben\u00f6tigt wird;<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A0%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8\">SoC<\/a><\/noindex> (Separation of concerns) \u2013 Trennen Sie Verantwortlichkeiten.<\/li>\n<\/ul>\n<p>\nWie zu sehen ist, legen diese Prinzipien keine spezifischen Regeln fest, sondern geh\u00f6ren zur Kategorie der sogenannten gesund verstandenen \u00dcberlegungen, die auf praktischen Erfahrungen basieren, und auf die viele Entwickler regelm\u00e4\u00dfig verweisen.<br \/>\nDar\u00fcber hinaus gibt es <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<\/a><\/noindex> \u2013 eine Sammlung der ersten f\u00fcnf Prinzipien der objektorientierten Programmierung und des Designs, formuliert von Robert C. Martin. SOLID umfasst generalisierte und interpretationsf\u00e4hige, sich erg\u00e4nzende Prinzipien, die \u2013 wenn sie gemeinsam angewendet werden \u2013 helfen, qualitativ hochwertige Softwaresysteme zu erstellen und deren langfristige Wartung zu verbessern.<\/p>\n<p>Die SOLID-Prinzipien beziehen sich auf das Gebiet der objektorientierten Programmierung (OOP) und werden in Begriffen wie Klassen, Schnittstellen und Vererbung formuliert. Analog l\u00e4sst sich auch f\u00fcr Cloud-Anwendungen eine Entwicklungsprinzipien aufstellen, wobei hier nicht die Klasse, sondern der Container das grundlegende Element ist. Durch die Einhaltung dieser Prinzipien k\u00f6nnen containerbasierte Anwendungen erstellt werden, die den Zielen und Anforderungen von Cloud-Plattformen wie Kubernetes besser gerecht werden.<\/p>\n<h3>Containerorientierte Clouds: Ansatz von Red Hat<\/h3>\n<p>\nHeute k\u00f6nnen nahezu alle Anwendungen relativ einfach in Container verpackt werden. Um jedoch sicherzustellen, dass diese Anwendungen in einer Cloud-Plattform wie Kubernetes effizient automatisiert und orchestriert werden, sind zus\u00e4tzliche Anstrengungen erforderlich.<br \/>\nDie Grundlage der nachfolgenden Ideen bildet die Methodologie <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)\">Die Twelve-Factor App<\/a><\/noindex> und viele andere Arbeiten zu verschiedenen Aspekten der Entwicklung von Webanwendungen, von der Verwaltung des Quellcodes bis hin zu Skalierungsmodellen. Die beschriebenen Prinzipien beziehen sich ausschlie\u00dflich auf die Entwicklung von containerisierten Anwendungen, die auf Microservices basieren und f\u00fcr Cloud-Plattformen wie Kubernetes vorgesehen sind. Die grundlegende Einheit in unseren \u00dcberlegungen ist das Container-Image, w\u00e4hrend die Zielumgebung f\u00fcr die Ausf\u00fchrung von Containern die Plattform zur Orchestrierung von Containern bezeichnet. Das Ziel der vorgeschlagenen Prinzipien besteht darin, Container zu erstellen, f\u00fcr die auf den meisten Orchestrierungsplattformen die Aufgaben der Bereitstellung (Scheduling \u2013 Auswahl des Hosts f\u00fcr die Ausf\u00fchrung einer Containerinstanz), Skalierung und \u00dcberwachung automatisiert werden k\u00f6nnen. Die Prinzipien werden in willk\u00fcrlicher Reihenfolge erl\u00e4utert.<\/p>\n<h3>Prinzip der einzelnen Aufgabe (Single Concern Principle, SCP)<\/h3>\n<p>\nDieses Prinzip \u00e4hnelt stark dem Prinzip der einzelnen Verantwortung (Single Responsibility Principle, <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9F%D1%80%D0%B8%D0%BD%D1%86%D0%B8%D0%BF_%D0%B5%D0%B4%D0%B8%D0%BD%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%B9_%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8\">SRP<\/a><\/noindex>), der Teil der SOLID-Prinzipien ist und besagt, dass jedes Objekt eine einzige Verantwortung haben sollte, die vollst\u00e4ndig in der Klasse gekapselt sein muss. Der Kern des SRP ist, dass jede Verantwortung einen Grund f\u00fcr Ver\u00e4nderungen darstellt, und die Klasse sollte nur einen einzigen Grund f\u00fcr \u00c4nderungen haben.<\/p>\n<p>Im SCP verwenden wir anstelle des Begriffs \u201eVerantwortung\u201c (responsibility) das Wort \u201eAufgabe\u201c (concern), um auf ein h\u00f6heres Abstraktionsniveau und einen breiteren Zweck des Containers im Vergleich zu einer OOP-Klasse hinzuweisen. Wenn das Ziel des SRP darin besteht, nur einen Grund f\u00fcr Ver\u00e4nderungen zu haben, so steht hinter dem SCP das Bestreben, die Wiederverwendbarkeit und Ersetzbarkeit von Containern zu erweitern. Indem Sie dem SRP folgen und einen Container erstellen, der eine einzige Aufgabe auf funktional abgeschlossene Weise l\u00f6st, erh\u00f6hen Sie die Chancen, dass dieses Container-Image in verschiedenen Anwendungskontexten wiederverwendet wird.<\/p>\n<p>Das SCP-Prinzip besagt, dass jeder Container eine einzige Aufgabe erf\u00fcllen und dies gut tun sollte. Dabei wird SCP in der Welt der Container einfacher erreicht als das SRP in der Welt der objektorientierten Programmierung, da Container in der Regel einen einzigen Prozess ausf\u00fchren, der die meiste Zeit eine einzige Aufgabe l\u00f6st.<\/p>\n<p>Wenn ein containerbasierter Mikrodienst mehrere Aufgaben erf\u00fcllen muss, kann er in einzelne, auf eine Aufgabe fokussierte Container aufgeteilt und innerhalb eines Pods (Einheit der Containerbereitstellungsplattform) mithilfe von Sidecar- und Init-Container-Templates zusammengelegt werden. Dar\u00fcber hinaus erleichtert SCP den Austausch eines alten Containers (zum Beispiel eines Webservers oder eines Message Brokers) durch einen neuen, der dieselbe Aufgabe erf\u00fcllt, aber erweiterte Funktionen bietet oder besser skalierbar ist.<\/p>\n<p><img decoding=\"async\" alt=\"5 Grunds\u00e4tze des gesunden Menschenverstands zur Erstellung cloud-nativer Apps\" src=\"\/wp-content\/uploads\/2019\/06\/a029e1ca36ace66550c94087e4aecc8e.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>Das Prinzip der hohen Beobachtbarkeit (High Observability Principle, HOP)<\/h3>\n<p>\nBei der Verwendung von Containern als einheitliche Methode zum Verpacken und Starten von Anwendungen werden die Anwendungen selbst als \"Schwarze Box\" betrachtet. Bei Cloud-Containern m\u00fcssen jedoch spezielle APIs bereitgestellt werden, um die Integrit\u00e4t der Container zu \u00fcberwachen und gegebenenfalls angemessene Ma\u00dfnahmen zu ergreifen. Ohne dies ist es nicht m\u00f6glich, die Automatisierung von Container-Updates und deren Lebenszyklus zu standardisieren, was wiederum die Stabilit\u00e4t und Benutzerfreundlichkeit des Softwaresystems beeintr\u00e4chtigt.<\/p>\n<p><img decoding=\"async\" alt=\"5 Grunds\u00e4tze des gesunden Menschenverstands zur Erstellung cloud-nativer Apps\" src=\"\/wp-content\/uploads\/2019\/06\/7df1320108d9b635c10c6cf41d5dfef6.jpg\" style=\"display:block;margin: 0 auto;\" \/> <br \/>\nIn der Praxis sollte eine containerisierte Anwendung mindestens eine API f\u00fcr verschiedene Arten von Gesundheitspr\u00fcfungen bereitstellen: Aktivit\u00e4tspr\u00fcfungen (liveness) und Bereitschaftspr\u00fcfungen (readiness). Wenn die Anwendung mehr beansprucht, sollte sie auch andere Mittel zur \u00dcberwachung ihres Zustands bieten. Zum Beispiel die Protokollierung wichtiger Ereignisse \u00fcber STDERR und STDOUT zur Aggregation von Logs mit Hilfe von Fluentd, Logstash und \u00e4hnlichen Tools. Au\u00dferdem sollte eine Integration mit Bibliotheken f\u00fcr das Tracing und das Sammeln von Metriken erfolgen, wie OpenTracing, Prometheus usw.<\/p>\n<p>Im Grunde kann die Anwendung weiterhin als \u201eBlack Box\u201c betrachtet werden, allerdings muss sie mit allen APIs ausgestattet werden, die die Plattform ben\u00f6tigt, um sie optimal zu \u00fcberwachen und zu verwalten.<\/p>\n<h3>Prinzip der Anpassung an den Lebenszyklus (Life-cycle Conformance Principle, LCP)<\/h3>\n<p>\nLCP ist das Gegenst\u00fcck zu HOP. W\u00e4hrend HOP besagt, dass ein Container der Plattform APIs zur Verf\u00fcgung stellen muss, um Informationen abzurufen, verlangt LCP von der Anwendung die F\u00e4higkeit, Informationen von der Plattform zu empfangen. Der Container muss nicht nur Ereignisse empfangen, sondern sich auch anpassen, das hei\u00dft, darauf reagieren. Daher der Name des Prinzips, das als Anforderung verstanden werden kann, der Plattform APIs zum Schreiben bereitzustellen.<\/p>\n<p><img decoding=\"async\" alt=\"5 Grunds\u00e4tze des gesunden Menschenverstands zur Erstellung cloud-nativer Apps\" src=\"\/wp-content\/uploads\/2019\/06\/f32f5d133597ae3905206badc6677f92.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nDie Plattform verf\u00fcgt \u00fcber verschiedene Arten von Ereignissen, die helfen, den Lebenszyklus des Containers zu steuern. Es sollte jedoch die Anwendung selbst entscheiden, welche davon wahrgenommen werden und wie darauf reagiert werden soll.<\/p>\n<p>Es ist klar, dass einige Ereignisse bedeutender sind als andere. Wenn eine Anwendung beispielsweise schlecht mit einem unvorhergesehenen Herunterfahren umgeht, muss sie Signale wie signal: terminate (SIGTERM) empfangen und so schnell wie m\u00f6glich ihren Beendigungsprozess einleiten, um rechtzeitig vor dem Empfang von signal: kill (SIGKILL) zu reagieren, das auf SIGTERM folgt.<\/p>\n<p>Dar\u00fcber hinaus k\u00f6nnen Ereignisse wie PostStart und PreStop f\u00fcr den Lebenszyklus einer Anwendung von Bedeutung sein. Beispielsweise ben\u00f6tigt die Anwendung nach dem Start m\u00f6glicherweise eine gewisse Zeit zum 'Aufw\u00e4rmen', bevor sie auf Anfragen reagieren kann. Oder die Anwendung muss beim Herunterfahren auf spezielle Weise Ressourcen freigeben.<\/p>\n<h3>Prinzip der Unver\u00e4nderlichkeit des Container-Images (Image Immutability Principle, IIP)<\/h3>\n<p>\nEs ist allgemein anerkannt, dass Containeranwendungen nach dem Build unver\u00e4ndert bleiben sollten, auch wenn sie in unterschiedlichen Umgebungen ausgef\u00fchrt werden. Daraus ergibt sich die Notwendigkeit, die Datenspeicherung zur Laufzeit zu externalisieren (mit anderen Worten, externe Mittel daf\u00fcr zu nutzen) und auf externe, umgebungsspezifische Konfigurationen zur\u00fcckzugreifen, anstatt einzigartige Container f\u00fcr jede Umgebung zu modifizieren oder zu erstellen. Nach \u00c4nderungen an der Anwendung muss das Container-Image neu gebaut und in allen verwendeten Umgebungen bereitgestellt werden. \u00dcbrigens wird bei der Verwaltung von IT-Systemen ein \u00e4hnliches Prinzip angewendet, das als Prinzip der Unver\u00e4nderlichkeit von Servern und Infrastruktur bekannt ist. <\/p>\n<p>Das Ziel von IIP besteht darin, die Erstellung separater Container-Images f\u00fcr verschiedene Laufzeitumgebungen zu verhindern und \u00fcberall dasselbe Image zusammen mit der entsprechenden Konfiguration f\u00fcr die spezifische Umgebung zu verwenden. Diesem Prinzip zu folgen, erm\u00f6glicht die Umsetzung wichtiger Praktiken zur Automatisierung von Cloud-Systemen, wie z.B. das Rollback und das Rollforward von Anwendungsupdates.<\/p>\n<p><img decoding=\"async\" alt=\"5 Grunds\u00e4tze des gesunden Menschenverstands zur Erstellung cloud-nativer Apps\" src=\"\/wp-content\/uploads\/2019\/06\/86b93724830b37f82bf289b797407480.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>Das Prinzip der Prozess-Einf\u00e4ltigkeit (Process Disposability Principle, PDP)<\/h3>\n<p>\nEine der wesentlichsten Eigenschaften eines Containers ist seine Ephemerit\u00e4t: Eine Instanz eines Containers kann leicht erstellt und ebenfalls leicht zerst\u00f6rt werden, sodass sie jederzeit problemlos durch eine andere Instanz ersetzt werden kann. Es gibt viele Gr\u00fcnde f\u00fcr einen solchen Austausch: ein Fehlschlagen des Funktionstests, das Skalieren einer Anwendung, der Umzug auf einen anderen Host, das Ersch\u00f6pfen der Plattformressourcen oder andere Situationen. <\/p>\n<p><img decoding=\"async\" alt=\"5 Grunds\u00e4tze des gesunden Menschenverstands zur Erstellung cloud-nativer Apps\" src=\"\/wp-content\/uploads\/2019\/06\/858287b23c276363313e35cf18b81190.jpg\" style=\"display:block;margin: 0 auto;\" \/> <br \/>\nAls Folge m\u00fcssen containerisierte Anwendungen ihren Zustand durch externe Mittel bewahren oder interne verteilte Schemen mit Redundanz verwenden. Dar\u00fcber hinaus sollte die Anwendung schnell starten und schnell herunterfahren, sowie auf pl\u00f6tzliche fatale Hardwarefehler vorbereitet sein.<\/p>\n<p>Eine der Praktiken, die hilft, dieses Prinzip zu realisieren, besteht darin, Container kleiner Gr\u00f6\u00dfe zu erstellen. Cloud-Umgebungen k\u00f6nnen automatisch einen Host zum Starten einer Containerinstanz ausw\u00e4hlen, daher desto kleiner der Container, desto schneller wird er gestartet \u2013 er wird einfach schneller \u00fcber das Netzwerk auf den Zielhost kopiert.<\/p>\n<h3>Prinzip der Selbstgen\u00fcgsamkeit (Self-containment Principle, S-CP)<\/h3>\n<p>\nNach diesem Prinzip werden beim Zusammenstellen des Containers alle erforderlichen Komponenten integriert. Der Container sollte so gestaltet sein, dass er auf ein reines Linux-Kernel-System ausgelegt ist; daher m\u00fcssen alle erforderlichen zus\u00e4tzlichen Bibliotheken direkt im Container untergebracht werden. Dort sollten auch Dinge wie die Laufzeitumgebung f\u00fcr die entsprechende Programmiersprache, die Anwendungsplattform (sofern erforderlich) sowie andere Abh\u00e4ngigkeiten, die w\u00e4hrend des Betriebs der Containeranwendung ben\u00f6tigt werden, zu finden sein. <\/p>\n<p><img decoding=\"async\" alt=\"5 Grunds\u00e4tze des gesunden Menschenverstands zur Erstellung cloud-nativer Apps\" src=\"\/wp-content\/uploads\/2019\/06\/ecc7425510d63e4914c0c9a7e90b02a6.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Ausnahmen gelten lediglich f\u00fcr Konfigurationen, die von Umgebung zu Umgebung variieren und zur Laufzeit bereitgestellt werden m\u00fcssen, zum Beispiel \u00fcber Kubernetes ConfigMap.<\/p>\n<p>Eine Anwendung kann mehrere containerisierte Komponenten umfassen, wie zum Beispiel einen separaten Datenbank-Container innerhalb einer containerisierten Webanwendung. Gem\u00e4\u00df dem S-CP-Prinzip sollten diese Container nicht zu einem einzigen vereint werden, sondern so strukturiert sein, dass der Datenbank-Container alles Notwendige f\u00fcr den Betrieb der Datenbank enth\u00e4lt, w\u00e4hrend der Webanwendungs-Container alles f\u00fcr den Betrieb der Webanwendung, einschlie\u00dflich des Webservers, bereitstellt. In der Folge wird der Webanwendungs-Container zur Laufzeit vom Datenbank-Container abh\u00e4ngig sein und bei Bedarf auf ihn zugreifen.<\/p>\n<h3>Prinzip der Laufzeit-Einschr\u00e4nkung (Runtime Confinement Principle, RCP)<\/h3>\n<p>\nDas S-CP-Prinzip definiert, wie ein Container aufgebaut sein sollte und was die Bin\u00e4rdatei des Images enthalten muss. Ein Container ist jedoch nicht einfach nur ein \"schwarzer Kasten\", dessen einzige Eigenschaft die Dateigr\u00f6\u00dfe ist. W\u00e4hrend der Ausf\u00fchrung erh\u00e4lt der Container weitere Dimensionen: den verbrauchten Speicher, die CPU-Zeit und andere Systemressourcen.<\/p>\n<p><img decoding=\"async\" alt=\"5 Grunds\u00e4tze des gesunden Menschenverstands zur Erstellung cloud-nativer Apps\" src=\"\/wp-content\/uploads\/2019\/06\/a52e6a656892e57479ac014a3e6f4316.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nHier spielt das RCP-Prinzip eine wichtige Rolle, wonach der Container seine Anforderungen an die Systemressourcen de-couplieren und an die Plattform \u00fcbergeben sollte. Mit den Ressourcenumf\u00e4ngen jedes Containers (wie viel CPU, RAM, Netzwerk und Speicher er ben\u00f6tigt), kann die Plattform das Ressourcenmanagement und das automatische Scaling optimal umsetzen sowie die IT-Kapazit\u00e4ten verwalten und die SLA-Levels f\u00fcr die Container sicherstellen.<\/p>\n<p>Neben der Erf\u00fcllung der Anforderungen an die Containerressourcen ist es auch wichtig, dass die Anwendung die von ihr selbst gesetzten Grenzen nicht \u00fcberschreitet. Andernfalls wird die Plattform im Falle eines Ressourcenengpasses eher geneigt sein, die Anwendung auf die Liste der Programme zu setzen, die unterbrochen oder migriert werden m\u00fcssen.<\/p>\n<p>Wenn wir von Cloud-Orientierung sprechen, meinen wir vor allem die Arbeitsweise. <br \/>\nZuvor haben wir eine Reihe von grundlegenden Prinzipien formuliert, die die methodologische Grundlage f\u00fcr den Aufbau qualitativ hochwertiger Containeranwendungen f\u00fcr Cloud-Umgebungen bilden.<\/p>\n<p>Bitte beachten Sie, dass zus\u00e4tzlich zu diesen allgemeinen Prinzipien auch fortgeschrittene Methoden und Techniken im Umgang mit Containern erforderlich sind. Zudem haben wir einige kurze Empfehlungen, die spezifischer Natur sind und je nach Situation angewendet (oder nicht angewendet) werden sollten:<\/p>\n<ul>\n<li>Versuchen Sie, die Gr\u00f6\u00dfe der Images zu reduzieren: Entfernen Sie tempor\u00e4re Dateien und installieren Sie keine unn\u00f6tigen Pakete \u2013 je kleiner die Gr\u00f6\u00dfe des Containers, desto schneller wird er erstellt und \u00fcber das Netzwerk auf den Ziel-Host kopiert.<\/li>\n<li>Verwenden Sie anonymisierte User-IDs: Nutzen Sie nicht den Befehl sudo oder spezielle User-IDs zum Starten Ihrer Container.<\/li>\n<li>Markieren Sie wichtige Ports: Portnummern k\u00f6nnen auch zur Laufzeit festgelegt werden, aber es ist besser, sie mit dem Befehl EXPOSE anzugeben \u2013 es erleichtert anderen Benutzern und Programmen, Ihre Images zu verwenden. <\/li>\n<li>Speichern Sie dauerhafte Daten in Volumes: Daten, die nach der Zerst\u00f6rung des Containers erhalten bleiben sollen, sollten in Volumes geschrieben werden.<\/li>\n<li>Verwenden Sie Metadaten f\u00fcr das Image: Tags, Labels und Anmerkungen erleichtern die Nutzung von Images \u2013 andere Entwickler werden Ihnen dankbar sein.<\/li>\n<li>Synchronisieren Sie Host und Images: F\u00fcr einige Containeranwendungen ist es erforderlich, dass der Container mit dem Host \u00fcber bestimmte Attribute wie Zeit oder Maschinen-ID synchronisiert wird.<\/li>\n<li>Abschlie\u00dfend teilen wir Vorlagen und bew\u00e4hrte Praktiken, die Ihnen helfen werden, die oben genannten Prinzipien effizienter umzusetzen:<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/www.slideshare.net\/luebken\/container-patterns\">www.slideshare.net\/luebken\/container-patterns<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/engine\/userguide\/eng-image\/dockerfile_best-practices\">docs.docker.com\/engine\/userguide\/eng-image\/dockerfile_best_practices<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"http:\/\/docs.projectatomic.io\/container-best-practices\">docs.projectatomic.io\/container-best-practices<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/docs.openshift.com\/enterprise\/3.0\/creating_images\/guidelines.html\">docs.openshift.com\/enterprise\/3.0\/creating_images\/guidelines.html<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/www.usenix.org\/system\/files\/conference\/hotcloud16\/hotcloud16_burns.pdf\">www.usenix.org\/system\/files\/conference\/hotcloud16\/hotcloud16_burns.pdf<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/leanpub.com\/k8spatterns\/\">leanpub.com\/k8spatterns<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/12factor.net\/\">12factor.net<\/a><\/noindex><\/li>\n<\/ul>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/events.redhat.com\/profile\/form\/index.cfm?intcmp=701f20000012s47AAA&amp;PKFormID=0x5789474c4\"><b>Webinar zur neuen Version der OpenShift Container Platform \u2013 4<\/b><\/a><\/noindex><br \/>\n11. Juni um 11:00 Uhr<\/p>\n<p>Was Sie erfahren werden:<\/p>\n<ul>\n<li>Immutable Red Hat Enterprise Linux CoreOS<\/li>\n<li>OpenShift-Service-Mesh<\/li>\n<li>Operator-Framework<\/li>\n<li>Knative-Framework<\/li>\n<\/ul>\n<p>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/redhatrussia\/blog\/455024\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u00ab\u041e\u0431\u043b\u0430\u0447\u043d\u043e-\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435\u00bb (cloud native) \u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u00ab\u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0435\u00bb \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0432 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0445 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u0445. \u041e\u0431\u044b\u0447\u043d\u043e \u043e\u043d\u0438 \u0441\u0442\u0440\u043e\u044f\u0442\u0441\u044f \u043a\u0430\u043a \u043d\u0430\u0431\u043e\u0440 \u0441\u043b\u0430\u0431\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432, \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435, \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u0431\u043b\u0430\u0447\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u043e\u0439. \u0422\u0430\u043a\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0433\u043e\u0442\u043e\u0432\u044b \u043a \u0441\u0431\u043e\u044f\u043c, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u043d\u0430\u0434\u0435\u0436\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0434\u0430\u0436\u0435 \u043f\u0440\u0438 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u044b\u0445 \u043e\u0442\u043a\u0430\u0437\u0430\u0445 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f. \u041e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430 \u043c\u0435\u0434\u0430\u043b\u0438 \u2013 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":26340,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-35006","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-novosti-interneta"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u00ab\u041e\u0431\u043b\u0430\u0447\u043d\u043e-\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435\u00bb (cloud native) \u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u00ab\u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0435\u00bb \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0432 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0445 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u0445. \u041e\u0431\u044b\u0447\u043d\u043e \u043e\u043d\u0438 \u0441\u0442\u0440\u043e\u044f\u0442\u0441\u044f \u043a\u0430\u043a \u043d\u0430\u0431\u043e\u0440 \u0441\u043b\u0430\u0431\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432, \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435, \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u0431\u043b\u0430\u0447\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u043e\u0439. \u0422\u0430\u043a\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0433\u043e\u0442\u043e\u0432\u044b \u043a \u0441\u0431\u043e\u044f\u043c, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u043d\u0430\u0434\u0435\u0436\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0434\u0430\u0436\u0435 \u043f\u0440\u0438 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u044b\u0445 \u043e\u0442\u043a\u0430\u0437\u0430\u0445 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f. \u041e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430 \u043c\u0435\u0434\u0430\u043b\u0438 \u2013\" \/>\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\/novosti-interneta\/5-printsipov-zdravogo-smysla-dlya-sozdaniya-cloud-native-apps\" \/>\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\udd475 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u043e\u0432 \u0437\u0434\u0440\u0430\u0432\u043e\u0433\u043e \u0441\u043c\u044b\u0441\u043b\u0430 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f cloud-native apps | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u00ab\u041e\u0431\u043b\u0430\u0447\u043d\u043e-\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435\u00bb (cloud native) \u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u00ab\u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0435\u00bb \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0432 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0445 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u0445. \u041e\u0431\u044b\u0447\u043d\u043e \u043e\u043d\u0438 \u0441\u0442\u0440\u043e\u044f\u0442\u0441\u044f \u043a\u0430\u043a \u043d\u0430\u0431\u043e\u0440 \u0441\u043b\u0430\u0431\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432, \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435, \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u0431\u043b\u0430\u0447\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u043e\u0439. \u0422\u0430\u043a\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0433\u043e\u0442\u043e\u0432\u044b \u043a \u0441\u0431\u043e\u044f\u043c, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u043d\u0430\u0434\u0435\u0436\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0434\u0430\u0436\u0435 \u043f\u0440\u0438 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u044b\u0445 \u043e\u0442\u043a\u0430\u0437\u0430\u0445 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f. \u041e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430 \u043c\u0435\u0434\u0430\u043b\u0438 \u2013\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/novosti-interneta\/5-printsipov-zdravogo-smysla-dlya-sozdaniya-cloud-native-apps\" \/>\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:01:47+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:01:47+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\udd47 5 gesunde Prinzipien f\u00fcr die Erstellung von Cloud-native Anwendungen | ProHoster","description":"Cloud-native Anwendungen werden speziell f\u00fcr den Betrieb in Cloud-Infrastrukturen entwickelt. Sie bestehen in der Regel aus einer Reihe von lose gekoppelten Mikroservices, die in Containern verpackt sind, die wiederum von einer Cloud-Plattform verwaltet werden. Diese Anwendungen sind standardm\u00e4\u00dfig fehlertolerant und funktionieren sowie skalieren zuverl\u00e4ssig, selbst bei schwerwiegenden Infrastrukturausf\u00e4llen. Die Kehrseite ist, dass...","canonical_url":"https:\/\/prohoster.info\/de\/blog\/novosti-interneta\/5-printsipov-zdravogo-smysla-dlya-sozdaniya-cloud-native-apps","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\udd475 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u043e\u0432 \u0437\u0434\u0440\u0430\u0432\u043e\u0433\u043e \u0441\u043c\u044b\u0441\u043b\u0430 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f cloud-native apps | ProHoster","og:description":"\u00ab\u041e\u0431\u043b\u0430\u0447\u043d\u043e-\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435\u00bb (cloud native) \u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u00ab\u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0435\u00bb \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0432 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0445 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u0445. \u041e\u0431\u044b\u0447\u043d\u043e \u043e\u043d\u0438 \u0441\u0442\u0440\u043e\u044f\u0442\u0441\u044f \u043a\u0430\u043a \u043d\u0430\u0431\u043e\u0440 \u0441\u043b\u0430\u0431\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432, \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435, \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u0431\u043b\u0430\u0447\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u043e\u0439. \u0422\u0430\u043a\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0433\u043e\u0442\u043e\u0432\u044b \u043a \u0441\u0431\u043e\u044f\u043c, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u043d\u0430\u0434\u0435\u0436\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0434\u0430\u0436\u0435 \u043f\u0440\u0438 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u044b\u0445 \u043e\u0442\u043a\u0430\u0437\u0430\u0445 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f. \u041e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430 \u043c\u0435\u0434\u0430\u043b\u0438 \u2013","og:url":"https:\/\/prohoster.info\/de\/blog\/novosti-interneta\/5-printsipov-zdravogo-smysla-dlya-sozdaniya-cloud-native-apps","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:01:47+00:00","article:modified_time":"2019-10-31T19:01:47+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"35006","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-21 21:27:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:11:30","updated":"2026-01-21 21:27: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\/35006","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=35006"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/35006\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/26340"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=35006"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=35006"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=35006"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}