{"id":2075,"date":"2024-04-25T09:37:21","date_gmt":"2024-04-25T09:37:21","guid":{"rendered":"https:\/\/thriving-sanctuary.dbc4320.deploio.app\/v1-to-v2-nine-s3-migration-why-what-how-and-worth\/"},"modified":"2024-09-05T09:55:54","modified_gmt":"2024-09-05T09:55:54","slug":"v1-to-v2-nine-s3-migration-why-what-how-and-worth","status":"publish","type":"post","link":"https:\/\/archive.5fcf01f.deploio.app\/de\/v1-to-v2-nine-s3-migration-why-what-how-and-worth\/","title":{"rendered":"Auf 1 folgt 2: Wie wir unser S3-Produkt abgel\u00f6st haben \u2013 warum, was, wie und ob es sich gelohnt hat"},"content":{"rendered":"\n<p>Vielleicht haben Sie bereits bemerkt, dass wir unser S3-Produkt \u00fcberarbeitet haben und nun eine Migration zur Version 2 des Produktes m\u00f6glich ist. In diesem Blogbeitrag m\u00f6chten wir die Gr\u00fcnde f\u00fcr diese Entscheidung erl\u00e4utern. Dabei m\u00f6chten wir beleuchten, wie wir die technischen Herausforderungen angegangen sind, und ein Fazit ziehen. Hat sich der Aufwand gelohnt? Also los, Kaffee (oder Tee) schnappen, sich zur\u00fccklehnen und mit uns in die Details der Produkt\u00fcberarbeitung eintauchen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Warum<\/strong><\/h2>\n\n\n\n<p>Bereits seit Einf\u00fchrung des v1 S3 Produkts auf der Self-Service-Plattform von Nine Mitte 2021 traten immer wieder Probleme auf. Die Produktnutzung war also nicht gerade reibungslos.<\/p>\n\n\n\n<p>Die erste Version unseres S3-Service stellt eine Abstraktion eines von einem Drittanbieter bezogenen Managed Services dar. Dieses Servicepaket umfasst neben der Software auch den Support und die dedizierte Hardwareumgebung, die durch den Anbieter betrieben wird.<\/p>\n\n\n\n<p>Bereits kurz nach der Einf\u00fchrung des S3-Produktes haben uns Kundenanfragen erreicht, bei denen uns klar wurde, dass die Umgebung entgegen ersten Tests nicht die Breite aller Kundenanforderungen erf\u00fcllt. In unserer Testumgebung konnten wir diese Erfahrungen reproduzieren. Teilweise niedriger Datendurchsatz und Verbindungsabbr\u00fcche verz\u00f6gerten unsere Entwicklung teils erheblich. Leider waren unsere Beobachtungen nicht nur auf die Testumgebung beschr\u00e4nkt.<\/p>\n\n\n\n<p>Die relevanten Leistungsmerkmale waren auch in der Produktionsumgebung ungen\u00fcgend. Trotz des geschlossenen Servicevertrages konnte uns der Support des Anbieters keine praktikablen L\u00f6sungsans\u00e4tze aufzeigen. Da einige unserer Produkte und Entwicklungsabl\u00e4ufe auf dem S3-Produkt aufbauen, konnten wir die Frustration unserer Kund*innen bestens nachvollziehen. Der Bedarf f\u00fcr eine Verbesserung des S3-Produktes war offensichtlich.<\/p>\n\n\n\n<p>Aufgrund der technischen Einschr\u00e4nkungen des Produktes und des mangelnden Supports des Herstellers wurde uns fr\u00fch bewusst, dass unser Ziel, eines auf Self-Service ausgerichteten, skalierbaren und leistungsf\u00e4higen S3-Produktes nur durch eine Neuentwicklung erreichbar ist.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Was<\/strong><\/h2>\n\n\n\n<p>Unsere Evaluationskriterien umfassten neben der Leistungsf\u00e4higkeit insbesondere auch die Integrationsm\u00f6glichkeiten in unsere Self-Service API. Nach der Evaluation mehrerer Produkte haben wir uns f\u00fcr Nutanix Objects als k\u00fcnftige L\u00f6sung entschieden.<\/p>\n\n\n\n<p>Da wir die L\u00f6sungen und Infrastruktur von Nutanix bereits in all unseren Rechenzentrumsstandorten f\u00fcr die Bereitstellung anderer Produkte nutzen, beispielsweise virtuelle Server und unser Produkt NKE, konnten wir auf den bestehenden Plattformen aufbauen und bereits existierende Automationsans\u00e4tze \u00fcber die Nutanix API f\u00fcr das neue Produkt ausbauen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Wie<\/strong><\/h2>\n\n\n\n<p>Ein bestehendes Produkt zu ersetzen, bringt besondere Anforderungen an das \u00abWie\u00bb der Implementation mit sich. Nicht nur m\u00f6chten wir unseren Kund*innen so schnell wie m\u00f6glich ein besseres Produkt anbieten k\u00f6nnen, auch die Datenmigration soll so einfach wie&nbsp;m\u00f6glich vonstattengehen. Von Beginn an lag unser Fokus darauf, unseren Kund*innen eine automatisierte Datenmigration anzubieten, welche die Daten Ende zu Ende verschl\u00fcsselt innerhalb der Nine Infrastruktur migriert &#8211; ganz ohne unsere Kundschaft mit Down- oder Uploads von Daten zu besch\u00e4ftigen.<\/p>\n\n\n\n<p>Neben der Automation der Datenmigration war die Integration der L\u00f6sung in unsere Self-Service-API f\u00fcr uns sehr wichtig. Auch hier sollte f\u00fcr unsere Kund*innen keine nennenswerte \u00c4nderung bei der Nutzung der API entstehen. Daher haben wir Unterschiede im Backend der API abstrahiert, sodass Kund*innen lediglich den Parameter \u00abbackendVersion\u00bb auf den Wert \u00abv2\u00bb setzen m\u00fcssen, um neue Buckets auf Basis des neuen Produktes zu erstellen. Zwischenzeitlich wurde dies als neuer Standard festgelegt.<\/p>\n\n\n\n<p>Um ein v1-Bucket zu migrieren, m\u00fcssen die folgenden Informationen bereitgestellt werden:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Ein v1-Quell-Bucket sowie ein Benutzer mit Leseberechtigung<\/li>\n\n\n\n<li>Ein v2-Ziel-Bucket sowie ein Benutzer mit Schreibberechtigung<\/li>\n\n\n\n<li>Festlegung eines Intervalls f\u00fcr den Abgleich der Buckets<\/li>\n\n\n\n<li>Ein Parameter, der angibt, ob Daten, die im Ziel-Bucket vorhanden sind, \u00fcberschrieben werden sollen<\/li>\n<\/ol>\n\n\n\n<p>F\u00fcr die Datenmigration nutzen wir&nbsp;<a href=\"https:\/\/rclone.org\/\">rclone<\/a>, ein \u00e4usserst empfehlenswertes Tool f\u00fcr die Verwaltung von S3-Buckets. F\u00fcr die Migration nutzen wir zwei rclone Funktionen: sync und copy.<\/p>\n\n\n\n<p>Mit sync werden Ziel- und Quell-Bucket synchronisiert. Dabei werden auch alle Daten im Ziel-Bucket entfernt, die nicht (mehr) im Quell-Bucket vorhanden sind.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: yaml; title: ; notranslate\" title=\"\">\nrclone\u00a0sync\u00a0source:sourcepath dest:destpath\n<\/pre><\/div>\n\n\n<p>Mit copy werden die Daten hingegen vom Quell-Bucket in das Ziel-Bucket kopiert, ohne Daten im Ziel-Bucket zu l\u00f6schen.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: yaml; title: ; notranslate\" title=\"\">\nrclone\u00a0copy\u00a0source:sourcepath dest:destpath\n<\/pre><\/div>\n\n\n<p>Die rclone-Befehle werden in Kubernetes-Pods innerhalb unserer Infrastruktur ausgef\u00fchrt. So stellen wir neben der Ende-zu-Ende-Verschl\u00fcsselung sicher, dass die Daten auch w\u00e4hrend der Migration unser Netzwerk nicht verlassen.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: yaml; title: ; notranslate\" title=\"\">\napiVersion:\u00a0batch\/v1\nkind:\u00a0CronJob\nmetadata:\n\u00a0 name:\u00a0bucketmigration\n\u00a0 namespace:\u00a0myns\nspec:\n\u00a0 jobTemplate:\nspec:\n\u00a0\u00a0parallelism:\u00a01\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0schedule:\u00a07,22,37,52 * * * *\n\u00a0 \u00a0\u00a0spec:\n\u00a0 \u00a0 \u00a0\u00a0containers:\n\u00a0 \u00a0 \u00a0\u00a0-\u00a0args:\n\u00a0 \u00a0 \u00a0 \u00a0\u00a0\u00a0\u00a0-\u00a0copy\n\u00a0 \u00a0 \u00a0 \u00a0\u00a0\u00a0\u00a0-\u00a0source:&lt;bucketname&gt;\n\u00a0 \u00a0 \u00a0 \u00a0\u00a0\u00a0\u00a0-\u00a0dest:&lt;bucketname&gt;\n\u00a0 \u00a0 \u00a0 \u00a0\u00a0\u00a0 command:\n\u00a0 \u00a0 \u00a0 \u00a0\u00a0\u00a0\u00a0-\u00a0rclone\n\u00a0 \u00a0 \u00a0 \u00a0\u00a0\u00a0 image:\u00a0docker.io\/rclone\/rclone:1.65.2\n\u00a0 \u00a0 \u00a0 \u00a0\u00a0\u00a0 name:\u00a0rclone\n<\/pre><\/div>\n\n\n<p>Die abgebildete CronJob-Definition startet schlussendlich einen rclone KubernetesPod, der den Migrationsprozess ausf\u00fchrt.<\/p>\n\n\n\n<p>Im n\u00e4chsten Schritt schauen wir uns an, wie eine Migration einer Applikation auf das neue S3-Produkt ablaufen kann. Exemplarisch migrieren wir eine Applikation, die wir selbst betreiben: Loki, einen Dienst zur Aggregation von Logfiles.&nbsp;<\/p>\n\n\n\n<p>Vorbereitend wurde ein v2-Bucket erstellt. F\u00fcr die Migration wurde ein copy-Job erstellt. Das Ziel-Bucket enth\u00e4lt keine Daten, ein sync-Job war daher nicht notwendig. Da auch sp\u00e4ter lediglich ein Delta des Quell-Buckets \u00fcbertragen werden soll, k\u00f6nnte ein sync-Job gar zu einem Datenverlust f\u00fchren, da wir im weiteren Verlauf die Applikation auf das Ziel-Bucket schreiben lassen.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"627\" src=\"https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2024\/05\/1-1024x627.png\" alt=\"\" class=\"wp-image-2337\" srcset=\"https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2024\/05\/1-1024x627.png 1024w, https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2024\/05\/1-300x184.png 300w, https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2024\/05\/1-768x470.png 768w, https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2024\/05\/1.png 1288w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Im ersten Schritt erstellen wir einen Bucket-Migrations-Job \u00fcber die Nine-API.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"648\" src=\"https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2024\/05\/2-1024x648.png\" alt=\"\" class=\"wp-image-2339\" srcset=\"https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2024\/05\/2-1024x648.png 1024w, https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2024\/05\/2-300x190.png 300w, https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2024\/05\/2-768x486.png 768w, https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2024\/05\/2.png 1257w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>Nach dem ersten Durchlauf des Migrations-Jobs k\u00f6nnen wir Loki so konfigurieren, dass die Logs fortan in das v2-Bucket geschrieben werden.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" src=\"https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2024\/05\/3-1-1024x683.png\" alt=\"\" class=\"wp-image-2344\" srcset=\"https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2024\/05\/3-1-1024x683.png 1024w, https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2024\/05\/3-1-300x200.png 300w, https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2024\/05\/3-1-768x512.png 768w, https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2024\/05\/3-1.png 1185w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>Nachdem die Loki-Konfiguration angepasst wurde, lassen wir einen weiteren Migrations-Job ausf\u00fchren. So \u00fcbertragen wir die Daten aus dem v1-Bucket, die zwischen der ersten Ausf\u00fchrung des Jobs und der Anpassung der Applikation auf das v2-Bucket geschrieben wurden.<\/p>\n\n\n\n<p>W\u00fcrden wir statt eines copy-Jobs einen sync-Job verwenden, w\u00fcrde das Delta im v2-Bucket gel\u00f6scht werden. Mit dem erneuten Abgleich der Buckets ist die Datenmigration und die Umstellung der Applikation abgeschlossen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Fazit<\/strong><\/h2>\n\n\n\n<p>Ein Produkt abzul\u00f6sen, stellt immer eine besondere Herausforderung dar. Leistung, Automatisierungsgrad, Simplizit\u00e4t in der Benutzung, der Migrationspfad und der Preis spielen in der finalen Betrachtung eine grosse Rolle.<\/p>\n\n\n\n<p>Unsere Kundschaft hat uns vielfach berichtet, dass die Leistung des v2 S3-Produktes merklich besser ist als die seines Vorg\u00e4ngers. In unseren automatisierten Code- und End-to-End Tests konnten wir dies ebenfalls beobachten. Wo wir vormals h\u00e4ufig mit Abbr\u00fcchen der Tests konfrontiert waren, ist das S3-Backend nun kein limitierender Faktor mehr. Leistungstests haben gezeigt, dass das Hochladen einzelner Objekte teils weniger als die H\u00e4lfte der Zeit ben\u00f6tigt, als dies bei der vorherigen L\u00f6sung der Fall war. Unser konsequenter Fokus auf Automatisierung, auch f\u00fcr die Datenmigration, baut den Automatisierungsgrad weiter aus.<\/p>\n\n\n\n<p>Neben gesteigerter Leistung und ausgebauter Automation konnten wir auch den Preis f\u00fcr unsere Kund*innen drastisch senken. Das konsequente Aufbauen auf bestehenden L\u00f6sungen hat es uns erm\u00f6glicht, den Preis um 66% von 0,09 CHF auf 0,03 CHF pro Monat und Gigabyte zu senken.<\/p>\n\n\n\n<p>Wir sind gl\u00fccklich, dass wir heute nicht nur ein schnelleres und verl\u00e4sslicheres Produkt, sondern auch ein kosteng\u00fcnstigeres offerieren k\u00f6nnen.<\/p>\n\n\n\n<p>Die Abl\u00f6sung des bisherigen Produktes kann guten Gewissens als Win-Win-Situation bezeichnet werden, und wir k\u00f6nnten mit dem Ergebnis zufriedener kaum sein.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Ein Ausblick in die Zukunft<\/strong><\/h2>\n\n\n\n<p>Derzeit ist die Funktion der Bucket Migration darauf beschr\u00e4nkt, Daten zwischen v1- und v2-Buckets zu synchronisieren. In naher Zukunft planen wir, diese Funktionalit\u00e4t zu erweitern und auch die Synchronisierung zwischen v2-Buckets zu unterst\u00fctzen.<\/p>\n\n\n\n<p>Dar\u00fcber hinaus pr\u00fcfen wir die M\u00f6glichkeit, die Migration extern betriebener Buckets zu erm\u00f6glichen. So w\u00e4re es beispielsweise denkbar, unser S3-Produkt zum Zweck eines Offsite-Backups zu nutzen; oder auf einfache Art und Weise Daten in unsere Umgebung zu migrieren. \ud83d\ude42<\/p>\n\n\n\n<p>Wir hoffen, unser Blog konnte Ihre Kaffee- oder Tee-Pause vers\u00fcssen und freuen uns auf Ihre R\u00fcckmeldung. Sollten Sie eine Bucket-Migration planen und sich \u00fcber Detailfragen unschl\u00fcssig sein, z\u00f6gern Sie nicht, mit uns in Kontakt zu treten.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vielleicht haben Sie bereits bemerkt, dass wir unser S3-Produkt \u00fcberarbeitet haben und nun eine Migration zur Version 2 des Produktes m\u00f6glich ist. In diesem Blogbeitrag m\u00f6chten wir die Gr\u00fcnde f\u00fcr diese Entscheidung erl\u00e4utern. Dabei m\u00f6chten wir beleuchten, wie wir die technischen Herausforderungen angegangen sind, und ein Fazit ziehen. Hat sich der Aufwand gelohnt? Also los, [&hellip;]<\/p>\n","protected":false},"author":18,"featured_media":2021,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[399,405],"tags":[414],"class_list":["post-2075","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-know-how-de","category-product-news","tag-object-storage-de"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Auf 1 folgt 2: Wie wir unser S3-Produkt abgel\u00f6st haben \u2013 warum, was, wie und ob es sich gelohnt hat - Nine<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/nine.ch\/de\/v1-to-v2-nine-s3-migration-why-what-how-and-worth\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Auf 1 folgt 2: Wie wir unser S3-Produkt abgel\u00f6st haben \u2013 warum, was, wie und ob es sich gelohnt hat - Nine\" \/>\n<meta property=\"og:description\" content=\"Vielleicht haben Sie bereits bemerkt, dass wir unser S3-Produkt \u00fcberarbeitet haben und nun eine Migration zur Version 2 des Produktes m\u00f6glich ist. In diesem Blogbeitrag m\u00f6chten wir die Gr\u00fcnde f\u00fcr diese Entscheidung erl\u00e4utern. Dabei m\u00f6chten wir beleuchten, wie wir die technischen Herausforderungen angegangen sind, und ein Fazit ziehen. Hat sich der Aufwand gelohnt? Also los, [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/nine.ch\/de\/v1-to-v2-nine-s3-migration-why-what-how-and-worth\/\" \/>\n<meta property=\"og:site_name\" content=\"Nine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/NineInternetSolutionsAG\" \/>\n<meta property=\"article:published_time\" content=\"2024-04-25T09:37:21+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-05T09:55:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/nine.ch\/app\/uploads\/2024\/04\/Storage.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"960\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Davor Gajic\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@nine_ch\" \/>\n<meta name=\"twitter:site\" content=\"@nine_ch\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Davor Gajic\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/nine.ch\/de\/v1-to-v2-nine-s3-migration-why-what-how-and-worth\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/nine.ch\/de\/v1-to-v2-nine-s3-migration-why-what-how-and-worth\/\"},\"author\":{\"name\":\"Davor Gajic\",\"@id\":\"https:\/\/nine.ch\/#\/schema\/person\/7403102abc4fd4d7e1d204df5ec49a9d\"},\"headline\":\"Auf 1 folgt 2: Wie wir unser S3-Produkt abgel\u00f6st haben \u2013 warum, was, wie und ob es sich gelohnt hat\",\"datePublished\":\"2024-04-25T09:37:21+00:00\",\"dateModified\":\"2024-09-05T09:55:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/nine.ch\/de\/v1-to-v2-nine-s3-migration-why-what-how-and-worth\/\"},\"wordCount\":1280,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/nine.ch\/#organization\"},\"image\":{\"@id\":\"https:\/\/nine.ch\/de\/v1-to-v2-nine-s3-migration-why-what-how-and-worth\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2024\/04\/Storage.jpg\",\"keywords\":[\"Object Storage\"],\"articleSection\":[\"Know-how\",\"Produkt-News\"],\"inLanguage\":\"de-DE\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/nine.ch\/de\/v1-to-v2-nine-s3-migration-why-what-how-and-worth\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/nine.ch\/de\/v1-to-v2-nine-s3-migration-why-what-how-and-worth\/\",\"url\":\"https:\/\/nine.ch\/de\/v1-to-v2-nine-s3-migration-why-what-how-and-worth\/\",\"name\":\"Auf 1 folgt 2: Wie wir unser S3-Produkt abgel\u00f6st haben \u2013 warum, was, wie und ob es sich gelohnt hat - Nine\",\"isPartOf\":{\"@id\":\"https:\/\/nine.ch\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/nine.ch\/de\/v1-to-v2-nine-s3-migration-why-what-how-and-worth\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/nine.ch\/de\/v1-to-v2-nine-s3-migration-why-what-how-and-worth\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2024\/04\/Storage.jpg\",\"datePublished\":\"2024-04-25T09:37:21+00:00\",\"dateModified\":\"2024-09-05T09:55:54+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/nine.ch\/de\/v1-to-v2-nine-s3-migration-why-what-how-and-worth\/#breadcrumb\"},\"inLanguage\":\"de-DE\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/nine.ch\/de\/v1-to-v2-nine-s3-migration-why-what-how-and-worth\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de-DE\",\"@id\":\"https:\/\/nine.ch\/de\/v1-to-v2-nine-s3-migration-why-what-how-and-worth\/#primaryimage\",\"url\":\"https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2024\/04\/Storage.jpg\",\"contentUrl\":\"https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2024\/04\/Storage.jpg\",\"width\":1920,\"height\":960},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/nine.ch\/de\/v1-to-v2-nine-s3-migration-why-what-how-and-worth\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/nine.ch\/de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Auf 1 folgt 2: Wie wir unser S3-Produkt abgel\u00f6st haben \u2013 warum, was, wie und ob es sich gelohnt hat\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/nine.ch\/#website\",\"url\":\"https:\/\/nine.ch\/\",\"name\":\"Nine\",\"description\":\"Cloud Navigators\",\"publisher\":{\"@id\":\"https:\/\/nine.ch\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/nine.ch\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de-DE\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/nine.ch\/#organization\",\"name\":\"Nine\",\"url\":\"https:\/\/nine.ch\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de-DE\",\"@id\":\"https:\/\/nine.ch\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2023\/11\/Logo-SVG.svg\",\"contentUrl\":\"https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2023\/11\/Logo-SVG.svg\",\"caption\":\"Nine\"},\"image\":{\"@id\":\"https:\/\/nine.ch\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/NineInternetSolutionsAG\",\"https:\/\/x.com\/nine_ch\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/nine.ch\/#\/schema\/person\/7403102abc4fd4d7e1d204df5ec49a9d\",\"name\":\"Davor Gajic\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de-DE\",\"@id\":\"https:\/\/nine.ch\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/e614ed3cde26a5c7059b7a29dce6ca2c624fa4403fc72cca1dd45ab98cc0fd0b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/e614ed3cde26a5c7059b7a29dce6ca2c624fa4403fc72cca1dd45ab98cc0fd0b?s=96&d=mm&r=g\",\"caption\":\"Davor Gajic\"},\"url\":\"https:\/\/archive.5fcf01f.deploio.app\/de\/author\/davor-gajic\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Auf 1 folgt 2: Wie wir unser S3-Produkt abgel\u00f6st haben \u2013 warum, was, wie und ob es sich gelohnt hat - Nine","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:\/\/nine.ch\/de\/v1-to-v2-nine-s3-migration-why-what-how-and-worth\/","og_locale":"de_DE","og_type":"article","og_title":"Auf 1 folgt 2: Wie wir unser S3-Produkt abgel\u00f6st haben \u2013 warum, was, wie und ob es sich gelohnt hat - Nine","og_description":"Vielleicht haben Sie bereits bemerkt, dass wir unser S3-Produkt \u00fcberarbeitet haben und nun eine Migration zur Version 2 des Produktes m\u00f6glich ist. In diesem Blogbeitrag m\u00f6chten wir die Gr\u00fcnde f\u00fcr diese Entscheidung erl\u00e4utern. Dabei m\u00f6chten wir beleuchten, wie wir die technischen Herausforderungen angegangen sind, und ein Fazit ziehen. Hat sich der Aufwand gelohnt? Also los, [&hellip;]","og_url":"https:\/\/nine.ch\/de\/v1-to-v2-nine-s3-migration-why-what-how-and-worth\/","og_site_name":"Nine","article_publisher":"https:\/\/www.facebook.com\/NineInternetSolutionsAG","article_published_time":"2024-04-25T09:37:21+00:00","article_modified_time":"2024-09-05T09:55:54+00:00","og_image":[{"width":1920,"height":960,"url":"https:\/\/nine.ch\/app\/uploads\/2024\/04\/Storage.jpg","type":"image\/jpeg"}],"author":"Davor Gajic","twitter_card":"summary_large_image","twitter_creator":"@nine_ch","twitter_site":"@nine_ch","twitter_misc":{"Written by":"Davor Gajic","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/nine.ch\/de\/v1-to-v2-nine-s3-migration-why-what-how-and-worth\/#article","isPartOf":{"@id":"https:\/\/nine.ch\/de\/v1-to-v2-nine-s3-migration-why-what-how-and-worth\/"},"author":{"name":"Davor Gajic","@id":"https:\/\/nine.ch\/#\/schema\/person\/7403102abc4fd4d7e1d204df5ec49a9d"},"headline":"Auf 1 folgt 2: Wie wir unser S3-Produkt abgel\u00f6st haben \u2013 warum, was, wie und ob es sich gelohnt hat","datePublished":"2024-04-25T09:37:21+00:00","dateModified":"2024-09-05T09:55:54+00:00","mainEntityOfPage":{"@id":"https:\/\/nine.ch\/de\/v1-to-v2-nine-s3-migration-why-what-how-and-worth\/"},"wordCount":1280,"commentCount":0,"publisher":{"@id":"https:\/\/nine.ch\/#organization"},"image":{"@id":"https:\/\/nine.ch\/de\/v1-to-v2-nine-s3-migration-why-what-how-and-worth\/#primaryimage"},"thumbnailUrl":"https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2024\/04\/Storage.jpg","keywords":["Object Storage"],"articleSection":["Know-how","Produkt-News"],"inLanguage":"de-DE","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/nine.ch\/de\/v1-to-v2-nine-s3-migration-why-what-how-and-worth\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/nine.ch\/de\/v1-to-v2-nine-s3-migration-why-what-how-and-worth\/","url":"https:\/\/nine.ch\/de\/v1-to-v2-nine-s3-migration-why-what-how-and-worth\/","name":"Auf 1 folgt 2: Wie wir unser S3-Produkt abgel\u00f6st haben \u2013 warum, was, wie und ob es sich gelohnt hat - Nine","isPartOf":{"@id":"https:\/\/nine.ch\/#website"},"primaryImageOfPage":{"@id":"https:\/\/nine.ch\/de\/v1-to-v2-nine-s3-migration-why-what-how-and-worth\/#primaryimage"},"image":{"@id":"https:\/\/nine.ch\/de\/v1-to-v2-nine-s3-migration-why-what-how-and-worth\/#primaryimage"},"thumbnailUrl":"https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2024\/04\/Storage.jpg","datePublished":"2024-04-25T09:37:21+00:00","dateModified":"2024-09-05T09:55:54+00:00","breadcrumb":{"@id":"https:\/\/nine.ch\/de\/v1-to-v2-nine-s3-migration-why-what-how-and-worth\/#breadcrumb"},"inLanguage":"de-DE","potentialAction":[{"@type":"ReadAction","target":["https:\/\/nine.ch\/de\/v1-to-v2-nine-s3-migration-why-what-how-and-worth\/"]}]},{"@type":"ImageObject","inLanguage":"de-DE","@id":"https:\/\/nine.ch\/de\/v1-to-v2-nine-s3-migration-why-what-how-and-worth\/#primaryimage","url":"https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2024\/04\/Storage.jpg","contentUrl":"https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2024\/04\/Storage.jpg","width":1920,"height":960},{"@type":"BreadcrumbList","@id":"https:\/\/nine.ch\/de\/v1-to-v2-nine-s3-migration-why-what-how-and-worth\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/nine.ch\/de\/"},{"@type":"ListItem","position":2,"name":"Auf 1 folgt 2: Wie wir unser S3-Produkt abgel\u00f6st haben \u2013 warum, was, wie und ob es sich gelohnt hat"}]},{"@type":"WebSite","@id":"https:\/\/nine.ch\/#website","url":"https:\/\/nine.ch\/","name":"Nine","description":"Cloud Navigators","publisher":{"@id":"https:\/\/nine.ch\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/nine.ch\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de-DE"},{"@type":"Organization","@id":"https:\/\/nine.ch\/#organization","name":"Nine","url":"https:\/\/nine.ch\/","logo":{"@type":"ImageObject","inLanguage":"de-DE","@id":"https:\/\/nine.ch\/#\/schema\/logo\/image\/","url":"https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2023\/11\/Logo-SVG.svg","contentUrl":"https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2023\/11\/Logo-SVG.svg","caption":"Nine"},"image":{"@id":"https:\/\/nine.ch\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/NineInternetSolutionsAG","https:\/\/x.com\/nine_ch"]},{"@type":"Person","@id":"https:\/\/nine.ch\/#\/schema\/person\/7403102abc4fd4d7e1d204df5ec49a9d","name":"Davor Gajic","image":{"@type":"ImageObject","inLanguage":"de-DE","@id":"https:\/\/nine.ch\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/e614ed3cde26a5c7059b7a29dce6ca2c624fa4403fc72cca1dd45ab98cc0fd0b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e614ed3cde26a5c7059b7a29dce6ca2c624fa4403fc72cca1dd45ab98cc0fd0b?s=96&d=mm&r=g","caption":"Davor Gajic"},"url":"https:\/\/archive.5fcf01f.deploio.app\/de\/author\/davor-gajic\/"}]}},"_links":{"self":[{"href":"https:\/\/archive.5fcf01f.deploio.app\/de\/wp-json\/wp\/v2\/posts\/2075","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/archive.5fcf01f.deploio.app\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/archive.5fcf01f.deploio.app\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/archive.5fcf01f.deploio.app\/de\/wp-json\/wp\/v2\/users\/18"}],"replies":[{"embeddable":true,"href":"https:\/\/archive.5fcf01f.deploio.app\/de\/wp-json\/wp\/v2\/comments?post=2075"}],"version-history":[{"count":1,"href":"https:\/\/archive.5fcf01f.deploio.app\/de\/wp-json\/wp\/v2\/posts\/2075\/revisions"}],"predecessor-version":[{"id":3532,"href":"https:\/\/archive.5fcf01f.deploio.app\/de\/wp-json\/wp\/v2\/posts\/2075\/revisions\/3532"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/archive.5fcf01f.deploio.app\/de\/wp-json\/wp\/v2\/media\/2021"}],"wp:attachment":[{"href":"https:\/\/archive.5fcf01f.deploio.app\/de\/wp-json\/wp\/v2\/media?parent=2075"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/archive.5fcf01f.deploio.app\/de\/wp-json\/wp\/v2\/categories?post=2075"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/archive.5fcf01f.deploio.app\/de\/wp-json\/wp\/v2\/tags?post=2075"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}