Die erste Frage in jedem Windchill-Container-Projekt ist nicht, welcher Cluster es sein soll, sondern was das Image enthalten soll. Wenn das stimmt, wird alles Weitere einfach, von den Pipelines bis zum Rollback. Wenn nicht, enden Sie mit einem Image pro Umgebung und derselben Konfigurationsdrift wie auf virtuellen Maschinen.
Die Regel: einmal bauen, beim Deployment konfigurieren
Ein Image sollte in Test und Produktion identisch sein. Alles, was sich zwischen Umgebungen unterscheidet, wird beim Start des Containers injiziert, nie fest eingebaut.
Im Image:
- Die Windchill-Installation mit bekanntem Release- und Patch-Stand
- Ihr kompiliertes Customizing, von der Pipeline aus einem getaggten Commit gebaut
- Die Laufzeitumgebung, die das Release benötigt, und sonst nichts
- Ein Startskript, das die Konfiguration aus der Umgebung liest und auf seine Abhängigkeiten wartet
Außerhalb des Images:
- Hostnamen, URLs und standortspezifische Properties, als Umgebungsvariablen oder gemountete Dateien bereitgestellt
- Passwörter, Schlüssel und Zertifikate, aus einem Secret Store wie Azure Key Vault gelesen
- Vaults, Logs und andere Daten, die einen Container überdauern müssen, auf persistenten Volumes
- Die Datenbank, die als Managed Service oder auf dedizierten Servern läuft
Ein Image, mehrere Rollen
Windchill ist nicht ein einzelner Prozess. Web-Frontends, Method Server, Hintergrund-Queues und Suche haben unterschiedliche Aufgaben und unterschiedliche Skalierungsanforderungen. Wir bauen ein Image und starten es in verschiedenen Rollen, damit garantiert jede Komponente denselben Code ausführt.
Health-Checks, die die Wahrheit sagen
Kubernetes kann einen defekten Container nur ersetzen, wenn es weiß, dass er defekt ist. Ein laufender Prozess reicht nicht: Unsere Readiness-Checks rufen die Anwendung auf und bestätigen, dass sie eine Anfrage bedienen kann, sodass Traffic nur Pods erreicht, die wirklich bereit sind.
Images taggen wie Releases
Jedes Image wird mit der Release-Version und dem Commit getaggt, aus dem es gebaut wurde, nie nur mit latest. Wenn um drei Uhr nachts etwas schiefgeht, lautet die erste Frage, was gerade läuft, und das Tag sollte sie beantworten.
Bevor Sie beginnen
Prüfen Sie die Support-Position von PTC für containerisierte Deployments Ihres Release, und planen Sie, wie Datenbank und Vault-Storage gesichert und wiederhergestellt werden. Container ändern, wie Windchill ausgerollt wird, nicht, was es braucht, um sicher zu bleiben.