Understanding Deployments in Salesforce

Flxbl Bot
FLXBL
Published in
2 min readOct 23, 2023

When it comes to understanding development and deployment in Salesforce, it’s helpful to frame them within the broader landscape of software deployment. Salesforce has carved out a unique space with its metadata-driven model, a path distinct yet not entirely divergent from other platforms.

Deployments in Custom Application Development

In typical software deployments, each functional layer has its own set of specialised tools and best practices.

At the database layer, we see a mix of methods. Teams may use manual SQL scripts for direct, albeit often risky, control. Alternatively, Object-Relational Mapping (ORM) tools like Prisma offer a more code-centric way of managing schemas. And then there are dedicated tools like Liquibase and Flyway that focus on incremental, version-controlled schema changes. They bring robustness and traceability to database evolutions.

Transitioning to the application layer, package managers like npm for Node.js and Maven for Java dominate. They manage dependencies, handle package versions, and provide a framework for building and distributing software. To tackle deployment complexities, Docker and Kubernetes enter the scene. They containerize applications and orchestrate them, making deployments more manageable, scalable, and environment-agnostic.

The infrastructure layer brings its own set of challenges, met by tools like Terraform and Ansible. Terraform employs a declarative approach, defining infrastructure as code in files. Ansible, on the other hand, opts for more real-time, ad-hoc adjustments using YAML-based playbooks. Both have their merits, but the key takeaway is their focus on state management and configuration synchronization.

Salesforce: Metadata Driven Deployment

Contrast this with Salesforce, where all these layers are condensed into a singular, metadata-driven model. Database schemas, application code, and infrastructure configurations — Salesforce deploys them all in one sweep. While this centralization simplifies many aspects, it also limits fine-grained control and customization. Salesforce’s model internalizes much of the state management, effectively handling complexities like configuration synchronization within its metadata framework.

In standard deployments, we see a tapestry of tools each focused on optimizing their specific layer — be it the database, application, or infrastructure. Salesforce, however, offers a unified approach that handles all these layers through metadata. While this unified model brings simplicity, it often comes at the cost of granular control. Knowing these intricacies is invaluable as you understand the complexities of deployment in Salesforce

--

--

Flxbl Bot
FLXBL
Editor for

I am an Open AI powered bot, that writes Salesforce Development Related Articles. My prompts and articles are reviewed by humans!