Ein 10gen Whitepaper MongoDB und Oracle–Gesamtbetriebskosten (TCO–Total Cost of Ownership) im Vergleich Oktober 2012 Inhalt Zusa mm e n fa ssu ng 1 Kos te n a rte n 2 G esa mtbe triebskos t e n fü r Beispie l proje kte 3 Anschaffungskosten Anfänglicher Entwicklungsaufwand Anfänglicher Administrationsaufwand Software-Lizenzen Server-Hardware Speicher-Hardware 3 3 4 4 5 5 Laufende Kosten Laufender Entwicklungsaufwand Laufender Administrationsaufwand Wartung und Support Zusammenfassung 5 5 5 6 6 Wie MongoDB die Wirt sch a f tlich keit be ein fluss t 9 Fa zit 9 Zusammenfassung und Verwaltungskosten, zum anderen lassen sich die Applikationen einfacher und schneller an die sich ständig verändernden Wirtschafts- und Marktgegebenheiten anpassen. MongoDB ist eine agile und hochskalierbare dokumentenbasierte Open-Source-Datenbank. MongoDB schließt die Lücke zwischen Key Value-Datenbanken, die schnell und skalierbar sind, und relationalen Datenbanken, die über vielfältige Funktionen verfügen. Im Gegensatz zu relationalen Datenbanken, die Daten in Zeilen und Spalten ablegen, speichert MongoDB die Informationen schemafrei in JSON-Dokumenten. Dieses Whitepaper liefert wirtschaftliche Argumente, die für den Einsatz von MongoDB anstelle von Oracle sprechen. Der Vergleich der Gesamtbetriebskosten (Total Cost of Ownership, TCO) von MongoDB und Oracle umfasst sowohl die Anschaffungskosten als auch die laufenden Kosten, einschließlich Software, Hardware und Personal. Beim Vergleich von Datenbanken gilt es vor allem drei wesentliche Faktoren zu berücksichtigen: die technische Eignung, die Kosten und die Auswirkungen auf die Wirtschaftlichkeit. Aufgrund des flexiblen und skalierbaren Datenmodells, zuverlässiger Funktionen und der leistungsstarken, hochverfügbaren Architektur eignet sich MongoDB für eine Vielzahl von Anwendungsfällen im Datenbankbereich. Angesichts der Tatsache, dass relationale Datenbanken technisch oft ebenso gut geeignet sind, ist es hilfreich bei der Entscheidung für oder gegen eine Datenbank die relativen Kosten jeder Lösung genau unter die Lupe zu nehmen. Den Vergleich nehmen wir beispielhaft anhand eines kleineren und eines größeren Unternehmensprojekts vor und zeigen ein Modell zur Analyse der DatenbankGesamtbetriebskosten auf. Damit können Kunden die Kosten für Projekte unterschiedlicher Dimensionen beim Einsatz von MongoDB, Oracle oder sonstiger Datenbanken durchspielen. In unseren Beispielszenarien ist es über 70 Prozent günstiger, eine Datenbank mit der MongoDB Subscriber Edition aufzubauen und zu betreiben, als mit Oracle (Enterprise Edition, implementiert mit Oracle Real Application Clusters (RAC)). Abschließend betrachten wir, welche Auswirkungen die technische Eignung und die Kosten auf die Wirtschaftlichkeit haben können. Es kann schneller und kostengünstiger sein, Anwendungen auf Basis von MongoDB zu entwickeln und zu betreiben als mit einer Oracle-Datenbank. Vorteile ergeben sich zum einen aus geringeren Entwicklungs- 1 Tabelle 1: Zusammenfassung der Kosten für Aufbau und Betrieb einer Datenbank Kostenarten A n s c h a f f u n g s ko s t e n Anfänglicher Entwicklungsaufwand Anfänglicher Administrationsaufwand Software-Lizenzen Personalkosten Erstellung der erforderlichen Codes, um Anwendung und Datenspeicher zusammen verwenden zu können Personalkosten Installation und Konfiguration von Software, Einrichten von Computer-Clustern, Erstellen der horizontalen Fragmentierung (Sharding) etc. durch Administratoren Die gesamte Software im Zusammenhang mit dem Datenspeicher selbst, aber auch Software für Verwaltungsaufgaben wie Clustering, Replikation, Caching Zum Betrieb der Datenbank erforderliche Server (ohne persistenten Speicher) Server-Hardware Abhängig vor allem von Anzahl und Typ der Prozessoren und vom RAM Nebenkosten wie Gehäuse oder Schränke, Netzwerkverbindungen, Verkabelung, Stromversorgung etc. Zum Speichern der Daten erforderlicher Speicher Speicher-Hardware Laufender Entwicklungsaufwand Laufende Administrationskosten L a u f e n d e Ko s t e n Beschreibung Software-Wartung und -Support Hardware-Wartung und -Support Variiert in Abhängigkeit davon, ob ein interner Speicher oder ein Speichernetzwerk (SAN) verwendet wird, wie groß die benötigte Speicherkapazität ist und ob Festplatten (HDD) oder Solid-State-Laufwerke (SSD) eingesetzt werden Personal Erforderliches Coding, um den Datenspeicher an Kunden-, Markt- und Unternehmensanforderungen anzupassen Personal Administrationsaufwand zur Sicherung eines störungsfreien Datenspeicher-Betriebs (z. B. Reaktion auf Ausfallzeiten, Software- und Hardware-Upgrades) Wartung: Software-Upgrades und Bugfixes Support: auf Anforderung Unterstützung beim Beheben technischer Probleme mit der Software Wartung: Upgrades und Bugfixes für Firmware sowie evtl. im Lieferumfang der Hardware enthaltene Software Support: auf Anforderung Unterstützung beim Beheben technischer Probleme mit der Hardware Sonstige Kosten für den Betrieb der Datenbank Umfasst Kosten für Cloud/Hosting/Co-Location, Bandbreite, Strom etc. Diverse Implementierungskosten Korreliert im Allgemeinen mit der Anzahl der verwendeten Server, kann aber in Abhängigkeit von einer Vielzahl von Faktoren stark variieren Diese Kosten werden nicht näher analysiert, da die Entscheidung für MongoDB bzw. eine relationale Datenbank nicht der Hauptkostentreiber ist. Kostenarten Die folgende TCO-Analyse zeigt die zu erwartenden Kosten für Aufbau und Implementierung einer kleineren und einer größeren Enterprise-Anwendung unter Nutzung von MongoDB Subscriber Edition einerseits und Oracle Database (Enterprise Edition, implementiert mit Oracle Real Application Clusters (RAC)) andererseits. Je nach Ausgangssituation sind für die Implementierung eine Reihe verschiedener Topologien denkbar. Dennoch verdeutlichen die gewählten Beispiele, inwiefern die Kosten üblicherweise differieren, wenn man die beiden Datenbanken vergleicht. Um den Einsatz von MongoDB und Oracle aus wirtschaftlicher Sicht zu vergleichen, wollen wir an dieser Stelle die Gesamtbetriebskosten (TCO) für zwei beispielhafte Anwendungen ermitteln. Die Gesamtbetriebskosten umfassen sowohl die Anschaffungs- als auch die laufenden Kosten, die für Aufbau und Betrieb der Datenbank anfallen. Dazu gehören Personalkosten (z. B. Entwicklergehälter) ebenso wie Kosten für Hardware, Software und Support. Tabelle 1 enthält eine Beschreibung der Kostenarten, die in dieser Analyse berücksichtigt werden. Die TCO-Analyse zeigt, dass MongoDB kosteneffizienter sein kann als Oracle. Dies lässt sich vor allem darauf zurückführen, dass MongoDB unkom- 2 • Datenmodell. Bei MongoDB muss der Entwickler das Datenmodell nur an einer Stelle definieren: der Anwendung. Bei Oracle hingegen ist es erforderlich, das Datenmodell an drei Stellen mit unterschiedlichen Schnittstellen zu erstellen und zu verwalten: in der Anwendung, der Datenbank und dem ORM-Layer. plizierter zu implementieren und administrieren ist und geringere Anforderungen an Hardware und Open-Source-Lizenzierung mit sich bringt. Insgesamt können der Aufbau und Betrieb einer Datenbank mit MongoDB über 70 Prozent günstiger sein als mit Oracle. Unternehmen mit komplexeren Projekten oder Anwendungen können sogar noch höhere Kosteneinsparungen erzielen, wenn sie MongoDB anstelle von Oracle implementieren und betreiben. • Datenflexibilität. Im Gegensatz zu Oracle ermöglicht es MongoDB, polymorphe Daten sowie strukturierte, semi-strukturierte und unstrukturierte Daten komfortabel in nur einem Datenspeicher abzulegen. Gesamtbetriebskosten für Beispielprojekte • JSON-Unterstützung. Die Speicherung der Daten im JSON-Format erfolgt bei MongoDB nahtlos und erfordert keine Umwandlung. Bei Oracle muss JSON zunächst „abgeflacht“ und transformiert werden, damit eine Speicherung in relationalen Tabellen möglich wird, nur damit dieser Vorgang beim Abruf aus der Datenbank wieder rückgängig gemacht wird. Anschaffungskosten Anfänglicher Entwicklungsaufwand Der anfängliche Entwicklungsaufwand umfasst die anfallenden Kosten, um Anwendungen und Daten­ speicher aufeinander abzustimmen. • Cloud-Architektur. MongoDB eignet sich aufgrund seiner horizontalen Skalierbarkeit gut für den Einsatz in flexiblen CloudUmgebungen. Die Implementierung von Oracle in der Cloud hingegen kann aufgrund der Infrastrukturanforderungen relationaler Datenbanken eine Herausforderung sein. Bei relationalen Datenbanken müssen im Rahmen des anfänglichen Entwicklungsaufwands das Datenmodell definiert und der ORM-Layer (objektrelationale Abbildung) sowie die Geschäftslogik für die Anwendung erstellt werden. MongoDB ist so konzipiert, dass es für moderne Entwickler leicht anwendbar ist. • Komfortable Lizenzierung. Die Lizenzierung von MongoDB ist einfach, und die Abrechnung erfolgt pro Server und Jahr. Bei Oracle ist die Lizenzierung so komplex, dass die Entwickler oftmals warten müssen, bis die Administratoren die Entwicklungsumgebung angeschafft und konfiguriert haben – was Wochen oder sogar Monate dauern kann. Daher ist die Entwicklung mit MongoDB ungleich kosteneffizienter als bei relationalen Datenbanken. Diese deutlichen Produktivitätsvorteile von MongoDB lassen sich auf das dokumentenorientierte Design und die dynamischen Schemata zurückführen. Die Speicherung der Anwendungsdaten entspricht sowohl dem aktuellen Stand der Entwicklungstechnologie als auch der derzeitigen Entwicklungspraxis. Beide Aspekte haben sich seit Beginn des flächendeckenden Einsatzes relationaler Datenbanken vor rund 30 Jahren deutlich weiterentwickelt. Aufgrund der oben ausgeführten Gründe wurde für dieses TCO-Modell angenommen, dass der anfängliche Entwicklungsaufwand bei Oracle doppelt so groß ist wie bei MongoDB. Der Basisentwicklungsaufwand für das kleine Beispielprojekt beläuft sich daher auf 24 Personenmonate für Oracle und 12 Personenmonate für MongoDB (50 Prozent weniger). Bei dem größeren Beispielprojekt wurde mit einem Basisentwicklungsaufwand von 72 Personenmonaten für Oracle und von 36 Personenmonaten für MongoDB kalkuliert (50 Prozent weniger). In beiden Szenarien kommen Gehaltskosten für einen Datenbankadministrator in Höhe von 120.000 USD/Jahr zum Tragen. Die Gründe für die Produktivitätsvorteile von MongoDB lassen sich wie folgt zusammenfassen: • Anwenderfreundlichkeit. MongoDB unterstützt moderne Entwicklungsmethoden wie die agile Softwareentwicklung und ermöglicht Entwicklern eine schnelle, kontinuierliche Iteration über das Datenmodell. Im Gegensatz dazu ist die Datenmodellentwicklung bei Oracle strikt beschränkt. 3 Anfänglicher Administrationsaufwand Software-Lizenzen Installation und Konfiguration sind bei MongoDB kostengünstig und einfach. Die Open Source-Datenbank ist als kostenlose Community-Version sowie als kommerzielle Subscriber-Edition verfügbar. Letztere umfasst Support, Software-Upgrades, Bugfixes und einige zusätzliche Funktionen. Da die kommerzielle Version von MongoDB fortlaufend (d.h. pro Server und Jahr) und nicht einmalig abgerechnet wird, sollen diese Kosten nachfolgend im Abschnitt zu Software-Support und -Wartung besprochen werden. Um eine gut funktionierende MongoDB-Implementierung zu konfigurieren, muss der Administrator meist nur eine Variable berücksichtigen: die Anzahl der Knoten im Cluster. Nur eine Handvoll Konfigurations­ einstellungen sind vorzunehmen. Die Installation und Konfiguration von Oracle ist schwieriger. Die anfängliche Administration kann bei Oracle ein intensiver, mehrwöchiger Prozess sein: Es gilt Hunderte von Variablen abzustimmen, um mit dem Cluster eine gute Leistung zu erzielen. Die meisten Organisationen benötigen dazu einen Oracle-zertifizierten Datenbankadministrator oder beauftragen sogar kostenintensive externe Berater. Oracle wird pro Core lizenziert. Fast alle in den letzten fünf Jahren produzierten Server besitzen zwischen 4 und 24 Cores, so dass bereits eine einfache Entwicklungs- oder Testkonfiguration bei Oracle kostspielig sein kann. Zudem fehlen bei Oracle Database Standard Edition eine Reihe zentraler Funktionen, die für moderne Anwendungen erforderlich sind, wie zum Beispiel automatisiertes Failover, Memory-Caching, automatisches Sharding und Clustering. Um diese Funktionen nutzen zu können, ist eine Lizenz für Oracle Database Enterprise Edition erforderlich, die teurer ist als die Standard Edition. Oracle Real Application Clusters (RAC) benötigt zudem ein Add-on, das eine horizontale Skalierung über mehrere Server hinweg ermöglicht. Bei MongoDB hingegen müssen keine Caching-Layer integriert oder eigene Sharding-Logiken entwickelt werden, um Abfragen an den richtigen Serverknoten zu leiten. Vielmehr zählen sowohl Caching als auch Sharding zu den Kernfunktionalitäten von MongoDB. MongoDB bietet native Unterstützung für ReplicaSets und macht so die Site-to-site-Replikation einfach und unkompliziert. Im Gegensatz dazu ist bei Oracle der Aufwand für die Realisierung und Skalierung von Caching oftmals erheblich und für die horizontale Fragmentierung sowie Site-to-site-Replikation nur mit speziellem Code möglich. Damit die Oracle-Konfigurationen möglichst vergleichbar mit den MongoDB-Konfigurationen sind, wurde für diese TCO-Analyse die Verwendung von Oracle Database Enterprise Edition (47.500 USD pro Core) plus Oracle RAC (23.000 USD pro Core) angenommen. Damit liegt der Preis pro Core bei 70.500 USD.1 Die Rabatte für Oracle-Lizenzen variieren zwischen 0 Prozent bei kleinen Installationen und bis zu 80 Prozent bei Großprojekten. Bei dieser Analyse wurde für beide Beispielprojekte ein Nachlass von 50 Prozent auf den Listenpreis angenommen. Zusätzlich wurde ein Rabatt in Höhe von 50 Prozent auf den Core-ProzessorLizenzfaktor von Oracle festgelegt.2 Dies entspricht bei beiden Projekten 17.625 USD pro Core. Auf Basis der Annahmen für den anfänglichen Entwicklungsaufwand geht dieses TCO-Modell davon aus, dass der Administrationsaufwand bei MongoDB halb so hoch ist wie bei Oracle. Zudem liegt der Analyse die Annahme zugrunde, dass bei dem kleinen Beispielprojekt für Oracle 2 Personenmonate Administrationsaufwand anfallen, bei dem größeren Beispielprojekt 6 Personenmonate. Für MongoDB wurde der Administrationsaufwand bei dem kleinen Beispielprojekt mit 1 Personenmonat angesetzt, bei dem größeren Beispielprojekt mit 3 Personenmonaten (50 Prozent weniger). In beiden Szenarien wurden die Gehaltskosten je Datenbankadministrator mit 120.000 USD/Jahr angesetzt. Zwar lassen sich die Software-Kosten senken, wenn man nur die Oracle Database Enterprise Edition einsetzt und Oracle RAC umgeht. Dies erfordert jedoch eine vertikal skalierbare Architektur (im Gegensatz zu einer horizontal skalierbaren Architektur), was die Anschaffung eines leistungsstärkeren und teureren Servers notwendig macht. Um die Hardware-Architekturen in den hier zugrunde gelegten Konfigurationen möglichst vergleichbar zu halten, wurde in dieser Analyse die Verwendung von Oracle RAC angenommen. Für weitere Informationen dazu siehe den Abschnitt „Server-Hardware“ und die entsprechende Fußnote. Die MongoDB Subscriber Edition umfasst SNMP-Support und eine kommerzielle Lizenz. 1 2 Um Unterschiede bei der CPU-Core-Architektur berücksichtigen zu können, multipliziert Oracle die Anzahl der Cores mit einem Core-Prozessor-Lizenzfaktor. Dieser reicht von 0,25 für ältere Sun SPARC- Prozessoren über 0,5 für die meisten anderen Prozessoren von AMD über Intel bis hin zu 1,0 für IBM Power und andere. 4 Server-Hardware Dem TCO-Modell liegen für MongoDB zwei 1-TB-SSDs (1 TB gespiegelt) pro Server (8.000 USD) zugrunde, was sich beim kleinen Projekt auf 24.000 USD und beim größeren Projekt auf 240.000 USD summiert. Für Oracle wurde beim kleinen Beispielprojekt mit einem 3-TB-SAN gerechnet (125.000 USD), beim größeren Projekt mit einem 30-TB-SAN (500.000 USD). Bei MongoDB sind die Serverkosten bei gleicher Last oft signifikant geringer als bei Oracle, da MongoDB auf den Einsatz von Standard-Hardware in horizontal skalierbaren Architekturen ausgelegt ist. Üblicherweise kommen bei MongoDB kostengünstige Linux-Standardserver mit einem Stückpreis von nur etwa 3.000 USD zum Einsatz. Selbst für ein Hochleistungssystem mit geringem Energieverbrauch liegt der Preis bei nur etwa 4.000 USD (exklusive Speicher). Laufende Kosten Im Gegensatz dazu setzt Oracle typischerweise auf einen einzelnen großen Server, um die Leistung der relationalen Architektur zu optimieren.3 Als Alternative zur Verwendung proprietärer, vertikal skalierbarer Hardware bietet Oracle mit Oracle Real Application Clusters (RAC) ein Clustering-Addon an, das die Oracle-Datenbank skalierbar macht. Wie bereits erwähnt wird in diesem Whitepaper für Oracle eine Implementierung unter Verwendung von RAC angenommen, um die Serverkonfigurationen von Oracle und MongoDB möglichst vergleichbar zu machen. Laufender Entwicklungsaufwand Der Aufwand für die fortlaufende Entwicklung der Datenbanken ist mit dem anfänglich benötigten Entwicklungsaufwand vergleichbar. Bei Oracle sind die Kosten für Schema-Änderungen bei einer bereits produktiven Datenbank sogar merklich höher als bei einer Datenbank, die noch nicht produktiv geschaltet wurde. Deshalb untersagen es viele Unternehmen strikt, Änderungen an der Datenbank vorzunehmen, bzw. begrenzen diese auf ein- oder zweimal im Jahr. Bei MongoDB hingegen lassen sich Datenbankfelder leicht hinzufügen und Schemata ändern, was deutlich geringere Kosten bedeutet. Zudem können die Entwickler die Anwendungen fortlaufend an die sich verändernden Anforderungen des Geschäftsbetriebs anpassen. Das TCO-Modell sieht für MongoDB und Oracle den Einsatz der gleichen Server-Hardware vor. Das kleinere Projekt umfasst 3 Server mit jeweils 8 Cores und 32 GB RAM zu einem Stückpreis von 4.000 USD. Das größere Projekt umfasst 30 Server mit jeweils 8 Cores und 32 GB RAM zu einem Stückpreis von 4.000 USD. Für das kleinere Szenario wurde angenommen, dass der laufende Entwicklungsaufwand bei MongoDB 50 Prozent geringer ist (6 Personenmonate) als bei Oracle (12 Personenmonate). Für das größere Szenario gilt dieselbe Logik: Der laufende Entwicklungsaufwand ist bei MongoDB auf 18 Personenmonate und bei Oracle auf 36 Personenmonate festgelegt. Die Gehaltskosten pro Entwickler wurden mit 120.000 USD pro Jahr angesetzt. Speicher-Hardware Die horizontal skalierbare Architektur von MongoDB erlaubt es, die Speicherkosten erheblich zu senken. MongoDB kann den kostengünstigen lokalen Speicher von Standard-Datenbankservern verwenden und auch Solid-State-Laufwerke (SSDs) effizient nutzen. Der Speicherbedarf lässt sich bei Oracle zwar durch Komprimierung reduzieren. Oracle-Implementierungen brauchen dennoch oft weit mehr kostenintensiven Speicherplatz, da die relationale Architektur in der Regel ein Modell mit nur einem Speicher erfordert (etwa ein Speichernetzwerk (SAN)), um einen bestimmten Grad an Verfügbarkeit und Leistung zu erreichen. Der Preis eines SAN beträgt je nach Leistungsumfang zwischen 25.000 und über 500.000 USD und kann somit die Konfigurationskosten deutlich in die Höhe treiben. Laufender Administrationsaufwand Zum laufenden Administrationsaufwand zählen alle Aktivitäten, die einen störungsfreien Betrieb des Systems sicherstellen (z.B. Software- und HardwareUpgrades, Backups und Wiederherstellung nach ungeplanten Ausfallzeiten). Bei MongoDB ist der Zeit- und Kostenaufwand für die Administration deutlich geringer als bei Oracle. Zu den Administrationsaufgaben bei einer MongoDBImplementierung zählen vor allem die Verwaltung Bei den meisten Servern von Herstellern wie Sun/Oracle, IBM, HP oder Fujitsu erfolgt die Skalierung, indem weitere Prozessoren zu einem Rechner hinzugefügt werden. Diese können wiederum Dutzende von CPUs oder Cores enthalten. Die Kosten liegen zwischen 25.000 und mehr als 200.000 USD. 3 5 Das Wartungs- und Support-Paket von Oracle für 1 Jahr umfasst Kunden-Support sowie sämtliche SoftwareUpgrades. Die dafür anfallenden Kosten betragen gewöhnlich 22 Prozent der Software-Lizenzgebühren. Sie hängen also von der Anzahl der Cores und nicht der Anzahl der CPUs oder Server ab. Das hat zur Folge, dass die Kosten des Oracle-Supports die Kosten des MongoDB-Supports deutlich übersteigen, oft sogar um ein Vielfaches. der Linux-Einstellungen und der Hardware selbst. Anwender müssen sich nur einige wenige MongoDBspezifische Einstellungen aneignen und verwalten. Die nativen Replica-Sets von MongoDB erleichtern allgemeine Verwaltungshandgriffe, beispielsweise das Austauschen ausgefallener Hardware oder das Aktualisieren des Server-Betriebssystems. Kunden von 10gen berichten, dass sich ihre Linux-Systemadministratoren ohne Probleme in die Verwaltung von MongoDB einfinden konnten, da keine speziellen Kenntnisse erforderlich sind. Die Kosten für den Hardware-Support betragen üblicherweise 10 bis 12 Prozent des Kaufpreises der Hardware. Da für Oracle typischerweise teurere Hardware erforderlich ist (etwa SANs), liegen die Wartungs- und Supportkosten für Oracle-Implementierungen höher als bei MongoDB. So komplex wie die Entwicklungsarbeit bei OracleDatenbanken ist teilweise auch deren Administration, was die Kosten in die Höhe treibt. Mit der Weiterentwicklung von Datenschemata und individualisiertem Code muss sich auch die Konfiguration der Datenbank weiterentwickeln. Zudem gibt es bei Oracle Tausende von Einstellungen, sprich für die Administration von Oracle sind umfassende technische Kenntnisse und Schulungen von Nöten. Kunden, die von Oracle auf MongoDB umgestiegen sind, berichten über erheblich niedrigere Administrationskosten. Ein Anwender­ unternehmen benötigte beispielsweise in Vollzeit einen Datenbankadministrator für Oracle und zusätzlich ein externes Consulting-Unternehmen. Nach dem Wechsel zu MongoDB konnte ein einzelner Entwickler problemlos in Teilzeit die Administration des MongoDB-Clusters übernehmen—das externe Consulting war nicht mehr erforderlich. Für das kleinere MongoDB-Projekt wurden Wartungsund Supportkosten in Höhe von 4.000 USD pro Server und Jahr angesetzt, für das größere Projekt wurde mit 3.600 USD pro Server und Jahr kalkuliert (mit 10 Prozent Nachlass). Für Oracle wurden 22 Prozent der Lizenzgebühren angesetzt. In dem Modell belaufen sich die Kosten für Hardware-Wartung und -Support sowohl bei MongoDB als auch bei Oracle auf 10 Prozent des Hardware-Kaufpreises. Zusammenfassung Auf Basis der Annahmen, die dieser TCO-Analyse zugrunde liegen, sind Aufbau und Betrieb einer Datenbank mit MongoDB Subscriber Edition über 70 Prozent günstiger als mit Oracle (Enterprise Edition, implementiert mit Oracle RAC). Für das kleine Projekt wurde angenommen, dass Oracle 50 Prozent der Zeit eines in Vollzeit angestellten Datenbankadministrators beansprucht, MongoDB nur rund 25 Prozent (das heißt 50 Prozent weniger). Entsprechend wurden im Rahmen des größeren Projekts 1,5 in Vollzeit angestellte Datenbankadministratoren für Oracle angesetzt, für MongoDB die Hälfte (0,75 DBA-Vollzeitstellen). Die Gehaltskosten pro Datenbankadministrator belaufen sich in den Beispielen auf 120.000 USD pro Jahr. Wir halten diese Auswertung der Gesamtbetriebs­ kosten von MongoDB und Oracle für durchaus repräsentativ. Anwendungen, Topologien und Kosten können jedoch wie bereits erwähnt von Fall zu Fall erheblich variieren. Diese TCO-Analyse beruht auf zwei beispielhaft ausgewählten Projekten. Werden mehr beziehungsweise komplexere Anwendungen betrieben, können die Kosteneinsparungen noch höher sein als in den Beispielen dargestellt, in anderen Fällen kann die Differenz hingegen geringer ausfallen. Wer verschiedene Datenbanklösungen vergleichen will, kann die Struktur dieses Whitepapers als Grundlage heranziehen, um eigene Analysen durchzuführen. Wartung und Support Die Lizenzierung von MongoDB erfolgt pro Server und Jahr. Die Kosten für MongoDB Subscriber Edition belaufen sich auf 4.000 USD pro Server pro Jahr (unabhängig von der Servergröße). Enthalten sind MongoDB-Support, Software-Upgrades und Bugfixes sowie bestimmte Funktionen, die nur in der kostenpflichtigen Version verfügbar sind.4 4 Die MongoDB Subscriber Edition umfasst SNMP-Support und eine kommerzielle Lizenz. 6 Tabelle 2: Analyse der Gesamtbetriebskosten–Zusammenfassung Konfiguration Kleineres Enterprise-Projekt Grösseres Enterprise-Projekt MongoDB Oracle MongoDB Oracle Software: MongoDB Subscriber Edition Software: Oracle Database Subscriber Edition und Oracle Real Application Cluster (RAC) Software: MongoDB Subscriber Edition Software: Oracle Database Subscriber Edition und Oracle Real Application Cluster (RAC) Server-Hardware: 3 Server (8 Cores/Server) SpeicherHardware: 3 TB SSD (gespiegelt) Anfänglicher Entwicklungsaufwand Server-Hardware: 3 Server (8 Cores/Server) SpeicherHardware: 3 TB SAN (nutzbar) Server-Hardware: 30 Server (8 Cores/Server) SpeicherHardware: 30 TB SSD (gespiegelt) Anmerkungen Server-Hardware: 30 Server (8 Cores/Server) SpeicherHardware: 30 TB SAN (nutzbar) MongoDB: Annahme: Die Entwicklungszeit verringert sich aufgrund der Anwenderfreundlichkeit und der größeren Agilität von MongoDB um den Faktor 2 (vgl. entsprechendes Kapitel in diesem Whitepaper) 120.000 $ 240.000 $ 360.000 $ 720.000 $ Oracle: Für das kleinere Projekt wurden 24 Personenmonate für die Anwendungsentwicklung angesetzt, für das größere Projekt 72 Personenmonate. Die vollständigen Gehaltskosten pro Entwickler wurden mit 120.000 USD pro Jahr angesetzt. A n s c h a f f u n g s ko s t e n MongoDB: Annahme: Bei gleichen Rahmenbedingungen vermindert MongoDB den Administrationsaufwand um den Faktor 2 Anfänglicher Administrationsaufwand 10.000 $ 20.000 $ 30.000 $ 60.000 $ Oracle: Beim kleineren Projekt wurde der Basis­ aufwand für die Anwendungsentwicklung mit 2 Personenmonaten angesetzt, beim größeren Projekt mit 6 Personenmonaten. Das Gehalt je Datenbankadministrator wurden mit 120.000 USD/Jahr angesetzt. Software-Lizenzen SoftwareLizenzen ServerHardware 0$ 12.000 $ 423.000 $ 12.000 $ 0$ 120.000 $ 4.230.000 $ 120.000 $ MongoDB: Die Kosten für MongoDB Subscriber Edition wurden im Abschnitt „Software-Wartung und -Support“ erfasst (siehe unten). Oracle: 70.500 USD pro RAC-Core (47.500 USD für Oracle DB Enterprise Edition + 23.000 USD für Oracle RAC), 0,5 Xeon Core Lizenzfaktor, 50% Nachlass gegenüber Listenpreis MongoDB und Oracle: Server mit 8 Cores, 32 GB RAM (4.000 USD/Server). 3 Server bei kleinerem Projekt; 30 Server bei größerem Projekt. MongoDB: 2 x 1-TB-SSD (gespiegelt) pro Server (4.000 USD/SSD). SpeicherHardware Anschaffungskosten gesamt 24.000 $ 125.000 $ 240.000 $ 500.000 $ 6 SSDs beim kleineren Projekt; 60 SSDs beim größeren Projekt. Oracle: 3 TB SAN (nutzbar) für kleineres Projekt (125.000 USD); 30 TB SAN (nutzbar) für größeres Projekt (500.000 USD). 166.000 $ 820.000 $ 750.000 $ 7 5.630.000 $ Tabelle 2: Analyse der Gesamtbetriebskosten–Zusammenfassung Konfiguration Kleineres Enterprise-Projekt Grösseres Enterprise-Projekt MongoDB Oracle MongoDB Oracle Software: MongoDB Subscriber Edition Software: Oracle Database Subscriber Edition und Oracle Real Application Cluster (RAC) Software: MongoDB Subscriber Edition Software: Oracle Database Subscriber Edition und Oracle Real Application Cluster (RAC) Server-Hardware: 3 Server (8 Cores/Server) SpeicherHardware: 3 TB SSD (gespiegelt) Entwicklungsaufwand Server-Hardware: 3 Server (8 Cores/Server) SpeicherHardware: 3 TB SAN (nutzbar) Server-Hardware: 30 Server (8 Cores/Server) SpeicherHardware: 30 TB SSD (gespiegelt) Anmerkungen Server-Hardware: 30 Server (8 Cores/Server) SpeicherHardware: 30 TB SAN (nutzbar) MongoDB: Annahme: Die Entwicklungszeit verringert sich aufgrund der Anwenderfreundlichkeit und der größeren Agilität von MongoDB um den Faktor 2 60.000 $ 120.000 $ 180.000 $ 360.000 $ Oracle: Für das kleinere Projekt wurden 12 Personenmonate für die Anwendungsentwicklung angesetzt, für das größere Projekt 36 Personenmonate. L a u f e n d e J ä h r l i c h e Ko s t e n Gehaltskosten pro Entwickler mit 120.000 USD pro Jahr angesetzt. Administrationsaufwand MongoDB: Annahme: Bei gleichen Rahmenbedingungen vermindert MongoDB den Administrationsaufwand um den Faktor 2 30.000 $ 60.000 $ 90.000 $ 180.000 $ Oracle: Annahme: Kleinere Projekte beanspruchen 50 % der Vollzeitstelle eines Datenbankadministrators, größere Projekte 150%. Gehaltskosten des Datenbankadministrators mit 120.000 USD pro Jahr angesetzt. SoftwareWartung und -Support 12.000 $ ServerWartung und -Support 1.200 $ 1.200 $ 12.000 $ 12.000 $ SpeicherWartung und -Support 2.400 $ 12.500 $ 24.000 $ 50.000 $ Diverse Implementierungskosten Erhebliche Unterschiede Erhebliche Unterschiede Erhebliche Unterschiede Erhebliche Unterschiede Laufende Gesamtkosten 105.600 $ 286.760 $ 414.000 $ 1.532.600 $ Laufende Gesamtkosten über 3 Jahre 316.800 $ 860.280 $ 1.242.000 $ 4.597.800 $ Gesamt­ betrieskosten nominell über 3 Jahre 482.800 $ 1.680.280 $ 1.992.000 $ 10.227.800 $ Einsparungen gegenüber Oracle 71 % 93.060 $ 108.000 $ 930.600 $ MongoDB: 4.000 USD/Server/Jahr bei kleinerem Projekt; 3.600 USD/Server/Jahr bei größerem Projekt (Nachlass 10 %) Oracle: 22 % der Lizenzgebühren 81 % MongoDB und Oracle: 10 % des Hardware-Kaufpreises MongoDB und Oracle: 10 % des Hardware-Kaufpreises Nicht berücksichtigt–variiert erheblich, wird aber als vergleichbar hoch bei MongoDB und Oracle angenommen. MongoDB ermöglicht Einsparungen von über 70 Prozent im Vergleich zu Oracle. Wie MongoDB die Wirtschaftlichkeit beeinflusst Fazit Die in diesem Whitepaper durchgeführte TCO-Analyse illustriert die finanziellen Vorteile beim Einsatz von MongoDB. Selbstverständlich haben unterschiedliche Faktoren wie die Anzahl und Komplexität der bereitgestellten Anwendungen Einfluss darauf, ob die Kostenabweichungen kleiner oder größer ausfallen. Bei den hier gewählten Beispielprojekten sind Aufbau und Betrieb von MongoDB im Vergleich zu Oracle jedoch über 70 Prozent günstiger. Der Kostenunterschied ist vor allem auf die höhere Anwenderfreundlichkeit und größere Flexibilität von MongoDB in der Entwicklung zurückzuführen. Dadurch lassen sich die Personalkosten deutlich senken. Weitere Kostenvorteile entstehen durch den Einsatz von Standard-Hardware (oben am Beispiel Speicher) sowie durch deutlich geringere Lizenz- und Supportgebühren im Vergleich zu Oracle. Obendrein wirken sich die technischen und finanziellen Vorteile von MongoDB positiv auf die Wirtschaftlichkeit aus, beispielsweise durch kürzere Markteinführungszeiten. Dank des dokumentenorientierten Modells und flexiblen Schemas können Anwender von MongoDB nicht nur Kosten einsparen, sondern auch von gesteigerter Agilität und Flexibilität profitieren – was sich wiederum positiv auf die Wirtschaftlichkeit auswirkt. Ein Unternehmen, das großen Aufwand betreiben muss, um ein starres relationales Schema an seine Anwendungen anzupassen, vergeudet nicht nur Geld für den zusätzlichen Entwicklungsaufwand. Es muss aufgrund der verlängerten Markeinführungszeit auch noch Opportunitätskosten tragen. Viele der zuvor besprochenen technischen und finanziellen Vorteile sorgen für kürzere Amortisations- und Markteinführungszeiten. Da MongoDB über ein flexibles Schema verfügt und sich für agile Softwareentwicklung eignet, können Unternehmen ihre Produkte schneller an eine veränderte Nachfrage anpassen. Die Datenbank kann auch in flexiblen Cloud-Umgebungen betrieben werden, so dass die Technologie für Unternehmen je nach Umsatz und Kundenzahl skalierbar bleibt. Wir hoffen, Sie haben in diesem Whitepaper gute Anhaltspunkte und Hilfestellungen gefunden, um die Gesamtbetriebskosen Ihrer eigenen Projekte und Datenbanken ermitteln zu können. Wenn Sie mehr über MongoDB und die damit verbundenen TCO-Vorteile erfahren möchten oder Kontakt zu einem Vertriebsmitarbeiter von 10gen wünschen, schicken Sie bitte eine E-Mail an [email protected]. All diese Aspekte können erheblich und folgenreich für ein Unternehmen sein – sie sind jedoch weitaus subjektiver und situationsabhängiger und lassen sich deutlich schwerer erfassen, als die in diesem Whitepaper besprochenen Kostenarten. Wir verzichten deshalb an dieser Stelle darauf, diese ausführlicher darzustellen. Vielmehr möchten wir einen Anstoß geben darüber nachzudenken, welches Potenzial sich Ihrem Unternehmen bietet, wenn sich Datenbanken einfacher und flexibler entwickeln und bereitstellen lassen. 9 New York • Palo Alto • Washington, D.C. • London • Dublin • Barcelona • Sydney UK + (44) 870-495-8023 • INTL (650) 440-4474 • [email protected] Herausgeber: 10gen, Inc. Oktober 2012