Prozessoptimierung im Cloud CRM DevOps für Salesforce-Umgebungen

Autor / Redakteur: Lewin Böhlke * / Stephan Augsten

Bei der Entwicklung und dem Betrieb für Salesforce werden Unternehmen vor verschiedene Herausforderungen gestellt. Welche Herausforderungen das sind und wie DevOps bei der Optimierung des Software-Lifecycles unterstützen kann, werde ich in diesem Fachartikel erläutern.

Anbieter zum Thema

Unter Salesforce gibt es spezielle Tools, die genau auf DevOps-Prozessverbesserungen ausgerichtet sind.
Unter Salesforce gibt es spezielle Tools, die genau auf DevOps-Prozessverbesserungen ausgerichtet sind.
(Bild: Salesforce.com)

Um einen thematischen Überblick zu bekommen, gehe ich hier gerne noch einmal auf die beiden Begrifflichkeiten ein: Die cloudbasierte CRM-Software Salesforce soll dafür sorgen, dass Vertrieb, Marketing und Kundenservice besser zusammenarbeiten können.

Die Integration und Automatisierung dieser Prozesse haben zur Folge, dass das Customer-Relationship-Management (kurz: CRM) optimiert wird. Da der Standard in Salesforce nicht für jedes Unternehmen passt, bietet Salesforce verschiedenste Möglichkeiten des Customizings an.

Aber auch das hat in Salesforce seine Grenzen und in manchen Bereichen muss auf die Entwicklung von Salesforce zurückgegriffen werden. Daher stehen viele Unternehmen vor der Frage, wie Customizing und Entwicklung möglichst einfach und mit hoher Qualität bis in die Produktionsumgebung gespielt werden können.

Hinter dem Begriff DevOps verbirgt sich ein Ansatz zur Prozessverbesserung, der in den Bereichen Systemadministration und Softwareentwicklung eingesetzt wird. Mit diesem Ansatz soll es gelingen, den gesamten Prozess der Softwareentwicklung zu optimieren – insbesondere die Zusammenarbeit zwischen diesen beiden Bereichen.

Das führt wiederum dazu, dass ein schneller und effizienter Service angeboten wird. Das Ergebnis: DevOps verkürzt die Time-to-Market, steigert die Software-Qualität und verbessert die Zusammenarbeit zwischen der IT und dem Fachbereich.

Vorteile

Ein Vorteil der Nutzung einer cloudbasierten CRM-Software wie Salesforce liegt im Bereich der Kosten. Denn während bei On-Premises-Lösungen mit höheren Vorabkosten oder unvorhergesehenen Kosten – zum Beispiel im Falle eines Ausfalls – zu rechnen ist, sind die Kosten bei Salesforce skalierbar. Zudem wächst die CRM-Software mit den Anforderungen des Unternehmens.

Auch DevOps bietet Unternehmen unterschiedliche Vorteile. Darunter fallen kürzere Entwicklungszyklen und die Reduzierung von Implementierungsfehlern. Wie oben bereits erwähnt, gelingt durch diesen Prozessverbesserungsansatz eine Optimierung der Zusammenarbeit sowie der Kommunikation, was sich wiederum in einer Effizienzsteigerung widerspiegelt. Des Weiteren forciert DevOps die sukzessive Automatisierung von Build-, Deployment- und Testprozessen, sodass Entwicklerteams von wiederkehrenden Aufgaben entlastet werden.

Herausforderungen

Die größte Herausforderung, der sich Entwickler von Salesforce stellen müssen, ist der Unterschied zwischen der Entwicklung für Salesforce und anderen „klassischen“ Softwareentwicklungen. Daraus ergeben sich verschiedenste Probleme, wie zum Beispiel:

Nicht synchronisierte Umgebungen

Aufgrund der möglichen verteilten Entwicklungsstrategien auf verschiedenen parallelen Entwicklungs-Orgs kann es passieren, dass Customizing und Entwicklungen zwischen den Umgebungen nicht schnell genug synchronisiert werden. So entstehen Versionskonflikte beim Zusammenführen der Entwicklungen. Die Folgen sind ein hoher Aufwand bei der Synchronisation neuer Features oder „Lost Updates“ beim Deployment. Das zu bewältigen, ist für viele Unternehmen eine Herausforderung.

Testprobleme

Salesforce selbst fordert Tests für die Entwicklung von Apex-Klassen, aber nicht für das Customizing. Eine Kernfrage, die sich Entwicklerteams stellen, ist die einheitliche Teststrategie für Customizing und Entwicklung, um auch regressiv mit einer guten Testabdeckung arbeiten zu können. Da Customizing und Entwicklung aber auf unterschiedlichen Ebenen des Systems ansetzen, ist die Erarbeitung einer übergreifenden Teststrategie eine Herausforderung.

