Consultoria e suporte Docker em Pittsburgh e Cleveland

A KawaConnect ajuda empresas de Pittsburgh, Pensilvânia, e da região de Cleveland, no nordeste de Ohio, a empacotar, implantar e manter aplicativos com Docker e Docker Compose. Construímos a implantação, o proxy, os backups e a rotina de atualização, e depois damos suporte.

Converse sobre o seu aplicativo Linux e Kubernetes
Fileiras de servidores em rack em um data center

Plataformas deste serviço

O que fazemos com o Docker

Empacotamos o aplicativo e depois construímos ao redor dele o que uma implantação em produção exige.

Conteinerização de aplicativos

Empacotamos seu aplicativo e suas dependências em imagens que são construídas da mesma forma todas as vezes.

Implantações com Docker Compose

Um arquivo Compose descreve os serviços, as redes e os volumes, de modo que um aplicativo inteiro inicia e reinicia como uma única unidade.

Proxy reverso e TLS

Uma única porta de entrada para vários aplicativos, com certificados HTTPS emitidos e renovados automaticamente.

Registries e builds de CI

Um registry de imagens privado e pipelines do GitLab CI que constroem, etiquetam e publicam imagens a cada alteração.

Backups de volumes

Dados persistentes com backup externo e restaurações de teste.

Atualizações de segurança

Imagens base reconstruídas e hosts atualizados em um cronograma, com um caminho de reversão.

Conteinerizar um aplicativo

Antes de conteinerizar um aplicativo, descobrimos o que ele lê, o que grava, quais portas usa e do que precisa na inicialização. O código e o ambiente de execução são descartáveis. Bancos de dados e arquivos enviados precisam persistir, então vão para volumes nomeados ou bind mounts, nunca para dentro do contêiner.

Segredos, como senhas de banco de dados, ficam fora das imagens e do controle de versão. Eles são fornecidos ao contêiner quando ele inicia.

Docker Compose para aplicativos empresariais

Para um único host, o Docker Compose costuma ser a ferramenta certa. Um único arquivo define o aplicativo, o banco de dados e o cache, e você inicia tudo com um comando.

  • Proxy reverso e TLS: um proxy encerra o HTTPS, encaminha por nome de host e renova os certificados, para que os aplicativos não fiquem expostos diretamente.
  • Comportamento de reinício: políticas de reinício e verificações de integridade trazem os serviços de volta após uma falha ou uma reinicialização.
  • Monitoramento: verificações de disponibilidade e logs alimentam os mesmos painéis dos seus outros sistemas.

Registries de imagens e builds de CI

Construir imagens em um notebook e copiá-las para um servidor não escala além de uma pessoa. Configuramos um registry privado e um pipeline do GitLab CI que constrói uma imagem sempre que o código muda, a etiqueta com uma versão e a publica. As implantações passam a baixar uma imagem conhecida e etiquetada, e voltar atrás significa apontar para a etiqueta anterior.

Backups e atualizações de segurança

Os contêineres são descartáveis, mas seus volumes não. Fazemos backup de volumes e bancos de dados em um cronograma, enviamos cópias para fora do local e executamos restaurações de teste. Para contêineres de banco de dados, usamos o método próprio de dump ou backup do banco, em vez de copiar arquivos de um serviço em execução. Veja nossos serviços de backup e recuperação de desastres.

As atualizações de segurança vêm em duas camadas. O sistema operacional do host precisa de patches, e as imagens precisam ser reconstruídas quando a imagem base ou uma biblioteca é corrigida. Agendamos as duas, testamos o resultado e mantemos a versão anterior disponível. Os hosts Docker costumam rodar como máquinas virtuais no Proxmox.

Quando migrar para o Kubernetes

O Docker Compose roda em um único host. Considere o Kubernetes quando perder esse host deixar de ser aceitável, ou quando você precisar de serviços distribuídos em várias máquinas, atualizados sem parada e reiniciados em outro lugar quando uma máquina falha. Um cluster dá mais trabalho para operar, então só o recomendamos quando você precisa dessas coisas. Nesse ponto, movemos as cargas de trabalho para os clusters descritos na consultoria em Linux e Kubernetes.

Como funciona um projeto

  1. Conversa de levantamento. Descobrimos o que o aplicativo faz e onde ele roda.
  2. Escopo por escrito. Um plano para contêineres, proxy, backups e atualizações.
  3. Construção e entrega. Implantamos, testamos uma restauração e documentamos como operar.
  4. Suporte contínuo. Opcional, com um engenheiro identificado.

Respondemos em até um dia útil. Nossos escritórios ficam em Coraopolis e Beaver Falls, na Pensilvânia, e o trabalho presencial na região de Cleveland é organizado conforme o projeto.

Perguntas sobre o suporte ao Docker

O Docker Compose é suficiente para produção?

Para muitos aplicativos empresariais em um único host, sim, desde que existam backups, monitoramento e uma rotina de patches. Ele não oferece failover entre hosts.

Vocês conseguem conteinerizar um software que não escrevemos?

Muitas vezes, sim. Muitos aplicativos publicam imagens de contêiner, e nós as configuramos e fazemos backup. Para software sob medida, nós o empacotamos ou trabalhamos com os seus desenvolvedores.

Vocês podem assumir um servidor Docker configurado por outra pessoa?

Sim. Fazemos o inventário dos contêineres, volumes e certificados, verificamos os backups e documentamos o que encontramos antes de alterar qualquer coisa.

Para quem é

  • Empresas que rodam um aplicativo em um único servidor difícil de reconstruir ou atualizar
  • Equipes que querem implantações repetíveis e uma configuração rastreada e versionada
  • Empresas que substituem software cobrado por usuário por ferramentas open source hospedadas por elas mesmas
  • Equipes de desenvolvimento que precisam de builds de imagens e de um registry

Guias relacionados

Explicações em linguagem simples da nossa base de conhecimento.

DockerKubernetesLinuxGitLabGit

Coloque seu aplicativo em um contêiner

Conte o que você roda e onde. Atendimento remoto em todo o país e presencial com agendamento em Pittsburgh e na região de Cleveland.

Inicie uma conversa