SlideShare a Scribd company logo
1 of 23
Copyright © 2018 AutoRABIT.
Design Patterns for
Using Second Generation Packaging (2GP)
Speakers Prashanth Samudrala
@samudrala153
Practice Architect, Customer Success
Abhilash Murali
@
Sr. Customer Success Engineer
www.autorabit.com Copyright © 2018 AutoRABIT.
Copyright © 2018 AutoRABIT.
Forward Looking
Statement
This presentation is provided on an “as-is” and “as available” basis, and company (and our
suppliers) expressly disclaim any and all warranties and conditions of any kind, whether
express, implied, or statutory, including all warranties or conditions of merchantability,
fitness for a particular purpose, title, quiet enjoyment, accuracy, or non-infringement. We
(and our suppliers) make no warranty that the information presented here will meet your
requirements, will be available on an uninterrupted, timely, secure, or error-free basis, or
will be accurate, reliable, free of viruses or other harmful code, complete, legal, or safe.
Some jurisdictions do not allow the exclusion of implied warranties, so the above exclusion
may not apply to you. Some jurisdictions do not allow limitations on how long an implied
warranty lasts, so the above limitation may not apply to you.
This presentation may contain forward-looking statements that involve uncertainties,
assumptions and risks. If any such uncertainties materialize or if any of the assumptions
proves incorrect, the results of AutoRABIT Pvt. Ltd. could differ materially from the results
expressed or implied by the forward-looking statements we make. Since AutoRABIT has no
control over such uncertainties, assumptions and risks
All statements other than statements of historical fact could be deemed forward-looking,
including any projections of AutoRABIT as a product or service availability, subscriber
growth, earnings, revenues, or other financial items and any statements regarding
strategies or plans of management for future operations, statements of belief, any
statements concerning new, planned, or upgraded services or technology developments
and customer contracts or use of our services customers who purchase a subscription to
our product or services should make the purchase decisions based upon features that are
currently available.
Copyright © 2018 AutoRABIT.
Agenda
• Traditional Software Design Patterns
• Salesforce Application Decomposition for Packaging
• Modular Development in Salesforce
• AutoRABIT Offering
Copyright © 2018 AutoRABIT.
What are Design Patterns?
 Reusable solution to common problems.
 Not a finished entity
 Path to great maintainability
