Teardown: Was steckt hinter einer Software-as-a-Service Lösung?

Dieser Artikel behandelt das Konzeptions-Thema für eine Software-as-a-Service Lösung anhand eines konkreten Beispiels. Er zeigt, welche Überlegungen hierbei zu bedenken sind und wie sie im betrachteten Fall gelöst wurden.

Einleitung: Was ist SaaS?

Was ist Software-as-a-Service (kurz SaaS) eigentlich?

Der Begriff gehört zu der Gruppe XXX-as-a-Service wobei XXX üblicherweise für einen dieser 3 Begriffe steht: Infrastructure, Platform oder Software – man liest zuweilen noch beliebige andere Begriffe. Im Grunde genommen bedeutet es aber nichts anderes, als die Verwendung des jeweiligen XXX ohne sich mit Installation, Betrieb und Wartung herumschlagen zu müssen. Also sozusagen „Plug and Play“.

SaaS_Pyramide

Die 3 genannten Begriffe sind üblicherweise aufbauend zu sehen. Das bedeutet, die unterste Stufe ist die Infrastruktur, z.B. das Hosting eines Servers durch einen Provider. Darüber kommt die Plattform, z.B. Datenbanken oder Middlewares. Ganz oben in dieser Reihung steht dann eine fertig zu verwendende Software. Das sind dann typische Cloud-Applikationen, die jeder von uns kennt. Je weiter man hier nach oben steigt umso näher kommt man dem Anwender.

Aus gegebenem Anlass – dem Start unseres neuen SaaS Dienstes design2budget – möchte ich hier einige Grundkonzepte beschreiben, die beim Design so einer Lösung zu beachten sind.

Basisverständnis

design2budget_logo-writingUm die nachfolgend beschriebenen Überlegungen und die getroffenen Entscheidungen zu verstehen, möchte ich einen kurzen Einblick geben, was design2budget ist.

design2budget ist eine Cloud-Applikation mit der eine Firma ihre Kunden, Angebote und Aufträge verwalten bzw. in weiterer Folge natürlich auch Verrechnungs- und Mahnwesen automatisiert abbilden kann. Die Grundidee ist – Sie kennen es sicher auch aus eigener Erfahrung – wenn Sie ein bestimmtes Vorhaben planen, holen Sie sich Angebote ein. Oft dauert es mehrere Wochen, bis Sie das Angebot erhalten und dann sitzen Sie besser auf einem Stuhl, denn neben der Themenverfehlung entspricht der Preis nicht dem was Sie im Kopf hatten. Unsere Lösung schafft hier Abhilfe, denn wir setzen auf den Einsatz von modernen Endgeräten, wie z.B. Tablets, mit denen Ihnen der Vertriebsmitarbeiter bereits vor Ort einen Preis nennen kann und das Angebot entsprechend Ihren Wünsche gestalten kann.

Wichtig für die folgenden Konzeptbeschreibungen ist jedoch, dass es sich bei den Kunden um Firmen handelt, die durchaus auch mehrere Benutzer (Vertriebsmitarbeiter, Techniker, Backoffice Mitarbeiter, …) haben. Daher wird das Wort „Mandant“ als Synonym für die Firma eingesetzt und die Benutzer sind User Accounts die einem Mandanten zugeordnet sind.

Datenhaltung und Datentrennung

dbinstance_per_mandantDa die in design2budget abgelegten Daten sensibler Natur sind, war für uns eine Mandantentrennung eine fixe Voraussetzung. Jeder Mandant erhält in unserer Lösung tatsächlich eine eigene Datenbank. Um diese strikte Trennung noch zu verschärfen, werden hierbei pro Mandant zufallsgenerierte Zugangsdaten erstellt und verschlüsselt hinterlegt. So hat ein Angreifer keine Chancen, bei Kompromittierung eines Mandanten auf die Daten eines anderen Mandanten zuzugreifen.

Skalierung

Eine Cloud-Applikation ist vom Prinzip her so ausgelegt, dass möglichst viele Anwender diese Software verwenden können. Um diesen Anspruch gerecht zu werden, sind bereits in der Konzeptionsphase entsprechende Skalierungsmaßnahmen zu planen. Die bei diesen Konzepten oft getroffene Entscheidung „dann geben wir der Maschine darunter einfach mehr RAM oder CPU“ hilft hierbei leider nur begrenzt weiter. Selbst mit Virtualisierungstechnologie ist damit sehr schnell Schluss.

skalierungMit design2budget haben wir uns für eine 2-stufige Skalierungsvariante auf Applikationsebene entschieden. In der Stufe 1 wird einem Mandant ein primärer (von mehreren vorhandenen) Applikationsserver zugeteilt. Erreicht der Mandant eine bestimmte Größe (Anzahl an Benutzern) tritt Stufe 2 in Kraft. Die Applikation wird auf mehrere gleich berechtigte Applikationsserver aufgeteilt und mit einem vorgelagerten Load-Balancer wird die Belastung gleichmäßig verteilt.

