WERBEPLATZ VERFÜGBAR · PARTNERSCHAFTEN WILLKOMMEN

Wie Enterprise-Entwicklungsteams Tabnine On-Premises konfigurieren und Quellcode-Abfluss verhindern

365Finds Editorial
11.430 Wiki-Artikel erfasst

365 Wiki mit deiner KI nutzen

Kopiere den Prompt unten, füge ihn in deine gewohnte KI ein und stelle direkt deine Frage.

Vollständigen Skill herunterladen

Probiere es zuerst mit dem Prompt aus. Wenn du 365 Wiki häufig nutzt, installiere den vollständigen 365Wiki Skill, damit du ihn nicht jedes Mal einfügen musst. Ohne bevorzugte KI funktionieren auch die Webversionen von Gemini oder Microsoft Copilot.

Entwicklungsteams in stark regulierten Branchen wie dem Finanzsektor, der Verteidigungsindustrie, dem Gesundheitswesen oder der Automobilbranche stehen vor einem Dilemma: Softwareentwickler fordern KI-gestützte Code-Vervollständigung zur Steigerung ihrer Produktivität, während Sicherheits- und Rechtsabteilungen strikt untersagen, dass proprietärer Quellcode die Unternehmensfirewall verlässt oder zum Trainieren externer Modelle verwendet wird.

Tabnine Enterprise löst diesen Konflikt durch eine On-Premises- und vollständig isolierte (Air-Gapped) Architektur. Indem der Tabnine-Kubernetes-Inferenzcluster im internen Rechenzentrum oder in einer dedizierten Virtual Private Cloud (VPC) betrieben wird, verbleiben alle Code-Vervollständigungen vollständig innerhalb des geschützten Unternehmensnetzwerks. In Kombination mit Tabnines Zero-Data-Retention-Richtlinie und Basiselementen, die ausschließlich auf permissiv lizenziertem Open-Source-Code trainiert wurden, schließen Unternehmen jedes Risiko von IP-Lecks aus und stellen ihren Entwicklerteams gleichzeitig moderne KI-Assistenz bereit.


Architekturüberblick: Wie die Isolation funktioniert

Bei herkömmlichen SaaS-basierten KI-Code-Assistenten werden Codefragmente, Nachbardateien und Cursorpositionen über das öffentliche Internet an Cloud-APIs übertragen. Tabnine Enterprise ersetzt diese externe Cloud-Abhängigkeit durch eine in sich geschlossene, privat gehostete Service-Architektur.

+-----------------------------------------------------------------------+
| Unternehmensnetzwerk / Air-Gapped-Sicherheitsperimeter               |
|                                                                       |
|  +-----------------------+           +-----------------------------+  |
|  | Entwickler-Clients    |           | Interner Tabnine K8s-Cluster|  |
|  | - VS Code Plugin      |  HTTPS    | - Ingress-Controller (TLS)  |  |
|  | - JetBrains Plugin    |---------->| - Inferenz-Pods (GPU)       |  |
|  | - Eclipse / CLI Tools |  (mTLS)   | - PostgreSQL & Redis State  |  |
|  +-----------------------+           | - Enterprise Context Engine |  |
|                                      +-----------------------------+  |
|                                                    |                  |
|                                      +-------------v---------------+  |
|                                      | Privater Speicher           |  |
|                                      | - Eigene Fine-Tuning-Modelle|  |
|                                      | - Lokale Image-Registry     |  |
|                                      +-----------------------------+  |
+-----------------------------------------------------------------------+
                           X [Ausgehender Datenverkehr blockiert]
                   Öffentliches Internet / Externe Cloud-APIs

Diese Isolationsarchitektur basiert auf drei zentralen Schutzebenen:

  1. Netzwerk-Ebene: Der gesamte Inferenzcluster läuft innerhalb Ihrer Kubernetes-Infrastruktur. Die Kommunikation zwischen den IDEs der Entwickler und dem Server erfolgt über internes HTTPS. In Air-Gapped-Umgebungen unterbinden Firewall-Regeln jeglichen ausgehenden Internetverkehr.
  2. Daten-Ebene: Tabnine arbeitet nach einer strikten Zero-Data-Retention-Politik (ZDR). Codeanfragen werden flüchtig im Grafikspeicher (VRAM) der GPUs verarbeitet und direkt nach der Token-Generierung verworfen. Prompts werden weder auf Festplatten protokolliert noch für globale Modellaktualisierungen gespeichert.
  3. Rechtliche Schutzebene (IP): Die Basismodelle von Tabnine wurden ausschließlich auf Open-Source-Code mit permissiven Lizenzen (z. B. MIT, Apache 2.0, BSD) trainiert. Dies eliminiert das Risiko von Copyleft-Kontaminationen (z. B. durch GPL oder AGPL) in generiertem Unternehmenscode.

