Back to Articles
article cover
author avatar
Rimon Hanna
4 years ago
Writing

DevOps voor Salesforce

Wat is DevOps?

DevOps stelt organisaties in staat om hun producten sneller te ontwikkelen en te verbeteren in vergelijking met andere methoden voor softwareontwikkeling. Continuous Integration (CI) is een best practice binnen DevOps softwareontwikkeling, die de build- en unittestfasen van het softwarereleaseproces omvat. Elke gecommitteerde revisie start een automatische build en test, waardoor problemen in een vroeg stadium kunnen worden geïdentificeerd en opgelost voordat updates worden vrijgegeven aan klanten.

Wat is Salesforce DevOps?

Salesforce DevOps is hetzelfde als echte DevOps, maar dan gericht op Salesforce op schaal. Dit helpt ontwikkelteams problemen op te sporen, bugs te identificeren en deze op te lossen voordat ze wijzigingen vrijgeven aan hun klanten. DevOps = geautomatiseerde, regelmatiger releases.

Er zijn momenteel een aantal tools in Salesforce voor de implementatie van deze applicaties, waaronder change sets, Workbench, SalesforceDX, DevOps Center, de migratietool van Force.com, CI/CD Pipeline en AppExchange-tools van derden. Leer meer over Salesforce Ontwikkel- en Implementatieproces.

Voordelen van DevOps-tools

Hier volgen enkele voordelen van DevOps-tools.

  • Kortere ontwikkelingscycli, snellere innovatie
  • Verminderde Deployment mislukkingen, Rollbacks en hersteltijd
  • Verbeterde communicatie en samenwerking
  • Verhoogde efficiëntie

Pijlers van een succesvolle Salesforce DevOps

DevOps is een reis die begint met kleine stappen. Zorg ervoor dat het hele team meedoet en op snelheid is. Voeg complexiteit toe wanneer je team en proces er klaar voor zijn. Er zijn pijlers van een succesvol DevOps-proces.

1. Versiecontrole

Versiecontrole is de nieuwe enige bron van waarheid. Versiecontrolesystemen (VCS) helpen je wijzigingen te traceren en creëert hoogwaardige beveiligingspoorten voor je kostbare code en metadata.

2. CI/CD Pipeline

CI/CD is Niet alleen voor het implementeren van wijzigingen. Het is meer dan dat, het stelt je in staat om de build te valideren, automatiseringstesten uit te voeren en helpt je bij het back-uppen van code. CI/CD zorgt voor betrouwbare en soepelere implementaties en een lagere faalratio van code coverage.

3. Automatiseringstesten

Een goede DevOps tool voert altijd automatiseringstesten voor je uit op elk pull request en voor elke release om ervoor te zorgen dat je nooit onbedekte of buggy wijzigingen samenvoegt of vrijgeeft.

4. Backup

Bescherm uzelf tegen kwaadaardige aanvallen, Salesforce-bugs, onbedoelde verwijderingen, enzovoort. Met de gemoedsrust dat u altijd een back-up kunt maken.

5. Code scannen

Code scanning tools helpen bij het automatiseren van delen van het handmatige proces van code review in Salesforce. U kunt tools voor statische codeanalyse gebruiken om dezelfde resultaten te bereiken.

Leer meer over DevOps 5 pijlers.

Salesforce Dev Ops Tools

Let’s Understand The CI/CD

Let’s begrijpen het verschil term van CI/CD

1. Continue Integratie

Met behulp van continue integratie wordt een product gemaakt om elke codewijziging bij elke commit (continu) op te nemen en te integreren, door alle ontwikkelaars. Een geautomatiseerde build verifieert vervolgens elke check-in, waardoor teams problemen vroegtijdig kunnen detecteren.

2. Continuous Delivery

Continuous Delivery zorgt ervoor dat code snel en veilig wordt uitgerold naar productie door elke wijziging handmatig naar een productie-achtige omgeving te pushen. Omdat elke wijziging automatisch naar een staging-omgeving wordt gebracht, kun je de applicatie met één druk op de knop in productie nemen zodra de tijd rijp is.

3. Continuous Deployment

Continuous deployment is de volgende stap van continuous delivery. Met Continuous deployment wordt elke wijziging die de geautomatiseerde tests doorstaat automatisch in productie genomen. De meeste bedrijven die niet gebonden zijn aan regelgeving of andere beperkingen moeten streven naar continuous deployment

