Einfluss von DevOps auf das Datenbankmanagement · Unser Oracle Multitenant Footprint 8 Hardware 2x...

37
Einfluss von DevOps auf das Datenbankmanagement Alain Fuhrer, Head IT Database Services

Transcript of Einfluss von DevOps auf das Datenbankmanagement · Unser Oracle Multitenant Footprint 8 Hardware 2x...

Page 1: Einfluss von DevOps auf das Datenbankmanagement · Unser Oracle Multitenant Footprint 8 Hardware 2x Exadata X8-2 (3 DB Nodes) 14 –16 CPU / Node Databases ca. 2000 PDB’sverteilt

Einfluss von DevOps auf das

Datenbankmanagement

Alain Fuhrer, Head IT Database Services

Page 2: Einfluss von DevOps auf das Datenbankmanagement · Unser Oracle Multitenant Footprint 8 Hardware 2x Exadata X8-2 (3 DB Nodes) 14 –16 CPU / Node Databases ca. 2000 PDB’sverteilt

ANALYTICS ON OLTP DATAREPORTS AUF OLTP DATEN

Koordinaten

▪ Alain Fuhrer

▪ Head IT Database Services@Die Mobiliar

2

https://twitter.com/AlainFuhrer

https://www.linkedin.com/in/alain-fuhrer-718883b5

https://mobiliar.ch/db-blog

Page 3: Einfluss von DevOps auf das Datenbankmanagement · Unser Oracle Multitenant Footprint 8 Hardware 2x Exadata X8-2 (3 DB Nodes) 14 –16 CPU / Node Databases ca. 2000 PDB’sverteilt

3

Page 4: Einfluss von DevOps auf das Datenbankmanagement · Unser Oracle Multitenant Footprint 8 Hardware 2x Exadata X8-2 (3 DB Nodes) 14 –16 CPU / Node Databases ca. 2000 PDB’sverteilt

4

Page 6: Einfluss von DevOps auf das Datenbankmanagement · Unser Oracle Multitenant Footprint 8 Hardware 2x Exadata X8-2 (3 DB Nodes) 14 –16 CPU / Node Databases ca. 2000 PDB’sverteilt

6

Page 7: Einfluss von DevOps auf das Datenbankmanagement · Unser Oracle Multitenant Footprint 8 Hardware 2x Exadata X8-2 (3 DB Nodes) 14 –16 CPU / Node Databases ca. 2000 PDB’sverteilt

19.11.2019 7

Open Source

Page 8: Einfluss von DevOps auf das Datenbankmanagement · Unser Oracle Multitenant Footprint 8 Hardware 2x Exadata X8-2 (3 DB Nodes) 14 –16 CPU / Node Databases ca. 2000 PDB’sverteilt

Unser Oracle Multitenant Footprint

8

Hardware

2x Exadata X8-2 (3 DB Nodes)

14 – 16 CPU / Node

Databases

ca. 2000 PDB’s verteilt auf ca. 60 CDB's▪ Oracle Audit▪ Refreshable PDB

▪ PDB Lockdown Profile▪ Data Guard

Features

▪ PDB Relocate

Page 9: Einfluss von DevOps auf das Datenbankmanagement · Unser Oracle Multitenant Footprint 8 Hardware 2x Exadata X8-2 (3 DB Nodes) 14 –16 CPU / Node Databases ca. 2000 PDB’sverteilt

Typische DB Bestellung früher…

19.11.2019 9

Developer Montag 09:15

Guten Morgen lieber DBA. Ich bin dabei einen neuen Service

zu entwickeln und benötige dafür eine DB. Kannst du mir bitte

eine erstellen? DBA Montag 14:35

Guten Morgen lieber Entwickler. Wenn du mir paar Details wie

DB System, DB Name, User, benötigte Rechte und

Tablespaces mitteilst, werde ich das gerne für dich erledigenDeveloper Dienstag 08:00

Bitte entschuldige ich dachte die Angaben reichen. Ich denke

Oracle und als Name bitte "mein_neuer_service_1"

Danke! DBA Dienstag 16:50

Ich habe dir eine Oracle Datenbank mit dem Namen "newsrv1"

(Nur 8 Zeichen möglich) erstellt.

PS: Du kannst sie aber immer noch nicht verwenden, da die

Angaben über den User / Rechte immer noch fehlenDeveloper Mittwoch 08:23

Hallo DBA. Bitte den User "app_newsrv1" erstellen. Betreffend

den Rechten bin ich noch unsicher, deswegen bitte alles

