close
Concept of a man follows the right way

Wahrscheinlich ist der eine oder andere schon mit der Frage konfrontiert gewesen, was denn eigentlich etwas in Azure kostet. Die Antwort darauf, ist – wie überraschend – gar nicht einfach. Wen es aber interessiert, der sollte jetzt unbedingt weiterlesen…

Auch Lizenzierungs-Spezialisten tun sich schwer die richtige Antwort zu finden. Denn wie im richtigen Leben ist es ja davon abhängig was ich benötige und brauche.

Als Analogie wird sehr oft eine Reise herangezogen. Als Beispiel möchte ich von Wien nach Innsbruck fahren. Das „Wie“ ist hier sehr ausschlaggebend. Es gibt so viele Möglichkeiten, die man zudem auch noch miteinander kombinieren kann. Per Bahn, per Auto (Benzin, Diesel oder E-Auto), mit dem Flugzeug oder gar zu Fuß oder mit dem Fahrrad. Vielleicht möchte ich ja Teile der Strecke mit dem Auto fahren, dann umsteigen auf die Bahn (weil ich ja eine Vorteilskarte besitze und hier die Kosten schon mal reduziere) und den Rest mit dem Fahrrad zurücklegen.

Man sieht auch hier ist es gar nicht einfach, wenn man genau hinsieht, zu sagen, was mir die Reise nach Innsbruck kosten wird. Sehr ähnlich verhält sich die Sache auch mit dem Kunden der Azure nutzen möchte.

Um auf eine Antwort zu kommen, braucht man also zunächst ein Ziel und außerdem auch eine ungefähre Annahme über das „Was und Wie“. Wie gut, dass wir unlängst eine Anforderung hatten, die uns dazu gezwungen hat mal eine Rechnung mit Annahmen durchzuführen.

Unser Szenario – Anforderung 

Wir hatten also unlängst die Anforderung, Funktionalitäten eines On-Premises Systems, das uns Web Services anbietet auch selektiv über die Cloud, d.h. im Speziellen über Microsoft Azure zur Verfügung zu stellen.

Die Idee war also ein Art Service zu schreiben, das es uns ermöglicht das Backend Service in der On-Premises Umgebung aufzurufen. Was sich hier geradezu aufdrängt sind Azure Functions. Serverless REST Services, die man damit implementieren kann und das, wenn man so will, auch online im Browser skripten könnte.

Unser Ziel war also herauszufinden, was uns das denn kosten könnte. Somit haben wir folgende Webseite besucht: https://azure.microsoft.com/en-us/pricing/details/functions/

Azure Function Pricing

Als Region haben wir „West Europe“ ausgewählt und als Währung „Euro“. Wenn man das Rechenbeispiel auf dieser Seite ansieht, kommt man auf einen monatlichen Preis von € 15,18. Hier wird davon ausgegangen, dass man 512 MB Speicher braucht, 3.000.000 Aufrufe pro Monat und eine Ausführungszeit von einer Sekunde pro Aufruf. Das klingt als Richtwert einmal recht greifbar. Allerdings stellt sich die Frage, ob dies auch auf unser Szenario passt. Wie wir gleich sehen werden tut es das nicht…

Unser Szenario – Details

Die Aufrufe auf unser Service werden bei weitem nicht so hoch bzw. oft ausfallen. Es geht hier um rund 15 Benutzer, von denen jeder die Funktionen monatlich (geschätzt) 500 Mal aufrufen werden. D.h. wir haben 7.500 Aufrufe. Lassen wir den Speicherverbrauch mal bei 128 MB stehen, da Funktionsaufrufe ja nur durchgeschliffen werden und hier keine Video- oder Bildbearbeitungsdaten durchgereicht werden. Eigentlich geht es nur um Text im JSON Format, der ausgetauscht wird. Wir rechnen also mit weniger als € 15,18 pro Monat und erwarten eigentlich, dass unsere Requests noch im „Free“ Tarif landen.

D.h. also, wir rechnen mit weniger als 400.000 GB-s (Ressource Consumption) und weniger als 1.000.000 Aufrufen pro Monat.

Wenn man aber genau hinsieht, braucht unsere Azure Function eine Verbindung in das On-Premises System. Ein Azure Data-Gateway scheidet aus, da dies von Azure Functions (zum heutigen Zeitpunkt) nicht verwendet werden kann. Der nächste Schritt wäre also eine Azure Hybrid Connection einzurichten. Diese kann von einer Azure Function verwendet werden, ABER nur, wenn man einen bestimmten App Service Plan nutzt.

Azure Hybrid Connections sind erst dann nutzbar, wenn man zumindest den B1 App Service Plan nutzt. Aber was kostet dieser App Service Plan?

