Was ist DevOps?
DevOps ermöglicht Organisationen, Produkte schneller zu entwickeln und zu
verbessern als mit anderen Softwareentwicklungsmethoden. Continuous
Integration (CI) ist eine Best Practice in der DevOps-Softwareentwicklung
und umfasst Build- und Unit-Test-Phasen des Release-Prozesses. Jede
committete Revision startet automatisch Build und Test, wodurch Probleme
früh erkannt und behoben werden können, bevor Updates an Kunden gehen.
Was ist Salesforce DevOps?
Salesforce DevOps ist echtes DevOps mit Fokus auf Salesforce im großen
Maßstab. Es hilft Entwicklungsteams, Probleme zu erkennen, Bugs zu finden
und zu beheben, bevor Änderungen an Kunden ausgeliefert werden. DevOps =
automatisierte und regelmäßigere Releases.
Es gibt in Salesforce mehrere Tools für das Deployment dieser Anwendungen,
darunter change sets, Workbench, SalesforceDX, DevOps Center, das
Force.com migration tool,
CI/CD Pipeline und AppExchange-Tools von Drittanbietern. Erfahren Sie mehr über
den Salesforce Entwicklungs- und Deployment-Prozess.
Vorteile von DevOps-Tools
Hier sind einige Vorteile von DevOps-Tools.
- Kürzere Entwicklungszyklen, schnellere Innovation
-
Weniger Deployment-Fehler, Rollbacks und kürzere Wiederherstellungszeit
- Bessere Kommunikation und Zusammenarbeit
- Mehr Effizienz
DevOps ist eine Reise und beginnt mit kleinen
Schritten. Sorgen Sie dafür, dass das gesamte Team eingebunden und auf
Stand ist. Fügen Sie Komplexität hinzu, wenn Team und Prozess bereit sind.
Es gibt zentrale Säulen für einen erfolgreichen DevOps-Prozess.
1. Versionskontrolle
Versionskontrolle ist die neue Single Source of Truth. Version Control Systems (VCS) helfen,
Änderungen zurückzuverfolgen und hochwertige Sicherheitsgates für Ihren
wertvollen Code und Ihre Metadaten zu schaffen.
2. CI/CD Pipeline
CI/CD ist nicht nur für das Deployment von
Änderungen da. Es validiert Builds, führt automatisierte Tests aus und
hilft beim Code-Backup. CI/CD sorgt für verlässlichere, reibungslosere
Deployments und eine niedrigere Fehlerquote bei Code Coverage.
3. Automatisierte Tests
Ein gutes DevOps-Tool führt bei jedem Pull Request und vor jedem Release
automatisierte Tests aus, damit Sie niemals ungetestete oder fehlerhafte
Änderungen mergen oder releasen.
4. Backup
Schützen Sie sich vor böswilligen Angriffen, Salesforce-Bugs,
versehentlichem Löschen und mehr. Sie haben die Sicherheit, jederzeit
zurückrollen zu können.
Code-Scanning
Tools automatisieren Teile des manuellen Code-Review Prozesses
in Salesforce. Sie können Static-Code-Analyser-Tools nutzen, um ähnliche
Ergebnisse zu erreichen.
Mehr über die 5 DevOps-Säulen erfahren.
CI/CD verstehen
Schauen wir uns die CI/CD-Begriffe an
1. Continuous Integration
Mit Continuous Integration wird jede Codeänderung bei jedem Commit durch
alle Entwickler kontinuierlich integriert. Ein automatisierter Build prüft
anschließend jeden Check-in und lässt Teams Probleme früh erkennen.
2. Continuous Delivery
Continuous Delivery stellt sicher, dass Code schnell und sicher in
Produktion gebracht werden kann, indem jede Änderung manuell in eine
produktionsähnliche Umgebung gepusht wird. Da jede Änderung automatisch in
eine Staging-Umgebung geliefert wird, können Sie die Anwendung zum
richtigen Zeitpunkt per Knopfdruck in Produktion deployen.
3. Continuous Deployment
Continuous Deployment ist der nächste Schritt nach Continuous Delivery.
Mit Continuous Deployment wird jede Änderung, die die automatisierten
Tests besteht, automatisch in Produktion deployed. Die meisten
Unternehmen, die nicht durch regulatorische oder andere Vorgaben
eingeschränkt sind, sollten Continuous Deployment anstreben.
Salesforce DevOps Tools
Es gibt verschiedene DevOps-Tools. Sie lassen sich in folgende Kategorien
teilen.
1. Custom Build
Sie können Ihr eigenes Tool mit unterschiedlichen CI/CD-Plattformen bauen,
zum Beispiel:
-
Jenkins: Jenkins ist Open-Source-Software für
Continuous Integration. Es ist in Java geschrieben und erleichtert
Echtzeit-Tests sowie Reporting zu isolierten Änderungen in größeren
Codebasen.
-
CumulusCI: CumulusCI hilft Entwicklern, Admins und
Testern, ihre Arbeit zu erledigen und in der Versionskontrolle
zusammenzuarbeiten.
-
Azure DevOps: Azure DevOps ist ein vollständig
integriertes Service-Set mit allen Tools zum Aufbau und zur Pflege eines
Backlogs, Hosting von Source-Code-Repositories, Continuous Integration
sowie Delivery- und Testing-Workflows vor Releases.
-
GitHub Actions: GitHub Actions macht es einfach,
Software-Workflows mit CI/CD zu automatisieren. Builden, testen und
deployen Sie Ihren Code direkt aus GitHub.
-
Gitlab pipelines: Ähnlich wie GitHub Actions, wenn Sie
GitLab statt GitHub bevorzugen. Sie werden sich mit Interface, Features
und Workflows der Plattform naturgemäß wohler fühlen.
2. Automatisierte Plattformen
Diese DevOps-Tools sind gut mit Salesforce integriert.
-
Serpent:
ist die einzige Salesforce-DevOps-Plattform, die um
Ihren Entwicklungsworkflow herum gebaut ist und Ihrem Team
alles gibt, um an einem Ort zu bauen, zu testen und auszuliefern.
Keine change sets. Keine CLI. Kein Git erforderlich. Nur mühelose
Deployments, smarte Automatisierung und volle Sichtbarkeit von Sandbox
bis Produktion.
Testen Sie den kostenlosen Demo-Workspace und erleben Sie, wie
einfach Salesforce DevOps sein kann.
-
Gearset: ist eine deutliche Verbesserung gegenüber
Salesforce change sets. Wegen vieler Einschränkungen beim Deployment
bestimmter Metadatentypen zwischen Sandbox-Testumgebungen und Produktion
beginnen die Preise bei 300 $ pro Entwickler.
-
Copado: Ein solides Deployment-Tool. Die
Query-Option für Deployments ist beim Verschieben von Salesforce-Daten
sehr hilfreich, Preise beginnen bei 250 $ pro Entwickler.
Basierend auf den Anforderungen und dem Budget Ihres Unternehmens sowie
den oben genannten Tools können Sie entscheiden, ob Sie einen
DevOps-Prozess bauen oder kaufen sollten.
Bisher wissen wir, was DevOps ist und welche Teile für erfolgreiches
DevOps wichtig sind. Sehen wir uns einige Best Practices an.
1.
Umgebungsplanung:
-
Developer Sandboxes und Scratch Orgs:
-
Jeder Entwickler nutzt eine Developer oder Developer Pro Sandbox für
langfristige Projekte.
-
Entwickler nutzen zusätzlich Scratch Orgs für kurzfristige,
feature-spezifische Entwicklung und Tests.
-
Integration Sandbox:
-
Eine gemeinsame Sandbox (Partial Copy) zur Integration einzelner
Entwicklerbeiträge.
-
UAT (User Acceptance Testing) Sandbox:
-
Eine Full Copy Sandbox, in der Business User neue Funktionen testen,
bevor sie in Produktion gehen.
-
Staging Sandbox:
-
Eine weitere Full Copy Sandbox, die die Produktionsumgebung für
finale Pre-Production-Tests nachbildet.
-
Production Environment:
-
Die Live-Umgebung, in der Endnutzer mit der Anwendung interagieren.
2. Umgebungsmanagement:
-
Sandbox- und Scratch-Org-Management:
-
Aktualisieren Sie Developer und Integration Sandboxes regelmäßig,
damit sie aktuelle Produktionsdaten und Konfigurationen
widerspiegeln.
-
Nutzen Sie Salesforce DX zum Erstellen und Verwalten von Scratch
Orgs. Richten Sie Skripte ein, um Erstellung und Teardown zu
automatisieren.
-
Planen Sie UAT- und Staging-Sandbox-Refreshes rund um große
Releases, damit sie zu Testzyklen passen.
-
Backup-Strategie:
-
Implementieren Sie automatisierte Backups für Sandboxes und
Produktionsdaten, um Datenverlust zu vermeiden.
3. Versionskontrolle:
-
Commit-Strategie:
-
Committen Sie Änderungen häufig mit klaren, beschreibenden
Nachrichten.
-
Nutzen Sie Pull Requests für Code Reviews, bevor Änderungen in Main
Branches gemerged werden.
-
Change Tracking:
-
Verfolgen Sie Metadatenänderungen und halten Sie Konfigurationen
über Umgebungen hinweg synchron mit Tools wie
Serpent, Gearset oder Copado.
4. Umgebungskonfiguration:
-
Org-spezifische Konfigurationen:
-
Nutzen Sie Salesforce DX Scratch Orgs für Konfiguration und
Entwicklung.
-
Nutzen Sie Salesforce CLI und sfdx-Befehle, um Änderungen zu
verwalten und zu deployen.
-
Umgebungsvariablen:
-
Verwalten Sie sensible Informationen sicher mit Salesforce Shield
oder verschlüsselten Custom Settings.
5. Automatisiertes Deployment:
-
Versionskontrolle:
-
Nutzen Sie Git als Source of Truth für alle Metadaten und Code.
-
Implementieren Sie Branching-Strategien, z. B. Feature Branches,
Develop Branch und Master Branch, um Änderungen zu verwalten.
-
CI/CD Pipeline:
-
Nutzen Sie Salesforce DX, Jenkins und GitHub Actions, um
Deployment-Prozesse zu automatisieren.
-
CI/CD-Pipeline-Stufen umfassen:
-
Build: Code aus der Versionskontrolle abrufen.
-
Test: Automatisierte Tests mit Apex Test
Execution ausführen.
-
Deploy: Änderungen in die Integration Sandbox
deployen, danach UAT, Staging und Production.
-
Scratch Org Validation: Scratch Orgs in der
CI/CD-Pipeline erstellen, um Änderungen isoliert zu validieren.
6. Datenmanagement:
-
Testdaten:
-
Nutzen Sie anonymisierte oder synthetische Daten in Developer und
Integration Sandboxes, um Datenschutzvorgaben einzuhalten.
-
Datenmigration:
-
Nutzen Sie Tools wie Salesforce Data Loader oder Talend für
Datenmigration zwischen Umgebungen.
-
Scratch-Org-Daten:
-
Nutzen Sie Salesforce DX, um Scratch Orgs mit relevanten Daten für
Entwicklung und Tests zu befüllen.
7. Monitoring und Logging:
-
Logging:
-
Implementieren Sie Logging mit Salesforce Debug Logs und richten Sie
Alerts für kritische Fehler ein.
-
Monitoring:
-
Nutzen Sie AppExchange-Tools wie New Relic oder Datadog für
Performance Monitoring und Health Checks.
8. Compliance und Sicherheit:
-
Security Reviews:
-
Führen Sie regelmäßig Security Reviews und Penetration Testing in
Staging- und Produktionsumgebungen durch.
-
Zugriffskontrollen:
-
Implementieren Sie role-based access controls (RBAC), um Zugriff auf
sensible Umgebungen und Daten zu begrenzen.
FAQ
Was ist Salesforce DevOps?
Salesforce DevOps ist
echtes DevOps mit Fokus darauf, Salesforce im großen Maßstab zu nutzen. Es
hilft Entwicklungsteams, Probleme zu erkennen, Bugs zu finden und zu
beheben, bevor Änderungen an Kunden ausgeliefert werden.
Ist Salesforce DevOps eine gute Karriere?
Ja, DevOps Engineers haben gute Karrierechancen. Heute nutzt fast jedes
Projekt Salesforce DevOps.
Was macht ein Salesforce DevOps Engineer?
DevOps Engineers sind verantwortlich für Continuous Delivery,
Optimierung, Monitoring und Release Management. Sie unterstützen außerdem
den End-to-End-Release-Prozess.
Zusammenfassung
Salesforce DevOps ist eine Kultur und ein Satz von Prozessen, die
Entwicklungs- und Betriebsteams zusammenbringen, um Softwareentwicklung
abzuschließen. Nach dem Blick auf diese DevOps-Tools können Sie
hoffentlich Ihre Deployment-Strategie und Ihren Prozess bestimmen.