Problem
Consequences Context
Benefits Causes
Dependencies
Relationships
Templates
Namespaces
Specification
Containers
Ancestry
Copyright © 2018 AutoRABIT.
Types of Design Patterns
Creational Behavioural Structural Concurrency
How can this be applied to Salesforce Development ?
Patterns used in traditional Software development.
A pattern used to construct objects such that
they can be decoupled from their implementing
system
A largely used pattern to form large complex
object structures between many disparate
objects
The new age algorithms, relationships,
responsibilities between objects managed
through event behaviors.
A choice of patterns that impact the design and
performance of applications
Ex- Active Object, Monitor Object,
Leaders/Followers, etc..
Copyright © 2018 AutoRABIT.
Feature 1 Feature 2 Feature 3 Feature 4
Service Logic
Domain Logic Utility Logic
Schema
Design Patterns for Salesforce Applications
Enterprise Design Patterns
Copyright © 2018 AutoRABIT.
Declarative: Custom Objects, Fields, Relationships
Coding: Apex Triggers
Declarative: Dataloader
Coding: SOQL and SOSL, Salesforce APIs
Declarative: Formula, Validation, Workflow, Sharing Rules
Coding: Apex
Declarative: Layouts, RecordTypes, Formula,
Reports, Lightning Interface, Dashboards
Coding: Visualforce and Apex
Application Packaging Model in Salesforce – The Materialized path
Copyright © 2018 AutoRABIT.
Packaging – Patterns and Antipatterns
• Apps that are built inside of your Salesforce Env. | New Development
• Metadata that extends the standard functionality of Salesforce – Sales Cloud, Service Cloud
• Any customizations that are done on top of App Exchange apps
• Any newly created Metadata (Lightning Pages, Apex Classes)
• Stories that can be released independently
• Atomicity, Consistency, Isolation, Durability (ACID mantra)
Patterns
• Don’t export entire org as a single project | Modularize
• Avoid cross component references
• Favor Immutability
• Eventual Consistency
• Look out for shared schema and decompose Apps based of it
• Watch out for Standard Objects which are heavily shared.
• Add shared objects to a common schema
• Always update shared schema as you go
Anti - Patterns
Copyright © 2018 AutoRABIT.
Salesforce Development Pre 2GP
Dev
Sandbox 1
Dev
Sandbox 2
Dev
Sandbox 3
Dev
Sandbox X SIT QA UAT Prod
Version Control
Pull/Push Metadata Packaging & Deploy
Org differences are
tracked manually
Org differences are
version controlled
All phases of the Development
process are executed
via metadata API
Releases are specific to
a Production Org
Copyright © 2018 AutoRABIT.
Modular Development in Salesforce – The DX Way
• Release schedule for
each package
• Release Artifacts are
new package version
• Flexible Packaging Model
• Containers for transporting
entire modules of Metadata
• Add/edit/remove
components
• Iterate using versions
• Source Driven
Development
• Collaboration of teams for
Development
• Metadata and Code are
modular
• Environments are easily
created and disposable
AKA Scratch Orgs
Copyright © 2018 AutoRABIT.
Salesforce Development Post 2GP
Scratch
Org 1
Scratch
Org 2
Scratch
Org 3
Scratch
Org 4 SIT QA UAT Prod
Version Control
Legend text here Legend text here
Copyright © 2018 AutoRABIT.
Copyright © 2018 AutoRABIT.
AutoRABIT
seamlessly integrates
the three Silos
Drives efficient
application development
best practices in
three categories
Salesforce DX
ALM
Feature
Branches
Provisioning
Development
Release
Copyright © 2018 AutoRABIT.
Where to Start
• Draw a blueprint around your monolithic org to identify your
Applications
• Start small by extrapolate your base package for an App
• Create base packages with shared schema
• Work with your ALM/ Scrum master to identify user stories that
can modularized
• Identify Metadata that can modularize into packages using
Patterns and Anti Patterns
• Use Org Shape to create your Scratch Orgs based on your user
story
• Understand Dependencies and Import Modules to your Scratch
Orgs which will lead to “Smart Packages”.
Copyright © 2018 AutoRABIT.
AutoRABIT Dependency Analyser
BugsBunny
Copyright © 2018 AutoRABIT.
Org Specific Templates
Copyright © 2018 AutoRABIT.
Create DCP
Development ReleaseProvisioning
Scratch Org Developer Pro Sandbox Partial Copy Sandbox
Full Copy Sandbox Production Version Control Packaging
Dependency Analyzer*
Workflow of 2GP using AutoRABIT
Copyright © 2018 AutoRABIT.
DX Evolution with AutoRABIT
• Register the DevHub [ Prod Org or Business Org or Trial Org]
• Create Scratch Orgs for the work items in the sprint
• Create Scratch Orgs with all the supported features [Org Shape] as well as
preferences inline with SFDX
• Populate Scratch Orgs with Metadata [ From Sandbox or Version Control ] using
Dependency Analyzer and saving them as Module specific templates
• Populate Scratch Orgs with required Data
• Create features branches for Scratch Orgs
• Login to Scratch Orgs directly from AutoRABIT
• Validate Scratch Org and perform code review
• Run Static Code Analysis and security scan on Scratch Org
• Check-in changes from Scratch Org to feature branch [ Source control] with
Developer Controlled Packages (2GP)
• Merge the changes directly between source control branches
• Perform automated pre-post deployment steps [ unsupported metadata ]
• CI Deploy / Selective Deployment from Source control to any release sandbox /
Prod environment
• Repeat the process for a perfect Packaging
Copyright © 2018 AutoRABIT.
• Verify the code/configuration is deployable without
missing dependencies
• Run automated units tests and verify code coverage
• Check for Static code analysis, security scans
• Complete the code review with peers
• Defects exponentially reduced at each stage of release
process
• Produce high quality software
• Higher release velocity
DX End state with AutoRABIT
Copyright © 2018 AutoRABIT.
Copyright © 2018 AutoRABIT.
Copyright © 2018 AutoRABIT.
Visit us @ Booth No. 18
Copyright © 2018 AutoRABIT.
IF YOU WISH TO KNOW
MORE ON HOW
AUTORABIT
CAN HELP YOU WITH
RELEASE AUTOMATION
WRITE TO US ON
info@autorabit.com

More Related Content

What's hot

COPADO - Plateforme de DEVOPS pour Salesforce
COPADO - Plateforme de DEVOPS pour SalesforceCOPADO - Plateforme de DEVOPS pour Salesforce
COPADO - Plateforme de DEVOPS pour SalesforceThierry TROUIN ☁
 
