{"id":4024,"date":"2024-02-16T08:29:26","date_gmt":"2024-02-16T08:29:26","guid":{"rendered":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/?p=4024"},"modified":"2024-02-16T08:29:28","modified_gmt":"2024-02-16T08:29:28","slug":"cloud-native-microservices-teil1","status":"publish","type":"post","link":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/cloud-native-microservices-teil1\/","title":{"rendered":"Cloud-native Microservices in Monorepos &#8211; Teil 1"},"content":{"rendered":"\n<p>In der Software-Architektur von Webanwendungen hat sich in den vergangenen Jahren ein Paradigmenwechsel vollzogen. Weg von monolithischen Strukturen hin zu heterogenen Architekturen, die sich durch die Implementierung verschiedener Microservices auszeichnen. Auch in gr\u00f6\u00dferen, komplexen, serverlosen und Cloud-native Webanwendungen f\u00fcr Amazon Web Services (AWS) wird dieses Vorgehen empfohlen. Dabei wird \u00fcblicherweise der Infrastrukturcode f\u00fcr unterschiedliche Technologien, der Businesscode sowie die notwendigen CI\/CD-Prozesse mithilfe des AWS Cloud Development Kit (CDK) je Service in einer Applikation zusammengefasst. Diese Applikationen werden typischerweise jeweils in einem eigenen Repository untergebracht.<\/p>\n\n\n\n<p>Die Aufteilung in verschiedene Microservices unter Anwendung von Domain-Driven Design erweist sich selbst f\u00fcr individuelle Teams, innerhalb von Teilprojekten, oder f\u00fcr kleinere Projekte als sinnvoll. Manchmal \u00fcbernimmt ein Team auch aus organisatorischen Gr\u00fcnden die Verantwortung f\u00fcr mehrere Services.<\/p>\n\n\n\n<p>Parallel zu dieser Strukturierung gibt es jedoch auch immer wiederkehrende Herausforderungen im Bereich Infrastrukturcode und technischer L\u00f6sungen f\u00fcr Querschnittsaspekte, die eine einheitliche und zentralisierte Bereitstellung erfordern. Hierbei entsteht f\u00fcr einzelne Teams jedoch ein erheblicher Mehraufwand in Bezug auf die Bereitstellung verschiedener Bibliotheksversionen, die Verwaltung von Abh\u00e4ngigkeiten und die Pflege von CI\/CD-Prozessen in unterschiedlichen Repositories.<\/p>\n\n\n\n<p>Ein Ansatz zur Bew\u00e4ltigung dieser Herausforderungen besteht darin, die Verwendung eines Monorepos in Betracht zu ziehen. Im Kontext von Microservices-Architekturen auf Basis des CDK stellt sich die Frage: Warum nicht alle Services und Abh\u00e4ngigkeiten in einem gemeinsamen Repository zusammenfassen, ohne jedoch eine monolithische Struktur zu schaffen?<\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"627\" src=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2024\/02\/Grafik_01_wenig_Weissraum.svg\" alt=\"\" class=\"wp-image-4044\"\/><\/figure>\n\n\n\n<p><em>Abbildung 1: Von Monolithen zu Microservices in Multi-Repos und wieder zur\u00fcck zu Monorepos?<\/em><\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Abbildung 1 zeigt beispielhaft ein derartiges Szenario. Eine urspr\u00fcnglich entwickelte und gewachsene Anwendung, die sich in einem Repository als Monolith befand, wurde zun\u00e4chst in eine Microservices-Architektur mit mehreren Repositories umgewandelt. Diese Architektur besteht aus verschiedenen CDK-Applikationen und Bibliotheken. Schlie\u00dflich erfolgte im Rahmen der Software-Evolution die Zusammenf\u00fchrung der einzelnen Komponenten und Services in ein Monorepo. Dies ist lediglich ein Beispiel aus einem existierenden Projekt und keine generelle Empfehlung, obwohl solche Migrationen in der Praxis h\u00e4ufig vorkommen. Bei Projektbeginn sollte man sich bewusst \u00fcber die geeignete Strategie sein und kann, nach sorgf\u00e4ltiger Abw\u00e4gung, direkt mit dem Monorepo-Ansatz starten. Alternativ kann es jedoch auch klare Gr\u00fcnde gegen ein Monorepo geben und eher f\u00fcr einen Multi-Repo-Ansatz sprechen. Betrachten wir zun\u00e4chst n\u00e4her, warum wir die Entscheidung f\u00fcr Monorepos treffen m\u00f6chten und welche Konsequenzen sich daraus ergeben. Im zweiten Teil werden wir genauer beleuchten, wie eine Monorepo Strategie effektiv mit AWS CDK und dem Buildsystem Nx funktionieren kann.<\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Vorteile von Monorepos<\/h2>\n\n\n\n<p>Die zentrale St\u00e4rke eines Monorepos liegt in seiner Funktion als alleinige Quelle der Wahrheit. Hieraus ergeben sich diverse weitere Vorteile:<\/p>\n\n\n\n<ol class=\"wp-block-list\" type=\"1\">\n<li><strong>Vereinfachtes Abh\u00e4ngigkeitsmanagement:<\/strong> Das Repository beherbergt die gesamte Codebasis und jede Komponente ist mit ihrer Hauptversion integriert, was das Abh\u00e4ngigkeitsmanagement erheblich vereinfacht. Dies macht den Einsatz von Artefakt-Repositories (z.B. CodeArtifact, Nexus) \u00fcberfl\u00fcssig.<\/li>\n\n\n\n<li><strong>Vereinfachter Zugriff:<\/strong> Teams k\u00f6nnen m\u00fchelos zusammenarbeiten, da sie Einblick in das gesamte Repository haben.<\/li>\n\n\n\n<li><strong>Gro\u00df angelegte Code-Refaktorisierung:<\/strong> Atomare Commits im gesamten Code erleichtern module\u00fcbergreifende Refaktorisierungen und Implementierungen erheblich.<\/li>\n\n\n\n<li><strong>Continuous Deployment Pipeline:<\/strong> Keine bzw. wenig neue Konfiguration erforderlich, um weitere Services hinzuzuf\u00fcgen.<\/li>\n<\/ol>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Umgang mit m\u00f6glichen Nachteilen von Monorepos<\/h2>\n\n\n\n<p>Nat\u00fcrlich gibt es auch Konsequenzen bei der Verwendung von Monorepos. Einige Nachteile k\u00f6nnen von vornherein aufgefangen werden, wenn bestimmte Voraussetzungen erf\u00fcllt sind. Dazu geh\u00f6ren idealerweise eine Einigung auf die verwendeten Technologien und die Wahl \u00e4hnlicher CI\/CD-Prozesse \u00fcber alle Services hinweg. Auch muss ber\u00fccksichtigt werden, dass die Zugriffkontrolle i.d.R. nicht feingranular eingestellt werden kann und jeder Zugriff auf die gesamte Codebasis hat. Dies kann besonders wichtig werden, wenn mehrere Teams in einem Monorepo arbeiten. Andernfalls k\u00f6nnen viele der Vorteile von Monorepos schnell verloren gehen und ein Multi-Repo-Ansatz k\u00f6nnte besser geeignet sein.<\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Es gibt drei weitere Einschr\u00e4nkungen oder Gefahren, die ber\u00fccksichtigt werden m\u00fcssen:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Eingeschr\u00e4nkte Versionierung<\/h3>\n\n\n\n<p>Alle Service liegen immer in ihren jeweiligen aktuellen Versionen vor. Ein Service kann nicht einfach eine \u00e4ltere Version eines anderen Services referenzieren. Bei der Konzeption von Microservices ist daher besonderes Augenmerk auf die Schnittstellenvertr\u00e4ge der Services innerhalb des Monorepos zu legen. Diese sollten im Idealfall semantisch versioniert und dokumentiert werden. Etablierte Standards wie OpenAPI, GraphQL und <a>JSON Schema<\/a> unterst\u00fctzen dies. Bei der Verwendung gemeinsamer Bibliotheken ist auf Abw\u00e4rtskompatibilit\u00e4t zu achten, da \u00c4nderungen sonst Anpassungen in allen Modulen erfordern, die die Bibliothek verwenden.<\/p>\n\n\n\n<div style=\"height:5px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Hohe Kopplung m\u00f6glich<\/h3>\n\n\n\n<p>Die Vorteile eines Monorepos, n\u00e4mlich die schnelle und effiziente Zusammenarbeit durch eine zentrale Codebasis, k\u00f6nnen sich schnell ins Gegenteil verkehren. Dies geschieht, wenn Services direkt auf Bausteine anderer Services referenzieren oder wenn die Wiederverwendbarkeit von Code falsch verstanden wird und dazu f\u00fchrt, dass die Gesch\u00e4ftslogik der Services in gemeinsame Bibliotheken ausgelagert wird. Dadurch entsteht schnell eine Architektur mit hoher Kopplung zwischen den einzelnen Bausteinen. Insbesondere unter Zeitdruck bei der Entwicklung neuer Features ist die Versuchung gro\u00df, technische Schulden einzugehen. H\u00e4ufen sich diese, besteht die Gefahr, dass aus Angst vor Breaking Changes keine Refactorings mehr durchgef\u00fchrt werden, was wiederum die Wartbarkeit des Gesamtsystems erheblich beeintr\u00e4chtigt.<\/p>\n\n\n\n<p>Es ist daher wichtig, klare Regeln zu definieren und sicherzustellen, dass die Einhaltung dieser Regeln idealerweise durch statische Codeanalysen \u00fcberwacht und gemessen wird. Es ist anzustreben, dass die Services w\u00e4hrend der Build-Zeit keine Abh\u00e4ngigkeiten untereinander haben und stattdessen zur Laufzeit \u00fcber klar definierte Schnittstellen miteinander kommunizieren. Die Schnittstellenvertr\u00e4ge k\u00f6nnen effizient als Bibliotheken zentral im Monorepo abgelegt werden.<\/p>\n\n\n\n<div style=\"height:5px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Monolithische, langwierige CI\/CD-Prozesse<\/h3>\n\n\n\n<p>Wenn sich der gesamte Code in einem einzigen Repository befindet, m\u00fcssen die CI\/CD-Prozesse f\u00fcr automatisiertes Testen, statische Codeanalyse, Build und Deployment im schlimmsten Fall bei jeder \u00c4nderung den gesamten Code durchlaufen. Mit wachsender Projektgr\u00f6\u00dfe f\u00fchren diese l\u00e4ngeren Wartezeiten zu Frustration, was sich negativ auf die Teamleistung auswirken kann. In einer Microservices-Architektur sollte dies jedoch nicht der Fall sein, denn dies widerspricht dem Ziel, jeden Service individuell zu betrachten. Bei Code\u00e4nderungen in einem Service sollten nur die notwendigen CI\/CD-Prozesse f\u00fcr diesen Service und seine abh\u00e4ngigen Bibliotheken durchgef\u00fchrt werden. Die Entwicklung sollte so schnell und isoliert erfolgen, als w\u00fcrde man nur an der Codebasis eines Services in einem Repository arbeiten. Es gibt geeignete Werkzeuge wie Nx um dies in einem Monorepos zu realisieren. <\/p>\n\n\n\n<p>Mehr dazu in Teil 2.<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Diese Serie beleuchtet die Implementierung von Microservice-Architekturen mit Monorepos und Serverless Cloud-Anwendungen. Teil 1 befasst sich mit den Herausforderungen bei der Verwaltung von Microservices in einem typischen Multi-Repo-Setup und schl\u00e4gt die Integration in Monorepos vor.<\/p>\n","protected":false},"author":168,"featured_media":4045,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"advgb_blocks_editor_width":"","advgb_blocks_columns_visual_guide":"","footnotes":""},"categories":[656],"tags":[221,304,771,772,773,774],"topics":[770,775],"class_list":["post-4024","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-manufacturing-solutions","tag-microservices","tag-web","tag-architektur","tag-cloud-native","tag-aws-cdk","tag-nx","topics-manufacturing-solutions","topics-cloud-native-microservices-in-monorepos"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>ZEISS Digital Innovation Blog - Cloud-native Microservices in Monorepos - Teil 1<\/title>\n<meta name=\"description\" content=\"Diese Serie beleuchtet die Implementierung von Microservice-Architekturen mit Monorepos und Serverless Cloud-Anwendungen. Teil 1 befasst sich mit den Herausforderungen bei der Verwaltung von Microservices in einem typischen Multi-Repo-Setup und schl\u00e4gt die Integration in Monorepos vor.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/cloud-native-microservices-teil1\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Cloud-native Microservices in Monorepos - Teil 1\" \/>\n<meta property=\"og:description\" content=\"Diese Serie beleuchtet die Implementierung von Microservice-Architekturen mit Monorepos und Serverless Cloud-Anwendungen. Teil 1 befasst sich mit den Herausforderungen bei der Verwaltung von Microservices in einem typischen Multi-Repo-Setup und schl\u00e4gt die Integration in Monorepos vor.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/cloud-native-microservices-teil1\/\" \/>\n<meta property=\"og:site_name\" content=\"Digital Innovation Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/ZEISSDigitalInnovation\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-02-16T08:29:26+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-02-16T08:29:28+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2024\/02\/headerbild_blog_aws.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Paul Weinhold\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Cloud-native Microservices in Monorepos - Teil 1\" \/>\n<meta name=\"twitter:description\" content=\"Diese Serie beleuchtet die Implementierung von Microservice-Architekturen mit Monorepos und Serverless Cloud-Anwendungen. Teil 1 befasst sich mit den Herausforderungen bei der Verwaltung von Microservices in einem typischen Multi-Repo-Setup und schl\u00e4gt die Integration in Monorepos vor.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2024\/02\/headerbild_blog_aws.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@ZEISS_di\" \/>\n<meta name=\"twitter:site\" content=\"@ZEISS_di\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Paul Weinhold\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"6\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/cloud-native-microservices-teil1\/\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/cloud-native-microservices-teil1\/\",\"name\":\"ZEISS Digital Innovation Blog - Cloud-native Microservices in Monorepos - Teil 1\",\"isPartOf\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/cloud-native-microservices-teil1\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/cloud-native-microservices-teil1\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2024\/02\/headerbild_blog_aws.jpg\",\"datePublished\":\"2024-02-16T08:29:26+00:00\",\"dateModified\":\"2024-02-16T08:29:28+00:00\",\"author\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/beacf4167b069c5be695e0ab1e2024a4\"},\"description\":\"Diese Serie beleuchtet die Implementierung von Microservice-Architekturen mit Monorepos und Serverless Cloud-Anwendungen. Teil 1 befasst sich mit den Herausforderungen bei der Verwaltung von Microservices in einem typischen Multi-Repo-Setup und schl\u00e4gt die Integration in Monorepos vor.\",\"breadcrumb\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/cloud-native-microservices-teil1\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/cloud-native-microservices-teil1\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/cloud-native-microservices-teil1\/#primaryimage\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2024\/02\/headerbild_blog_aws.jpg\",\"contentUrl\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2024\/02\/headerbild_blog_aws.jpg\",\"width\":1920,\"height\":1080},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/cloud-native-microservices-teil1\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Cloud-native Microservices in Monorepos &#8211; Teil 1\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#website\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/\",\"name\":\"Digital Innovation Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/beacf4167b069c5be695e0ab1e2024a4\",\"name\":\"Paul Weinhold\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2024\/02\/Foto_Paul_Weinhold_s-e1707316957477-150x150.jpg\",\"contentUrl\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2024\/02\/Foto_Paul_Weinhold_s-e1707316957477-150x150.jpg\",\"caption\":\"Paul Weinhold\"},\"description\":\"Paul Weinhold arbeitet als Senior-Software Developer bei der ZEISS Digital Innovation. Er verf\u00fcgt \u00fcber langj\u00e4hrige Erfahrung im Bereich Spring, Java und in der Umsetzung von Microservice Architekturen. Aktuell arbeitet er an Manufacturing L\u00f6sungen basierend auf Amazon Cloud Services.\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/author\/paulweinhold\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"ZEISS Digital Innovation Blog - Cloud-native Microservices in Monorepos - Teil 1","description":"Diese Serie beleuchtet die Implementierung von Microservice-Architekturen mit Monorepos und Serverless Cloud-Anwendungen. Teil 1 befasst sich mit den Herausforderungen bei der Verwaltung von Microservices in einem typischen Multi-Repo-Setup und schl\u00e4gt die Integration in Monorepos vor.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/cloud-native-microservices-teil1\/","og_locale":"de_DE","og_type":"article","og_title":"Cloud-native Microservices in Monorepos - Teil 1","og_description":"Diese Serie beleuchtet die Implementierung von Microservice-Architekturen mit Monorepos und Serverless Cloud-Anwendungen. Teil 1 befasst sich mit den Herausforderungen bei der Verwaltung von Microservices in einem typischen Multi-Repo-Setup und schl\u00e4gt die Integration in Monorepos vor.","og_url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/cloud-native-microservices-teil1\/","og_site_name":"Digital Innovation Blog","article_publisher":"https:\/\/www.facebook.com\/ZEISSDigitalInnovation\/","article_published_time":"2024-02-16T08:29:26+00:00","article_modified_time":"2024-02-16T08:29:28+00:00","og_image":[{"width":1920,"height":1080,"url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2024\/02\/headerbild_blog_aws.jpg","type":"image\/jpeg"}],"author":"Paul Weinhold","twitter_card":"summary_large_image","twitter_title":"Cloud-native Microservices in Monorepos - Teil 1","twitter_description":"Diese Serie beleuchtet die Implementierung von Microservice-Architekturen mit Monorepos und Serverless Cloud-Anwendungen. Teil 1 befasst sich mit den Herausforderungen bei der Verwaltung von Microservices in einem typischen Multi-Repo-Setup und schl\u00e4gt die Integration in Monorepos vor.","twitter_image":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2024\/02\/headerbild_blog_aws.jpg","twitter_creator":"@ZEISS_di","twitter_site":"@ZEISS_di","twitter_misc":{"Verfasst von":"Paul Weinhold","Gesch\u00e4tzte Lesezeit":"6\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/cloud-native-microservices-teil1\/","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/cloud-native-microservices-teil1\/","name":"ZEISS Digital Innovation Blog - Cloud-native Microservices in Monorepos - Teil 1","isPartOf":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/cloud-native-microservices-teil1\/#primaryimage"},"image":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/cloud-native-microservices-teil1\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2024\/02\/headerbild_blog_aws.jpg","datePublished":"2024-02-16T08:29:26+00:00","dateModified":"2024-02-16T08:29:28+00:00","author":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/beacf4167b069c5be695e0ab1e2024a4"},"description":"Diese Serie beleuchtet die Implementierung von Microservice-Architekturen mit Monorepos und Serverless Cloud-Anwendungen. Teil 1 befasst sich mit den Herausforderungen bei der Verwaltung von Microservices in einem typischen Multi-Repo-Setup und schl\u00e4gt die Integration in Monorepos vor.","breadcrumb":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/cloud-native-microservices-teil1\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.zeiss.com\/digital-innovation\/de\/cloud-native-microservices-teil1\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/cloud-native-microservices-teil1\/#primaryimage","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2024\/02\/headerbild_blog_aws.jpg","contentUrl":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2024\/02\/headerbild_blog_aws.jpg","width":1920,"height":1080},{"@type":"BreadcrumbList","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/cloud-native-microservices-teil1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/"},{"@type":"ListItem","position":2,"name":"Cloud-native Microservices in Monorepos &#8211; Teil 1"}]},{"@type":"WebSite","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#website","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/","name":"Digital Innovation Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Person","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/beacf4167b069c5be695e0ab1e2024a4","name":"Paul Weinhold","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/image\/","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2024\/02\/Foto_Paul_Weinhold_s-e1707316957477-150x150.jpg","contentUrl":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2024\/02\/Foto_Paul_Weinhold_s-e1707316957477-150x150.jpg","caption":"Paul Weinhold"},"description":"Paul Weinhold arbeitet als Senior-Software Developer bei der ZEISS Digital Innovation. Er verf\u00fcgt \u00fcber langj\u00e4hrige Erfahrung im Bereich Spring, Java und in der Umsetzung von Microservice Architekturen. Aktuell arbeitet er an Manufacturing L\u00f6sungen basierend auf Amazon Cloud Services.","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/author\/paulweinhold\/"}]}},"author_meta":{"display_name":"Paul Weinhold","author_link":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/author\/paulweinhold\/"},"featured_img":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2024\/02\/headerbild_blog_aws-600x338.jpg","coauthors":[],"tax_additional":{"categories":{"linked":["<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/manufacturing-solutions\/\" class=\"advgb-post-tax-term\">Manufacturing Solutions<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">Manufacturing Solutions<\/span>"]},"tags":{"linked":["<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/manufacturing-solutions\/\" class=\"advgb-post-tax-term\">Microservices<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/manufacturing-solutions\/\" class=\"advgb-post-tax-term\">web<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/manufacturing-solutions\/\" class=\"advgb-post-tax-term\">Architektur<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/manufacturing-solutions\/\" class=\"advgb-post-tax-term\">Cloud-native<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/manufacturing-solutions\/\" class=\"advgb-post-tax-term\">AWS CDK<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/manufacturing-solutions\/\" class=\"advgb-post-tax-term\">Nx<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">Microservices<\/span>","<span class=\"advgb-post-tax-term\">web<\/span>","<span class=\"advgb-post-tax-term\">Architektur<\/span>","<span class=\"advgb-post-tax-term\">Cloud-native<\/span>","<span class=\"advgb-post-tax-term\">AWS CDK<\/span>","<span class=\"advgb-post-tax-term\">Nx<\/span>"]}},"comment_count":"0","relative_dates":{"created":"Posted 2\u00a0Jahren ago","modified":"Updated 2\u00a0Jahren ago"},"absolute_dates":{"created":"Posted on Februar 16, 2024","modified":"Updated on Februar 16, 2024"},"absolute_dates_time":{"created":"Posted on Februar 16, 2024 8:29 a.m.","modified":"Updated on Februar 16, 2024 8:29 a.m."},"featured_img_caption":"","series_order":"","_links":{"self":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/posts\/4024","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/users\/168"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/comments?post=4024"}],"version-history":[{"count":6,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/posts\/4024\/revisions"}],"predecessor-version":[{"id":4056,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/posts\/4024\/revisions\/4056"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/media\/4045"}],"wp:attachment":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/media?parent=4024"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/categories?post=4024"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/tags?post=4024"},{"taxonomy":"topics","embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/topics?post=4024"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}