Veröffentlicht: von

Problemstellung

Die Notwendigkeit zur schnellen, häufigen, unkomplizierten und fehlerfreien Auslieferung von agil entwickelter Software lässt sich aus den Prinzipien des „Agile Manifesto“ ableiten. Continuous Delivery ist dafür in der „klassischen Softwareentwicklung“, wie der Entwicklung einer Desktopanwendung oder einer Webseite, ein hinreichend bekannter und häufig angewandter Prozess.

Auf SaaS Plattformen ist häufig auch ein agiler Entwicklungsprozess gewünscht, denn die Vorteile gelten auf solchen Plattformen ebenso. z.B. verringern sich die Time-to-Market Zeiten für neue Features. Auch hier können die Feedback Loops helfen, schneller bessere Software, die genau die Anforderungen des Business erfüllt, zu entwickeln und bereitzustellen.

In Salesforce, als Vertreter einer SaaS Plattform, kann die Entwicklung und das Testen von der produktiven Umgebung getrennt stattfinden. Dafür stehen sog. Sandboxen zur Verfügung. Zur Übertragung der Änderungen zwischen den verschiedenen Umgebungen stehen mehrere Möglichkeiten zur Verfügung. Zum einen die manuelle Übertragung, die Übertragung per „Change Sets“, bei denen die Änderungen per Klick im UI zusammengefasst und dann übertragen werden, als auch die Übertragung per API. Jedoch können, laut Salesforce, nicht alle Änderungen übertragen werden. Dies betrifft z.B. bestimmten Einstellungen und „Konfigurationsdaten“.

Die Nutzung des API und Einbindung in einen Continuous Integration Server ist möglich. Salesforce selber stellt ein Tool bereit, mit dessen Hilfe das API verwendet werden kann. Auch werben Drittanbieter damit, Continuous Integration / Continuous Delivery zu unterstützen. Alle nutzen jedoch das gleiche API. Jegliche Einschränkungen des API betreffen somit grundsätzlich alle Anbieter bzw. Lösungen. Die automatisierte Übertragung von fast allen Metadaten ist damit möglich, jedoch werden bestimmte Einstellungen und Daten auch von diesen Anbietern nicht übertragen.

 Abgeleitete Forschungsfrage

  • Lässt sich ein Continuous Delivery Prozess auf die Salesforce Cloud Plattform anwenden bzw. umsetzten, wenn ja, wie?
  • Ist es für einen Continuous Delivery Prozess auf der Salesforce Plattform relevant, dass bestimmte Komponenten nicht automatisiert übertragen werden können? Wie relevant ist das Problem in der Praxis und existieren Lösungsmöglichkeiten?

Vorgehen

Es wird im ersten Schritt ein Continuous Delivery Prozess beschrieben. Hierbei soll herausgestellt werden, warum dieser den Entwicklern helfen kann, bessere Software zu liefern. Dabei soll auf die Vor- und Nachteile eines solchen Prozesses eingegangen werden. Des Weiteren werden die Voraussetzungen zur Umsetzung eines solchen Prozesses und die Anforderungen an den Entwicklungsprozess sowie an die Infrastruktur ausgeführt. Es werden die gängigen Tools vorgestellt. Des Weiteren werden Kriterien definiert, die ein Continuous Delivery erfüllen muss.

Es soll weiterhin eine kurze Einordnung bzw. Abgrenzung zu Continuous Integration und Continuous Deployment gegeben werden, da die Definitionen dieser Begriffe bzw. Prozesse nicht immer eindeutig sind.

Nach dem allgemeinen Teil, der einen klassischen Continuous Delivery Prozess beschreibt, der z.B. für das Ausliefern einer Webseite oder einer Desktop Anwendung verwendet werden könnte, soll  kurz die Salesforce Plattform beschrieben werden.

Daran anschließend wird die Entwicklung in Salesforce vorgestellt und beschrieben. Mit Entwicklung ist das Anpassen der Standardumgebung von Salesforce an die Kunden-Anforderungen gemeint. Dies ist möglich u.a. durch Erstellung und Konfiguration neuer oder bestehender Objekte über das Salesforce Userinterface, die dann als Metadaten vorliegen. Um erweiterte Funktionalität bereitzustellen, gibt es die Möglichkeit, diese mit Apex, einer Sprache mit Java ähnlicher Syntax, oder Visualforce, einem Webframework, umzusetzen. Auch hier werden die Entwicklungsumgebung und der Entwicklungsprozess beschrieben. Weiterhin wird das Konzept der Sandboxen in Salesforce vorgestellt.

Nach Vorstellung der Entwicklung in Salesforce soll ein entsprechender Continuous Delivery Prozess für die Salesforce Plattform entworfen und definiert werden. Weiterhin wird ausgearbeitet, wie sich mit Hilfe der Sandboxen eine Development, Testing, Acceptance und Production Umgebung aufbauen und die für Continuous Delivery nötige Automatisierung erreichen lässt und wo deren Grenzen sind. Es existieren Drittanbieter, die eine Continuous Integration bzw. Continuous Delivery Lösung für Salesforce anbieten. Einige dieser Lösungen sollen im Hinblick auf die Funktionalität sowie Realisierung eines echten Continuous Delivery Prozesses analysiert werden.

Die entwickelten und analysierten Prozesse werden mit den Kriterien, die für einen erfolgreichen Continuous Delivery definiert wurden, verglichen und bewertet.

Externer Kooperationspartner

ABLE Management Services GmbH
Steinmüllerallee 2
51643 Gummersbach
Fon +49 2261 5011 0
Fax +49 2261 5011 199
info@able-group.de

Bearbeiter

Dennis Hermanns

Abgabe

Juli 2017