Salesforce & GitLab Integration for Next-gen DevOps with CEPTES
Salesforce & GitLab Integration for Next-gen DevOps with CEPTESSalesforce & GitLab Integration for Next-gen DevOps with CEPTES
Salesforce & GitLab Integration for Next-gen DevOps with CEPTESCEPTES Software Inc
 
Continuous Delivery (Internet-Briefing 2012-04-03)
Continuous Delivery (Internet-Briefing 2012-04-03)Continuous Delivery (Internet-Briefing 2012-04-03)
Continuous Delivery (Internet-Briefing 2012-04-03)Netcetera
 
Scaling Continuous Integration for Puppet
Scaling Continuous Integration for PuppetScaling Continuous Integration for Puppet
Scaling Continuous Integration for PuppetSalesforce Engineering
 
Automate Salesforce Releases with DevOps: Crawl, Walk, Run!
Automate Salesforce Releases with DevOps: Crawl, Walk, Run!Automate Salesforce Releases with DevOps: Crawl, Walk, Run!
Automate Salesforce Releases with DevOps: Crawl, Walk, Run!Susmitha Vakkalanka
 
Salesforce.com Sandbox management
Salesforce.com Sandbox management Salesforce.com Sandbox management
Salesforce.com Sandbox management Ali Akbar
 
Code live with ryan headley code reviews done right
Code live with ryan headley   code reviews done rightCode live with ryan headley   code reviews done right
Code live with ryan headley code reviews done rightJackGuo20
 
How to Setup Continuous Integration With Git, Jenkins, and Force.com
How to Setup Continuous Integration With Git, Jenkins, and Force.comHow to Setup Continuous Integration With Git, Jenkins, and Force.com
How to Setup Continuous Integration With Git, Jenkins, and Force.comSalesforce Developers
 
How Open Source Embiggens Salesforce.com
How Open Source Embiggens Salesforce.comHow Open Source Embiggens Salesforce.com
How Open Source Embiggens Salesforce.comSalesforce Engineering
 
ApexUnit: Open source test framework for apex
ApexUnit: Open source test framework for apexApexUnit: Open source test framework for apex
ApexUnit: Open source test framework for apexVamshidhar Gandham
 
From Sandbox To Production: An Introduction to Salesforce Release Management
From Sandbox To Production: An Introduction to Salesforce Release ManagementFrom Sandbox To Production: An Introduction to Salesforce Release Management
From Sandbox To Production: An Introduction to Salesforce Release ManagementSalesforce Developers
 
Dreamforce 2017: Salesforce DX - an Admin's Perspective
Dreamforce 2017:  Salesforce DX - an Admin's PerspectiveDreamforce 2017:  Salesforce DX - an Admin's Perspective
Dreamforce 2017: Salesforce DX - an Admin's PerspectiveMike White
 
Crossbrowser Testing at Salesforce Analytics
Crossbrowser Testing at Salesforce AnalyticsCrossbrowser Testing at Salesforce Analytics
Crossbrowser Testing at Salesforce AnalyticsSalesforce Engineering
 
Build Together And Deliver Continuously With Salesforce DX
Build Together And Deliver Continuously With Salesforce DXBuild Together And Deliver Continuously With Salesforce DX
Build Together And Deliver Continuously With Salesforce DXLynette Lim
 
Release Management: Managing Your Internal Releases
Release Management: Managing Your Internal ReleasesRelease Management: Managing Your Internal Releases
Release Management: Managing Your Internal ReleasesJoshua Hoskins
 
Salesforce API Series: Release Management with the Metadata API webinar
Salesforce API Series: Release Management with the Metadata API webinarSalesforce API Series: Release Management with the Metadata API webinar
Salesforce API Series: Release Management with the Metadata API webinarSalesforce Developers
 
Meet The Welkin Suite IDE: Product Overview
Meet The Welkin Suite IDE: Product OverviewMeet The Welkin Suite IDE: Product Overview
Meet The Welkin Suite IDE: Product OverviewSalesforce Developers
 
Salesforce Continuous Integration with AutoRABIT
Salesforce Continuous Integration with AutoRABITSalesforce Continuous Integration with AutoRABIT
Salesforce Continuous Integration with AutoRABITVishnu Raju Datla
 

What's hot (20)

COPADO - Plateforme de DEVOPS pour Salesforce
COPADO - Plateforme de DEVOPS pour SalesforceCOPADO - Plateforme de DEVOPS pour Salesforce
COPADO - Plateforme de DEVOPS pour Salesforce
 
