


{"id":1117,"date":"2017-07-27T16:37:56","date_gmt":"2017-07-27T14:37:56","guid":{"rendered":"http:\/\/lwibs01.gm.fh-koeln.de\/blogs\/bente\/?p=1117"},"modified":"2017-07-27T16:39:19","modified_gmt":"2017-07-27T14:39:19","slug":"ba-continuous-delivery-auf-einer-saas-plattform-am-beispiel-von-salesforce","status":"publish","type":"post","link":"http:\/\/blogs.gm.fh-koeln.de\/bente\/2017\/07\/27\/ba-continuous-delivery-auf-einer-saas-plattform-am-beispiel-von-salesforce\/","title":{"rendered":"BA: Continuous Delivery auf einer SaaS-Plattform am Beispiel von Salesforce"},"content":{"rendered":"<h4>Problemstellung<\/h4>\n<p class=\"lead\">Die Notwendigkeit zur schnellen, h\u00e4ufigen, unkomplizierten und fehlerfreien Auslieferung von agil entwickelter Software l\u00e4sst sich aus den Prinzipien des \u201eAgile Manifesto\u201c ableiten. Continuous Delivery ist daf\u00fcr in der \u201eklassischen Softwareentwicklung\u201c, wie der Entwicklung einer Desktopanwendung oder einer Webseite, ein hinreichend bekannter und h\u00e4ufig angewandter Prozess.<\/p>\n<p>Auf SaaS Plattformen ist h\u00e4ufig auch ein agiler Entwicklungsprozess gew\u00fcnscht, denn die Vorteile gelten auf solchen Plattformen ebenso. z.B. verringern sich die Time-to-Market Zeiten f\u00fcr neue Features. Auch hier k\u00f6nnen die Feedback Loops helfen, schneller bessere Software, die genau die Anforderungen des Business erf\u00fcllt, zu entwickeln und bereitzustellen.<\/p>\n<p>In Salesforce, als Vertreter einer SaaS Plattform, kann die Entwicklung und das Testen von der produktiven Umgebung getrennt stattfinden. Daf\u00fcr stehen sog. Sandboxen zur Verf\u00fcgung. Zur \u00dcbertragung der \u00c4nderungen zwischen den verschiedenen Umgebungen stehen mehrere M\u00f6glichkeiten zur Verf\u00fcgung. Zum einen die manuelle \u00dcbertragung, die \u00dcbertragung per \u201eChange Sets\u201c, bei denen die \u00c4nderungen per Klick im UI zusammengefasst und dann \u00fcbertragen werden, als auch die \u00dcbertragung per API. Jedoch k\u00f6nnen, laut Salesforce, nicht alle \u00c4nderungen \u00fcbertragen werden. Dies betrifft z.B. bestimmten Einstellungen und \u201eKonfigurationsdaten\u201c.<\/p>\n<p>Die Nutzung des API und Einbindung in einen Continuous Integration Server ist m\u00f6glich. Salesforce selber stellt ein Tool bereit, mit dessen Hilfe das API verwendet werden kann. Auch werben Drittanbieter damit, Continuous Integration \/ Continuous Delivery zu unterst\u00fctzen. Alle nutzen jedoch das gleiche API. Jegliche Einschr\u00e4nkungen des API betreffen somit grunds\u00e4tzlich alle Anbieter bzw. L\u00f6sungen. Die automatisierte \u00dcbertragung von fast allen Metadaten ist damit m\u00f6glich, jedoch werden bestimmte Einstellungen und Daten auch von diesen Anbietern nicht \u00fcbertragen.<\/p>\n<h4><strong>\u00a0<\/strong>Abgeleitete Forschungsfrage<\/h4>\n<ul>\n<li>L\u00e4sst sich ein Continuous Delivery Prozess auf die Salesforce Cloud Plattform anwenden bzw. umsetzten, wenn ja, wie?<\/li>\n<li>Ist es f\u00fcr einen Continuous Delivery Prozess auf der Salesforce Plattform relevant, dass bestimmte Komponenten nicht automatisiert \u00fcbertragen werden k\u00f6nnen? Wie relevant ist das Problem in der Praxis und existieren L\u00f6sungsm\u00f6glichkeiten?<\/li>\n<\/ul>\n<h4>Vorgehen<\/h4>\n<p>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\u00fchrt. Es werden die g\u00e4ngigen Tools vorgestellt. Des Weiteren werden Kriterien definiert, die ein Continuous Delivery erf\u00fcllen muss.<\/p>\n<p>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.<\/p>\n<p>Nach dem allgemeinen Teil, der einen klassischen Continuous Delivery Prozess beschreibt, der z.B. f\u00fcr das Ausliefern einer Webseite oder einer Desktop Anwendung verwendet werden k\u00f6nnte, soll\u00a0 kurz die Salesforce Plattform beschrieben werden.<\/p>\n<p>Daran anschlie\u00dfend 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\u00f6glich u.a. durch Erstellung und Konfiguration neuer oder bestehender Objekte \u00fcber das Salesforce Userinterface, die dann als Metadaten vorliegen. Um erweiterte Funktionalit\u00e4t bereitzustellen, gibt es die M\u00f6glichkeit, diese mit Apex, einer Sprache mit Java \u00e4hnlicher Syntax, oder Visualforce, einem Webframework, umzusetzen. Auch hier werden die Entwicklungsumgebung und der Entwicklungsprozess beschrieben. Weiterhin wird das Konzept der Sandboxen in Salesforce vorgestellt.<\/p>\n<p>Nach Vorstellung der Entwicklung in Salesforce soll ein entsprechender Continuous Delivery Prozess f\u00fcr 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\u00fcr Continuous Delivery n\u00f6tige Automatisierung erreichen l\u00e4sst und wo deren Grenzen sind. Es existieren Drittanbieter, die eine Continuous Integration bzw. Continuous Delivery L\u00f6sung f\u00fcr Salesforce anbieten. Einige dieser L\u00f6sungen sollen im Hinblick auf die Funktionalit\u00e4t sowie Realisierung eines echten Continuous Delivery Prozesses analysiert werden.<\/p>\n<p>Die entwickelten und analysierten Prozesse werden mit den Kriterien, die f\u00fcr einen erfolgreichen Continuous Delivery definiert wurden, verglichen und bewertet.<\/p>\n<h4>Externer Kooperationspartner<\/h4>\n<p>ABLE Management Services GmbH<br \/>\nSteinm\u00fcllerallee 2<br \/>\n51643 Gummersbach<br \/>\nFon +49 2261 5011 0<br \/>\nFax +49 2261 5011 199<br \/>\n<a href=\"mailto:info@able-group.de\">info@able-group.de<\/a><\/p>\n<h4>Bearbeiter<\/h4>\n<p>Dennis Hermanns<\/p>\n<h4>Abgabe<\/h4>\n<p>Juli 2017<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die Arbeit untersucht, wie sich ein Continuous Delivery Prozess auf einer SaaS-Plattform umsetzen l\u00e4sst, am Beispiel von Salesforce Cloud.<\/p>\n","protected":false},"author":39,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[26413],"tags":[9887,27518,27517,59,103,27544],"class_list":["post-1117","post","type-post","status-publish","format-standard","hentry","category-abgeschlossene-arbeit","tag-agil","tag-continuous-deployment","tag-continuous-integration","tag-crm","tag-saas","tag-salesforce"],"acf":[],"_links":{"self":[{"href":"http:\/\/blogs.gm.fh-koeln.de\/bente\/wp-json\/wp\/v2\/posts\/1117","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blogs.gm.fh-koeln.de\/bente\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blogs.gm.fh-koeln.de\/bente\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blogs.gm.fh-koeln.de\/bente\/wp-json\/wp\/v2\/users\/39"}],"replies":[{"embeddable":true,"href":"http:\/\/blogs.gm.fh-koeln.de\/bente\/wp-json\/wp\/v2\/comments?post=1117"}],"version-history":[{"count":3,"href":"http:\/\/blogs.gm.fh-koeln.de\/bente\/wp-json\/wp\/v2\/posts\/1117\/revisions"}],"predecessor-version":[{"id":1120,"href":"http:\/\/blogs.gm.fh-koeln.de\/bente\/wp-json\/wp\/v2\/posts\/1117\/revisions\/1120"}],"wp:attachment":[{"href":"http:\/\/blogs.gm.fh-koeln.de\/bente\/wp-json\/wp\/v2\/media?parent=1117"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blogs.gm.fh-koeln.de\/bente\/wp-json\/wp\/v2\/categories?post=1117"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blogs.gm.fh-koeln.de\/bente\/wp-json\/wp\/v2\/tags?post=1117"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}