Developer Mittwoch 15:45

Perfekt Danke!

Passwort?

DBA Mittwoch 15:10

OK, der User wurde erstellt. Alle Rechte kriegst du sicher nicht,

aber ich habe dem User die Standard Applikationsrolle der

Mobiliar zugeteilt. Das sollte reichen und sonst melde dich.

DBA Mittwoch 15:56

Ah sorry vergessen, teile ich dir per Telefon mit.

Rufe dich gleich an

3 Tage!

Page 10: Einfluss von DevOps auf das Datenbankmanagement · Unser Oracle Multitenant Footprint 8 Hardware 2x Exadata X8-2 (3 DB Nodes) 14 –16 CPU / Node Databases ca. 2000 PDB’sverteilt

19.11.2019 10

Page 11: Einfluss von DevOps auf das Datenbankmanagement · Unser Oracle Multitenant Footprint 8 Hardware 2x Exadata X8-2 (3 DB Nodes) 14 –16 CPU / Node Databases ca. 2000 PDB’sverteilt

“Ich will, dass die Mobiliar 2020

fähig ist jeden Tag neue Services in

Produktion zu deployen”

11

Rolf Trueb CIO Swiss Mobiliar Insurance

2016

Page 12: Einfluss von DevOps auf das Datenbankmanagement · Unser Oracle Multitenant Footprint 8 Hardware 2x Exadata X8-2 (3 DB Nodes) 14 –16 CPU / Node Databases ca. 2000 PDB’sverteilt

12

Step 1

Von klassischenProjekten zu

agilen Methoden

Page 13: Einfluss von DevOps auf das Datenbankmanagement · Unser Oracle Multitenant Footprint 8 Hardware 2x Exadata X8-2 (3 DB Nodes) 14 –16 CPU / Node Databases ca. 2000 PDB’sverteilt

19.11.2019 13

Problem mit klassischen Softwareprojekten

Page 14: Einfluss von DevOps auf das Datenbankmanagement · Unser Oracle Multitenant Footprint 8 Hardware 2x Exadata X8-2 (3 DB Nodes) 14 –16 CPU / Node Databases ca. 2000 PDB’sverteilt

SAFe Framework wurde in der Ganzen Firma eingeführt

3 Monate 3 Monate

Page 15: Einfluss von DevOps auf das Datenbankmanagement · Unser Oracle Multitenant Footprint 8 Hardware 2x Exadata X8-2 (3 DB Nodes) 14 –16 CPU / Node Databases ca. 2000 PDB’sverteilt

Datenbank Team plant in Sprints und mit Stories

19.11.2019Titre de la présentation 15

▪ Team definiert am PI Planning, welche Arbeitspakete in den nächsten 3 Monaten erledigt werden

▪ Die Pakete werden in Stories aufgeteilt und gemeinsam auf die einzelnen Sprints des PI verteilt

▪ Es finden regelmässige Meetings statt, in welchen über den Fortschritt der einzelnen Stories berichtet

und über allfällige Probleme diskutiert wird

Page 16: Einfluss von DevOps auf das Datenbankmanagement · Unser Oracle Multitenant Footprint 8 Hardware 2x Exadata X8-2 (3 DB Nodes) 14 –16 CPU / Node Databases ca. 2000 PDB’sverteilt

16

Step 2

Von monolithischenApplikationen

zu µServices

Page 17: Einfluss von DevOps auf das Datenbankmanagement · Unser Oracle Multitenant Footprint 8 Hardware 2x Exadata X8-2 (3 DB Nodes) 14 –16 CPU / Node Databases ca. 2000 PDB’sverteilt

19.11.2019 17

Monolithisch vs. Microservice

Page 18: Einfluss von DevOps auf das Datenbankmanagement · Unser Oracle Multitenant Footprint 8 Hardware 2x Exadata X8-2 (3 DB Nodes) 14 –16 CPU / Node Databases ca. 2000 PDB’sverteilt

Transformation von monolytisch zu µServices

t

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

Typische Evolution

18

Page 19: Einfluss von DevOps auf das Datenbankmanagement · Unser Oracle Multitenant Footprint 8 Hardware 2x Exadata X8-2 (3 DB Nodes) 14 –16 CPU / Node Databases ca. 2000 PDB’sverteilt

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µService

µServices (microServices)

Page 20: Einfluss von DevOps auf das Datenbankmanagement · Unser Oracle Multitenant Footprint 8 Hardware 2x Exadata X8-2 (3 DB Nodes) 14 –16 CPU / Node Databases ca. 2000 PDB’sverteilt