Salesforce & GitLab Integration for Next-gen DevOps with CEPTES
Salesforce & GitLab Integration for Next-gen DevOps with CEPTESSalesforce & GitLab Integration for Next-gen DevOps with CEPTES
Salesforce & GitLab Integration for Next-gen DevOps with CEPTES
 
Continuous Delivery (Internet-Briefing 2012-04-03)
Continuous Delivery (Internet-Briefing 2012-04-03)Continuous Delivery (Internet-Briefing 2012-04-03)
Continuous Delivery (Internet-Briefing 2012-04-03)
 
Scaling Continuous Integration for Puppet
Scaling Continuous Integration for PuppetScaling Continuous Integration for Puppet
Scaling Continuous Integration for Puppet
 
Automate Salesforce Releases with DevOps: Crawl, Walk, Run!
Automate Salesforce Releases with DevOps: Crawl, Walk, Run!Automate Salesforce Releases with DevOps: Crawl, Walk, Run!
Automate Salesforce Releases with DevOps: Crawl, Walk, Run!
 
Salesforce.com Sandbox management
Salesforce.com Sandbox management Salesforce.com Sandbox management
Salesforce.com Sandbox management
 
Code live with ryan headley code reviews done right
Code live with ryan headley   code reviews done rightCode live with ryan headley   code reviews done right
Code live with ryan headley code reviews done right
 
How to Setup Continuous Integration With Git, Jenkins, and Force.com
How to Setup Continuous Integration With Git, Jenkins, and Force.comHow to Setup Continuous Integration With Git, Jenkins, and Force.com
How to Setup Continuous Integration With Git, Jenkins, and Force.com
 
How Open Source Embiggens Salesforce.com
How Open Source Embiggens Salesforce.comHow Open Source Embiggens Salesforce.com
How Open Source Embiggens Salesforce.com
 
ApexUnit: Open source test framework for apex
ApexUnit: Open source test framework for apexApexUnit: Open source test framework for apex
ApexUnit: Open source test framework for apex
 
From Sandbox To Production: An Introduction to Salesforce Release Management
From Sandbox To Production: An Introduction to Salesforce Release ManagementFrom Sandbox To Production: An Introduction to Salesforce Release Management
From Sandbox To Production: An Introduction to Salesforce Release Management
 
Dreamforce 2017: Salesforce DX - an Admin's Perspective
Dreamforce 2017:  Salesforce DX - an Admin's PerspectiveDreamforce 2017:  Salesforce DX - an Admin's Perspective
Dreamforce 2017: Salesforce DX - an Admin's Perspective
 
Crossbrowser Testing at Salesforce Analytics
Crossbrowser Testing at Salesforce AnalyticsCrossbrowser Testing at Salesforce Analytics
Crossbrowser Testing at Salesforce Analytics
 
Build Together And Deliver Continuously With Salesforce DX
Build Together And Deliver Continuously With Salesforce DXBuild Together And Deliver Continuously With Salesforce DX
Build Together And Deliver Continuously With Salesforce DX
 
Release Management: Managing Your Internal Releases
Release Management: Managing Your Internal ReleasesRelease Management: Managing Your Internal Releases
Release Management: Managing Your Internal Releases
 
Salesforce API Series: Release Management with the Metadata API webinar
Salesforce API Series: Release Management with the Metadata API webinarSalesforce API Series: Release Management with the Metadata API webinar
Salesforce API Series: Release Management with the Metadata API webinar
 
Meet The Welkin Suite IDE: Product Overview
Meet The Welkin Suite IDE: Product OverviewMeet The Welkin Suite IDE: Product Overview
Meet The Welkin Suite IDE: Product Overview
 
Salesforce Continuous Integration with AutoRABIT
Salesforce Continuous Integration with AutoRABITSalesforce Continuous Integration with AutoRABIT
Salesforce Continuous Integration with AutoRABIT
 
Development Best Practices
Development Best PracticesDevelopment Best Practices
Development Best Practices
 
Dev ops.enterprise.2014 (1)
Dev ops.enterprise.2014 (1)Dev ops.enterprise.2014 (1)
Dev ops.enterprise.2014 (1)
 

Similar to 2GP Design Patterns and Modular Development

How to benchmark the maturity of your saas solution
How to benchmark the maturity of your saas solutionHow to benchmark the maturity of your saas solution
How to benchmark the maturity of your saas solutionkanimozhin
 
Semaphore cloud development webinar
Semaphore cloud development webinarSemaphore cloud development webinar
Semaphore cloud development webinarAnn Kelly
 
