Database
 sql >> Base de Dados >  >> RDS >> Database

O futuro da pilha de aplicativos

Os contêineres estão comendo o mundo. Se você criou e implantou um aplicativo em produção nos últimos anos, é provável que tenha implantado seu código em contêineres. Você pode ter criado e implantado contêineres individuais (Docker, Linux LXC, etc.) diretamente no início, mas mudou rapidamente para uma tecnologia de orquestração de contêiner como Kubernetes (K8s) ou Swarm quando precisou coordenar implantações de vários nós e alta disponibilidade (AH). Neste mundo orientado a contêineres, como será o futuro da pilha de aplicativos? Vamos começar com o que precisamos dessa pilha de aplicativos “futuros”.

O que precisamos dessa futura pilha de aplicativos?

  1. Agnóstico de nuvem


    Queremos ser independentes da nuvem com a capacidade de implantar em qualquer nuvem de nossa escolha. Idealmente, podemos até misturar vários provedores em uma única implantação.
  2. No local


    Precisamos ser capazes de executar nossa pilha de aplicativos no local com nosso próprio hardware personalizado, nuvem privada e datacenters gerenciados internamente.
  3. Agnóstico de linguagem


    É quase como dizer, mas vou adicioná-lo para completar. A futura pilha aberta precisa oferecer suporte a todas as linguagens de programação populares.

A futura pilha de aplicativos

A futura pilha de aplicativos será composta por uma tríade de tecnologias – K8s, Platform-as-a-Service (PaaS) e Database-as-a-Service (DBaaS) :


K8s

O Kubernetes é uma plataforma de código aberto portátil e extensível para gerenciar cargas de trabalho e serviços em contêineres, e você pode implantar seus aplicativos diretamente em contêineres K8s. Para clientes com aplicativos existentes, faz todo o sentido empacotar e implantar seus aplicativos existentes diretamente no K8s.

O futuro da pilha de aplicativos:K8s, PaaS e DBaaSClique para tuitar

Todos os fornecedores de nuvem pública oferecem um forte suporte nativo para K8s, e você também pode executar seu próprio cluster K8s no local. O Docker também entrou na onda dos K8s - para que você tenha total flexibilidade. Não há dúvida de que o K8s é o rei da colina hoje. Em alguns anos, pode ser derrotado por outra solução, mas a tecnologia de orquestração de contêineres veio para ficar.

Soluções de PaaS

Se você estiver criando um novo aplicativo do zero, soluções de plataforma como serviço, como Cloud Foundry e OpenShift, oferecem vantagens atraentes que você pode aproveitar para acelerar o desenvolvimento de aplicativos ciclo da vida. Uma PaaS é obrigatória? Definitivamente não, mas acho que vale a pena considerar se você estiver criando um novo aplicativo.

Em alguns casos, as soluções PaaS podem ser executadas em K8s ou ficar ao lado dele – do ponto de vista do aplicativo, não importa. Se sua organização de TI estiver implantando a solução PaaS, ela poderá gostar se ela for executada apenas em seus clusters K8s existentes. As soluções PaaS mencionadas acima também estão disponíveis em todas as nuvens públicas. Então, novamente, você tem a flexibilidade total de que precisa em sua plataforma.

Soluções DBaaS

Executar e gerenciar um sistema de banco de dados de produção não é para os fracos de coração. Se você acha que vai instalar seu banco de dados de produção em três contêineres e vai rodar felizes para sempre, você tem outra coisa vindo. Ao usar uma solução de banco de dados como serviço, eles lidarão com todos os aspectos operacionais do gerenciamento de banco de dados para que você esteja preparado para todo e qualquer imprevisto.

Seu DBaaS pode ou não ser executado em K8s. Talvez algumas partes do DBaaS sejam executadas no K8s, mas as chances são de que não. Por que é que?

  1. Fora das nuvens públicas populares, não há uma ótima solução para armazenamento/volumes que sejam de qualidade EC2 Elastic Block Storage (EBS). Fornecedores como PortWorx e OpenEBS estão trabalhando nisso, mas ainda não está lá. Sem uma boa solução de armazenamento, é praticamente impossível colocar dados em seus contêineres.
  2. Se você estiver executando um grande servidor de banco de dados de produção de vários TB, não faz sentido executá-lo em contêineres - você terá grandes máquinas dedicadas com SSDs sofisticados .
  3. Dinamismo demais – sim, você pode ter uma coisa boa demais. Às vezes, quando as coisas falham, você quer que elas continuem falhando para que você possa dar uma olhada e ver o que está acontecendo. StatefulSets no Kubernetes são um grande passo na direção certa para resolver esse problema.

Na ScaleGrid, nossa visão é entregar no DBaaS parte dessa futura pilha de aplicativos. Hoje somos multinuvem e também podemos executar no local ou em seu próprio datacenter privado. Além disso, nossa plataforma é um sistema poliglota que suporta vários bancos de dados, incluindo MongoDB®, Redis™*, MySQL e PostgreSQL.

Para simplificar, excluí algumas outras partes das pilhas de aplicativos, como armazenamento de objetos, armazenamento do sistema de arquivos etc. Em princípio, espero esses componentes serão semelhantes ao componente DBaaS. Esta postagem do blog foi inspirada em um encontro do Silicon Valley PostgreSQL que participei há algumas semanas e agradeço a Dave Nielsen (@davenielsen) do RedisLabs por iniciar a discussão sobre esse tópico.