20

Step 3

Das DB Management

muss sichmassiv ändern

Page 21: Einfluss von DevOps auf das Datenbankmanagement · Unser Oracle Multitenant Footprint 8 Hardware 2x Exadata X8-2 (3 DB Nodes) 14 –16 CPU / Node Databases ca. 2000 PDB’sverteilt

Anforderungen an das Datenbank Team

21

Wir müssen der Entwicklung "managed Services" anbieten

• Wir haben immer mehr µServices welche immer schneller DB's benötigen

• Oracle Multitenant hilft uns diese Challenge zu bewältigen

Automatisierung: Wir müssen ein automatisches DB deployment

implementieren (DBaaS)

• Datenbanken müssen innert Minuten verfügbar sein

• Datenbanken können für Monate, Tage, Stunden oder Minuten benötigt werden

• 1:1 Mapping zwischen Datenbank und µservice

• Die Datenbanken müssen komplett ohne DBA erstellt werden!

Page 22: Einfluss von DevOps auf das Datenbankmanagement · Unser Oracle Multitenant Footprint 8 Hardware 2x Exadata X8-2 (3 DB Nodes) 14 –16 CPU / Node Databases ca. 2000 PDB’sverteilt

Typische DB Bestellung früher…

19.11.2019 22

Developer Montag 09:15

Guten Morgen lieber DBA. Ich bin dabei einen neuen Service

zu entwickeln und benötige dafür eine DB. Kannst du mir bitte

eine erstellen? DBA Montag 14:35

Guten Morgen lieber Entwickler. Wenn du mir paar Details wie

DB System, DB Name, User, benötigte Rechte und

Tablespaces mitteilst, werde ich das gerne für dich erledigenDeveloper Dienstag 08:00

Bitte entschuldige ich dachte die Angaben reichen. Ich denke

Oracle und als Name bitte "mein_neuer_service_1"

Danke! DBA Dienstag 16:50

Ich habe dir eine Oracle Datenbank mit dem Namen "newsrv1"

(Nur 8 Zeichen möglich) erstellt.

PS: Du kannst sie aber immer noch nicht verwenden, da die

Angaben über den User / Rechte immer noch fehlenDeveloper Mittwoch 08:23

Hallo DBA. Bitte den User "app_newsrv1" erstellen. Betreffend

den Rechten bin ich noch unsicher, deswegen bitte alles

Developer Mittwoch 15:45

Perfekt Danke!

Passwort?

DBA Mittwoch 15:10

OK, der User wurde erstellt. Alle Rechte kriegst du sicher nicht.

aber ich habe dem User die Standard Applikationsrolle der

Mobiliar zugeteilt, dass sollte reichen und sonst melde dich.

DBA Mittwoch 15:56

Ah sorry vergessen, teile ich dir per Telefon mit.

Rufe dich gleich an

3 Tage!

Page 23: Einfluss von DevOps auf das Datenbankmanagement · Unser Oracle Multitenant Footprint 8 Hardware 2x Exadata X8-2 (3 DB Nodes) 14 –16 CPU / Node Databases ca. 2000 PDB’sverteilt

Start Punkt: Die Development Pipeline

23

Version control Build Server

Development

registerdetect push image

Get imagePush

Start Image

Docker registry

Wann und wo soll nun die DB gebaut

werden?

trigger deployment

Kubernetes

Page 24: Einfluss von DevOps auf das Datenbankmanagement · Unser Oracle Multitenant Footprint 8 Hardware 2x Exadata X8-2 (3 DB Nodes) 14 –16 CPU / Node Databases ca. 2000 PDB’sverteilt

Ansatz 1: Docker Container mit Oracle Datenbank in Kubernetes

24

PROs

▪ Gleiches RDBMS in Entwicklung und in Produktion

CONs

▪ DB Management wird sehr komplex und aufwändig

▪ Deployment ist zu langsam für die Anforderungen

▪ Oracle ist zu schwerfällig für Docker

▪ Keine 12c XE Version verfügbar = Lizenzkosten

Application Images

Oracle Images

Page 25: Einfluss von DevOps auf das Datenbankmanagement · Unser Oracle Multitenant Footprint 8 Hardware 2x Exadata X8-2 (3 DB Nodes) 14 –16 CPU / Node Databases ca. 2000 PDB’sverteilt

Ansatz 2: Docker Container mit PDB auf DB Server

25