Deployment

Um die beschriebene Datentrennungs- und Skalierungsmaßnahmen umzusetzen benötigt es natürlich einer Steuerung. Hierzu gibt es ein Management Service, welches mit einer zentralen Instanz – dem Management-System – die anfallenden Tasks koordiniert und durchführt. Dazu gehören:deployment

  • Aktivierung eines neuen Mandanten
  • Deaktivierung / Löschung eines Mandanten
  • Automatische Ressourcen Verteilung
  • Update der Applikation
  • Reporting (für Verrechnungszwecke)
  • Backup- und Notfall-Mechanismen

Beim Betrieb eines Cloud-Services sollte das Konzept also bereits vorsehen, möglichst viele Tätigkeiten zu automatisieren.

Reporting

Was ist mit Reporting gemeint? Natürlich bietet design2budget eine Reporting Engine mit der die Hit-Rate, Conversion-Rate, usw. ausgewertet werden kann. Doch hier in diesem Artikel ist damit das notwendige Reporting für eine Verrechnung aus unserer Sicht gemeint.

Unser Verrechnungs-Modell basiert auf einer monatlichen Basisgebühr, welche 3 Benutzer-Accounts beinhaltet. Optional können weitere Benutzer-Accounts direkt im Programm angelegt werden.

Daher benötigen wir für jeden Mandanten die Anzahl an aktiven Benutzern um diese entsprechend zu verrechnen. Wie bereits erwähnt, haben wir keinen direkten Zugriff auf die Datenbanken, denn die Zugangsdaten wurden zufällig erzeugt und verschlüsselt abgelegt. Daher übernimmt der im vorigen Absatz genannte Management-Service die Aufgabe, diese Daten pro Mandant zu sammeln und an unser zentrales Management-System zu übermitteln.

Wir als Betreiber haben daher nur die Daten zur Verfügung, die wir zur direkten Verrechnungen benötigen. Zu einem sauberen Konzept gehört für uns auch die Überlegung, welche Daten hat wer wann im Zugriff.

Partner-Konzept

Wie bereits angesprochen, handelt es sich um sensible Daten, die durch unsere Lösung generiert und verwaltet werden. In Zeiten in denen viele Unternehmen Ihre Mails und Kalender einem großen Suchmaschinenbetreiber anvertrauen, gibt es weiterhin Unternehmen, die Ihre Daten selbst verwalten – in der sogenannten Private-Cloud.

Unsere Lösung nimmt auf diesen Umstand Rücksicht und das vorher beschriebene Deployment- und Skalierungsmodell erlaubt es, eine Instanz von design2budget in der eigenen Firma oder im eigenen Rechenzentrum zu betreiben.

architektur_partner2Der Mandant erhält eine vollständige Umgebung inkl. vorher angesprochenem Management-System. Dieses System dient als Gateway um sich mit unserer zentralen Management-Instanz zu verbinden, um dort die konsolidierten Reporting Daten für unsere Verrechnung abzuliefern und sich Applikations-Updates zu holen.

Durch dieses Konzept ist es uns sogar möglich, das gesamte Cloud-Service – mit allen beschriebenen Mechanismen – schlüsselfertig einem Partner als OEM Produkt zur Verfügung zu stellen. Der Partner kann seine eigene Infrastruktur verwenden um mehrere Applikationsserver aufzusetzen, selbst wiederum mehrere Mandanten anzulegen, diese zentral zu verwalten und die Abrechnung zu übernehmen. Das zentrale Management-System des Partners nimmt die gleiche Gateway-Rolle wie bei der Private-Cloud Variante ein und übermittelt an unsere Management-Instanz die konsolidierten Informationen, wie die Gesamtanzahl an Mandanten und die Gesamtanzahl an Benutzern aller Mandanten zusammen.

Abschlussbemerkung

Wie man aus den hier angeführten Überlegungen sieht, ist es nicht einfach damit getan, eine Webanwendung zu schreiben und diese auf einem Webserver zu installieren.

Will man SaaS professionell betreiben, so sind eine Menge Überlegungen im Hintergrund anzustellen und entsprechend umzusetzen:

  • Datenhaltung: wo und wie lege ich die Nutzerdaten ab
  • Datensicherheit: wer darf wann auf welche Daten zugreifen, welche Daten brauche ich als Betreiber
  • Skalierung: wie gehe ich mit steigender Belastung um
  • Automatisierung: was kann ich automatisieren, wie übernehme ich das Deployment, Updates, …
  • Verrechnung: welche Daten benötige ich und wie komme ich zu den Daten, die ich zum Verrechnen benötige
  • Markterweiterung: wie kann ich meine Lösung wiederverwenden, wie kann ich neue Märkte erschließen (in unserem Fall durch das Partner Modell)