Salesforce Dev Ops Ci CD

Salesforce DevOps Tools

Er zijn verschillende DevOps-tools beschikbaar. Deze kunnen worden onderverdeeld in de volgende categorieën.

1. Custom Build

Je kunt je eigen tool bouwen met behulp van verschillende CI/CD-platforms. Zoals hieronder:

  1. Jenkins: Jenkins is een open-source software voor continue integratie. Het is geschreven met behulp van de programmeertaal Java. Het maakt het mogelijk om in realtime te testen en te rapporteren over geïsoleerde wijzigingen in een grotere codebase.
  2. CumulusCI: CumulusCI maakt het ontwikkelaars, beheerders en testers gemakkelijk om hun werk te doen en samen te werken in versiebeheer.
  3. Azure DevOps: Azure DevOps is een volledig geïntegreerde set van diensten die u voorzien van alle tools die nodig zijn voor het bouwen en onderhouden van een backlog, het hosten van uw broncode repositories, het implementeren van continue integratie, samen met levering en het testen van workflows voor uw producten voordat ze worden vrijgegeven
  4. GitHub Actions: GitHub Actions maakt het eenvoudig om al uw software workflows te automatiseren, nu met CI/CD van wereldklasse. Bouw, test en implementeer je code rechtstreeks vanuit GitHub.
  5. Gitlab pipelines: Gelijk aan GitHub Actions, als je GitLab verkiest boven GitHub. Het is een no-brainer dat je je meer op je gemak zult voelen met de interface van het platform en bekend zult zijn met de functies en workflows.
  6. Gitlab pipelines: Vergelijkbaar met GitHub Actions, als je GitLab verkiest boven GitHub.

2. Geautomatiseerde platforms

Die DevOps Tools die goed geïntegreerd zijn met Salesforce.

  1. Serpent: Kwaliteitsgedreven, low-code DevOps en geautomatiseerd testplatform; een compleet end-to-end DevOps-platform dat zeer schaalbaar en betrouwbaar is en volledig is geïntegreerd met het Salesforce-platform. Contacteer ons om vandaag GRATIS aan de slag te gaan
  2. Gearset: is een aanzienlijke verbetering ten opzichte van het gebruik van Salesforce change sets. Vanwege de vele beperkingen bij het implementeren van specifieke metadatatatypen tussen sandbox-testomgevingen en productie, beginnen de prijzen bij 300 $ per ontwikkelaar.
  3. Copado: Een solide implementatietool. De query-optie voor implementaties is erg handig bij het verplaatsen van Salesforce-gegevens, prijzen beginnen bij 250$ per ontwikkelaar.

Gebaseerd op de behoeften en het budget van uw bedrijf, en rekening houdend met alle bovenstaande tools, kunt u beslissen of u een DevOps-proces moet bouwen of kopen.

Salesforce DevOps Best Practices

Zo ver hebben we begrepen wat DevOps is en wat allemaal belangrijke onderdelen van succesvolle DevOps zijn. Laten we eens kijken naar een aantal DevOps Best Practices.

1. Omgevingsplanning:

  • Developer Sandboxes en Scratch Orgs:
    • Elke ontwikkelaar gebruikt een Developer of Developer Pro sandbox voor langetermijnprojecten.
    • Developers gebruiken ook scratch orgs voor korte-termijn, feature-specifieke ontwikkeling en testen.
  • Integratie Sandbox:
    • Een gedeelde sandbox (Partial Copy) voor het integreren van individuele bijdragen van ontwikkelaars.
  • UAT (Gebruikers Acceptatie Testen) Sandbox:
    • Een Full Copy sandbox voor zakelijke gebruikers om nieuwe functies te testen voordat ze naar productie worden verplaatst.
  • Staging Sandbox:
    • Een andere Full Copy sandbox die de productieomgeving nabootst voor uiteindelijke pre-productietests.
  • Productieomgeving:
    • De live omgeving waar eindgebruikers interactie hebben met de applicatie.