Voraussetzungen und Systemanforderungen

Vor der Bereitstellung von Tabnine Enterprise in einem lokalen oder luftspaltisolierten Cluster sollten folgende Infrastrukturvoraussetzungen erfüllt sein:

KomponenteMindestanforderungEmpfohlene Produktionskonfiguration
Kubernetes-ClusterKubernetes 1.25+; Bare-Metal, OpenShift oder private VPC (EKS/GKE/AKS)Hochverfügbarer Multi-Node-Cluster mit dedizierten GPU-Knotenpools
GPU / Rechenleistung1x NVIDIA GPU (A10G oder V100 mit 16 GB+ VRAM für kleinere Pilotprojekte)Multi-GPU-Knoten (NVIDIA A100 80GB, L40S oder H100; Dell PowerEdge AI Server)
DatenbankPostgreSQL 18+ (extern verwaltet oder geclustert)Externe HA-PostgreSQL-Instanz mit verschlüsselten Persistent Volumes
In-Memory-CacheRedis 8+Geclustertes Redis mit aktivierter Persistenz
Persistenter Speicher5 TB verfügbarer SpeicherplatzHochleistungs-SSD/NVMe-Speichervolumen via Ceph oder SAN
Container-RegistryZugriff auf registry.tabnine.com:443 (für vernetzte Setups)Private OCI-Registry (Harbor, Artifactory) für Air-Gapped-Spiegelung
Netzwerk & ZertifikateDedizierter interner FQDN; interne DNS-AuflösungIngress-Controller (NGINX/Envoy); vertrauenswürdige interne Stamm-CA

Schritt 1: Bereitstellung des privaten Tabnine-Clusters

Plattform- und DevOps-Teams können Tabnine mithilfe der offiziellen Helm-Charts installieren.

1. Spiegeln der Container-Images (Air-Gapped-Umgebung)

Für Umgebungen ohne Internetzugang werden die Images in einer Staging-Zone geladen und in die interne Registry übertragen:

# Anmeldung an der Tabnine-Registry
docker login registry.tabnine.com -u <ORGANIZATION_KEY> -p <ORGANIZATION_SECRET>

# Herunterladen der Kern- und Inferenz-Images
docker pull registry.tabnine.com/tabnine/enterprise-server:latest
docker pull registry.tabnine.com/tabnine/inference-engine:latest
docker pull registry.tabnine.com/tabnine/context-engine:latest

# Umetikettieren für die interne Harbor-Registry
docker tag registry.tabnine.com/tabnine/enterprise-server:latest internal-registry.corp.internal/tabnine/enterprise-server:latest
docker tag registry.tabnine.com/tabnine/inference-engine:latest internal-registry.corp.internal/tabnine/inference-engine:latest
docker tag registry.tabnine.com/tabnine/context-engine:latest internal-registry.corp.internal/tabnine/context-engine:latest

# Hochladen in die private Registry
docker push internal-registry.corp.internal/tabnine/enterprise-server:latest
docker push internal-registry.corp.internal/tabnine/inference-engine:latest
docker push internal-registry.corp.internal/tabnine/context-engine:latest

2. Konfigurieren der Datei Helm Values

Erstellen Sie eine an Ihr Netzwerk angepasste values.yaml-Datei:

global:
  domain: "tabnine.corp.internal"
  imageRegistry: "internal-registry.corp.internal/tabnine"
  airGapped: true

ingress:
  enabled: true
  className: "nginx"
  annotations:
    cert-manager.io/cluster-issuer: "internal-ca-issuer"
    nginx.ingress.kubernetes.io/proxy-body-size: "64m"
    nginx.ingress.kubernetes.io/proxy-read-timeout: "120"
  hosts:
    - host: "tabnine.corp.internal"
      paths:
        - path: /
          pathType: Prefix
  tls:
    - secretName: tabnine-tls-cert
      hosts:
        - "tabnine.corp.internal"

database:
  postgresql:
    host: "postgres-ha.database.svc.cluster.local"
    port: 5432
    database: "tabnine_enterprise"
    user: "tabnine"
    existingSecret: "tabnine-db-credentials"
  redis:
    host: "redis-master.database.svc.cluster.local"
    port: 6379
    existingSecret: "tabnine-redis-credentials"