Ausblick

Wir haben uns nicht nur mit den Konzepten und der Technik beschäftigt. Auch gehen wir mit unserem Produkt neue Themen an. In einem kommenden Artikel werde ich den Trend Gamification etwas näher beleuchten.

Über den Autor

Ing. Leo Eibler ist im Bereich Beratung und IT Service Management tätig sowie Geschäftsführer von cubic zebra. Das in diesem Artikel als Beispiel herangezogene Projekt design2budget wurde durch cubic zebra entwickelt und wird als Cloud-Service vertrieben.

 

 

 

Ähnliche Artikel:

  • Noch keine vorhanden.

Full width mit dem Twenty fourteen Theme in WordPress

Die volle Breite des Twenty fourteen Theme ausnutzen mit max-width über Custom-CSS Plugins.

War euch am Blog etwas aufgefallen? Genauer am Twenty Fourteen Theme von WordPress? Lang hat es mich gestört, und beim Git Artikel dann war es mir zuviel. Da ist ein großer weißer Bereich für die Blogeinträge vorhanden, und dann wird grad mal die Hälfte davon genutzt! Die Artikel sind dadurch eine unnötig lange Wurst, Lädt nicht unbedingt zum lesen ein. Das liegt am CSS des Themes, und zwar genauer an folgendem Eintrag in der style.css :

.site-content .entry-header,
.site-content .entry-content,
.site-content .entry-summary,
.site-content .entry-meta,
.page-content {
    max-width: 474px;
}

Es sind noch andere CSS Styles an diesem Eintrag dran, ich habe sie der Übersicht halber aber nicht angeführt. Nun wäre das CSS schnell angepasst, aber mit dem nächsten Update könnte unsere Anpassung wieder dahin sein. Daher habe ich eines der vorhandenen Plugins zur Ergänzung des CSS Styles für Themes gewählt. Zur Auswahl standen

  • Custom CSS Manager, welches zum Zeitpunkt des Blogeintrags in der Version 1.5.2 vorhanden war. Und
  • Theme Junkie Custom CSS, gerade frisch in Version 0.1.1 veröffentlicht.

Beide liefen ohne Probleme unter der aktuellen WordPress-Version 3.9.2. Ich habe mich schlussendlich für Theme Junkie Custom CSS ob der Vorschaufunktion bei der Anpassung des Themes entschieden. Ein kurzes Snippet wie das dieses

.site-content .entry-header,
.site-content .entry-content,
.site-content .entry-summary,
.site-content .entry-meta, .page-content {
    max-width: 80%;
}

reicht aus und schon gehört die Platzverschwendung der Vergangenheit an.

Greets

Ähnliche Artikel:

Udpate auf Windows 8.1: Nvidia Stereoscopic 3D

Beim Update auf Windows 8.1 werden die NVIDIA Treiber erneut installiert. Und zwar alles was da ist, auch die Stereoscopic 3D Treiber, was zu Problemen führen kann.

Ich teile ja gerade meine Erfahrungen mit dem Update auf Windows 8.1. Es hat sich dabei herausgestellt, dass das beim Update die NVIDIA Treiber erneut installiert werden. Und zwar alles was  da ist, und das beinhaltet auch die Stereoscopic 3D Treiber, welche per Default aktiviert werden.

Fällt einem vermutlich solange nicht auf, bis man eine Anwendung (in meinem Fall das Spiel Eurotruck Simulator 2) startet, die auf diese Einstellungen automatisch reagiert. Auf einmal ist das Spiel in 3D, und ohne entsprechende Brille nicht mehr zu spielen.

Weitere Beispiele für Anwendungen die derart reagieren sind: Payday 2, Stanley Parable.

Ohne Option innerhalb der Anwendung um diesen Modus zu aktivieren/deaktivieren liegen die weiteren Optionen natürlich auf der Hand, sobald man die Ursache (Stereoscopic 3D) kennt:

  • Im Nvidia Control Center deaktivieren
  • Treiber ganz deinstallierne über “Programme und Features”

Ich hab mich für zweiteres entschieden.

Ähnliche Artikel:

Update auf Windows 8.1: Lokales Konto beibehalten

Das Update von Windows 8 auf Windows 8.1 hat mal wieder einen Onlinefallstrick. Ich verrate hier wie man sein Lokales Benutzerkonto beibehält.