2. Omgevingsbeheer:

  • Sandbox en Scratch Org-beheer:
    • Vernieuw regelmatig de sandboxen voor ontwikkelaars en integratie om de meest recente productiegegevens en configuraties weer te geven.
    • Gebruik Salesforce DX voor het maken en beheren van scratch orgs. Stel scripts op om het maken en verwijderen van scratch orgs te automatiseren.
    • Pland het verversen van UAT- en Staging-sandboxen rond grote releases om aan te sluiten bij testcycli.
  • Back-up strategie:
    • Implementeer geautomatiseerde back-ups voor sandboxes en productiegegevens om gegevensverlies te voorkomen.

3. Versiecontrole:

  • Commit-strategie:
    • Commiteer wijzigingen regelmatig met duidelijke, beschrijvende berichten.
    • Gebruik pull requests voor code-reviews voordat ze worden samengevoegd naar hoofdbranches.
  • Wijzigingen bijhouden:
    • Volg wijzigingen in metadata en houd configuraties in verschillende omgevingen synchroon met tools zoals Gearset of Copado.

4. Omgevingsconfiguratie:

  • Org-specifieke configuraties:
    • Gebruik Salesforce DX scratch orgs voor configuratie en ontwikkeling.
    • Gebruik Salesforce CLI en sfdx-commando's om wijzigingen te beheren en te implementeren.
  • Omgevingsvariabelen:
    • Veilig beheer van gevoelige informatie met behulp van Salesforce Shield of versleutelde aangepaste instellingen.

5. Geautomatiseerde implementatie:

  • Versiecontrole:
    • Gebruik Git als de bron van de waarheid voor alle metadata en code.
    • Implementeer branching strategieën (bijv., feature branches, develop branch, master branch) om veranderingen te beheren.
  • CI/CD Pipeline:
    • Gebruik Salesforce DX, Jenkins en GitHub Actions om deploymentprocessen te automatiseren.
    • CI/CD pipeline-stappen omvatten:
      1. Build:Haal code op uit versiebeheer.
      2. Test: Voer geautomatiseerde tests uit met Apex Testuitvoering.
      3. Deploy: Wijzigingen uitrollen naar Integratie sandbox, gevolgd door UAT, Staging en Productie.
      4. Scratch Org Validation: Maak scratch orgs in de CI/CD pipeline om wijzigingen in een geïsoleerde omgeving te valideren.

6. Gegevensbeheer:

  • Testgegevens:
    • Gebruik geanonimiseerde of synthetische gegevens in sandboxes voor ontwikkelaars en integratie om te voldoen aan de voorschriften voor gegevensbescherming.
  • Gegevensmigratie:
    • Gebruik tools zoals Salesforce Data Loader of Talend voor gegevensmigratie tussen omgevingen.
  • Scratch Org Data:
    • Gebruik Salesforce DX om scratch orgs te vullen met relevante gegevens voor ontwikkelings- en testdoeleinden.

7. Bewaking en registratie:

  • Loggen:
    • Implementeer loggen met behulp van Salesforce Debug Logs en stel waarschuwingen in voor kritieke fouten.
  • Monitoring:
    • Gebruik AppExchange tools zoals New Relic of Datadog voor prestatiemonitoring en gezondheidscontroles.

8. Compliance en beveiliging:

  • Beveiligingsbeoordelingen:
    • Regelmatig beveiligingsbeoordelingen en penetratietests uitvoeren in Staging- en Productieomgevingen.
  • Toegangscontroles:
    • Rolgebaseerde toegangscontroles (RBAC) implementeren om de toegang tot gevoelige omgevingen en gegevens te beperken.

FAQ’s

Wat is Salesforce DevOps?
Salesforce DevOps is hetzelfde als echte DevOps en is gericht op het benutten van Salesforce op schaal. Dit helpt ontwikkelteams problemen op te sporen, bugs te identificeren en deze op te lossen voordat ze wijzigingen vrijgeven aan hun klanten
Is Salesforce DevOps een goede carrière?
Ja, DevOps engineers hebben een goede carrièremogelijkheid. Tegenwoordig maakt elk project gebruik van Salesforce DevOps.
Wat doet een Salesforce DevOps engineer?
DevOps engineers zijn verantwoordelijk voor het implementeren van continuous delivery, optimalisatie, monitoring en release management. Ze ondersteunen ook het end-to-end releaseproces.

Samenvatting

Salesforce DevOps is een cultuur en een reeks processen die ontwikkelingsteams en operationele teams samenbrengen om softwareontwikkeling te voltooien. Ik hoop dat je na het bekijken van alle DevOps-tools je implementatiestrategie en -proces kunt bepalen.