telemetry:
  enabled: false
  externalEndpoint: "" # Deaktiviert logs-gateway.tabnine.com vollständig

inference:
  resources:
    limits:
      nvidia.com/gpu: 2
      cpu: "16"
      memory: "64Gi"
    requests:
      nvidia.com/gpu: 2
      cpu: "8"
      memory: "32Gi"

3. Cluster-Installation ausführen

Führen Sie die Helm-Installation im dedizierten Namespace durch:

helm upgrade --install tabnine-enterprise ./tabnine-helm \
  --namespace tabnine \
  --create-namespace \
  -f values.yaml

Überprüfen Sie anschließend den Status der Pods und der GPU-Zuweisung:

kubectl get pods -n tabnine -l app.kubernetes.io/part-of=tabnine
kubectl get ingress -n tabnine

Schritt 2: Sicherheitskonfiguration in der Admin-Konsole und SSO

Sobald der Endpunkt (https://tabnine.corp.internal) erreichbar ist, richtet das Plattformteam die Sicherheitsrichtlinien in der Tabnine-Administrationskonsole ein.

1. Zentrales Single Sign-On (SSO) erzwingen

Unter Authentication & Security in der Konsole:

2. Externe Telemetriedatenübertragung deaktivieren

In isolierten Netzwerken:

3. Modell-Governance und Kontextprüfung


Schritt 3: Konfiguration der Entwickler-IDEs

Damit die Code-Vervollständigung der Entwickler den internen Server nutzt, werden die IDE-Erweiterungen zentral vorkonfiguriert.

Visual Studio Code

Option A: Grafische Einrichtung

  1. Installieren Sie die Erweiterung Tabnine Enterprise aus dem Marketplace (oder via .vsix-Paket aus dem internen Paketmanager).
  2. Beim Neustart von VS Code erscheint die Aufforderung: "Tabnine: Please set your enterprise server URL".
  3. Tragen Sie die interne URL ein: https://tabnine.corp.internal.
  4. Klicken Sie auf Sign In, um die SSO-Authentifizierung im Browser abzuschließen.

Option B: Zentrale Konfiguration (settings.json)

Für automatisierte Rollouts über MDM (z. B. Microsoft Intune, Ansible) oder standardisierte Dev-Container:

{
  "tabnine.cloudHost": "https://tabnine.corp.internal",
  "tabnine.receiveBetaChannelUpdates": false
}

JetBrains IDEs (IntelliJ IDEA, PyCharm, WebStorm, GoLand)

Einrichtung einer internen Plugin-Quelle im Air-Gapped-Modus

Ohne direkten Zugriff auf den JetBrains Marketplace:

  1. Öffnen Sie Settings / Preferences (Strg+Alt+S bzw. Cmd+,).
  2. Navigieren Sie zu Plugins > Zahnrad ⚙ > Manage Plugin Repositories....
  3. Hinterlegen Sie die interne Update-URL:
    https://tabnine.corp.internal/update/jetbrains/updatePlugins.xml
    
  4. Installieren Sie das Plugin Tabnine Enterprise.

Konfiguration der Server-URL

  1. Gehen Sie zu Settings > Tools > Tabnine.
  2. Tragen Sie im Feld Server URL die Adresse https://tabnine.corp.internal ein.
  3. Speichern Sie die Einstellung, starten Sie die IDE neu und melden Sie sich via SSO an.

Interne Stammzertifikate (Root CA) und Firmen-Proxies

In Unternehmensnetzen mit TLS-Inspection können Zertifikatswarnungen auftreten:

Automatisierung und Befehlszeile

Für CI/CD-Pipelines oder automatisierte Build-Runner definieren Sie die Umgebungsvariable:

export TABNINE_HOST="https://tabnine.corp.internal"

Schutzmechanismen gegen Quellcode-Abfluss

Um Sicherheitsüberprüfungen und regulatorische Audits zu bestehen, nutzt Tabnine Enterprise vier architektonische Schutzmechanismen:

+-------------------------------------------------------------------------------+
|                       Schichten zur Vermeidung von Code-Lecks                 |
+-------------------------------------------------------------------------------+
| 1. Physische und netzwerkbasierte Isolation                                   |
|    - Cluster läuft im internen LAN / VPC; Firewalls blockieren Internetzugriff|
|    - Vollständige Air-Gapped-Unterstützung ohne Cloud-APIs                    |
+-------------------------------------------------------------------------------+
| 2. Flüchtige Inferenz im Arbeitsspeicher (Zero Data Retention)                |
|    - Prompts und Kontext werden nur temporär im GPU-VRAM verarbeitet          |
|    - Sofortiges Verwerfen nach Antwort; keine dauerhafte Speicherung auf Disk |
+-------------------------------------------------------------------------------+
| 3. Trennung beim Modelltraining                                               |
|    - Proprietärer Kundencode fließt niemals in globale Tabnine-Modelle ein    |
|    - Interne Fine-Tuning-Modelle verbleiben ausschließlich auf lokalen Disks  |
+-------------------------------------------------------------------------------+
| 4. Lizenzsicherheit und Schutz des geistigen Eigentums                        |
|    - Basismodelle ausschließlich auf MIT-, Apache-2.0- und BSD-Code trainiert |
|    - Schutz vor Copyleft-Infektionen (z. B. durch GPL-Code)                   |
+-------------------------------------------------------------------------------+

1. Reine GPU-Speicherverarbeitung ohne Festplattenpersistenz

Tippt ein Entwickler Code ein, erfasst das Plugin den lokalen Kontext und sendet die Anfrage verschlüsselt an den Inferenz-Pod. Die GPU berechnet die Vorhersagen im VRAM und liefert die Vorschläge zurück. Sobald die Verbindung beendet wird, werden alle Eingabedaten aus dem Speicher gelöscht. Es erfolgt keine Protokollierung des Quellcodes auf persistenten Medien.

2. Kein Re-Training mit Unternehmenscode

Während öffentliche KI-Tools häufig Nutzerdaten zur Modellverbesserung analysieren, garantiert Tabnine vertraglich und technisch, dass Kundencode nicht für das Training allgemeiner Modelle verwendet wird. Eigene Modell-Feinabstimmungen erfolgen ausschließlich auf dedizierten Servern des Unternehmens.

3. Schutz vor Lizenzkontamination

Sicherheit bedeutet auch, fremden Code mit riskanten Lizenzen vom eigenen Repository fernzuhalten. Da Tabnine streng auf Code mit permissiven Lizenzen setzt, besteht kein Risiko, dass durch generierte Code-Snippets unerwünschte GPL-Offenlegungspflichten ausgelöst werden.


Vergleich der Bereitstellungsmodelle und Empfehlungen

KriteriumMulti-Tenant-SaaSPrivate Cloud (VPC)On-Premises Air-Gapped
HostingTabnine CloudEigene AWS / GCP / Azure VPCEigenes Rechenzentrum / Bare-Metal
DatengrenzeVerschlüsselt, flüchtigStreng auf VPC begrenztVollständig isoliertes lokales Netz
InternetabhängigkeitDauerhafte Verbindung nötigNur VPC-interne KommunikationKeine externe Verbindung erforderlich
BetriebsaufwandKeinerModerat (K8s-Administration)Hoch (GPU-Hardware-Wartung)
Typische BranchenStart-ups, Standard-WebentwicklungBanken, Versicherungen, IndustrieVerteidigung, Hochsicherheitslabore
UpdatesAutomatisch via CloudGeplante Container-AktualisierungManuelle Image-Spiegelung

Empfehlung für IT-Entscheider


Checkliste vor dem Produktivstart

Gehen Sie vor der unternehmensweiten Freigabe folgende Punkte durch:

  1. Prüfung des ausgehenden Datenverkehrs: Mittels Netzwerk-Sniffer sicherstellen, dass bei Code-Vervollständigungen keine Pakete an öffentliche IPs gesendet werden.
  2. DNS- und TLS-Zertifikatsprüfung: Sicherstellen, dass alle Rechner tabnine.corp.internal fehlerfrei auflösen und das interne Zertifikat ohne Sicherheitswarnung akzeptieren.
  3. SSO-Zugriffskontrolle: Verifizieren, dass nicht autorisierte Clients ohne gültigen SSO-Token den Inferenzdienst nicht ansprechen können.
  4. Telemetrie-Abschaltung kontrollieren: Sicherstellen, dass keine Verbindungsversuche zu logs-gateway.tabnine.com in den Pod-Logs auftauchen.
  5. IDE-Konfigurations-Rollout: Stichprobenartig prüfen, ob die Konfiguration von VS Code und JetBrains auf allen Entwickler-Laptops die interne Serveradresse verwendet.

Durch den Betrieb eines geschützten Kubernetes-Inferenzclusters in Verbindung mit strenger Netzwerktrennung und Zero Data Retention können Unternehmen KI-gestützte Entwicklung produktiv nutzen, ohne ihren unternehmenseigenen Quellcode zu gefährden.


Referenzen