Benchmark Maturity of your SaaS Solution
Benchmark Maturity of your SaaS SolutionBenchmark Maturity of your SaaS Solution
Benchmark Maturity of your SaaS SolutionTechcello
 
Big Data Fundamentals 6.6.18
Big Data Fundamentals 6.6.18Big Data Fundamentals 6.6.18
Big Data Fundamentals 6.6.18Cloudera, Inc.
 
Salesforce Multitenant Architecture: How We Do the Magic We Do
Salesforce Multitenant Architecture: How We Do the Magic We DoSalesforce Multitenant Architecture: How We Do the Magic We Do
Salesforce Multitenant Architecture: How We Do the Magic We DoSalesforce Developers
 
Extending Jenkins to the Mainframe. A Simpler Approach.
Extending Jenkins to the Mainframe.  A Simpler Approach.Extending Jenkins to the Mainframe.  A Simpler Approach.
Extending Jenkins to the Mainframe. A Simpler Approach.DevOps.com
 
Too Many Tools - How AWS Systems Manager Bridges Operational Models
Too Many Tools - How AWS Systems Manager Bridges Operational ModelsToo Many Tools - How AWS Systems Manager Bridges Operational Models
Too Many Tools - How AWS Systems Manager Bridges Operational ModelsAmazon Web Services
 
Too Many Tools? How AWS Systems Manager Bridges Operational Models - AWS Summ...
Too Many Tools? How AWS Systems Manager Bridges Operational Models - AWS Summ...Too Many Tools? How AWS Systems Manager Bridges Operational Models - AWS Summ...
Too Many Tools? How AWS Systems Manager Bridges Operational Models - AWS Summ...Amazon Web Services
 
[REPEAT 1] Safeguard the Integrity of Your Code for Fast and Secure Deploymen...
[REPEAT 1] Safeguard the Integrity of Your Code for Fast and Secure Deploymen...[REPEAT 1] Safeguard the Integrity of Your Code for Fast and Secure Deploymen...
[REPEAT 1] Safeguard the Integrity of Your Code for Fast and Secure Deploymen...Amazon Web Services
 
