Laden...

Azure: Bestehende Webseite hosten bzw. migrieren - Erfahrungen und Kosten

Erstellt von teebeast vor 4 Jahren Letzter Beitrag vor 4 Jahren 2.325 Views
T
teebeast Themenstarter:in
50 Beiträge seit 2010
vor 4 Jahren
Azure: Bestehende Webseite hosten bzw. migrieren - Erfahrungen und Kosten

Hallo zusammen,

ich habe immer wieder mal - mit wenig Erfolg - mir überlegt, wie ich eine bestehende Webseite nach Azure bekommen könnte bzw. ob Azure für mich überhaupt eine geeignete Wahl ist. Vor allem aus dem finanziellen Aspekt heraus. Gerade hier habe ich das Gefühl, dass man ganz schnell in finanzielle Dimensionen vorstößt, die für ein Freizeitprojekt nicht akzeptabel ist.

Nun kurz mal zur Bestandsaufnahme:

  • Es kommt aktuell ASP.NET MVC 5, EF6 sowie MySQL als auch SqlCE zum Einsatz
  • Für Daten werden ca. 1 GB benötigt - hauptsächlich Galeriebilder
  • Die Datenbanken haben jeweils eine Größe von ca. 20 MB. Hier werden hauptsächlich Informationen zu Mannschaften, Spielpläne als auch News und Termine vorgehalten
  • Die Zugriffzahlen auf die Webseite sind vernachlässigbar (< 100 pro Tag)

Sofern aus Eurer Sicht Azure in Frage kommen würde, was wäre dann die bei Azure zu wählenden Komponenten, um möglichst preisgünstig zu sein? Im Zuge der Umstellung wird auch eine Migration des Projektes nach .NET Core 2.2+ erfolgen. Bei der Wahl der Datenhaltung bin ich flexibel.

Über persönliche Erfahrungen sowie Vorschläge als auch Links zum Thema Azure oder auch Migration würde ich mich freuen. Gerne auch, ob Euch die Komplexität des Angebotes ebenfalls erschlägt.

teebeast

16.806 Beiträge seit 2008
vor 4 Jahren

Vor allem aus dem finanziellen Aspekt heraus. Gerade hier habe ich das Gefühl, dass man ganz schnell in finanzielle Dimensionen vorstößt, die für ein Freizeitprojekt nicht akzeptabel ist.

Das kann nicht passieren, wenn man richtig plant.

Sofern aus Eurer Sicht Azure in Frage kommen würde, was wäre dann die bei Azure zu wählenden Komponenten, um möglichst preisgünstig zu sein?

Die Technologieauswahl bei Dir erfordert natürlich eine Runtime, da ASP.NET.
Runtimes sind generell Ressourcen-Gebunden in jeder Cloud und damit zahlst Du auch Ressourcen, die Du gar nicht benötigst - vor allem bei dem wenigen Traffic.
Du wirst also vor allem Idletime bezahlen.

Sehr ungünstig ist, dass offensichtlich Galeriebilder in Deiner WebApp liegen - das macht es prinzipiell teurer.
Statische Dateien wie Bilder sollten auf einem Storage liegen. Dort ist der Speicher günstiger, Du kannst informationen länger Cachen, weniger Ressourcen des Webservers und auch weniger Traffic -> Kostenersparnis.

Ein einfaches "Lift and Shift" ohne Anpassungen an die Cloud Technologien wird immer teurer ablaufen.
Immer.

Auch kann man eben OnPrem Hosting mit Cloud nicht 1:1 vergleichen, weil die Cloud aufgrund der Natur schon viel mehr Features und Management mitbringt, um die man sich sonst selbst kümmern muss.

Beispiel:
Dieses Forum läuft auf PHP in einer Web App; wir haben eben viel dynamischen Content aus Datenbanken.

Mein Blog oder azuresaturday.de haben wir jedoch mit statischen Generatoren gemacht.
Mein Blog mit einer eigenen Engine und azuresaturday.de mit Hugo.