PROs

▪ Datenbanken weiterhin in Verantwortung der DBA's

▪ Möglichkeit der Automatisierung (DBAAS)

▪ PDB' können sehr schnell provisioniert werden

▪ Gleiches RDBMS über alle Entwicklungstufen bis Produktion

▪ Deckt alle Anforderungen der Entwicklung ab

CONs

▪ Cloud native, aber nur mit der Oracle Cloud

Application Images

Connect using OUD

Page 26: Einfluss von DevOps auf das Datenbankmanagement · Unser Oracle Multitenant Footprint 8 Hardware 2x Exadata X8-2 (3 DB Nodes) 14 –16 CPU / Node Databases ca. 2000 PDB’sverteilt

DBaaS Architektur bei der Mobiliar Versicherung

26

t = 2 min

t = 1 min

Build Server

Development

registerdetect build

Get imagePush

Start Image

Docker registry

Kubernetes

order get state

OUD connect

t = 4...6 min

t = 8...10 min

Voll automatisches Applikations Deployment

inklusive Oracle DB in weniger als 10 Minuten

trigger deployment

PDB

Version control

Page 27: Einfluss von DevOps auf das Datenbankmanagement · Unser Oracle Multitenant Footprint 8 Hardware 2x Exadata X8-2 (3 DB Nodes) 14 –16 CPU / Node Databases ca. 2000 PDB’sverteilt

Technische Implementierung

27

Build Server

Container Database

Repository

Database

https://pdborder-api/$pdbname

REST Server

REST Call Execute Function

Execute Procedure

DB Link

▪ Job in DB zum starten eines Scripts erstellen

▪ OS Credentials an Job übergeben

▪ Shell script erstellt oder löscht pdb und führt

post actions aus

▪ Update pdb_orders Tabelle wenn Job erledigt

▪ Success Meldung an Build Server

▪ Build Server erstellt den Applikations Container

sql über oracle client

pdb_orders

Template

PDB APPL 1 APPL 2

Page 28: Einfluss von DevOps auf das Datenbankmanagement · Unser Oracle Multitenant Footprint 8 Hardware 2x Exadata X8-2 (3 DB Nodes) 14 –16 CPU / Node Databases ca. 2000 PDB’sverteilt

DBAAS ist perfekt, aber wo soll die PDB erstellt werden?

28

$pdb_name=topdb1

CDB Inventorydo10mm01 to10ms01 po10ss01

do10mm02 to10ms02 po10ss02

do10mm03 to10ms03 po10ss03

Verfügbar

Gesperrt

PDB Inventory

pdb count on to10ms01 = 22

pdb count on to10ms03 = 37

to10ms01

Job auf CDB erstellen

Restrictions

P = 50 PDB / CDB

T & D = 150 PDB / CDB

Page 29: Einfluss von DevOps auf das Datenbankmanagement · Unser Oracle Multitenant Footprint 8 Hardware 2x Exadata X8-2 (3 DB Nodes) 14 –16 CPU / Node Databases ca. 2000 PDB’sverteilt

Fazit – Die DBaaS Schnittstelle ist ein grosser Erfolg

29

▪ Wir konnten die Anforderungen von allen Stakeholdern abdecken

▪ In zwei Jahren wurden mehr als 1000 PDB's automatisiert über die Schnittstelle deployed

▪ Mit diesem Service können wir heute und in naher Zukunft die Anforderungen abdecken, die eine agile

Softwareentwicklung an das DB-Management stellt

79102 103 113 118 138 158

180 192225 242

265298 310

332361

383 391429 434 440 459

493517

546580

625653 673

710746

808861

980

1’083

Dez 16

Jan 17

Feb 17

Mär 17

Apr 17

Mai 17

Jun 17

Jul 17

Aug 17

Sep 17

Okt 17

Nov 17

Dez 17

Jan 18

Feb 18

Mär 18

Apr 18

Mai 18

Jun 18

Jul 18

Aug 18

Sep 18

Okt 18

Nov 18

Dez 18

Jan 19

Feb 19

Mär 19

Apr 19

Mai 19

Jun 19

Jul 19

Aug 19

Sep 19

Okt 19

CREATED PDB IN DEV OVER DBAAS

Page 30: Einfluss von DevOps auf das Datenbankmanagement · Unser Oracle Multitenant Footprint 8 Hardware 2x Exadata X8-2 (3 DB Nodes) 14 –16 CPU / Node Databases ca. 2000 PDB’sverteilt

Und als wir dachte wir hätten

