ag visuell - Fotolia

Salesforce Apex developers tap into CircleCI's CI/CD engine

CircleCI has teamed up with Salesforce to help developers building applications on Salesforce's Java-like Apex development platform tap into the CircleCI CI/CD engine.

CircleCI has answered the call to bring continuous integration to developers who build on the Salesforce Apex platform.

San Francisco-based CircleCI is integrating its CI/CD engine with Salesforce's Java-like Apex development platform. The integration builds upon a partnership initiated last year, where CircleCI began to support developers using the Salesforce CLI [Command Line Interface] to build applications.

CircleCI has created a CircleCI orb for Salesforce Apex. CircleCI orbs bundle CircleCI configuration software into reusable packages for developers to connect to the company's CI/CD engine, said Jim Rose, CEO of CircleCI, in an interview.

Jim RoseJim Rose

"We're finding more and more companies are realizing they're software companies," Rose said. "We're getting to a place where there are more and more tailored, highly specific platforms that developers are working with, and building extensions and applications upon."

Salesforce is one of these, Rose said. "Apex is really interesting as Salesforce continues to build this very large enterprise application platform," he said.

Capitalizing on DevOps

DevOps for application platforms is growing hotter as enterprises realize they can't completely become a digital company until every aspect of their business is transformed, and that includes line-of-business applications like Salesforce. Therefore, enterprise teams are turning their attention to linking business, supply chains and other critical elements of conducting business to systems of engagement or people-facing applications.

"It's not possible for a company like Amazon to sell you a product and promise it in two days unless its systems of engagement are linked with back-end business systems," said Chris Condo, an analyst at Forrester Research. "Now other enterprises realize the same is true for their business as well."

The new Salesforce Apex orb enables developers to run unit tests against apps and display the results in the Salesforce platform user interface; automatically deploy changes to applications already in production; and build version control system apps on commit and deploy the changes to a scratch organization, a temporary environment for a developer to publish their Salesforce app in prior to pushing it to production.

Migration to Salesforce DX

However, to use the CircleCI integration, Salesforce developers must migrate to Salesforce DX, said Bill Holz, an analyst at Gartner. Salesforce Apex is a proprietary Java-like language that Salesforce developers use to build custom business logic. Salesforce Developer Experience (DX) is a way to manage and develop Salesforce apps across their entire life cycle. It brings together the best of the Salesforce Lightning Platform to enable source-driven development, team collaboration with governance. Salesforce Lightning is a component-based, low-code environment designed for business users who do not have programming experience.

In short, Salesforce DX is a Salesforce product that allows users to develop and manage Salesforce apps throughout the entire platform. A comparison can be made to the Microsoft programming environment. Apex is a programming language and DX is a development life cycle tool environment -- like the relationship between C# and Visual Studio. The issue here is that it appears that Salesforce developer shops have been slow to move to DX.

The Salesforce Apex orb is "nice for those few organizations that have done this, but DX has not, from what I can tell, been highly adopted," Holz said. ""There are a lot of solutions already available to support DX and those organizations that have moved to DX most likely would have software development professionals who are familiar already with CI/CD tooling.""

Moreover, Holz noted that Salesforce provides sample repos for developers that are useful. Also, it doesn't appear that Salesforce has added any CircleCI training to Trailhead similar to what exists for Jenkins, TravisCI and GitLab, he said.

There are a lot of organizations out there that are using the Salesforce platform as essentially that next layer of abstraction above the infrastructure and are doing a lot of custom software development.
Jim RoseCEO, CircleCI

Trailhead is Salesforce's training program for educating users and developers about working on the Salesforce platform. Through Trailhead, the company offers a variety of content for developers, as Salesforce is a mix of an infrastructure provider, a platform company and an application vendor.

"It's one of those things where when you think about, for example, AWS, you're not naturally thinking about Salesforce as a comparison point," Rose said. "But there are a lot of organizations out there that are using the Salesforce platform as essentially that next layer of abstraction above the infrastructure and are doing a lot of custom software development."

In addition, Salesforce has an extensible platform that enables developers to easily build extensions and plugins to help to democratize development on the Salesforce platform.

"Salesforce is using a standard, automated, build, test and release process to bring software to market," Rose said. "And that is why they're bringing in more and more tools like CircleCI to bear to try and make that process easier."

Meanwhile, CircleCI also updated its Salesforce CLI orb that debuted last December to tighten the integration with the Salesforce CLI experience and to simplify access to common commands.

There is a large opportunity for vendors in this market, as enterprises compete to deliver quality products and developers need DevOps and CI/CD to facilitate that.

"DevOps for Salesforce, SAP and other such systems are lacking in many areas of automation that mainstream developers take for granted, and yet most large software dev tool vendors have ignored this space," Condo said.

Dig Deeper on Software design and development