
E-Rechnungen in Salesforce | Was sind ZUGFeRD & XRechnung?
E-Rechnung, XRechnung, XML-Rechnung, PDF-Rechnungen und … 🐎 Zugpferd ZUGFeRD? Das Thema E-Rechnung ist in Deutschland ...
In diesem Blogpost geht es darum, was CI/CD (Continuous Integration und Continuous Deployment) ist und wie es uns dabei hilft exzellente Lösungen zu entwickeln. Dabei verwenden wir Beispiele aus unserem Entwicklungsprozess für Apps für den Salesforce-AppExchange.
Wir streben stets danach, unseren Kund:innen die besten Lösungen zu bieten, die ihr Unternehmen benötigt, und bauen so Vertrauen in unser Unternehmen als Team von Hightech-Produktentwickler:innen auf.
Und als zusätzliches Highlight erfahrt ihr, wie Continuous Integration mit dem panischen Gefühl zusammenhängt, wenn ihr merkt, dass ihr eure Schlüssel verloren habt 😱🔓 – und die Erleichterung, die ihr verspürt, wenn ihr euch daran erinnert, dass ihr dieses *Kling* noch im Garten eurer Freundin gehört habt.
Zunächst die technische Version: CI/CD steht für Continuous Integration (CI) und Continuous Deployment (CD). Es handelt sich um eine Reihe von Praktiken, die darauf abzielen, den Softwareentwicklungs- und Deploymentprozess zu automatisieren und zu optimieren.
Obwohl CI und CD oft zusammen genannt werden, gibt es wesentliche Unterschiede:
Continuous Integration konzentriert sich auf das Integrieren von Codeänderungen und das Durchführen automatisierter Tests. Das Hauptziel ist es, Integrationsprobleme frühzeitig zu erkennen und zu beheben. Anstatt wenige große Veränderungen am Code vorzunehmen (siehe Big Bang Integration unten), integriert CI kontinuierlich kleine Änderungen in die Software. Dies erleichtert es, Probleme zu identifizieren und zu beheben, die bei der Softwareentwicklung unvermeidlich auftreten.
Eine Metapher: CI als Wissen, wo ihr eure Schlüssel verloren habt: Stellt euch vor, ihr kommt nach einem schönen Besuch bei einer Freundin nach Hause. Als ihr eure Tür erreicht, merkt ihr, dass eure Schlüssel fehlen. 😱😰 Panik setzt ein, aber dann erinnert ihr euch an das deutliche *Kling*, das ihr kurz nach dem Verlassen des Hauses eurer Freundin gehört habt – und das ihr in dem Moment nicht zuordnen konntet. Erleichterung durchströmt euch, denn anstatt jeden Schritt vom Haus eurer Freundin bis zu eurem Haus zurückzuverfolgen, wisst ihr genau, wo ihr suchen müsst – direkt vor ihrem Haus. Ähnlich hilft CI dabei, durch das kontinuierliche Integrieren kleinerer Codeänderungen Probleme schnell zu identifizieren und zu beheben, was Zeit spart und Frustrationen reduziert.
Eine weitere Möglichkeit, CI zu verstehen, besteht darin, es mit Big Bang Integration zu vergleichen.
Big Bang Integration: Wenn ihr an den verschiedenen Teilen eines komplexen Systems wie Software individuell arbeitet und sie dann Tage, Wochen oder sogar Monate später wieder zusammenführt, spricht man von Big Bang Integration. Dies funktioniert normalerweise nicht gut und führt zu extremen Ineffizienzen.
Continuous Integration: CI versucht genau das zu verhindern. Eine Funktion wird implementiert, getestet und so schnell wie möglich in ein laufendes System integriert. Der Entwicklungsfortschritt wird daher kontinuierlich integriert.
Ein Salesforce-spezifisches Beispiel: Um dies zu veranschaulichen, betrachten wir ein häufiges Szenario in der Salesforce-Entwicklung: Stellt euch vor, ihr habt ein neues Feld zu einem Seitenlayout hinzugefügt. Während CI wird diese Änderung kontinuierlich in den gemeinsamen Codebestand integriert. Wenn ihr jedoch vergesst, dieses Feld während des Deployments (der Bereitstellung) abzurufen, aber trotzdem das Layout einschließt, werden CI-Tools diesen Unterschied feststellen und euch auf das fehlende Feld hinweisen. Dies ist ein einfaches, aber kraftvolles Beispiel dafür, wie CI sicherstellt, dass kleine, inkrementelle Änderungen korrekt integriert werden und das Risiko von Fehlern in späteren Phasen minimiert wird.
Trotz gründlicher Tests während CI können einige Fehler dennoch auftreten. Diese Fehler können entstehen durch:
Für uns stammen die häufigsten Probleme aus API-Änderungen, die von Drittanbietern vorgenommen wurden, obwohl Salesforce-Updates gelegentlich ebenfalls Probleme verursachen können, obwohl dies ziemlich selten ist.
Aus vergangenen Fehlern lernen: Um unsere CI-Pipeline kontinuierlich zu verbessern, bemühen wir uns, Fehler, die während der ersten automatisierten Tests nicht erfasst wurden, in unsere zukünftigen Tests zu integrieren. Wir überprüfen und verbessern unsere CI-Pipeline etwa alle sechs Monate, um sicherzustellen, dass sie robust und effektiv bleibt.
Obwohl CI die meisten Probleme frühzeitig erkennt, garantiert es kein fehlerfreies Produkt, insbesondere da es nur alles bis zur Vor-Deployment-Testphase abdeckt (was bedeutet, dass die Software noch nicht die Kund:innen erreicht hat). Hier kommt Continuous Deployment ins Spiel.
Continuous Deployment konzentriert sich auf die automatische Bereitstellung des Codes in der Produktionsumgebung. Das Prinzip ist dasselbe wie bei CI: Anstatt ein großes Deployment vorzunehmen, versucht ihr, den Deploymentprozess kontinuierlicher zu gestalten. Das Hauptziel ist es, sicherzustellen, dass der Code immer bereit ist, live zu gehen.
CI/CD-Pipelines helfen, die Unterschiede zwischen CI und CD zu verstehen.
Eine CI/CD-Pipeline ist eine automatisierte Abfolge von Schritten, die durchgeführt werden, um Software von der Entwicklung bis zur Produktion zu bringen. Diese Pipeline umfasst typischerweise:
CI/CD-Pipeline bei Cloudwharf: In unserer CI/CD-Pipeline folgen wir einem strukturierten Ansatz: Die gesamte Entwicklung erfolgt zunächst in einer Entwicklungssandbox. Sobald der Code hier validiert wurde, wird er in die Stagesandbox verschoben, um in einer Umgebung, die der Produktion ähnelt, weiter validiert zu werden. Hier können sowohl unser Team als auch unsere Kund:innen überprüfen, ob alles wie erwartet funktioniert. Schließlich wird der Code nach bestandenen Prüfungen in die Produktionsumgebung überführt. Dies stellt sicher, dass potenzielle Probleme so früh wie möglich identifiziert und behoben werden, wodurch das Risiko von Problemen in der Live-Umgebung minimiert wird.
CI/CD ist aus mehreren Gründen entscheidend:
Die Implementierung von CI/CD bietet zahlreiche Vorteile:
Bei Cloudwharf haben wir CI/CD in unseren Entwicklungsprozess integriert. Hier sind einige spezifische Vorteile, die wir erleben:
Durch die Implementierung von CI/CD bei Cloudwharf haben wir unsere Effizienz gesteigert, die Qualität unserer Produkte verbessert und unsere Kund:innen zufriedener gemacht. Wir sind überzeugt, dass CI/CD auch für eure Firma von großem Nutzen sein kann, um die Projektausführung zu optimieren und die Teamkommunikation zu verbessern. Wenn ihr plant, CI/CD in eurem Unternehmen zu implementieren: Hier der Rat von unserem Teamleiter Sergey:
Beginnt damit, die wichtigsten Prüfungen in eure Pipeline zu integrieren, selbst wenn ihr noch nie CI/CD verwendet habt. Baut diese Grundlagen schrittweise aus, indem ihr den Umfang und die Abdeckung eurer Tests im Laufe der Zeit incrementell erhöht.
E-Rechnung, XRechnung, XML-Rechnung, PDF-Rechnungen und … 🐎 Zugpferd ZUGFeRD? Das Thema E-Rechnung ist in Deutschland ...
Spätestens seit dem Urteil des BAG (Bundesarbeitsgericht) Ende 2022 ist klar: Arbeitgeber:innen müssen die Arbeitszeiterfassung ...
Es gibt ein neues Update unserer sevdesk for Salesforce App! In diesem Beitrag erklären wir euch, wie ihr ganz ...
Wir freuen uns über eure Nachricht und antworten euch in der Regel innerhalb eines Geschäftstages!