Wir schauen auf https://azure.microsoft.com/en-us/pricing/calculator/ nach und sehen, dass dieser App Service plan in der Region „West Europe“, mit Operating System „Windows“ und dem Tarif „Basic“ mit einer Instanz und 730 Rechenstunden € 47,17 pro Monat kostet. D.h. wir bewegen uns jetzt auf rund € 570 pro Jahr zu.

Eine kleine Ergänzung an der Stelle, um eventuelle Verwirrungen vorzubeugen. Es ist nicht notwendig, dass man pro Azure Function einen neuen App Service Plan einrichtet. D.h. ein App Service Plan kann und soll natürlich von mehreren Azure Functions verwendet werden. Man sollte aber dann die Last der Azure Functions im Auge behalten um eventuell z.B. die Instanzen „hoch drehen“ wenn mehr Performance nötig wird. Erst dann entstehen weitere Kosten. Grundsätzlich würde man beispielsweise 10 Azure Functions mit einem App Service Plan betreiben, ändern sich diese Kosten von € 47,17 pro Monat nicht.

War es das schon?

Leider, nein!

Denn eine Azure Hybrid Connection kostet pro Listenereinheit, d.h. „Ziel-Dienst“ noch einmal € 8,25 extra, weil Hybridverbindungen einen Azure Bus voraussetzen. Dafür gibt es eigene Preise, die man hier finden kann:

https://azure.microsoft.com/de-de/pricing/details/service-bus/

Es gibt hier allerdings noch einen Punkt zu beachten, nämlich dass wir hier die Menge an Daten auch berücksichtigen müssen. Werden nämlich mehr als 5 GB pro Hybrid Connection übertragen, kostet jedes weitere GB € 0,844. Das ist in unserem Szenario jedoch nicht zu erwarten. Dennoch muss man wissen, dass hier noch variable Kosten dazukommen könnten, wenn eine entsprechende Last auftritt.

Fassen wir das also zusammen:

App Service Plan B1:              € 47,17 / Monat

1 Hybrid Connection:             € 8,25 / Monat

Summe pro Monat:                 € 55,42

Summe pro Jahr:                     € 665,04

Was ist jetzt der Mehrwert?

Nun, wenn wir diese Umsetzung mit diesen Annahmen durchführen, wird es uns möglich sein, eine andere Lösung, d.h. ein komplettes System (in unserem Szenario!) abzudrehen, das uns jährlich rund € 1.000 kostet. Also wir hätten damit tatsächlich einen Mehrwert.

Können wir darauf vertrauen, dass es so ist?

Nun das können wir leider noch immer nicht zu 100 % mit ja beantworten. Was wir aber machen können, ist einen Zeitraum als Pilotbetrieb abzustecken und dann unsere Kalkulation gegen echte Daten prüfen und korrigieren. Das wird uns dann die Entscheidung tatsächlich liefern, ob wir diese Lösung dauerhaft produktiv einsetzen werden.

Fazit

Der Artikel soll zeigen, wie komplex es ist Kosten in Azure zu berechnen, aber es durchaus möglich ist, mit Annahmen zu einem Ergebnis zu kommen. Daraus resultiert eigentlich immer ein Pilotbetrieb, mit dem man dann diese Annahmen tatsächlich überprüfen kann um weitere Entscheidungen zu treffen. Wichtig, und das sollte man eigentlich immer berücksichtigen ist, der Mehrwert, denn wir generieren können. In unserem Fall können wir eine andere Lösung abdrehen und haben tatsächlich eine Kostenersparnis. Was wir aber hier noch nicht beleuchtet haben ist die Entwicklungszeit für dieses Service. Diese sind jedoch einmal Kosten und für unser Szenario auch akzeptabel, da wir diese Kosten in z.B. 2 Jahren wieder eingenommen haben.
Nur dadurch, dass wir das andere System abdrehen und keine Mitarbeiter mehr am alten System schulen müssen.

 

Tags : KostenMehrwertPilotbetrieb
Michael König

The author Michael König

Michael König ist leidenschaftlicher Informatiker. Er ist als Leiter einer Development-Abteilung sowie als Lead Developer und Application Architect tätig. Michael bringt 20 Jahre Berufserfahrung im Bereich der Software-Entwicklung und im IT-Consulting mit. Seit mehr als 10 Jahren beschäftigt er sich intensiv mit den Microsoft SharePoint-Technologien und ist in diesem Segment vorrangig auf die Software-Entwicklung, Erweiterung und Individualisierung von SharePoint spezialisiert. Heute beschäftigt sich Michael mit den neuen Möglichkeiten von SharePoint Online und On-Premises, Office 365 und Microsoft Azure. Die Themen Bots, Cognitive Services und Machine Learning auf Basis von Microsoft-Technologien gehören hier ebenfalls dazu.

Leave a Response