Database
 sql >> Datenbank >  >> RDS >> Database

Die Zukunft des Anwendungsstapels

Container fressen die Welt. Wenn Sie in den letzten Jahren eine Anwendung in der Produktion erstellt und bereitgestellt haben, stehen die Chancen gut, dass Sie Ihren Code in Containern bereitgestellt haben. Möglicherweise haben Sie direkt zu Beginn einzelne Container (Docker, Linux LXC usw.) erstellt und bereitgestellt, sind aber schnell auf eine Container-Orchestrierungstechnologie wie Kubernetes (K8s) oder Swarm umgestiegen, wenn Sie Multi-Node-Bereitstellungen und Hochverfügbarkeit koordinieren mussten (HA). Wie wird die Zukunft des Anwendungsstapels in dieser containergesteuerten Welt aussehen? Beginnen wir mit dem, was wir von diesem „zukünftigen“ Anwendungsstapel benötigen.

Was brauchen wir von diesem zukünftigen Anwendungsstapel?

  1. Cloud-unabhängig

    Wir möchten Cloud-unabhängig sein und die Möglichkeit haben, in jeder Cloud unserer Wahl bereitzustellen. Im Idealfall können wir sogar verschiedene Anbieter in einem einzigen Einsatz mischen.

  2. Vor Ort

    Wir müssen in der Lage sein, unseren Anwendungsstapel vor Ort mit unserer eigenen benutzerdefinierten Hardware, privaten Cloud und intern verwalteten Rechenzentren auszuführen.

  3. Sprachunabhängig

    Es gehört fast zum Sprichwort, aber ich füge es der Vollständigkeit halber hinzu. Der zukünftige Open Stack muss alle gängigen Programmiersprachen unterstützen.

Der zukünftige Anwendungsstapel

Der zukünftige Anwendungsstapel wird aus einer Triade von Technologien bestehen – K8s, Platform-as-a-Service (PaaS) und Database-as-a-Service (DBaaS) :

K8s

Kubernetes ist eine portable, erweiterbare Open-Source-Plattform zur Verwaltung containerisierter Arbeitslasten und Dienste, und Sie können Ihre Anwendungen direkt in K8s-Containern bereitstellen. Für Kunden mit bestehenden Anwendungen ist es absolut sinnvoll, Ihre bestehenden Anwendungen zu packen und direkt auf K8s bereitzustellen.

Die Zukunft des Anwendungsstapels:K8s, PaaS und DBaaSClick To Tweet

Alle Anbieter öffentlicher Clouds bieten starke native Unterstützung für K8s, und Sie können auch Ihren eigenen K8s-Cluster vor Ort betreiben. Auch Docker ist jetzt auf den K8s-Zug aufgesprungen – damit Sie volle Flexibilität haben. Es besteht kein Zweifel, dass K8s heute der König des Hügels ist. In ein paar Jahren wird es vielleicht von einer anderen Lösung übertroffen, aber die Container-Orchestrierungstechnologie wird bleiben.

PaaS-Lösungen

Wenn Sie eine neue Anwendung von Grund auf neu erstellen, bieten Platform-as-a-Service-Lösungen wie Cloud Foundry und OpenShift überzeugende Vorteile , die Sie nutzen können, um Ihre Anwendungsentwicklung zu beschleunigen Lebenszyklus. Ist eine PaaS ein Muss? Definitiv nicht, aber ich denke, es ist eine Überlegung wert, wenn Sie eine neue Anwendung erstellen.

In einigen Fällen laufen die PaaS-Lösungen möglicherweise auf K8s oder sitzen daneben – aus Anwendungssicht spielt es keine Rolle. Wenn Ihre IT-Organisation die PaaS-Lösung bereitstellt, mag sie es vielleicht, wenn sie nur auf ihren vorhandenen K8s-Clustern ausgeführt wird. Die oben genannten PaaS-Lösungen sind auch in allen Public Clouds verfügbar. Auch hier haben Sie die volle Flexibilität, die Sie von Ihrer Plattform benötigen.

DBaaS-Lösungen

Der Betrieb und die Verwaltung eines Produktionsdatenbanksystems ist nichts für schwache Nerven. Wenn Sie glauben, dass Sie Ihre Produktionsdatenbank auf drei Containern installieren und danach problemlos laufen werden, steht Ihnen etwas anderes bevor. Durch die Verwendung einer Database-as-a-Service-Lösung übernehmen sie alle betrieblichen Aspekte Ihrer Datenbankverwaltung, sodass Sie auf alle Unerwarteten vorbereitet sind.

Ihr DBaaS kann auf K8s laufen oder nicht. Vielleicht laufen einige Teile von DBaaS auf K8s, aber die Chancen stehen gut, dass dies nicht der Fall ist. Warum ist das so?

  1. Außerhalb der beliebten öffentlichen Clouds gibt es keine großartige Lösung für Speicher/Volumes, die der Qualität von EC2 Elastic Block Storage (EBS) entsprechen. Anbieter wie PortWorx und OpenEBS arbeiten daran, aber es ist noch nicht soweit. Ohne eine gute Speicherlösung ist es praktisch unmöglich, Daten in Ihre Container zu packen.
  2. Wenn Sie einen großen Produktionsdatenbankserver mit mehreren TB betreiben, ist es nicht sinnvoll, ihn in Containern auszuführen – Sie werden große dedizierte Maschinen mit ausgefallenen SSDs haben .
  3. Zu viel Dynamik – ja, man kann zu viel des Guten haben. Manchmal, wenn Dinge fehlschlagen, möchten Sie, dass sie fehlgeschlagen bleiben, damit Sie einen Blick darauf werfen und sehen können, was los ist. StatefulSets in Kubernetes sind ein großer Schritt in die richtige Richtung, um dieses Problem zu lösen.

Unsere Vision bei ScaleGrid ist es, den DBaaS-Teil dieses zukünftigen Anwendungsstapels bereitzustellen. Wir sind heute Multi-Cloud und können auch vor Ort oder in Ihrem eigenen privaten Rechenzentrum ausgeführt werden. Darüber hinaus ist unsere Plattform ein mehrsprachiges System, das mehrere Datenbanken unterstützt, darunter MongoDB®, Redis™*, MySQL und PostgreSQL.

Der Einfachheit halber habe ich einige andere Teile der Anwendungsstapel wie Objektspeicher, Dateisystemspeicher usw. ausgeschlossen. Im Prinzip erwarte ich Diese Komponenten ähneln der DBaaS-Komponente. Dieser Blogbeitrag wurde von einem PostgreSQL-Treffen im Silicon Valley inspiriert, an dem ich vor ein paar Wochen teilgenommen habe, und grüße Dave Nielsen (@davenielsen) von RedisLabs, dass er die Diskussion zu diesem Thema gestartet hat.