Cloud Native vs. Salesforce Devops – What is The Difference?
As I keep learning more about devops, I keep comparing cloud native, or “regular” devops to Salesforce devops. Naturally, people wonder what I mean when I say Salesforce devops is different from cloud native devops.
To fully explain the difference, I will first go over my definition of the term “devops.” Next, I will explain what cloud native computing is. I go on to describe the difference between cloud native and Salesforce devops, and then illustrate how Salesforce, the company, uses cloud native devops to deliver Salesforce, the platform. I wrap by describing how to use cloud native devops insights to improve your own Salesforce devops practices.
What is Devops?
Devops is now a term that describes the entire field of enterprise application delivery, or how a company manages the resources required to deliver new apps. Today “doing devops” is to strategically engage in enterprise application delivery as the new means of production.
Just like how managing railroad construction after the Civil War transformed the United States into an economic superpower, managing enterprise application delivery is now what transforms enterprises and creates power in the digital realm.
With devops being a strategic focus, and not just a tactical nicety, it covers managing the people, tooling, communication structures, and production resources required to develop, manage, secure, test, and improve enterprise apps continuously.
In 2021, devops has grown to cover application delivery orchestration and management in addition to application development technologies and tooling. As such, devops has evolved into an extraordinarily complex subject with many facets of learning and expertise. Today, devops is an all-encompassing term that covers several associated subjects:
- Value stream management
- Application lifecycle management
- Continuous delivery command servers
- Developer workstation tooling
- Continuous integration tooling
- Repository management
- Release management
- Integrating AWS, GCP or Azure resources
- Cybersecurity tooling and scanners
- Observability and metrics
- Continuous Testing
What is Cloud Native Computing?
Cloud native computing evolved out of computer virtualization and application containerization, which was introduced by Docker in 2012. With containers, it became easier to split up monolithic applications into a more resilient and scalable microservices architecture. Containerization gained huge popularity when Google released Kubernetes as a free open-source software (FOSS) project in 2016 which orchestrated the execution of containers in distributed networking environments.
Since then, Kubernetes has emerged as the industry-leading way to deploy cloud native applications that automatically access compute, storage, and networking resources. All the major cloud service providers, including AWS, GCP and Azure, now offer Kubernetes implementations that support geo-redundancy and distributed databases.
So, for me, cloud native computing means using containerized services plus Kubernetes to deploy distributed network applications at commercial scale. Here is a more nuanced take according to the Cloud Native Computing Foundation (cncf.io):
Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach.https://www.cncf.io/about/who-we-are/
Implementing cloud native computing with devops tooling is now a huge global industry based on the principle of using the best tool for the job. This is a natural outgrowth from the original 1980’s UNIX philosophy of using small, special-purpose tools chained together to create a solution. So, as the devops industry follows this philosophy with a vengeance, there are now many small cloud native devops companies, each offering extremely specific tooling or services.
The CNCF ecosystem has thrived using the CNCF, Apache and other FOSS organizations to distribute new projects. Several projects have been commercialized into valuable startups that chiefly power other technology companies, including Splunk, Confluence, and Elastic.
Salesforce Platform is a Cloud Native App
The way the CNCF defines cloud native computing describes how Salesforce produces the Salesforce platform. Salesforce uses cloud native computing products and services to build and deploy the Salesforce platform. In fact, Salesforce is a cloud native devops leader when it comes to building complex, global cloud native applications.
Let us start at the highest possible perspective to understand the role devops plays in enterprise app production.
This illustration shows how nearly all enterprise SaaS applications work. At the foundation is the hardware, software, and telecom services required to run a pool of compute, storage, and networking resources. These public, private and hybrid resources are pooled together into a hyperconverged infrastructure.
The middle layer represents cloud native apps built using cloud native technologies. This includes Salesforce, SAP, and every other enterprise SaaS offering.
And at the very top are the people that operate an enterprise and the apps which become the means of production. Those apps are built using the specialized languages, APIs, and low-code user interfaces offered by the cloud native applications.
Now let us dig deeper into this abstraction and see how devops is used in cloud native computing and enterprise application delivery.
Let us go through this diagram starting from the bottom and going on up. The bottom layer is the hyperconverged infrastructure, which cloud service providers offer APIs to application service providers.
Next is the Cloud Native Devops layer, which delivers cloud native apps to be run by application service providers. This is where devops engineers assemble scripts, command servers, online repositories, and other resources that take source code artifacts and then create run-time artifacts, which are then deployed into a cloud native application that uses cloud service providers APIs.
In the next layer represents the cloud native apps that offer programmatic and low-code application development capabilities that create enterprise apps. I’ve included both Salesforce and other “application service providers” which represent SaaS providers like SAP and Microsoft Dynamic 365.
The next layer, Salesforce Devops, is the technical and human interface between SaaS service providers and the digital objectives of the enterprise. Informed by management and governance factors, this layer uses all the specialized interfaces offered by the SaaS apps to manage the production of enterprise apps.
Cloud Native versus Salesforce Devops
Most of the differences between cloud native and Salesforce devops is that app producers are dealing with business processes expressed as technical requirements, and not just technical requirements.
In Salesforce devops, because app production is mapped into an existing enterprise, there are many more considerations for business process analysis, communication, and management than in cloud native computing product companies.
Another key difference between cloud native devops and Salesforce devops is how architects and developers access tooling and resources. For example, there are nearly 1,000 products and services cataloged in the CNCF landscape gallery, but only 50 currently listed in the SaleforceDevops.net Industry Map.
Instead, the unique needs of Salesforce devops creates a much smaller palate of tooling from which architects may choose. This is because dealing with dynamic metadata and orchestrating Salesforce application delivery has necessitated the creation of more complex, Salesforce-specific solutions. It took the development and refinement of Salesforce devops platforms like the top 5 solutions before Salesforce platform owners were provided some of the same software engineering and managerial benefits of cloud native devops.
Startups Develop and Enterprises Manage
The global IT community has looked to Silicon Valley and other Internet startups for inspiration for 25 years. And over the years IT and corporate culture has never really caught up with Silicon Valley.
The simple explanation for this mistaken goal is that Silicon Valley companies are built around constructing technology products, and an enterprise, like a consumer-packaged goods manufacturer, is built around selling soap or beverages. The two have completely different management structures and distribution strategies. This probably explains why it is so hard to adopt a “devops culture” in a global enterprise, even after 25 years of Silicon Valley envy.
To get around this block, enterprises should adopt Salesforce devops strategy that focuses on how the tooling works best with existing management teams and structures. By taking a more management-focused approach to identifying business processes and value streams early on, Salesforce devops tooling should be added after an app production team’s governing process is ready.
How Much Cloud Native Devops Do I Need?
It is technically feasible to manage Salesforce devops activities using nothing but cloud native devops tooling. In many Salesforce devops implementations there is a balance between the cloud native and Salesforce-specific devops tooling.
The degree to which a company uses cloud native devops for Salesforce enterprise application delivery depends on these factors, which are also concerns in a build-vs-buy decision when picking from a top 5 Salesforce devops startup.
- Is the focus on a new or existing org?
Exiting orgs require Salesforce-specific metadata solutions
- Is a source-based development method being used?
Source-based development provides a gateway to using some cloud native tools
- Is the continuous delivery pipeline complex?
A cloud native system like Jenkins or Azure DevOps performs advanced scripting activities
- Are advanced developer metrics and application performance monitoring required?
Most Salesforce devops solutions do not provide observability application
Find Your Cloud Native Pixie Dust
The beauty of the cloud native devops ecosystem is its diversity. There are hundreds of tools designed to perform very specific functions. I hope you explore the CNCF ecosystem the next time you are looking to spruce up your Salesforce enterprise application delivery.
The trick is to pick judiciously from the list of cloud native options, and carefully add them as incremental improvement to a Salesforce devops management program.
As practitioners of enterprise application delivery make their own unique Salesforce devops solution, they should always remember the challenge of Salesforce devops is to make the tooling bend to the will of the organization.