Passer au contenu principal

Vue d’ensemble

L’offre de déploiement de Devin en VPC vous permet d’héberger les environnements de développement de Devin dans votre propre VPC, ce qui permet aux machines virtuelles (VM) de Devin d’accéder aux ressources propriétaires situées derrière votre pare-feu d’entreprise. L’architecture prise en charge garantit un système entièrement sans état, ce qui signifie qu’aucune donnée ne sera stockée au repos en dehors de votre environnement. Vous disposez de plusieurs moyens pour exercer un contrôle granulaire sur l’accès de Devin à votre environnement, notamment, sans s’y limiter, au niveau de vos services ou ressources via le SSO ou les contrôles d’accès de votre système de gestion de versions.

Centre de confiance

Pour en savoir plus et consulter la documentation de sécurité, rendez-vous sur notre Centre de confiance.

Architecture de base

Devin se compose de deux éléments principaux :

DevBox de Devin

Un environnement de développement personnalisable où les actions de Devin sont exécutées. Comprend des fonctionnalités de shell, d’éditeur et de navigateur. Déployé au sein du VPC du client.

Cerveau de Devin

Le système d’intelligence principal qui traite des fragments de contexte afin de déterminer chacune des actions de Devin. Hébergé dans le tenant de Cognition.
Architecture d'entreprise de Devin

Spécifications de déploiement

Exigences en matière d’infrastructure

Exigences relatives au type d’instance :
  • AWS : i3 bare metal EC2
  • Azure : instances Lasv3 avec type de sécurité Standard
Chaque session Devin nécessite une nouvelle VM. Ces types d’instances permettent la création à la volée de VM au démarrage d’une session Devin. Consultez AWS VPC Setup pour connaître la capacité de traitement simultané par instance. Système d’exploitation : Ubuntu 24.04

Architecture

Tenant Architecture Diagram
  • Le tenant Cognition est hébergé sur Azure
  • Ports : HTTPS/443 (seul le trafic sortant depuis le VPC du client est requis)
  • Au démarrage d’un DevBox, un WebSocket s’ouvre et se connecte à un conteneur isolé dans le tenant Devin
  • Tous les échanges suivants ont lieu via cette connexion
  • Cette architecture assure par défaut l’isolation des sessions backend
Il est fortement recommandé d’accorder un accès Internet aux instances de Devin dans le VPC

Gestion des données

Base de données Cognition

  • Stocke uniquement les métadonnées
  • Contient les données de référence de hachage (ID de session, ID d’événement, etc.)

Bases de données clients

Les données clients sont réparties entre deux emplacements :
  1. Base de données clients principale :
    • Connectée directement au cerveau de Devin
    • Stocke les journaux de session chiffrés et les données Devin des clients
  2. Base de données clients secondaire :
    • Connectée à l’instance in-VPC
    • Stocke des snapshots de VM, ce qui permet de démarrer des sessions à partir d’un snapshot
Toutes les données clients sont chiffrées avec une clé KMS personnalisée. Toutes les opérations de lecture/écriture en base de données sont effectuées via les API natives.

Secrets

Des conteneurs Devin Brain isolés, autorisés à accéder au magasin de données du client, sont créés pour chaque nouvelle session. Les secrets sont déchiffrés au début d’une session, chargés en tant que variables d’environnement, puis de nouveau chiffrés. Ce processus est géré de manière programmatique.
Avant d’être envoyés au front-end, les secrets sont masqués et affichés sous la forme [REDACTED SECRET].

Sécurité

Chiffrement

  • Chiffrement AES 256 des données au repos
  • Chiffrement TLS 1.3+ des données en transit

Isolement

  • Conteneur Devin Brain isolé pour chaque session
  • AWS WAF pour les API front-end publiques

Composants DevBox

Les éléments suivants sont installés sur la machine de Devin :
  1. Utilitaires principaux : git, python, java, docker, et plus encore
  2. Composants personnalisés :
    • Serveur VSCode
    • Serveur VNC pour le contrôle interactif du navigateur
    • Scripts utilitaires propriétaires .py nécessaires au fonctionnement de Devin
Vous pouvez auditer les scripts et réduire l’installation par défaut des paquets si vous le souhaitez. Demandez les scripts de configuration DevBox à votre représentant Cognition.

Limitations

Contraintes techniques

  • Limites de sessions simultanées en fonction de la capacité des instances bare metal
  • La capacité peut être augmentée horizontalement en provisionnant davantage d’instances supplémentaires
  • Ces instances peuvent être temporairement arrêtées pendant les périodes de moindre utilisation
  • Les coûts d’infrastructure cloud sont à la charge du client

Restrictions de déploiement

  • Aucune prise en charge des AMI client. Une configuration manuelle unique de la machine est requise
  • Aucune prise en charge des systèmes d’exploitation non Linux

Configuration DNS

La configuration DNS de l’instance Devin nécessite un paramétrage approprié pour résoudre les enregistrements dans les zones hébergées privées. Si vous rencontrez des problèmes de résolution DNS avec des enregistrements privés, suivez les étapes ci-dessous.Pour permettre aux instances Devin de résoudre les enregistrements dans les zones hébergées privées :
  1. Mettez à jour la configuration DNS pour utiliser le résolveur DNS du VPC (adresse .2) au lieu de serveurs DNS publics. Pour la déterminer, exécutez la commande suivante :
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. Modifiez le fichier de configuration de systemd-resolved :
    sudo nano /etc/systemd/resolved.conf
    
  2. Remplacez l’entrée DNS par l’adresse .2 du VPC.
    [Resolve]
    DNS={N.N.N.2}
    
  3. Redémarrez le service systemd-resolved pour appliquer les modifications :
    sudo systemctl restart systemd-resolved
    
Cette configuration garantit que les instances Devin peuvent correctement résoudre à la fois les enregistrements DNS publics et les enregistrements privés dans vos zones hébergées.