myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » myCSharp.de » Ankündigungen » mycsharp.de ist nun auf Azure umgezogen
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

mycsharp.de ist nun auf Azure umgezogen

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 12.948
Herkunft: Stuttgart/Stockholm


Abt ist offline

mycsharp.de ist nun auf Azure umgezogen

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo zusammen,

wie manche bereits bemerkt haben, haben wir  nach unserer Ankündigung vor zwei Wochen am Samstag erfolgreich mycsharp.de auf Azure umgezogen.

Warum Cloud bzw. Azure?

Das Forum war bisher auf einem einzelnen, nicht-redundanten virtuellen Server, den wir selbst warten, sichern, aktualisieren und betreiben mussten.
Wir alle betreiben das Forum aber in der Freizeit und wollen dementsprechend so wenig Zeit wie Möglich in das Management des Forums investieren.

Daher waren wir schon länger damit beschäftigt das Forum technisch so zu verändern, dass es sich auf Azure im Rahmen eines Lift and Shifts einfach migrieren lässt.
Probleme des Forums, die wir gelöst haben, waren:
  • Bisher wurden alle User-Dateien (Attachements, Avatare) direkt im Root der Applikation gespeichert.
    Wir haben das Forum an den gewissen Stellen nun so umgeschrieben, dass diese Dateien auf einem  Azure Blob gespeichert werden und nicht mehr direkt in der Applikation selbst.
  • Durch das Auslagern der Dateien konnten wir nun den Quellcode des Forums sauber in  Azure DevOps mit einer Quellcodeverwaltung bearbeiten, ohne, dass dann Avatare oder Attachments teil der Quellcodeverwaltung sein müssen
  • Wir können damit das Forum nun in mehreren Stages betreiben (Dev/Test/Prod) bzw. im neueren Sprachgebraucht  Deployment Rings.
  • Eine Änderung des Quellcodes ist binnen 30 Sekunden auf unserem Testsystem und binnen 2 Sekunden auf dem Produktivsystem.
    Dank  Deployment Slots haben wir dabei keinerlei Downtime.
  • Durch das Auslagen der Dateien auf einen Blob Storage werden diese auch nicht mehr direkt durch die Webanwendung ausgeliefert, sondern durch einen CDN ( Content Delivery Network). Daher werdet ihr im Networking des Forums nun auch den Zugriff auf cdn.mycsharp.de sehen.
  • Der CDN cached dabei statische Ressourcen 30 Tage (bisher 2h) und User-Dateien 7 Tage (bisher gar nicht). Dadurch hat der Webserver weniger Last, der Traffic sinkt.
  • Durch die geringere Last des Webservers konnen wir das Forum nun mit geringeren Ressourcen betreiben und Kosten sparen.
  • Nebeneffekt: das Forum ist insgesamt spürbar schneller.
Technisch gesehen basiert das Forum nun auf:
  • Quellcode via Git auf Azure DevOps mit automatischer Build- und Release Pipeline
  • Azure Web Apps mit Deployment Slots und Firewall
  • Azure Managed MySQL inkl. Managed Backups und Firewall
  • Azure Blob Storage als CDN inkl. Managed Snapshots
  • CloudFlare für Zugriffsschutz und zusätzlichem Caching
Wir haben damit eine Basis, die es uns insgesamt vereinfacht langfristig von phpBB ganz weg zu kommen, woran wir parallel bereits arbeiten.

Weitere Anpassungen
  • Die Links in der Navigation wurden aktualisiert bzw. veraltete Links entfernt
  • Die Minicity wurde aus dem Forum entfernt
  • Zugriffe auf statische Dateien auf  www.mcsharp.de werden auf den CDN automatisch umgeleitet.
Sollte irgendjemand einen Fehler finden (falsche Verlinkung etc...) bitte  Kontakt zum Team aufnehmen.

Besten Dank und viele Grüße
myCSharp.de-Team
06.05.2019 13:52 Beiträge des Benutzers | zu Buddylist hinzufügen
LaTino LaTino ist männlich
myCSharp.de-Poweruser/ Experte

avatar-4122.png


Dabei seit: 03.04.2006
Beiträge: 2.971
Entwicklungsumgebung: Rider / VS2019 / VS Code
Herkunft: Thüringen


LaTino ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Tolle Arbeit. Muss auch mal gesagt werden.

LaTino
07.05.2019 07:51 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
toxic
myCSharp.de-Mitglied

Dabei seit: 21.04.2010
Beiträge: 64
Entwicklungsumgebung: VS2012
Herkunft: Franken ;-)


toxic ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von LaTino:
Tolle Arbeit. Muss auch mal gesagt werden.

Und Dankeschön für die Tolle Arbeit! großes Grinsen Daumen hoch
07.05.2019 14:10 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
t2t t2t ist männlich
myCSharp.de-Mitglied

Dabei seit: 22.10.2007
Beiträge: 413
Entwicklungsumgebung: VS2017
Herkunft: Hamburg


t2t ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Bravo! Super Arbeit. Man könnte meinen ihr habt ein paar erfahrene Berater in euren Reihen, die erfolgreich eine Legacy App ins Jahr 2019 portiert haben ;-)
07.05.2019 16:07 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 12.948
Herkunft: Stuttgart/Stockholm

Themenstarter Thema begonnen von Abt

Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

So ist das - auch wenn Legacy-Work immer weniger wird; Gott sei Dank :)
07.05.2019 17:01 Beiträge des Benutzers | zu Buddylist hinzufügen
Peter Bucher Peter Bucher ist männlich
myCSharp.de-Poweruser/ Experte

avatar-4103.jpg


Dabei seit: 17.03.2005
Beiträge: 5.880
Entwicklungsumgebung: VS 2017 / VS Code
Herkunft: Zentralschweiz