Continuous Integration

Unter dem Begriff Continuous Integration (kurz: CI) versteht man die kontinuierliche Integration von Änderungen in der Integrationsumgebung der Anwendung. Damit können Features konsolidiert getestet werden und Entwickler erhalten schnell Feedback zu ihren Änderungen im gesamten Entwicklungskontext. Die Herausforderung hierbei ist die Erarbeitung einer Integrationsstrategie für das gesamte Entwicklungsteam.

Mögliche Lösungswege mit DevOps

Versionskontrollen des Quellcodes

Ein möglicher Lösungsweg sind Versionskontrollen des Quellcodes. Mit einer Versionskontrolle können jegliche Änderungen dokumentiert werden, sodass zu späteren Zeitpunkten auf jede Version zugegriffen werden kann und Änderungen besser nachvollzogen werden.

Diese Versionskontrolle eignet sich besonders für Konfigurationen und Apex-Codes und führt zu einer besseren Code-Qualität. Das Ergebnis ist eine dynamische sowie wiederholbare Implementierung und eine konsistente Entwicklungsumgebung. Um die Methode der Versionskontrolle zu nutzen, empfiehlt sich der Einsatz eines Versionskontrollsystems, wie beispielsweise Git.

Continuous Delivery

Zudem sollte die Möglichkeit genutzt werden, durch automatisierte Tests die Entwickler zu benachrichtigen, sobald es einen Codekonflikt gibt. So kann die entsprechende Implementierung schnell validiert werden. Dies setzt Continuous Integration voraus.

Sandbox-Strategie

Damit Probleme beziehungsweise fehlerhafte Entwicklungen erst gar nicht in der Anwendung auftauchen, sollte die Ausführung von Tests in sogenannten Sandboxen (eigenständigen Orgs) geprüft werden. Eine Sandbox ist ein bestimmter Bereich, in dem Maßnahmen getestet werden können, ohne dass diese Auswirkungen auf die Integrationsumgebung haben. So werden Probleme in den Testklassen rechtzeitig erkannt.

Zur Umsetzung der unterschiedlichen Lösungsmöglichkeiten gibt es verschiedene Tools, dazu zählen unter anderem:

Salesforce Developer Experience (Salesforce DX)

Mit Salesforce DX soll die Arbeit von Salesforce Entwicklern erleichtert werden. So werden die Entwicklungsprozesse in Salesforce an bereits gut funktionierende Entwicklungsmethoden angepasst. Dieses Tool beinhaltet verschiedene Module, dazu zählen unter anderem das Version Control System und Scratch Orgs. Salesforce DX ist besonders dann empfehlenswert, wenn in einer komplexen Salesforce-Organisation oder in einem großen Team gearbeitet wird. In einem kleinen Team würden Sandboxen auch ausreichen.

Salesforce DevOps Assessment

Um den Reifegrad des Entwicklungsprozesses bezüglich DevOps zu bewerten, stehen Assessment Tools bereit. Diese sollen Entwicklerteams bei den nächsten Schritten bezüglich der Nutzung von DevOps unterstützen. Konkreter gesagt unterstützen Assessments bei der Identifikation von Herausforderungen in verschiedenen Dimensionen, wie zum Beispiel der Sandbox-Strategie, das Testen und das Release-Management.

Fazit

Lewin Böhlke
Lewin Böhlke
(Bild: TIM BRÜNING * PHOTOGRAPHY)

Die Entwicklung von Salesforce stellt Unternehmen vor Herausforderungen, da im Vergleich zu anderen „klassischen“ Softwareentwicklungen die Programmierung nicht im Fokus steht, sondern vielmehr die Verwaltung von Konfigurationen. Mit dem Prozessverbesserungsansatz DevOps gibt es aber verschiedenste Lösungswege, mit denen Unternehmen diese Herausforderungen bewältigen können. Dabei gibt es unterschiedliche Tools, die bei der Umsetzung unterstützen und so die Arbeit der Entwickler vereinfachen und zur Reduzierung von Fehlern beitragen.

* Lewin Böhlke (M.Sc. Wirtschaftsinformatik) baut seit mehr als einem Jahr das Themengebiet DevOps innerhalb von mindsquare auf. Für ihn steht die Schaffung einer produktbasierten IT-Unternehmenskultur mit automatisierten Prozessen im Fokus. Lewin Böhlke setzt dieses Mindset erfolgreich in Kundenprojekten um. Er arbeitet im Fachbereich mindforce, der sich mit dem Thema Salesforce beschäftigt.

(ID:46200145)