sämtliche Probleme gelöst kam

direkt die nächste Challenge…

30

Page 31: Einfluss von DevOps auf das Datenbankmanagement · Unser Oracle Multitenant Footprint 8 Hardware 2x Exadata X8-2 (3 DB Nodes) 14 –16 CPU / Node Databases ca. 2000 PDB’sverteilt

Jeder Entwickler wollte eine andere Open Source DB

31

Relational Search Engine Document Store

Key Value Store

Graph Database

Page 32: Einfluss von DevOps auf das Datenbankmanagement · Unser Oracle Multitenant Footprint 8 Hardware 2x Exadata X8-2 (3 DB Nodes) 14 –16 CPU / Node Databases ca. 2000 PDB’sverteilt

19.11.2019 32

Die Entwickler schreien nach Open Source Datenbanken 2018

Produkt Begründung der Entwicklung

• Alle Microservices laufen in Docker Containern auf Kubernetes, wir wollen auch die DB im Docker Container.

• Wir haben meistens nur einige MB an Daten weshalb benötigen wir ein RDBMS das x Mal grösser ist als der Inhalt

• Wir wollen Cloud Nativ sein und ein Docker Container können wir überall deployen

• Postgres in Docker kann viel einfacher in unsere CI/CD Pipeline integriert werden als Oracle über die DBAAS

Schnittstelle

• Es gibt keine aktuelle Oracle Version mit allen Funktionen welche lizenzfrei ist für die ersten Builds auf dem

Entwickernotebook, ausserdem ist Oracle und Docker viel zu schwerfällig (Grösse / Startup Time)

• Wir benötigen einen Document Store für JSON basierte Services

• Oracle kann auch JSON aber ist für uns zu kompliziert und aufwändig

• Mongo DB kennen einige Entwickler und kann schnell und einfach in Docker deployed werden.

• In der Mobiliar werden immer mehr Applikationen betrieben welche auf Textsuche basieren.

• Bei einer Applikation auf Oracle stand das Go Life auf der Kippe, da Textsuche verwendet wurde und die Performance

auch nach intensiven Tuningaufwand durch externe Spezialisten nicht ausreichend war. Bessere Performance hätte ein

massiver Umbau des ganzen Datenmodels vorausgesetzt

• Als letzte Hoffnung versuchte ein Entwickler eine Elastic Search Instanz der Oracle DB vorzulagern, in welche die Daten

geladen und die Textsuche ausgelagert wird. Ohne Tuningaufwand war die Applikation um Faktor 10 schneller!

• Dies zeigte uns, dass wir in Zukunft für Applikationen mit intensiver Textsuche auf Elastic Search setzen wollen

(Use Cases sind Phonetische Suche, Unstrukturierte Suche, Indexierung von Dokumenten)

Page 33: Einfluss von DevOps auf das Datenbankmanagement · Unser Oracle Multitenant Footprint 8 Hardware 2x Exadata X8-2 (3 DB Nodes) 14 –16 CPU / Node Databases ca. 2000 PDB’sverteilt

Evaluationskriterien für Open Source DB-Systeme

3319.11.2019

Features

▪ Containerfähigkeit

▪ Schlanke Software

▪ Keine / tiefe Lizenzkosten

Backup / Restore

▪ Disaster-fähig

▪ Point in time-Recovery

▪ Online

Hochverfügbarkeit

▪ Kurze Ausfallzeiten

▪ Spiegelung über mehrere RZ

Sicherheit

▪ Personalisierte User

▪ Audit-Funktionen

▪ Verschlüsselung

Monitoring und Logging

▪ Zentralisiert

▪ Alerting-Funktionen

▪ Historische Daten

(Hersteller) Support

▪ Unterstützung bei Problemen

▪ Tiefe Supportkosten

Automatisierter Betrieb

▪ Automatisierung einmalig

vor Betriebsaufnahme

▪ Lifecycle und Deployments

sind definiert

▪ Standardisierung ist definiert

Page 34: Einfluss von DevOps auf das Datenbankmanagement · Unser Oracle Multitenant Footprint 8 Hardware 2x Exadata X8-2 (3 DB Nodes) 14 –16 CPU / Node Databases ca. 2000 PDB’sverteilt

Instanziieren der DB Systeme anhand des Evaluationskatalog

3419.11.2019

Features

▪ Elasticsearch wird für Suchfunktionen, Replikate und Log-

Daten eingesetzt. EL eignet sich nicht für business-