Peter Bucher ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Top Abt! :-)
08.05.2019 12:44 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
trib trib ist männlich
myCSharp.de-Mitglied

Dabei seit: 22.04.2008
Beiträge: 655
Entwicklungsumgebung: C#


trib ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Da kommt man nichts ahnend aus dem Urlaub zurück und stellt fest:
Nix!

So muss ein Umzug laufen! Klasse Arbeit & Danke :)
13.05.2019 09:33 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 12.948
Herkunft: Stuttgart/Stockholm

Themenstarter Thema begonnen von Abt

Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Ich wurde nun ein paar mal angeschrieben, wie wir die Azure DevOps Pipelines konfiguriert haben: sehr simpel.

- Nach einem Build (gegen den master-branch,  GitHub Flow) wird automatisch ein Release auf unsere Test WebApp gespielt.
- Sollte dies positiv sein ist der nächste Schritt, dass auf eine Staging WebApp deployed wird. Diese Staging WebApp ist ein  Deployment Slot
- Anschließend laufen ein paar Tests gegen die Staging WebApp
- Nun erfolgt ein Slot Swap von Staging auf Production

Mit dem Setup haben wir technisch gesehen drei verschiedene WebApps, die vollständig getrennt laufen und angesprochen werden.
Der Deployment Slot sorgt dafür, dass nach einem Deployment die WebApp wieder läuft und es keinen Cold Start gibt, sobald User drauf zugreifen; zeitgleich sorgt der Slot Swap dafür, dass keiner das Deployment selbst bemerkt (außer wir haben in der App mist gebaut): es gibt keinerlei Downtime.
Ist nichts anderes als zu einem bestimmten Moment die User nicht mehr auf App A sondern auf App B zu leiten - alles "under the hood".

Wird prinzipiell alles in Azure DevOps konfiguriert und sieht dann so aus:

Abt hat dieses Bild (verkleinerte Version) angehängt:
2019-05-22 10_53_56-myCSharp-Azure - Pipelines.png
Volle Bildgröße

22.05.2019 11:00 Beiträge des Benutzers | zu Buddylist hinzufügen
t2t t2t ist männlich
myCSharp.de-Mitglied

Dabei seit: 22.10.2007
Beiträge: 413
Entwicklungsumgebung: VS2017
Herkunft: Hamburg


t2t ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Sehr cool. Erfolgt der Swap automatisch oder durch ein manuelles "approval"?
27.05.2019 17:38 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 12.948
Herkunft: Stuttgart/Stockholm

Themenstarter Thema begonnen von Abt

Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Automatisch wäre in diesem Fall gefährlich - die bescheidene Forenquellcode-Basis besitzt keinerlei Tests für die Runtime selbst ;-) Erfolgt daher manuell.
Siehst im Bild auch an den Haken vor dem People-Icon.
27.05.2019 17:51 Beiträge des Benutzers | zu Buddylist hinzufügen
Zwischen diesen beiden Beiträgen liegt mehr als ein Monat.
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 12.948
Herkunft: Stuttgart/Stockholm

Themenstarter Thema begonnen von Abt

Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Achtung

Leider sind wir heute morgen in unerwartete Datenbank-Limits gelaufen, weshalb das Forum extrem träge war.

Das Forum lief bisher auf einem Azure MySQL Basic, was prinzipiell mehr Performance hat als unser alter MySQL Server.
Trotzdem hatte dies durch die unerwarteten Wachstumszahlen der Anfragen wohl nicht mehr gerreicht, sodass wir hier in Limits gelaufen sind.
Das Monitoring hatte dazu auch angeschlagen - nur die Reaktionszeit war hier Arbeitsbedingt nicht lang genug.

Da keine automatische Skalierung von Azure MySQL Basic auf Azure MySQL General Purpose möglich ist (leider steht in der Doku nicht wieso), mussten wir erneut manuell die Datenbank migrieren auf das höhere Skalierungsmodell.

Das Forum war daher ca. 3 Stunden schlecht erreichbar (Antwortzeiten zwischen 10 Sekunden und 3 Minuten) und eine Stunde durch die Migration down.

Sorry dafür; Lessons learned ;-)
17.07.2019 12:44 Beiträge des Benutzers | zu Buddylist hinzufügen
T-Virus T-Virus ist männlich
myCSharp.de-Mitglied

Dabei seit: 17.04.2008
Beiträge: 1.287
Entwicklungsumgebung: Visual Studio, Codeblocks, Edi
Herkunft: Nordhausen, Nörten-Hardenberg


T-Virus ist offline Füge T-Virus Deiner Kontaktliste hinzu

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Kann passieren.
Und einige Stunden werden wir ohne das Forum bestimmt mal auskommen können :)

T-Virus
17.07.2019 14:08 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Th69
myCSharp.de-Poweruser/ Experte

avatar-2578.jpg


Dabei seit: 01.04.2008
Beiträge: 3.334
Entwicklungsumgebung: Visual Studio 2015/17


Th69 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Und ich wollte schon einen Bug-Report schreiben, aber es kam dann ein Netzwerkfehler (Timeout) ;-).

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Th69 am 17.07.2019 14:47.

17.07.2019 14:47 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
dr4g0n76
myCSharp.de-Poweruser/ Experte

avatar-1768.jpg


Dabei seit: 07.07.2005
Beiträge: 2.880
Entwicklungsumgebung: SharpDevelop/VS.NET
Herkunft: Deutschland


dr4g0n76 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Auch von mir: ebenfalls danke dafür. :-)
17.07.2019 14:56 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 4 Monate.
Der letzte Beitrag ist älter als 2 Monate.
Antwort erstellen


© Copyright 2003-2019 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 19.09.2019 21:10