Safeguard the Integrity of Your Code for Fast and Secure Deployments (DEV349-...
Safeguard the Integrity of Your Code for Fast and Secure Deployments (DEV349-...Safeguard the Integrity of Your Code for Fast and Secure Deployments (DEV349-...
Safeguard the Integrity of Your Code for Fast and Secure Deployments (DEV349-...Amazon Web Services
 
Accelerating Enterprise Cloud Adoption: Automate Security to Migrate Faster
Accelerating Enterprise Cloud Adoption: Automate Security to Migrate FasterAccelerating Enterprise Cloud Adoption: Automate Security to Migrate Faster
Accelerating Enterprise Cloud Adoption: Automate Security to Migrate FasterAmazon Web Services
 
Lightning web components - Episode 4 : Security and Testing
Lightning web components  - Episode 4 : Security and TestingLightning web components  - Episode 4 : Security and Testing
Lightning web components - Episode 4 : Security and TestingSalesforce Developers
 
#ATAGTR2019 Presentation "Top 10 quality engineering best practices to achiev...
#ATAGTR2019 Presentation "Top 10 quality engineering best practices to achiev...#ATAGTR2019 Presentation "Top 10 quality engineering best practices to achiev...
#ATAGTR2019 Presentation "Top 10 quality engineering best practices to achiev...Agile Testing Alliance
 
CI/CD for Serverless and Containerized Applications (DEV309-R1) - AWS re:Inve...
CI/CD for Serverless and Containerized Applications (DEV309-R1) - AWS re:Inve...CI/CD for Serverless and Containerized Applications (DEV309-R1) - AWS re:Inve...
CI/CD for Serverless and Containerized Applications (DEV309-R1) - AWS re:Inve...Amazon Web Services
 
Why citizen developers should be your new best friend - Oracle APEX
Why citizen developers should be your new best friend - Oracle APEXWhy citizen developers should be your new best friend - Oracle APEX
Why citizen developers should be your new best friend - Oracle APEXDavidPeake15
 
Blurring the Boundaries Between Salesforce Orgs
Blurring the Boundaries Between Salesforce OrgsBlurring the Boundaries Between Salesforce Orgs
Blurring the Boundaries Between Salesforce OrgsSalesforce Developers
 
Architecting a Real-World Microservices Architecture and DevOps Strategy on A...
Architecting a Real-World Microservices Architecture and DevOps Strategy on A...Architecting a Real-World Microservices Architecture and DevOps Strategy on A...
Architecting a Real-World Microservices Architecture and DevOps Strategy on A...Amazon Web Services
 

Similar to 2GP Design Patterns and Modular Development (20)

How to benchmark the maturity of your saas solution
How to benchmark the maturity of your saas solutionHow to benchmark the maturity of your saas solution
How to benchmark the maturity of your saas solution
 
Semaphore cloud development webinar
Semaphore cloud development webinarSemaphore cloud development webinar
Semaphore cloud development webinar
 
Benchmark Maturity of your SaaS Solution
Benchmark Maturity of your SaaS SolutionBenchmark Maturity of your SaaS Solution
Benchmark Maturity of your SaaS Solution
 
Big Data Fundamentals 6.6.18
Big Data Fundamentals 6.6.18Big Data Fundamentals 6.6.18
Big Data Fundamentals 6.6.18
 
Big Data Fundamentals
Big Data FundamentalsBig Data Fundamentals
Big Data Fundamentals
 
Salesforce Multitenant Architecture: How We Do the Magic We Do
Salesforce Multitenant Architecture: How We Do the Magic We DoSalesforce Multitenant Architecture: How We Do the Magic We Do
Salesforce Multitenant Architecture: How We Do the Magic We Do
 
Extending Jenkins to the Mainframe. A Simpler Approach.
Extending Jenkins to the Mainframe.  A Simpler Approach.Extending Jenkins to the Mainframe.  A Simpler Approach.
Extending Jenkins to the Mainframe. A Simpler Approach.
 
Too Many Tools - How AWS Systems Manager Bridges Operational Models
Too Many Tools - How AWS Systems Manager Bridges Operational ModelsToo Many Tools - How AWS Systems Manager Bridges Operational Models
Too Many Tools - How AWS Systems Manager Bridges Operational Models
 
Too Many Tools? How AWS Systems Manager Bridges Operational Models - AWS Summ...
Too Many Tools? How AWS Systems Manager Bridges Operational Models - AWS Summ...Too Many Tools? How AWS Systems Manager Bridges Operational Models - AWS Summ...
Too Many Tools? How AWS Systems Manager Bridges Operational Models - AWS Summ...
 
[REPEAT 1] Safeguard the Integrity of Your Code for Fast and Secure Deploymen...
[REPEAT 1] Safeguard the Integrity of Your Code for Fast and Secure Deploymen...[REPEAT 1] Safeguard the Integrity of Your Code for Fast and Secure Deploymen...
[REPEAT 1] Safeguard the Integrity of Your Code for Fast and Secure Deploymen...
 
Safeguard the Integrity of Your Code for Fast and Secure Deployments (DEV349-...
Safeguard the Integrity of Your Code for Fast and Secure Deployments (DEV349-...Safeguard the Integrity of Your Code for Fast and Secure Deployments (DEV349-...
Safeguard the Integrity of Your Code for Fast and Secure Deployments (DEV349-...
 
Accelerating Enterprise Cloud Adoption: Automate Security to Migrate Faster
Accelerating Enterprise Cloud Adoption: Automate Security to Migrate FasterAccelerating Enterprise Cloud Adoption: Automate Security to Migrate Faster
Accelerating Enterprise Cloud Adoption: Automate Security to Migrate Faster
 
Lightning web components - Episode 4 : Security and Testing
Lightning web components  - Episode 4 : Security and TestingLightning web components  - Episode 4 : Security and Testing
Lightning web components - Episode 4 : Security and Testing
 
Tdxgg18 summary presentation
Tdxgg18 summary presentationTdxgg18 summary presentation
Tdxgg18 summary presentation
 
#ATAGTR2019 Presentation "Top 10 quality engineering best practices to achiev...
#ATAGTR2019 Presentation "Top 10 quality engineering best practices to achiev...#ATAGTR2019 Presentation "Top 10 quality engineering best practices to achiev...
#ATAGTR2019 Presentation "Top 10 quality engineering best practices to achiev...
 
CI/CD for Serverless and Containerized Applications (DEV309-R1) - AWS re:Inve...
CI/CD for Serverless and Containerized Applications (DEV309-R1) - AWS re:Inve...CI/CD for Serverless and Containerized Applications (DEV309-R1) - AWS re:Inve...
CI/CD for Serverless and Containerized Applications (DEV309-R1) - AWS re:Inve...
 
Why citizen developers should be your new best friend - Oracle APEX
Why citizen developers should be your new best friend - Oracle APEXWhy citizen developers should be your new best friend - Oracle APEX
Why citizen developers should be your new best friend - Oracle APEX
 
Blurring the Boundaries Between Salesforce Orgs
Blurring the Boundaries Between Salesforce OrgsBlurring the Boundaries Between Salesforce Orgs
Blurring the Boundaries Between Salesforce Orgs
 
Architecting a Real-World Microservices Architecture and DevOps Strategy on A...
Architecting a Real-World Microservices Architecture and DevOps Strategy on A...Architecting a Real-World Microservices Architecture and DevOps Strategy on A...
Architecting a Real-World Microservices Architecture and DevOps Strategy on A...
 
Webinar-DevOps.pdf
Webinar-DevOps.pdfWebinar-DevOps.pdf
Webinar-DevOps.pdf
 

Recently uploaded

Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 

Recently uploaded (20)

Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 

2GP Design Patterns and Modular Development

  • 1. Copyright © 2018 AutoRABIT. Design Patterns for Using Second Generation Packaging (2GP) Speakers Prashanth Samudrala @samudrala153 Practice Architect, Customer Success Abhilash Murali @ Sr. Customer Success Engineer www.autorabit.com Copyright © 2018 AutoRABIT.
  • 2. Copyright © 2018 AutoRABIT. Forward Looking Statement This presentation is provided on an “as-is” and “as available” basis, and company (and our suppliers) expressly disclaim any and all warranties and conditions of any kind, whether express, implied, or statutory, including all warranties or conditions of merchantability, fitness for a particular purpose, title, quiet enjoyment, accuracy, or non-infringement. We (and our suppliers) make no warranty that the information presented here will meet your requirements, will be available on an uninterrupted, timely, secure, or error-free basis, or will be accurate, reliable, free of viruses or other harmful code, complete, legal, or safe. Some jurisdictions do not allow the exclusion of implied warranties, so the above exclusion may not apply to you. Some jurisdictions do not allow limitations on how long an implied warranty lasts, so the above limitation may not apply to you. This presentation may contain forward-looking statements that involve uncertainties, assumptions and risks. If any such uncertainties materialize or if any of the assumptions proves incorrect, the results of AutoRABIT Pvt. Ltd. could differ materially from the results expressed or implied by the forward-looking statements we make. Since AutoRABIT has no control over such uncertainties, assumptions and risks All statements other than statements of historical fact could be deemed forward-looking, including any projections of AutoRABIT as a product or service availability, subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services customers who purchase a subscription to our product or services should make the purchase decisions based upon features that are currently available.
  • 3. Copyright © 2018 AutoRABIT. Agenda • Traditional Software Design Patterns • Salesforce Application Decomposition for Packaging • Modular Development in Salesforce • AutoRABIT Offering
  • 4. Copyright © 2018 AutoRABIT. What are Design Patterns?  Reusable solution to common problems.  Not a finished entity  Path to great maintainability Problem Consequences Context Benefits Causes Dependencies Relationships Templates Namespaces Specification Containers Ancestry
  • 5. Copyright © 2018 AutoRABIT. Types of Design Patterns Creational Behavioural Structural Concurrency How can this be applied to Salesforce Development ? Patterns used in traditional Software development. A pattern used to construct objects such that they can be decoupled from their implementing system A largely used pattern to form large complex object structures between many disparate objects The new age algorithms, relationships, responsibilities between objects managed through event behaviors. A choice of patterns that impact the design and performance of applications Ex- Active Object, Monitor Object, Leaders/Followers, etc..
  • 6. Copyright © 2018 AutoRABIT. Feature 1 Feature 2 Feature 3 Feature 4 Service Logic Domain Logic Utility Logic Schema Design Patterns for Salesforce Applications Enterprise Design Patterns
  • 7. Copyright © 2018 AutoRABIT. Declarative: Custom Objects, Fields, Relationships Coding: Apex Triggers Declarative: Dataloader Coding: SOQL and SOSL, Salesforce APIs Declarative: Formula, Validation, Workflow, Sharing Rules Coding: Apex Declarative: Layouts, RecordTypes, Formula, Reports, Lightning Interface, Dashboards Coding: Visualforce and Apex Application Packaging Model in Salesforce – The Materialized path
  • 8. Copyright © 2018 AutoRABIT. Packaging – Patterns and Antipatterns • Apps that are built inside of your Salesforce Env. | New Development • Metadata that extends the standard functionality of Salesforce – Sales Cloud, Service Cloud • Any customizations that are done on top of App Exchange apps • Any newly created Metadata (Lightning Pages, Apex Classes) • Stories that can be released independently • Atomicity, Consistency, Isolation, Durability (ACID mantra) Patterns • Don’t export entire org as a single project | Modularize • Avoid cross component references • Favor Immutability • Eventual Consistency • Look out for shared schema and decompose Apps based of it • Watch out for Standard Objects which are heavily shared. • Add shared objects to a common schema • Always update shared schema as you go Anti - Patterns
  • 9. Copyright © 2018 AutoRABIT. Salesforce Development Pre 2GP Dev Sandbox 1 Dev Sandbox 2 Dev Sandbox 3 Dev Sandbox X SIT QA UAT Prod Version Control Pull/Push Metadata Packaging & Deploy Org differences are tracked manually Org differences are version controlled All phases of the Development process are executed via metadata API Releases are specific to a Production Org
  • 10. Copyright © 2018 AutoRABIT. Modular Development in Salesforce – The DX Way • Release schedule for each package • Release Artifacts are new package version • Flexible Packaging Model • Containers for transporting entire modules of Metadata • Add/edit/remove components • Iterate using versions • Source Driven Development • Collaboration of teams for Development • Metadata and Code are modular • Environments are easily created and disposable AKA Scratch Orgs
  • 11. Copyright © 2018 AutoRABIT. Salesforce Development Post 2GP Scratch Org 1 Scratch Org 2 Scratch Org 3 Scratch Org 4 SIT QA UAT Prod Version Control Legend text here Legend text here
  • 12. Copyright © 2018 AutoRABIT.
  • 13. Copyright © 2018 AutoRABIT. AutoRABIT seamlessly integrates the three Silos Drives efficient application development best practices in three categories Salesforce DX ALM Feature Branches Provisioning Development Release
  • 14. Copyright © 2018 AutoRABIT. Where to Start • Draw a blueprint around your monolithic org to identify your Applications • Start small by extrapolate your base package for an App • Create base packages with shared schema • Work with your ALM/ Scrum master to identify user stories that can modularized • Identify Metadata that can modularize into packages using Patterns and Anti Patterns • Use Org Shape to create your Scratch Orgs based on your user story • Understand Dependencies and Import Modules to your Scratch Orgs which will lead to “Smart Packages”.
  • 15. Copyright © 2018 AutoRABIT. AutoRABIT Dependency Analyser BugsBunny
  • 16. Copyright © 2018 AutoRABIT. Org Specific Templates
  • 17. Copyright © 2018 AutoRABIT. Create DCP Development ReleaseProvisioning Scratch Org Developer Pro Sandbox Partial Copy Sandbox Full Copy Sandbox Production Version Control Packaging Dependency Analyzer* Workflow of 2GP using AutoRABIT
  • 18. Copyright © 2018 AutoRABIT. DX Evolution with AutoRABIT • Register the DevHub [ Prod Org or Business Org or Trial Org] • Create Scratch Orgs for the work items in the sprint • Create Scratch Orgs with all the supported features [Org Shape] as well as preferences inline with SFDX • Populate Scratch Orgs with Metadata [ From Sandbox or Version Control ] using Dependency Analyzer and saving them as Module specific templates • Populate Scratch Orgs with required Data • Create features branches for Scratch Orgs • Login to Scratch Orgs directly from AutoRABIT • Validate Scratch Org and perform code review • Run Static Code Analysis and security scan on Scratch Org • Check-in changes from Scratch Org to feature branch [ Source control] with Developer Controlled Packages (2GP) • Merge the changes directly between source control branches • Perform automated pre-post deployment steps [ unsupported metadata ] • CI Deploy / Selective Deployment from Source control to any release sandbox / Prod environment • Repeat the process for a perfect Packaging
  • 19. Copyright © 2018 AutoRABIT. • Verify the code/configuration is deployable without missing dependencies • Run automated units tests and verify code coverage • Check for Static code analysis, security scans • Complete the code review with peers • Defects exponentially reduced at each stage of release process • Produce high quality software • Higher release velocity DX End state with AutoRABIT
  • 20. Copyright © 2018 AutoRABIT.
  • 21. Copyright © 2018 AutoRABIT.
  • 22. Copyright © 2018 AutoRABIT. Visit us @ Booth No. 18
  • 23. Copyright © 2018 AutoRABIT. IF YOU WISH TO KNOW MORE ON HOW AUTORABIT CAN HELP YOU WITH RELEASE AUTOMATION WRITE TO US ON info@autorabit.com