kritische und transaktionssichere Datenhaltung.

Backup / Restore

▪ Backup wird auf Anfrage vom Feature

Team entwickelt und aufgesetzt.

Anforderungen werden erhoben und

umgesetzt

Hochverfügbarkeit

▪ Elasticsearch läuft im Kubernetes

Cluster. Die Verfügbarkeit beruht

auf den Kubernetes Mechanismen

Sicherheit

▪ Sicherheit erfolgt über das Plug-

In ReadonlyREST

Monitoring und Logging

▪ Monitoring und Logging erfolgen

über Grafana und Prometheus,

Standard Tools für Kubernetes

(Hersteller) Support

▪ Support wird aus der Community

bezogen. Wir beziehen KnowHow

durch externe Beratung

Automatisierter Betrieb

▪ Elasticsearch läuft im Docker

Container.

Page 35: Einfluss von DevOps auf das Datenbankmanagement · Unser Oracle Multitenant Footprint 8 Hardware 2x Exadata X8-2 (3 DB Nodes) 14 –16 CPU / Node Databases ca. 2000 PDB’sverteilt

Welche DB Dienstleistungen stellen wir der Entwicklung zur Verfügung?

19.11.2019Titre de la présentation 35

▪ Steht unter der Verantwortung

vom DB Team

Standard DB Service

DB Service

Gruppen

▪ Steht unter der Verantwortung

der Entwickungsteams

Agile DB Service

▪ Unterstützt die Entwicklungsteams

beim Aufbau eines Agile DB

Service

DB Enabling Service

▪ Unterstützt die Entwicklungsteams

bei der Migration auf einen

Standard DB Service

DB Migration Service

Page 36: Einfluss von DevOps auf das Datenbankmanagement · Unser Oracle Multitenant Footprint 8 Hardware 2x Exadata X8-2 (3 DB Nodes) 14 –16 CPU / Node Databases ca. 2000 PDB’sverteilt

19.11.2019 36

Aktueller Stand der Services

Produkt Aufwand DB Team und aktueller Status

• Zusammen mit den Entwicklern und externen Spezialisten definierten wir die Architektur zum Betrieb von Postgres in Docker

• Enormer Aufwand damit der Service Enterprise ready ist (Backup, Restore, Lifecycle, Automatisierung)

• Mehrere Container für einen Microservice notwendig welche untereinander kommunizieren müssen (Dafür ist Kubernetes nicht vorgesehen)

• Persistenz, einziger Persistenzlayer in Kubernetes ist NFS welches schon bei geringer Last Probleme macht (I/O Latenz)

• Kubernetes ist eine Applikationsverwaltungsplattform keine DB Plattform!!

• Anhand dieser Probleme wurde der Entschluss gefasst das die PDB als Datenbanklösung für Microservices bleit. Auch weil die Entwicklung

mittlerweile mit dem DBAAS sehr zufrieden ist.

• Wird ein Service in der Cloud entwickelt, dient als Datastore ein DB Service aus der Cloud und kein "Mobi Engineerter Docker Container"

• Mongo DB Service wurde implementiert und steht unter gewissen Auflagen (keine heiklen Daten) als Docker Service zur Verfügung

• Deployment sowie Lifecycle vollwertig automatisiert (Config as Code)

• Service wird komplett durch DBA verwaltet, Entwickler müssen sich um nichts kümmern (Lifecycle, Backup, Security)

• Service wird von der Entwicklung sehr selten genutzt und zwar aus folgende Gründen:

• Es gibt doch nicht so viele Microservices welche rein JSON basiert sind

• Meistens Mischung aus JSON und relational wodurch die PDB wider priorisiert wird.

• Sehr viele neue und gute JSON Funktionen sind mit den neuen Oracle Versionen implementiert worden.

• Elastic DB Service wurde implementiert und steht unter gewissen Auflagen (kein Primärer Datastore) als Docker Service zur Verfügung

• Es wird kein Backup des Service durchgeführt, bei Crash werden die Daten neu aus Oracle (Primärer Datastore geladen)

• Deployment und Lifecylce komplett automatisiert (Config as Code)

• Service wird komplett durch DBA verwaltet, Entwickler müssen sich um nichts kümmern (Lifecycle, Security)

• Service wird von Anfang an bei Applikationen mit Textsuche eingesetzt, jedoch zeigen sich auch hier Probleme mit dem Persistenz Layer im

Kubernetes, weshalb wir für Instanzen mit hoher Last den Service auch auf VM zur Verfügung stellen.