Vai al contenuto principale

Panoramica

L’offerta di distribuzione in-VPC di Devin consente di ospitare gli ambienti di sviluppo di Devin nella tua VPC, permettendo alle VM di Devin di accedere alle risorse proprietarie dietro il firewall aziendale. L’architettura supportata garantisce un sistema completamente stateless, il che significa che nessun dato verrà archiviato a riposo al di fuori del tuo ambiente. Esistono diversi modi per stabilire un controllo dettagliato sull’accesso di Devin all’interno del tuo ambiente, inclusi, ma non limitati a, i tuoi servizi o risorse tramite SSO o i controlli di accesso dei sistemi di controllo versione.

Trust Center

Per ulteriori informazioni e documentazione sulla sicurezza, visita il nostro Trust Center.

Architettura di base

Devin è composto da due componenti principali:

DevBox di Devin

Un ambiente di sviluppo personalizzabile in cui vengono eseguite le azioni di Devin. Include shell, editor e funzionalità di browser. Eseguito all’interno della VPC del cliente.

Il cervello di Devin

Il sistema di intelligenza principale che elabora frammenti di contesto per determinare ogni azione eseguita da Devin. Ospitato nel tenant di Cognition.
Architettura Enterprise di Devin

Specifiche di distribuzione

Requisiti di infrastruttura

Requisiti del tipo di istanza:
  • AWS: i3 bare metal EC2
  • Azure: istanze Lasv3 con Security Type standard
Ogni sessione di Devin richiede una nuova VM. Questi tipi di istanza consentono la creazione ad hoc di VM per l’avvio della sessione di Devin. Consulta AWS VPC Setup per vedere la capacità di esecuzione concorrente per istanza. Sistema operativo: Ubuntu 24.04

Architettura

Diagramma dell'architettura del tenant
  • Il tenant Cognition è ospitato su Azure
  • Porte: HTTPS/443 (è richiesto solo il traffico in uscita dalla VPC del cliente)
  • All’avvio di DevBox, si apre un websocket che si connette a un container isolato nel tenant Devin
  • Tutti gli scambi successivi avvengono tramite questa connessione
  • Questa architettura supporta l’isolamento delle sessioni di backend per impostazione predefinita
Si raccomanda vivamente di concedere l’accesso a Internet alle istanze in-VPC di Devin

Gestione dei dati

Database di Cognition

  • Archivia solo metadati
  • Contiene dati di riferimento basati su hash (ID di sessione, ID di evento, ecc.)

Database dei clienti

I dati dei clienti sono suddivisi in due archivi distinti:
  1. Database clienti primario:
    • Si interfaccia direttamente con il brain di Devin
    • Archivia i log di sessione crittografati e i dati di Devin relativi ai clienti
  2. Database clienti secondario:
    • Si collega all’istanza in-VPC
    • Archivia gli snapshot delle VM, consentendo di avviare le sessioni da uno snapshot
Tutti i dati dei clienti sono crittografati con una chiave KMS dedicata. Tutte le operazioni di lettura/scrittura sul database vengono eseguite tramite API native.

Segreti

Per ogni nuova sessione vengono creati contenitori Devin Brain isolati, autorizzati all’archivio dati del cliente. I segreti vengono decrittografati all’inizio di una sessione, caricati come variabili d’ambiente, quindi nuovamente crittografati. Questo processo è completamente automatizzato.
Prima di essere inviati al frontend, i segreti vengono mascherati e visualizzati come [REDACTED SECRET].

Sicurezza

Crittografia

  • Crittografia AES 256 dei dati a riposo
  • Crittografia TLS 1.3+ dei dati in transito

Isolamento

  • Container Devin Brain isolato per ogni sessione
  • AWS WAF per le API frontend pubbliche

Componenti DevBox

I seguenti elementi sono precaricati sulla macchina di Devin:
  1. Componenti principali: git, python, java, docker e altro
  2. Componenti personalizzati:
    • Server VS Code
    • Server VNC per il controllo interattivo del browser
    • Script di utilità proprietari .py necessari per il funzionamento di Devin
Puoi esaminare gli script e ridurre l’installazione predefinita dei pacchetti in base alle tue esigenze. Richiedi gli script di configurazione di DevBox al tuo rappresentante Cognition.

Limiti

Vincoli tecnici

  • Limiti sul numero di sessioni concorrenti in base alla capacità delle istanze bare metal
  • La capacità può essere scalata orizzontalmente effettuando il provisioning di ulteriori istanze
  • Queste istanze possono essere temporaneamente spente durante periodi di utilizzo ridotto
  • Il cliente è responsabile dei costi dell’infrastruttura cloud

Restrizioni di distribuzione

  • Non è previsto il supporto per AMI personalizzate dei clienti. È richiesta una configurazione manuale una tantum della macchina
  • Non è previsto il supporto per sistemi operativi non Linux

Configurazione DNS

La configurazione DNS dell’istanza Devin richiede una configurazione corretta per poter risolvere i record nelle private hosted zones. Se riscontri problemi di risoluzione DNS con record privati, segui i passaggi seguenti.Per abilitare le istanze di Devin a risolvere i record nelle private hosted zones:
  1. Aggiorna la configurazione DNS per usare il resolver DNS della VPC (indirizzo .2) invece dei resolver pubblici. Per ottenerlo, esegui il comando seguente:
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. Modifica il file di configurazione di systemd resolved:
    sudo nano /etc/systemd/resolved.conf
    
  2. Sostituisci la voce DNS con l’indirizzo .2 della VPC.
    [Resolve]
    DNS={N.N.N.2}
    
  3. Riavvia il servizio systemd-resolved per applicare le modifiche:
    sudo systemctl restart systemd-resolved
    
Questa configurazione garantisce che le istanze Devin possano risolvere correttamente sia i record DNS pubblici sia i record privati nelle tue hosted zones.