Das Update von Windows 8 auf Windows 8.1 hat mal wieder einen Onlinefallstrick. Während es Updates wird der Benutzer dazu genötigt sich mit seinem lokalen Konto anzumelden. Danach soll man sich in ein Microsoft-Konto anmelden oder eines registrieren. Über diesen Schritt kommt man nicht so offensichtlich hinweg, kein “Lokales Konto beibehalten” Button, “Abbrechen” oder ähnliches. Was bei der Installation von Windows 8.0 noch möglich war, wird dem User nun aufgezwungen. Da ich annehme dass noch mehr außer mir auf eine Kopplung mit einem Cloud Dienst verzichten möchten, hier die Art und weise wie ich es umgehen konnte:

  • Bevor man sich im lokalen Konto einloggt einfach kurz das Netzwerkkabel ziehen. Ohne Internetverbindung wird man gar nicht erst nach einem Online Konto gefragt.

Weitere im Internet gefundene Möglichkeiten, die ich allerdings nicht selbst verifizieren konnte:

  • Auf “Neuer Account erstellen” klicken, dort wird einem erst die Möglichkeit geboten per “Ohne Microsoft Konto anmelden” Button fortzufahren
  • Falsche Anmeldedaten bei der Verbindung zu einem Microsoftkonto angeben, nach kurzer Prüfung bietet Windows an ohne Microsoft Konto fortzufahren.

Hoffe das hilft.

Achja:

Hey Microsoft! Wozu sollte jemand für seinen lokalen PC ein Online Konto wollen? Noch dazu wenn er schon längst ein Lokales hat und nur ein Systemupdate macht?

Ähnliche Artikel:

Eurotruck Simulator 2: Standorte der LKW Händler

Es gibt so einige kleine Dinge in Eurotruck Simulator 2, die mir das Spiel erleichtern. Heute teile ich mit euch die Standorte der LKW Händler

Diesmal falle ich komplett aus der Rolle, bringe ich doch einen Beitrag über ein PC Spiel: Eurotruck Simulator 2

LKW transportiert KistenInspiriert von einem Tweet von @notch, dem Erfinder von Minecraft, habe ich mir damals im Angebot dieses Spiel gegönnt und auch jetzt noch fahre ich gern mal eine Runde. Man schlüpft in die Rolle eines Frachtführers der seinen Traum lebt und, sobald man genug Kohle gesammelt hat, sein eigenes Transportunternehmen gründet. Was anfangs hoch Wirtschaftlich wirkt ist leider recht simpel gehalten, liegt doch der Fokus eindeutig auf die Simulation des Fahrens. Und das macht Spaß! So habe ich nun das Einparken mit einem LKW zumindest in der Theorie gelernt.

Es gibt allerdings so einige kleine Dinge, die mir das Spiel erleichtert hätten. Ich hab sie mal gesammelt und möchte sie in den nächsten Beiträgen hier posten. Heute teile ich mit euch:

Standorte der LKW Händler

Es gibt große und kleine Standorte, die Standorte mit einem großen Schauraum bieten eine größere Auswahl an LKWs. Daher habe ich die entsprechenden Händler mit einem g markiert.

DAF IVECO MAN Mercedes Renault Scania Volvo
Amsterdam / NL (g) Brüssel / BE Berlin / DE (g) Bratislava / SK Düsseldorf / DE Aberdeen / UK Graz / A
Bremen / DE Frankfurt / DE (g) Bern / CH Genf / CH (g) Felixstowe / UK Dresden / DE London / UK (g)
Cardiff / UK Grimsby / UK Birmingham / UK Newcastle / UK Lyon / FR Hannover / DE (g) Luxemburg / LU (g)
Glasgow / UK (g) Hamburg / DE Calais / FR Plymouth / UK Paris / FR (g) Mailand / IT (g) Nürnberg / DE
Leipzig / DE Turin / IT Dortmund / DE Rotterdam / NL Prag / CZ (g) Manchester / UK (g) Osnabrück / DE
Salzburg / AT Wien / AT (g) Edingburgh / UK Settin / PL Rostock / DE Lille / FR Verona / IT
Zürich / CH München / DE (g) Stuttgart / DE (g) Straßburg / FR
Going East DLC
Kraków / PL Warszawa / PL (g) Budapest / HU (g) Gdansk / PL  Wroclaw / PL
Szeged / HU (g)
Scandinavia DLC
Bergen / N Kobenhavn / D (g)
Linköping / SW Kalmar/ SW Oslo / N Stockholm/ SW Göteborg / SW (g)

Stand 06.10.2015 Patch 1.21.1s

Als nächstes liefere ich dann noch eine Übersicht aller zu kaufenden LKWs und zuletzte ein paar Tips für ein leichteres Leben in Eurotruck Simulator 2.

Happy Trucking

PS: Jap, mittlerweile gibt’s mehrere solche Listen im Internet, sollte meine mal nicht mehr aktuell sein, in diesem Forum hier hat noch einer versprochen eine Liste aktuell zu halten.

PPS: Leider gibts den Forumthread nicht mehr, daher hier ein Link zu einer Wikiseite die ebenfalls diese Infos bereitstellt.

Ähnliche Artikel: