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:
- 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.
- 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.
- 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:
| Komponente | Mindestanforderung | Empfohlene Produktionskonfiguration |
|---|---|---|
| Kubernetes-Cluster | Kubernetes 1.25+; Bare-Metal, OpenShift oder private VPC (EKS/GKE/AKS) | Hochverfügbarer Multi-Node-Cluster mit dedizierten GPU-Knotenpools |
| GPU / Rechenleistung | 1x 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) |
| Datenbank | PostgreSQL 18+ (extern verwaltet oder geclustert) | Externe HA-PostgreSQL-Instanz mit verschlüsselten Persistent Volumes |
| In-Memory-Cache | Redis 8+ | Geclustertes Redis mit aktivierter Persistenz |
| Persistenter Speicher | 5 TB verfügbarer Speicherplatz | Hochleistungs-SSD/NVMe-Speichervolumen via Ceph oder SAN |
| Container-Registry | Zugriff auf registry.tabnine.com:443 (für vernetzte Setups) | Private OCI-Registry (Harbor, Artifactory) für Air-Gapped-Spiegelung |
| Netzwerk & Zertifikate | Dedizierter interner FQDN; interne DNS-Auflösung | Ingress-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:
- Konfigurieren Sie SAML 2.0 oder OIDC mit Ihrem Identity Provider (z. B. Okta, Microsoft Entra ID oder PingFederate).
- Beschränken Sie die Registrierung und den Zugriff strikt auf berechtigte Entwicklergruppen.
- Definieren Sie Session-Timeouts und fordern Sie Multi-Faktor-Authentifizierung (MFA).
2. Externe Telemetriedatenübertragung deaktivieren
In isolierten Netzwerken:
- Stellen Sie sicher, dass keine anonymen Diagnose- oder Nutzungsdaten an externe Server übertragen werden.
- Leiten Sie Audit-Protokolle und Leistungsmetriken direkt an interne SIEM-Systeme (Splunk, Elastic oder private Monitoring-Agenten) weiter.
3. Modell-Governance und Kontextprüfung
- Modellauswahl: Aktivieren Sie die geprüften Basiselemente oder eigene, firmenintern trainierte Modelle.
- Repository-Zugriffsberechtigungen (Context Engine): Wenn RAG aktiviert ist, um lokale Code-Muster zu berücksichtigen, vergeben Sie strikte Lese-Tokens. Alle Vektorindizes verbleiben vollständig in den lokalen Datenbanken.
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
- Installieren Sie die Erweiterung Tabnine Enterprise aus dem Marketplace (oder via
.vsix-Paket aus dem internen Paketmanager). - Beim Neustart von VS Code erscheint die Aufforderung: "Tabnine: Please set your enterprise server URL".
- Tragen Sie die interne URL ein:
https://tabnine.corp.internal. - 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:
- Öffnen Sie Settings / Preferences (
Strg+Alt+Sbzw.Cmd+,). - Navigieren Sie zu Plugins > Zahnrad ⚙ > Manage Plugin Repositories....
- Hinterlegen Sie die interne Update-URL:
https://tabnine.corp.internal/update/jetbrains/updatePlugins.xml - Installieren Sie das Plugin Tabnine Enterprise.
Konfiguration der Server-URL
- Gehen Sie zu Settings > Tools > Tabnine.
- Tragen Sie im Feld Server URL die Adresse
https://tabnine.corp.internalein. - 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:
- VS Code (Node.js-Laufzeit): Setzen Sie die Umgebungsvariable im Betriebssystem:
export NODE_EXTRA_CA_CERTS="/etc/ssl/certs/corporate-root-ca.pem" - JetBrains (JVM-Laufzeit): Importieren Sie das Zertifikat unter Settings > Tools > Server Certificates oder hinterlegen Sie es im
cacerts-Keystore des JDKs.
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
| Kriterium | Multi-Tenant-SaaS | Private Cloud (VPC) | On-Premises Air-Gapped |
|---|---|---|---|
| Hosting | Tabnine Cloud | Eigene AWS / GCP / Azure VPC | Eigenes Rechenzentrum / Bare-Metal |
| Datengrenze | Verschlüsselt, flüchtig | Streng auf VPC begrenzt | Vollständig isoliertes lokales Netz |
| Internetabhängigkeit | Dauerhafte Verbindung nötig | Nur VPC-interne Kommunikation | Keine externe Verbindung erforderlich |
| Betriebsaufwand | Keiner | Moderat (K8s-Administration) | Hoch (GPU-Hardware-Wartung) |
| Typische Branchen | Start-ups, Standard-Webentwicklung | Banken, Versicherungen, Industrie | Verteidigung, Hochsicherheitslabore |
| Updates | Automatisch via Cloud | Geplante Container-Aktualisierung | Manuelle Image-Spiegelung |
Empfehlung für IT-Entscheider
- Wählen Sie eine Private VPC, wenn Ihr Unternehmen bereits Workloads in der Cloud betreibt und Kubernetes-Know-how vorhanden ist. Dies bietet Netzwerkinsel-Sicherheit ohne Anschaffung teurer Serverhardware.
- Wählen Sie On-Premises Air-Gapped, wenn Sie an militärischen Projekten, kritischer Infrastruktur oder Geschäftsgeheimnissen arbeiten, bei denen kein Bit das Gebäude über das Internet verlassen darf.
- Nutzen Sie Standard-SaaS, wenn Unternehmensrichtlinien flüchtige, verschlüsselte Internetaufrufe erlauben und der IT-Wartungsaufwand minimal gehalten werden soll.
Checkliste vor dem Produktivstart
Gehen Sie vor der unternehmensweiten Freigabe folgende Punkte durch:
- Prüfung des ausgehenden Datenverkehrs: Mittels Netzwerk-Sniffer sicherstellen, dass bei Code-Vervollständigungen keine Pakete an öffentliche IPs gesendet werden.
- DNS- und TLS-Zertifikatsprüfung: Sicherstellen, dass alle Rechner
tabnine.corp.internalfehlerfrei auflösen und das interne Zertifikat ohne Sicherheitswarnung akzeptieren. - SSO-Zugriffskontrolle: Verifizieren, dass nicht autorisierte Clients ohne gültigen SSO-Token den Inferenzdienst nicht ansprechen können.
- Telemetrie-Abschaltung kontrollieren: Sicherstellen, dass keine Verbindungsversuche zu
logs-gateway.tabnine.comin den Pod-Logs auftauchen. - 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.