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

ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Intelisync
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 

Recently uploaded (20)

ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 

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