
Disaster & Zwischenfälle – Das Kubernetes Cluster DIY Pt. 3
Ein Kubernetes-Cluster ist zwar sehr resilient, aber es gibt dennoch einige Vorfälle, die potentiell schwerwiegende Auswirkungen haben können. In diesem Artikel werden wir drei potentielle
Im zweiten Teil unserer Case Study zum Eventbranchenverzeichnis von memo-media gehen wir detaillierter auf die praktischen Umsetzungen in den Bereichen Usability und Betrieb der Software ein.
Das User Interface von Startseite, Suchergebnisseite und Detailseite erhielt ein Redesign
Neues Navigationskonzept der Kategoriensuche: Unterkategorien der ersten Ebene werden direkt beim Klick auf die Hauptkategorie angezeigt. In der mobilen Ansicht gelangen Nutzer*innen mit dem Klick auf eine Hauptkategorie direkt auf die Suchergebnisseite. Statt Bildern wird nun eine neue Ikonographie für die Kategorievorschau genutzt. Dies sorgt für einen moderneren Webauftritt.
Andere Darstellung der Suchergebnisse: Anwender*innen können nun einfach zwischen den Kategorien (linke Sidebar) hin- und herspringen ohne den Suchkontext zu verlieren.
Durch eine Sortierungsoption kann nun erstmalig nach Relevanz und Bewertung sortiert werden.
Ortsnahe Anbieter werden zuerst angezeigt.
Der Suchradius kann durch einen Slider erweitert werden.
Ein “Back-To-Top”-Button bringt den Nutzer mit einem Klick zum Seitenanfang und erleichtert somit das Navigieren.
Die Kartenansicht ist durch eine Schaltfläche erreichbar und User haben die Möglichkeit zwischen einer Listen- und Kartenansicht umzuschalten.
Anbieterseite/Detailseite: Aus den User-Tests wussten wir, dass Bilder für die Suchenden wichtig sind, um einen ersten Eindruck zu gewinnen. Daher platzierten wir die Bildergalerie gleich zu Anfang der Seite. Auch der Bewertungsbereich am Ende der Detailseite erhielt einen neuen visuellen Anstrich (siehe Screenshot 5).
Das Alt-System wurde auf einem in die Jahre gekommenen On-Premise-System betrieben. Von Beginn an wurde geplant, mehrere parallele Deployments zu nutzen. Da außerdem die Nutzung von externen Services (Geolocation, ML) nicht ausgeschlossen werden sollte, wurde ein Cloud-Offering als initiale Betriebsplatform gesetzt.
Im aktuellen Fall ist diese eine Kombination aus Cloud SQL (Postgres 13) und Google Cloud Run. Dieses Setup garantiert weiterhin, dass möglichen Lastspitzen bei vielen Anfragen durch das automatische Starten von weiteren Instanzen abgefangen werden, ohne dass das spätere Produktiv-Deployment nicht mehr erreichbar ist.
Wie in den meisten Projekten bei Inspired arbeiteten wir mit einem CI/CD-Setup. Dieses stellt den aktuellen Stand des Hauptentwicklungzweiges automatisiert in einem Dev-Deployment für alle im Projekt zur Verfügung. Außerdem bildet es die Basis der regelmäßigen Sprint-Reviews und ermöglichte uns auch in diesem Projekt wieder, frühzeitig Feedback zu erhalten und zeitnah umzusetzen.
Da wir in der initialen Phase Alt-System und Neu-Entwicklung parallel betrieben, galt es auch hier eine Möglichkeit zu schaffen, die Daten in beiden Systemen aktuell zu halten.
Bis kurz vor der Live-Schaltung, war das Alt-System noch als treibendes System für Datenänderungen gesetzt. So wurde im Laufe der Umsetzung ebenfalls eine ETL-Pipeline erstellt, die mehrmals am Tag einen Snapshot der Daten vom Alt-System erstellt, diesen ensprechend der neuen Anforderungen des Neu-Systems umwandelt (Full-Text Index/Erstellung der Geo-Koordinaten/Normalisierung der Daten) und automatisiert in die Cloud-SQL-Instanz importiert. Das Ziel war, zu jedem Zeitpunkt Zugriff auf einen aktuellen, stabilen Entwicklungsstand zu haben.
Zum Zeitpunkt der Umsetzung des Produktiv-Deployment galt es nur noch, einen fixen Code-Stand zu definieren (prod-* tags). Von diesem wurde manuell jeweils ein Produktiv-Release auf ein identisches Googe-Cloud-Setup ausgerollt.
Ein Verzeichnis lebt zu einem großen Teil von der Platzierung eigener Links in der Suchergebnis-Seite von z.B. Google. Die Zielsetzung des Projektes war die Ablösung eines Alt-Systems, ohne Positionierung im Index globaler Suchmaschinen zu verlieren). In der Übergangsphase war deshalb besondere Sorgfalt notwendig.
Die initiale Entwicklung wurde in eine separate DEV-Umgebung deployed, die unter einer eigenen Domain erreichbar war. Das Altsystem lief unverändert weiter.
Während der gesamten Entwicklung wurde der aktuelle Entwicklungsstand durch ein externes SEO-Tool analysiert und kontinuierlich optimiert, um mindestens den gleichen Stand wie das Alt-System zu erreichen. Dies betraf insbesondere:
korrekter Inhalt von Meta-Tags auf den einzelnen Detail-Seiten
direkte Einstiegspunkte für spezielle Seiten (Listing für einen bestimmten Ort z.B. “in Köln”, Listing für bestimmte Kategorieren z.B. “Eventlocations” und Kategorien in einem bestimmten Ort – z.B. “Eventlocations in Köln”). Insbesondere mussten hier auch vom Alt-System bereits indizierte Links beachtet werden.
Diese Einstiegsseiten liefern neben der Suche mit Queries (per Suchbegriff, Ort, Umkreis) eine weitere Möglichkeit an die Suchergebnisse zu gelangen.
Nachdem die Analyse durch die SEO-Tools zu einem akzeptablen Ergebnis führte, wurde die Domain vom Alt-System auf ein produktives Deployment des neues Systems umgestellt.
Das neue System ist nun ein paar Monate online und das Resultat ist bislang:
Visibility der Seite in Suchergebnissen ist von 19 auf 28 gestiegen ↗.
Die Anzahl der Active Users ist um 60% gestiegen ↗.
Erstellen eines neuen Self-Service-Kunden-Portals, zur Registrierung von neuen Kunden und die Verwaltung von Einträgen, News, Events und Subscriptions.
Umbau des Adresspickers für einen späteren Zeitpunkt geplant. Hierzu sind weitere Konzeption und Planung nötig.
Optimierung der Darstellung von Suchergebnissen. Über die AI-Funktionen wie Google Vision (Link) können wir Tags über den Inhalt von Bildern generieren und diese dann sowohl dem Suchindex zuordnen, als auch bei der Anzeige der Suchergebnisse passendere Bilder präsentieren. Erste Tests hierfür sind vielversprechend:
Sophie arbeitet als UX Designerin bei inspired consulting. Sie unterstützt und begleitet die Kunden in der Konzeption und Realisierung von digitalen Produkten. Um die Feebackschleife kurz zu halten, setzt sie dabei auf klickbare Prototypen und zeitnahe Verprobung durch User-Tests.
Philipp ist IT-Consultant bei Inspired und Mit-Gründer von Connected Streams. Neben der Konzeption und der Entwicklung von verteilten Anwendungen liegen seine weiteren Schwerpunkte auf dem Entwurf und dem Setup von Umgebungen für Continuous Integration und Delivery und auf IT-Infrastrukturen.
Ein Kubernetes-Cluster ist zwar sehr resilient, aber es gibt dennoch einige Vorfälle, die potentiell schwerwiegende Auswirkungen haben können. In diesem Artikel werden wir drei potentielle
Elixir’s interactive shell, known as IEx, is a powerful tool that allows Elixir developers to quickly test and evaluate code snippets, define and test functions,
Wenn es um die Verwaltung eines Kubernetes-Clusters geht, ist das passende Tooling besonders wichtig. Es hat Auswirkungen auf die Komplexität der Verwaltung generell, die Automatisierbarkeit,
Bevor wir uns in die Unendlichkeit von Kubernetes vertiefen, hier ein kurzer, aber mMn wichtiger Überblick: Hetzner Role IaaS Beschreibung/Aufgabe Servers/Virtualization Storage Cluster Volumes Networking
Cookie | Dauer | Beschreibung |
---|---|---|
cookielawinfo-checbox-analytics | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics". |
cookielawinfo-checbox-functional | 11 months | The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional". |
cookielawinfo-checbox-others | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other. |
cookielawinfo-checkbox-advertisement | 1 year | Set by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Advertisement" category . |
cookielawinfo-checkbox-necessary | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary". |
cookielawinfo-checkbox-performance | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance". |
elementor | never | This cookie is used by the website's WordPress theme. It allows the website owner to implement or change the website's content in real-time. |
viewed_cookie_policy | 11 months | The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data. |
Cookie | Dauer | Beschreibung |
---|---|---|
__cf_bm | 30 minutes | This cookie, set by Cloudflare, is used to support Cloudflare Bot Management. |
Cookie | Dauer | Beschreibung |
---|---|---|
CONSENT | 2 years | YouTube sets this cookie via embedded youtube-videos and registers anonymous statistical data. |
Cookie | Dauer | Beschreibung |
---|---|---|
VISITOR_INFO1_LIVE | 5 months 27 days | A cookie set by YouTube to measure bandwidth that determines whether the user gets the new or old player interface. |
YSC | session | YSC cookie is set by Youtube and is used to track the views of embedded videos on Youtube pages. |
yt-remote-connected-devices | never | YouTube sets this cookie to store the video preferences of the user using embedded YouTube video. |
yt-remote-device-id | never | YouTube sets this cookie to store the video preferences of the user using embedded YouTube video. |