sql >> Database >  >> RDS >> Database

De toekomst van de applicatie-stack

Containers eten de wereld op. Als je de afgelopen jaren een applicatie in productie hebt gebouwd en geïmplementeerd, is de kans groot dat je je code in containers hebt geïmplementeerd. Mogelijk hebt u in het begin individuele containers (Docker, Linux LXC, enz.) gemaakt en geïmplementeerd, maar schakelde u snel over naar een containerorkestratietechnologie zoals Kubernetes (K8s) of Swarm wanneer u implementaties met meerdere knooppunten en hoge beschikbaarheid moest coördineren (HA). Hoe ziet de toekomst van de applicatie-stack eruit in deze containergestuurde wereld? Laten we beginnen met wat we nodig hebben van deze "toekomstige" applicatiestack.

Wat hebben we nodig van deze toekomstige applicatie-stack?

  1. Cloud-agnostisch

    We willen cloudonafhankelijk zijn met de mogelijkheid om te implementeren in elke cloud van onze keuze. Idealiter kunnen we zelfs verschillende providers in één implementatie combineren.

  2. Op locatie

    We moeten onze applicatie-stack on-premise kunnen uitvoeren met onze eigen aangepaste hardware, privécloud en intern beheerde datacenters.

  3. Taalagnostisch

    Het gaat bijna vanzelf, maar ik zal het voor de volledigheid toevoegen. De toekomstige open stack moet alle populaire programmeertalen ondersteunen.

De toekomstige applicatie-stack

De toekomstige applicatie-stack zal bestaan ​​uit een drietal technologieën:K8s, Platform-as-a-Service (PaaS) en Database-as-a-Service (DBaaS) :

K8s

Kubernetes is een draagbaar, uitbreidbaar open-sourceplatform voor het beheren van gecontaineriseerde workloads en services, en u kunt uw apps rechtstreeks implementeren in K8s-containers. Voor klanten met bestaande applicaties is het volkomen logisch om uw bestaande applicaties rechtstreeks in K8s te verpakken en te implementeren.

De toekomst van de applicatie-stack:K8s, PaaS &DBaaSClick To Tweet

Alle leveranciers van openbare cloud bieden krachtige native ondersteuning voor K8s, en u kunt ook uw eigen K8s-cluster on-premise uitvoeren. Docker is nu ook op de kar van de K8s gesprongen - dus je hebt volledige flexibiliteit. Het lijdt geen twijfel dat K8s vandaag de dag de koning van de heuvel is. Over een paar jaar wordt het misschien verslagen door een andere oplossing, maar technologie voor containerorkestratie is er om te blijven.

PaaS-oplossingen

Als u een geheel nieuwe app maakt, bieden Platform-as-a-Service-oplossingen zoals Cloud Foundry en OpenShift aantrekkelijke voordelen die u kunt benutten om uw app-ontwikkeling te versnellen levenscyclus. Is een PaaS een must? Absoluut niet, maar ik denk dat het het overwegen waard is als je een nieuwe applicatie maakt.

In sommige gevallen kunnen de PaaS-oplossingen op K8's draaien of ernaast zitten - vanuit een applicatieperspectief maakt het niet uit. Als uw IT-organisatie de PaaS-oplossing implementeert, vinden ze het misschien prettig als deze alleen op hun bestaande K8s-clusters draait. Bovenstaande PaaS-oplossingen zijn ook beschikbaar op alle public clouds. Dus nogmaals, je hebt de volledige flexibiliteit die je nodig hebt van je platform.

DBaaS-oplossingen

Het runnen en beheren van een productiedatabasesysteem is niet voor bangeriken. Als je denkt dat je je productiedatabase op drie containers gaat installeren en het nog lang en gelukkig zal werken, komt er nog iets anders aan. Door een Database-as-a-Service-oplossing te gebruiken, zullen ze alle operationele aspecten van uw databasebeheer afhandelen, zodat u voorbereid bent op al het onverwachte.

Uw DBaaS kan wel of niet op K8s draaien. Misschien draaien sommige delen van de DBaaS op K8s, maar de kans is groot dat dit niet het geval is. Waarom is dat?

  1. Buiten de populaire openbare clouds is er geen geweldige oplossing voor opslag/volumes met een EC2 Elastic Block Storage (EBS)-kwaliteit. Leveranciers als PortWorx en OpenEBS werken eraan, maar het is er nog niet. Zonder een goede opslagoplossing is het praktisch onmogelijk om gegevens in uw containers te plaatsen.
  2. Als u een grote productiedatabaseserver van meerdere TB gebruikt, heeft het geen zin om deze in containers uit te voeren - u krijgt grote speciale machines met fraaie SSD's .
  3. Te veel dynamiek - ja, je kunt te veel van het goede hebben. Soms, als dingen mislukken, wil je dat ze mislukt blijven, zodat je een kijkje kunt nemen en kunt zien wat er aan de hand is. StatefulSets in Kubernetes zijn een grote stap in de goede richting om dit probleem op te lossen.

Bij ScaleGrid is het onze visie om het DBaaS-gedeelte van deze toekomstige applicatiestack te realiseren. We zijn tegenwoordig multi-cloud en kunnen ook on-premise of in uw eigen privédatacenter draaien. Bovendien is ons platform een ​​polyglot systeem dat meerdere databases ondersteunt, waaronder MongoDB®, Redis™*, MySQL en PostgreSQL.

Omwille van de eenvoud heb ik enkele andere delen van de applicatie-stacks uitgesloten, zoals objectopslag, bestandssysteemopslag, enz. In principe verwacht ik deze componenten zullen vergelijkbaar zijn met de DBaaS-component. Deze blogpost is geïnspireerd op een PostgreSQL-bijeenkomst in Silicon Valley die ik een paar weken geleden bijwoonde, en roep Dave Nielsen (@davenielsen) van RedisLabs op voor het starten van de discussie over dit onderwerp.


  1. Is het mogelijk om de natuurlijke volgorde van kolommen in Postgres te wijzigen?

  2. Hoe kan ik een lijst maken met dezelfde ID-gegevens met while-lus in PHP?

  3. Wat zijn dekkende indexen en gedekte zoekopdrachten in SQL Server?

  4. Maximum aantal tekens in labels (tabelnamen, kolommen enz.)