Statische Generatoren erzeugen durch ein Template HTML Code, das dann sehr Kostengünstig auf einem Blob Storage liegen kann.
Wir haben bei azuresaturday 1000+ Zugriffe derzeit am Tag und uns kostet die Webseite 2$ im Monat (https://melcher.dev/2019/03/running-hugo-on-azure-for-2-a-month/).

Die Frage: brauchst Du wirklich eine Datenbank und ASP.NET Core, oder ist das nicht etwas oversized?
Kannst Du nicht einfach die "Daten" in einer YAML halten und durch einen statischen Generator wie WYAM oder Hugo jagen und Du hast am Ende nur eine statische Seite?

Denn Du zahlst natürlich auch die Runtime auf Azure einer Web App - ob Du sie nutzt oder nicht.

W
955 Beiträge seit 2010
vor 4 Jahren

Man könnte sich mal überlegen ob serverless computing (azure functions) hier sinnvoll ist. Ich weiß jedoch nicht welche Nachteile sich ergeben wenn man einen kompletten Server damit abbildet.

16.806 Beiträge seit 2008
vor 4 Jahren

Ganz wichtig bevor hier ein falsches Verständnis versteht: Serverless ist nicht gleich Azure Functions!
Serverless bedeutet einfach nur, dass Server wegabstrahiert werden! Azure Functions erfüllt dieses Kriterium wie viele andere Dienste in Azure/AWS/GCP auch.

Es gibt derzeit kein wirklich isoliertes Framework für dynamische Web Apps für Functions.
In AWS gibt es aber die Möglichkeit die Startpipeline so zu ändern, dass ASP.NET Core in AWS Lambda läuft und als Function ausgeführt wird.
Das erfolgt über den Application EntryPoint

public class LambdaEntryPoint : Amazon.Lambda.AspNetCoreServer.APIGatewayProxyFunction
{
    protected override void Init(IWebHostBuilder builder)
    {
        builder
            .UseStartup<Startup>();
    }
}

Weiter vebreitet ist da eher, dass eine Function bei einer Write-Operation gestartet wird, um dann neuen statischen Content zu generieren, der dann auf einem Blob Storage abgelegt wird und dann statisch zum User geht.
So funktionieren übrigens auch die meisten Content Systeme von Nachrichten-Websites.

T
teebeast Themenstarter:in
50 Beiträge seit 2010
vor 4 Jahren

Vielen Dank für Eure Antworten. Ich muss mir mal Gedanken machen, ob Azure für das Projekt überhaupt die geeignete Plattform ist. Ich finde Azure eine sehr interessante Plattform und wollte mal etwas Erfahrungen sammeln.

Mein Focus liegt dann aber doch mehr auf dem Sammeln praktischen Erfahrungen mit .NET Core. Wenn das in einem finanziell vernünftigen Rahmen nicht vereinbar ist, dann werde ich wohl zu klassischen Hosting-Lösungen greifen. Hier gibt es passende Angebote bereits ab 4 Euro. Wobei ich für das Sammeln von Erfahrungen mit der Plattform durchaus bereit wäre, den einen oder anderen Euro mehr zu investieren. Auch um mal mit anderen Lösungsansätzen in Berührung zu kommen.

Ein einfaches "Lift and Shift" ohne Anpassungen an die Cloud Technologien wird immer teurer ablaufen.
Immer.

Das ist mir schon klar. Grundsätzlich bin ich hier schon offen für alternative Ansätze. Nur welche die geeigneten sind, ist mir nicht so ganz klar. Ich werde mich hier bei Gelegenheit noch einmal etwas intensiver befassen.

Mein Blog oder azuresaturday.de haben wir jedoch mit statischen Generatoren gemacht.
Mein Blog mit einer eigenen Engine und azuresaturday.de mit Hugo.

Statische Generatoren erzeugen durch ein Template HTML Code, das dann sehr Kostengünstig auf einem Blob Storage liegen kann.

Was in meinem Fall eher gegen eine statische Webseite spricht, ist der Einsatz einer kleinen Benutzerverwaltung zur Inhaltspflege. Als Ersteller der Webseite möchte ich mich nicht um die Contentpflege kümmern.

Derzeit hoste ich noch auf einem virtuellen Windows 2008 R2 Server. Etwas ändern muss sich über kurz oder lang definitiv. Perspektivisch ist die Umgebung jedenfalls nicht.

teebeast

16.806 Beiträge seit 2008
vor 4 Jahren

Hier gibt es passende Angebote bereits ab 4 Euro.

4€? Mit Windows (weil Du von Server 2008 sprich, dessen Support im Januar 2020 eingestellt wird).
Rein interessehalber: wo?
Allein die Windows Lizenz dürfte eigentlich schon teurer sein.

Nur welche die geeigneten sind, ist mir nicht so ganz klar.

Das kommt eben auf die Anfordungen an.

Was in meinem Fall eher gegen eine statische Webseite spricht, ist der Einsatz einer kleinen Benutzerverwaltung zur Inhaltspflege.

No. Du musst nur evtl. einfach die Inhalte (wo)anders pflegen; und dann daraus beim Speichern statischen Inhalt erzeugen.
Im Prinzip, wie genannt, funktionieren so die meisten Nachrichten-Webseites.
Kommt aber eben auf die Anfordungen der Content-Schreiber an.

T
teebeast Themenstarter:in
50 Beiträge seit 2010
vor 4 Jahren

Ich glaube ich habe mich mit dem Hosting-Angebot etwas unglücklich ausgedrückt. Es würde sich dann in dem Fall nicht mehr um einen Server handeln, sondern nur um ein Webhosting-Paket. Aber es würde überraschenderweise .NET-Core mit anbieten.

https://www.ionos.de/hosting/webhosting

Ob es dann letztendlich meinen Anforderungen entsprechen würde, bleibt noch zu prüfen. Irgend eine Kröte muss man bei solchen Angeboten immer schlucken.

Du musst nur evtl. einfach die Inhalte (wo)anders pflegen; und dann daraus beim Speichern statischen Inhalt erzeugen.

Hm, aber am Ende des Tages brauche ich dann doch eine dynamische Umgebung, wo die Inhalte geflegt werden können. Das verschiebt doch nur die Problematik und am Ende habe ich zwei Ökosysteme zu pflegen. Den einzigen Vorteil hier sehe ich in der Entkopplung zwischen Contentpflege und Contentdarstellung.

16.806 Beiträge seit 2008
vor 4 Jahren

Aber es würde überraschenderweise .NET-Core mit anbieten.

Aufgrund der Art und Weise, wie .NET Core funktioniert, ist das für die Hoster quasi äquivalent zu PHP und daher bieten immer mehr Hosting Anbieter dafür auch äquivalente Angebote an.

In Azure gibts eben Features per default, die man bei solchen Angeboten nicht hat.
Ich würde mir aber auch eine noch abgespecktere Web App wünschen, sodass sich Azure auch für Mini-Mini-Mini Dinge lohnen.

Hm, aber am Ende des Tages brauche ich dann doch eine dynamische Umgebung, wo die Inhalte geflegt werden können.

Für das Erstellen. Aber nicht für das Ausliefern; hier ist ja nichts mehr dynamisch.

Wir haben zB. Content Writern einen Markdown-Editor zur Verfügung gestellt, der die Dateien direkt in Git eincheckt.
Beim Commit wird dann ein Build gerstartet, der aus den Markdown-Dateien eben statische Files generiert (im Prinzip WYAM).

Für den Content Writer ist nicht ersichtlich, dass beim "Save" ein Git Push erfolgt.
Das Einzige, das für ihn anders ist, dass er nicht sofort beim Save die Sachen online hat, sondern 5 Min warten muss.

Aber ja: kommt immer auf den Benutzerkreis und die totalen Anforderungen hin, was man letzten Endes braucht.