Pular para o conteúdo principal

Visão geral

A oferta de deployment in-VPC do Devin permite hospedar os ambientes de desenvolvimento do Devin na sua VPC, o que possibilita que as VMs do Devin acessem recursos proprietários atrás do firewall corporativo. A arquitetura suportada oferece uma garantia de sistema totalmente stateless, o que significa que nenhum dado será armazenado em repouso fora do seu ambiente. Há várias maneiras de estabelecer um controle granular sobre o acesso do Devin dentro do seu ambiente, incluindo, entre outras, serviços ou recursos do cliente via SSO ou controles de acesso do sistema de controle de versão.

Central de Confiança

Para obter mais informações e documentação de segurança, visite nossa Central de Confiança.

Arquitetura principal

Devin consiste em dois componentes principais:

DevBox do Devin

Um ambiente de desenvolvimento personalizável onde as ações do Devin são executadas. Inclui shell, editor e funcionalidades de navegador. Implantado na VPC do cliente.

Cérebro do Devin

O núcleo de inteligência que processa trechos de contexto para determinar todas as ações do Devin. Hospedado no tenant da Cognition.
Arquitetura empresarial do Devin

Especificações de implantação

Requisitos de infraestrutura

Requisitos de tipo de instância:
  • AWS: i3 bare metal EC2
  • Azure: instâncias Lasv3 com Security Type padrão
Cada sessão do Devin requer uma nova VM. Esses tipos de instância permitem a criação sob demanda de VMs para o início de uma sessão do Devin. Visite AWS VPC Setup para ver a capacidade de concorrência por instância. Sistema operacional: Ubuntu 24.04

Arquitetura

Diagrama de Arquitetura do Tenant
  • O tenant da Cognition é hospedado no Azure
  • Portas: HTTPS/443 (somente tráfego de saída a partir da VPC do cliente é necessário)
  • Na inicialização do DevBox, um websocket é estabelecido e se conecta a um container isolado no tenant do Devin
  • Todas as comunicações subsequentes acontecem por essa conexão
  • Essa arquitetura oferece isolamento de sessão de backend por padrão
Conceder acesso à internet às instâncias in-VPC do Devin é fortemente recomendado

Gerenciamento de Dados

Banco de Dados da Cognition

  • Armazena somente metadados
  • Contém dados de referências de hash (IDs de sessão, IDs de evento, etc.)

Bancos de dados de clientes

Os dados de clientes são divididos em dois locais:
  1. Banco de dados principal de clientes:
    • Conecta-se diretamente ao cérebro do Devin
    • Armazena logs de sessão criptografados e dados do Devin relacionados ao cliente
  2. Banco de dados secundário de clientes:
    • Conecta-se à instância in-VPC
    • Armazena snapshots de VM, permitindo que sessões sejam iniciadas a partir de um snapshot
Todos os dados de clientes são criptografados com uma chave KMS personalizada. Todas as operações de leitura/gravação no banco de dados são realizadas por meio de APIs nativas.

Segredos

Contêineres isolados de Devin Brain, autorizados ao armazenamento de dados do cliente, são criados para cada nova sessão. Os segredos são descriptografados no início de uma sessão, carregados como variáveis de ambiente e, em seguida, criptografados novamente. Esse processo é programático.
Antes de serem enviados para o front-end, os segredos são ocultados e exibidos como [REDACTED SECRET].

Segurança

Criptografia

  • Criptografia AES-256 em repouso
  • Criptografia TLS 1.3+ em trânsito

Isolamento

  • Container do Devin Brain isolado por sessão
  • AWS WAF para as APIs públicas de front-end

Componentes do DevBox

Os seguintes itens são carregados na máquina do Devin:
  1. Principais utilitários: git, python, java, docker e outros
  2. Componentes personalizados:
    • Servidor VSCode
    • Servidor VNC para controle interativo do navegador
    • Scripts utilitários proprietários .py necessários para a funcionalidade do Devin
Você pode auditar os scripts e reduzir a instalação padrão de pacotes conforme desejar. Solicite os scripts de configuração do DevBox ao seu representante da Cognition.

Limitações

Restrições Técnicas

  • Limites de sessões simultâneas com base na capacidade da instância bare metal
  • A capacidade pode ser escalada horizontalmente ao provisionar mais instâncias base
  • Essas instâncias podem ser temporariamente desligadas em períodos de menor uso
  • O cliente é responsável pelos custos de infraestrutura em nuvem

Restrições de Implantação

  • Não há suporte para AMIs do cliente. É necessária uma configuração manual da máquina, feita uma única vez
  • Não há suporte para sistemas operacionais que não sejam Linux

Configuração de DNS

A configuração de DNS da instância do Devin requer ajustes adequados para resolver registros em zonas hospedadas privadas. Se você encontrar problemas de resolução de DNS com registros privados, siga as etapas abaixo.Para permitir que as instâncias do Devin resolvam registros em zonas hospedadas privadas:
  1. Atualize a configuração de DNS para usar o resolvedor de DNS da VPC (endereço .2) em vez de resolvedores públicos. Para isso, execute o seguinte comando:
aws ec2 describe-vpcs --vpc-id <VPC_ID> --query 'Vpcs[0].CidrBlock' --output text | awk -F/ '{split($1,a,"."); print a[1]"."a[2]"."a[3]".2"}'
  1. Edite o arquivo de configuração do systemd-resolved:
    sudo nano /etc/systemd/resolved.conf
    
  2. Substitua a entrada de DNS pelo endereço .2 da VPC.
    [Resolve]
    DNS={N.N.N.2}
    
  3. Reinicie o serviço systemd-resolved para aplicar as alterações:
    sudo systemctl restart systemd-resolved
    
Essa configuração garante que as instâncias do Devin possam resolver corretamente tanto registros DNS públicos quanto registros privados nas suas zonas hospedadas.