{"id":392,"date":"2021-03-18T11:17:00","date_gmt":"2021-03-18T11:17:00","guid":{"rendered":"https:\/\/vernonkeenan.com\/?p=392"},"modified":"2021-12-04T10:38:07","modified_gmt":"2021-12-04T17:38:07","slug":"sfdx-cli-paves-the-way-for-open-source-salesforce-devops","status":"publish","type":"post","link":"https:\/\/salesforcedevops.net\/index.php\/2021\/03\/18\/sfdx-cli-paves-the-way-for-open-source-salesforce-devops\/","title":{"rendered":"SFDX-CLI Paves The Way for Open-Source Salesforce Devops"},"content":{"rendered":"\n<p class=\"has-drop-cap wp-block-paragraph\">The case for investment in devops engineering is powerful. Devops is highly impactful because technology products change rapidly through the power of devops engineering. Product evolution based on user feedback lets enterprises compete and succeed with the power of software. Why can\u2019t we do the same thing for the thousands of developers and millions of people who use Salesforce products and services today? Fortunately, Salesforce Devops is now changing for the better with the emerging SFDX-CLI ecosystem.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To help Salesforce developers and architects see the power of devops, I give some tips on basic Salesforce DX automation with BASH and MAKE in this post. Then, I discuss SFDX-CLI and its new plugin ecosystem and how it represents a key touch point between the Salesforce platform and open-source devops engineering. I&#8217;ll wrap it up with a list of the SFDX-CLI plugins that are interesting for Salesforce devops engineers.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-scripting-to-the-core\">Scripting to The Core<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A devops engineer starts out small and builds up layers of functionality. Let us examine how those layers get built by looking at the heart of devops engineering: scripting.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Linux scripts chain smaller parts of a system into a single command. Chains of small commands gives devops engineers the ability to iterate and compound scripted functions effectively.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">One of the ways of the devops is to stick with Ubuntu or Redhat Linux and <a href=\"https:\/\/en.wikipedia.org\/wiki\/Bash_(Unix_shell)\">BASH<\/a> for development and production scripting platforms. MacOS is close to Linux, but not identical. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/code.visualstudio.com\/docs\/remote\/remote-overview\">VS Code Remote<\/a> provides for the use of standard scripting platforms by using powerful Linux servers on the local LAN in conjunction with off-the-shelf desktops and laptops. This doubles, at a minimum, the CPU power applied to a developer workstation which improves productivity. Using a standard backend service for developers also decreases onboarding time for new developers. <a href=\"https:\/\/developers.facebook.com\/blog\/post\/2019\/11\/19\/facebook-microsoft-partnering-remote-development\/\">Facebook and Microsoft developed VS Code Remote together<\/a> to help Facebook\u2019s SDLC process.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-sfdx-cli-scripting-essentials-bash-and-make\">SFDX-CLI Scripting Essentials: Bash and make<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Devops engineering puts into order the most atomic components of a build process. Engineers start this process by automating functions with short scripts. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Scripts use platform CLIs like <a href=\"https:\/\/cli.github.com\/\">GitHub CLI<\/a>, <a href=\"https:\/\/docs.docker.com\/compose\/\">docker-compose<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/kubectl\">kubectl<\/a>, <a href=\"https:\/\/docs.npmjs.com\/cli\/v7\/commands\/npm\">npm<\/a>, <a href=\"https:\/\/aws.amazon.com\/cli\/\">aws<\/a>, <a href=\"https:\/\/cloud.google.com\/sdk\/gcloud\">gcloud<\/a>, and <a href=\"https:\/\/github.com\/forcedotcom\/cli\">sfdx<\/a> to deploy code, move artifacts, apply changes, and observe what is happening on the platforms. Small scripts are then used in other scripts. Eventually, the engineer has created layers of functionality built up into a master script, which accomplishes a high-level task with one command. A high-level function could be \u201ctake a new change set, run unit tests, run end-to-end-tests, deploy to 3 new sandboxes, send email to everybody about the status, and monitor the results.\u201d<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-sample-makefile\">Sample Makefile<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The mark of a good devops engineer is to be a lazy typist who saves keystrokes in their day-to-day existence. That is where <a href=\"https:\/\/www.gnu.org\/software\/make\/\">GNU MAKE<\/a> and a good Makefile become favorite tools. Here is a simple Makefile I made for an SFDX project. To use it yourself create a file called <code>Makefile<\/code> in the root directory of your project and paste in the contents. Change <code>project-name<\/code> to your project name in Line 13. Create a permission set named <code>ProjectPermSet<\/code> to support loading any custom objects or fields.<\/p>\n\n\n\n<script src=\"https:\/\/gist.github.com\/vkeenan\/8838b1c4bb8dc9f8dad20cbcddf6edb7.js\"><\/script>\n\n\n\n<p class=\"wp-block-paragraph\">SFDX developers equipped with effective <a href=\"https:\/\/www.gnu.org\/software\/make\/manual\/\">Makefiles<\/a> are more productive and work at devops speed. For example, if you put this Makefile into your SFDX project root directory, typing \u201cmake build\u201d runs Lines 13 to 17 in the Makefile. MAKE is extended by writing <a href=\"https:\/\/en.wikipedia.org\/wiki\/Bash_(Unix_shell)\">BASH<\/a> scripts that are called by the Makefile.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Scripting common actions with BASH and MAKE helps devops processes become more automatic. Standard MAKE commands which invoke customized build actions can enable the systematic automation of a team of developers.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-sfdx-cli-leads-the-devops-way\">SFDX-CLI Leads the Devops Way<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The SFDX-CLI team at Salesforce leads the way for Salesforce devops engineers. Not only have they delivered an effective CLI-based interface to some Salesforce APIs, but they have also created an ecosystem of SFDX-CLI plugins using the same <a href=\"https:\/\/developer.salesforce.com\/docs\/atlas.en-us.sfdx_cli_plugins.meta\/sfdx_cli_plugins\/cli_plugins_intro_what_is_plugin.htm\">TypeScript interface<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Several SFDX-CLI plugins are available to assist developers in corporate or ISV settings. I did a quick survey of available plugins to evaluate this new technology ecosystem.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-vern-s-list-of-sfdx-cli-devops-plugins\">Vern\u2019s List of SFDX-CLI Devops Plugins<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">I used Google, GitHub and <a href=\"https:\/\/github.com\/mshanemc\/awesome-sfdx-plugins\">Awesome SFDX Plugins<\/a> to search for plugins to make my list. I picked the plugins that seemed to be useful for devops scripting. Here is a summary of the project names, authors, and repo links.<\/p>\n\n\n\n<script src=\"https:\/\/gist.github.com\/vkeenan\/4ac19227391a02c2f2667684b1a31a91.js\"><\/script>\n\n\n\n<p class=\"wp-block-paragraph\">Want to be on the list? Email me at <a href=\"mailto:vkeenan@gmail.com\">vkeenan@gmail.com<\/a>. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-the-convergence-is-here-with-sfdx-cli\">The Convergence Is Here With SFDX-CLI<\/h2>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"900\" height=\"500\" src=\"https:\/\/ceres-gw.tnxs.net\/wp-content\/uploads\/2021\/03\/Salesforce-Devops-Convergence.png\" alt=\"Salesforce Devops Convergence diagram\" class=\"wp-image-397\" srcset=\"https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/03\/Salesforce-Devops-Convergence.png 900w, https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/03\/Salesforce-Devops-Convergence-300x167.png 300w, https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/03\/Salesforce-Devops-Convergence-768x427.png 768w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><figcaption><a href=\"http:\/\/Source https:\/\/vernonkeenan.com\/index.php\/2021\/03\/10\/salesforce-devops-in-early-2021\/\">Source https:\/\/vernonkeenan.com\/index.php\/2021\/03\/10\/salesforce-devops-in-early-2021\/<\/a><\/figcaption><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">It is hard to understate the importance of SFDX-CLI to the enablement of Salesforce devops. By putting API-level functionality in a BASH script running on Linux, Salesforce has established the needed touch point between Salesforce and open-source devops engineering.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">SFDX-CLI as a scripting command is now within the grasp of every devops engineer. This helps engineers manage Salesforce devops without the need to log in and use Salesforce!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Furthermore, with TypeScript CLI authoring and an open-source ecosystem blossoming, the sky\u2019s the limit in terms of enabling Salesforce Devops with small, incremental scripts.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-the-salesforce-devops-journey-continues\">The Salesforce Devops Journey Continues<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">There is so much more to do to help developers and architects to enable millions of Salesforce users to be happier and more productive. If you have your own devops story or other article ideas, drop me a line today!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-more-salesforce-devops-content\">More Salesforce Devops Content<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/vernonkeenan.com\/index.php\/2021\/03\/14\/salesforce-sldc-nomenclature\/\">Salesforce SDLC Nomenclature: Adopting the Ways of The Devops<\/a><\/li><li><a href=\"https:\/\/vernonkeenan.com\/index.php\/2021\/03\/10\/salesforce-devops-in-early-2021\/\">Salesforce Devops in Early 2021<\/a><\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The case for investment in devops engineering is powerful. Devops is highly impactful because technology products change rapidly through the power of devops engineering. Product evolution based on user feedback&hellip;<\/p>\n","protected":false},"author":1,"featured_media":397,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","footnotes":""},"categories":[3],"tags":[13,26,36,41,51,52,54,57,66],"post_series":[],"class_list":["post-392","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-industry-analysis","tag-bash","tag-devops-engineering","tag-industry-analysis","tag-make","tag-salesforce","tag-salesforce-devops","tag-salesforce-sdlc","tag-scripting","tag-vs-code","entry","has-media"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.1 (Yoast SEO v28.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>SFDX-CLI Paves The Way for Open-Source Salesforce Devops - SalesforceDevops.net<\/title>\n<meta name=\"description\" content=\"SFDX-CLI is the key touch point between the cloud native world and Salesforce devops. Learn all about SFDX-CLI in this foundational post.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/salesforcedevops.net\/index.php\/2021\/03\/18\/sfdx-cli-paves-the-way-for-open-source-salesforce-devops\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SFDX-CLI Paves The Way for Open-Source Salesforce Devops - SalesforceDevops.net\" \/>\n<meta property=\"og:description\" content=\"SFDX-CLI is the key touch point between the cloud native world and Salesforce devops. Learn all about SFDX-CLI in this foundational post.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/salesforcedevops.net\/index.php\/2021\/03\/18\/sfdx-cli-paves-the-way-for-open-source-salesforce-devops\/\" \/>\n<meta property=\"og:site_name\" content=\"SalesforceDevops.net\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/salesforcedevopsnet\" \/>\n<meta property=\"article:published_time\" content=\"2021-03-18T11:17:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-12-04T17:38:07+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/03\/Salesforce-Devops-Convergence.png\" \/>\n\t<meta property=\"og:image:width\" content=\"900\" \/>\n\t<meta property=\"og:image:height\" content=\"500\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Vernon Keenan\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@salesforcedevop\" \/>\n<meta name=\"twitter:site\" content=\"@salesforcedevop\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Vernon Keenan\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"TechArticle\",\"@id\":\"https:\\\/\\\/salesforcedevops.net\\\/index.php\\\/2021\\\/03\\\/18\\\/sfdx-cli-paves-the-way-for-open-source-salesforce-devops\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/salesforcedevops.net\\\/index.php\\\/2021\\\/03\\\/18\\\/sfdx-cli-paves-the-way-for-open-source-salesforce-devops\\\/\"},\"author\":{\"name\":\"Vernon Keenan\",\"@id\":\"https:\\\/\\\/salesforcedevops.net\\\/#\\\/schema\\\/person\\\/f681893c994bc40406bb391546cd7ac8\"},\"headline\":\"SFDX-CLI Paves The Way for Open-Source Salesforce Devops\",\"datePublished\":\"2021-03-18T11:17:00+00:00\",\"dateModified\":\"2021-12-04T17:38:07+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/salesforcedevops.net\\\/index.php\\\/2021\\\/03\\\/18\\\/sfdx-cli-paves-the-way-for-open-source-salesforce-devops\\\/\"},\"wordCount\":902,\"publisher\":{\"@id\":\"https:\\\/\\\/salesforcedevops.net\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/salesforcedevops.net\\\/index.php\\\/2021\\\/03\\\/18\\\/sfdx-cli-paves-the-way-for-open-source-salesforce-devops\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/salesforcedevops.net\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/Salesforce-Devops-Convergence.png\",\"keywords\":[\"Bash\",\"Devops Engineering\",\"Industry Analysis\",\"make\",\"Salesforce\",\"Salesforce Devops\",\"Salesforce SDLC\",\"scripting\",\"VS Code\"],\"articleSection\":[\"Industry Analysis\"],\"inLanguage\":\"en-US\",\"copyrightYear\":\"2021\",\"copyrightHolder\":{\"@id\":\"https:\\\/\\\/salesforcedevops.net\\\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/salesforcedevops.net\\\/index.php\\\/2021\\\/03\\\/18\\\/sfdx-cli-paves-the-way-for-open-source-salesforce-devops\\\/\",\"url\":\"https:\\\/\\\/salesforcedevops.net\\\/index.php\\\/2021\\\/03\\\/18\\\/sfdx-cli-paves-the-way-for-open-source-salesforce-devops\\\/\",\"name\":\"SFDX-CLI Paves The Way for Open-Source Salesforce Devops - SalesforceDevops.net\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/salesforcedevops.net\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/salesforcedevops.net\\\/index.php\\\/2021\\\/03\\\/18\\\/sfdx-cli-paves-the-way-for-open-source-salesforce-devops\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/salesforcedevops.net\\\/index.php\\\/2021\\\/03\\\/18\\\/sfdx-cli-paves-the-way-for-open-source-salesforce-devops\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/salesforcedevops.net\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/Salesforce-Devops-Convergence.png\",\"datePublished\":\"2021-03-18T11:17:00+00:00\",\"dateModified\":\"2021-12-04T17:38:07+00:00\",\"description\":\"SFDX-CLI is the key touch point between the cloud native world and Salesforce devops. Learn all about SFDX-CLI in this foundational post.\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/salesforcedevops.net\\\/index.php\\\/2021\\\/03\\\/18\\\/sfdx-cli-paves-the-way-for-open-source-salesforce-devops\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/salesforcedevops.net\\\/index.php\\\/2021\\\/03\\\/18\\\/sfdx-cli-paves-the-way-for-open-source-salesforce-devops\\\/#primaryimage\",\"url\":\"https:\\\/\\\/salesforcedevops.net\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/Salesforce-Devops-Convergence.png\",\"contentUrl\":\"https:\\\/\\\/salesforcedevops.net\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/Salesforce-Devops-Convergence.png\",\"width\":900,\"height\":500,\"caption\":\"Source https:\\\/\\\/vernonkeenan.com\\\/index.php\\\/2021\\\/03\\\/10\\\/salesforce-devops-in-early-2021\\\/\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/salesforcedevops.net\\\/#website\",\"url\":\"https:\\\/\\\/salesforcedevops.net\\\/\",\"name\":\"SalesforceDevops.net\",\"description\":\"Elevating Salesforce Devops with Insights and Innovation\",\"publisher\":{\"@id\":\"https:\\\/\\\/salesforcedevops.net\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/salesforcedevops.net\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/salesforcedevops.net\\\/#organization\",\"name\":\"SalesforceDevops.net\",\"url\":\"https:\\\/\\\/salesforcedevops.net\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/salesforcedevops.net\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/salesforcedevops.net\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/7760e9c16fc75961659174739887197e-sticker.png\",\"contentUrl\":\"https:\\\/\\\/salesforcedevops.net\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/7760e9c16fc75961659174739887197e-sticker.png\",\"width\":421,\"height\":421,\"caption\":\"SalesforceDevops.net\"},\"image\":{\"@id\":\"https:\\\/\\\/salesforcedevops.net\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/salesforcedevopsnet\",\"https:\\\/\\\/x.com\\\/salesforcedevop\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/vernonkeenan\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCOgOn9rD5gyXSOmV7-Q0n7g\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/salesforcedevops.net\\\/#\\\/schema\\\/person\\\/f681893c994bc40406bb391546cd7ac8\",\"name\":\"Vernon Keenan\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f1183f1ebb5c059e052825760f95b25244abc5ef832145327f298f3697f980c7?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f1183f1ebb5c059e052825760f95b25244abc5ef832145327f298f3697f980c7?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f1183f1ebb5c059e052825760f95b25244abc5ef832145327f298f3697f980c7?s=96&d=mm&r=g\",\"caption\":\"Vernon Keenan\"},\"description\":\"Vernon Keenan (LinkedIn) works as a senior information technology industry consultant based in Oakland, California. He earned his B.Sc. in Biomedical Engineering at Northwestern University where he programmed a PDP-8 with punched paper tape. In his 34-year-long career he has been a teacher, SPSS programmer, database administrator, clinical researcher, technology journalist, product marketing manager, market researcher, management consultant, and industry analyst. Most recently he is a telecom operator, cloud architect, Go devops engineer and Salesforce Developer\\\/Architect. For inquiries about Salesforce strategy briefings or solution architect work please contact Vern directly at +1-510-679-1900 or vern@vernonkeenan.com.\",\"sameAs\":[\"https:\\\/\\\/ceres-gw.tnxs.net\",\"https:\\\/\\\/linkedin.com\\\/in\\\/vernonkeenan\",\"https:\\\/\\\/x.com\\\/salesforcedevop\"],\"url\":\"https:\\\/\\\/salesforcedevops.net\\\/index.php\\\/author\\\/vern\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"SFDX-CLI Paves The Way for Open-Source Salesforce Devops - SalesforceDevops.net","description":"SFDX-CLI is the key touch point between the cloud native world and Salesforce devops. Learn all about SFDX-CLI in this foundational post.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/salesforcedevops.net\/index.php\/2021\/03\/18\/sfdx-cli-paves-the-way-for-open-source-salesforce-devops\/","og_locale":"en_US","og_type":"article","og_title":"SFDX-CLI Paves The Way for Open-Source Salesforce Devops - SalesforceDevops.net","og_description":"SFDX-CLI is the key touch point between the cloud native world and Salesforce devops. Learn all about SFDX-CLI in this foundational post.","og_url":"https:\/\/salesforcedevops.net\/index.php\/2021\/03\/18\/sfdx-cli-paves-the-way-for-open-source-salesforce-devops\/","og_site_name":"SalesforceDevops.net","article_publisher":"https:\/\/www.facebook.com\/salesforcedevopsnet","article_published_time":"2021-03-18T11:17:00+00:00","article_modified_time":"2021-12-04T17:38:07+00:00","og_image":[{"width":900,"height":500,"url":"https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/03\/Salesforce-Devops-Convergence.png","type":"image\/png"}],"author":"Vernon Keenan","twitter_card":"summary_large_image","twitter_creator":"@salesforcedevop","twitter_site":"@salesforcedevop","twitter_misc":{"Written by":"Vernon Keenan","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"TechArticle","@id":"https:\/\/salesforcedevops.net\/index.php\/2021\/03\/18\/sfdx-cli-paves-the-way-for-open-source-salesforce-devops\/#article","isPartOf":{"@id":"https:\/\/salesforcedevops.net\/index.php\/2021\/03\/18\/sfdx-cli-paves-the-way-for-open-source-salesforce-devops\/"},"author":{"name":"Vernon Keenan","@id":"https:\/\/salesforcedevops.net\/#\/schema\/person\/f681893c994bc40406bb391546cd7ac8"},"headline":"SFDX-CLI Paves The Way for Open-Source Salesforce Devops","datePublished":"2021-03-18T11:17:00+00:00","dateModified":"2021-12-04T17:38:07+00:00","mainEntityOfPage":{"@id":"https:\/\/salesforcedevops.net\/index.php\/2021\/03\/18\/sfdx-cli-paves-the-way-for-open-source-salesforce-devops\/"},"wordCount":902,"publisher":{"@id":"https:\/\/salesforcedevops.net\/#organization"},"image":{"@id":"https:\/\/salesforcedevops.net\/index.php\/2021\/03\/18\/sfdx-cli-paves-the-way-for-open-source-salesforce-devops\/#primaryimage"},"thumbnailUrl":"https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/03\/Salesforce-Devops-Convergence.png","keywords":["Bash","Devops Engineering","Industry Analysis","make","Salesforce","Salesforce Devops","Salesforce SDLC","scripting","VS Code"],"articleSection":["Industry Analysis"],"inLanguage":"en-US","copyrightYear":"2021","copyrightHolder":{"@id":"https:\/\/salesforcedevops.net\/#organization"}},{"@type":"WebPage","@id":"https:\/\/salesforcedevops.net\/index.php\/2021\/03\/18\/sfdx-cli-paves-the-way-for-open-source-salesforce-devops\/","url":"https:\/\/salesforcedevops.net\/index.php\/2021\/03\/18\/sfdx-cli-paves-the-way-for-open-source-salesforce-devops\/","name":"SFDX-CLI Paves The Way for Open-Source Salesforce Devops - SalesforceDevops.net","isPartOf":{"@id":"https:\/\/salesforcedevops.net\/#website"},"primaryImageOfPage":{"@id":"https:\/\/salesforcedevops.net\/index.php\/2021\/03\/18\/sfdx-cli-paves-the-way-for-open-source-salesforce-devops\/#primaryimage"},"image":{"@id":"https:\/\/salesforcedevops.net\/index.php\/2021\/03\/18\/sfdx-cli-paves-the-way-for-open-source-salesforce-devops\/#primaryimage"},"thumbnailUrl":"https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/03\/Salesforce-Devops-Convergence.png","datePublished":"2021-03-18T11:17:00+00:00","dateModified":"2021-12-04T17:38:07+00:00","description":"SFDX-CLI is the key touch point between the cloud native world and Salesforce devops. Learn all about SFDX-CLI in this foundational post.","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/salesforcedevops.net\/index.php\/2021\/03\/18\/sfdx-cli-paves-the-way-for-open-source-salesforce-devops\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/salesforcedevops.net\/index.php\/2021\/03\/18\/sfdx-cli-paves-the-way-for-open-source-salesforce-devops\/#primaryimage","url":"https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/03\/Salesforce-Devops-Convergence.png","contentUrl":"https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/03\/Salesforce-Devops-Convergence.png","width":900,"height":500,"caption":"Source https:\/\/vernonkeenan.com\/index.php\/2021\/03\/10\/salesforce-devops-in-early-2021\/"},{"@type":"WebSite","@id":"https:\/\/salesforcedevops.net\/#website","url":"https:\/\/salesforcedevops.net\/","name":"SalesforceDevops.net","description":"Elevating Salesforce Devops with Insights and Innovation","publisher":{"@id":"https:\/\/salesforcedevops.net\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/salesforcedevops.net\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/salesforcedevops.net\/#organization","name":"SalesforceDevops.net","url":"https:\/\/salesforcedevops.net\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/salesforcedevops.net\/#\/schema\/logo\/image\/","url":"https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/03\/7760e9c16fc75961659174739887197e-sticker.png","contentUrl":"https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/03\/7760e9c16fc75961659174739887197e-sticker.png","width":421,"height":421,"caption":"SalesforceDevops.net"},"image":{"@id":"https:\/\/salesforcedevops.net\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/salesforcedevopsnet","https:\/\/x.com\/salesforcedevop","https:\/\/www.linkedin.com\/in\/vernonkeenan","https:\/\/www.youtube.com\/channel\/UCOgOn9rD5gyXSOmV7-Q0n7g"]},{"@type":"Person","@id":"https:\/\/salesforcedevops.net\/#\/schema\/person\/f681893c994bc40406bb391546cd7ac8","name":"Vernon Keenan","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f1183f1ebb5c059e052825760f95b25244abc5ef832145327f298f3697f980c7?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f1183f1ebb5c059e052825760f95b25244abc5ef832145327f298f3697f980c7?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f1183f1ebb5c059e052825760f95b25244abc5ef832145327f298f3697f980c7?s=96&d=mm&r=g","caption":"Vernon Keenan"},"description":"Vernon Keenan (LinkedIn) works as a senior information technology industry consultant based in Oakland, California. He earned his B.Sc. in Biomedical Engineering at Northwestern University where he programmed a PDP-8 with punched paper tape. In his 34-year-long career he has been a teacher, SPSS programmer, database administrator, clinical researcher, technology journalist, product marketing manager, market researcher, management consultant, and industry analyst. Most recently he is a telecom operator, cloud architect, Go devops engineer and Salesforce Developer\/Architect. For inquiries about Salesforce strategy briefings or solution architect work please contact Vern directly at +1-510-679-1900 or vern@vernonkeenan.com.","sameAs":["https:\/\/ceres-gw.tnxs.net","https:\/\/linkedin.com\/in\/vernonkeenan","https:\/\/x.com\/salesforcedevop"],"url":"https:\/\/salesforcedevops.net\/index.php\/author\/vern\/"}]}},"uagb_featured_image_src":{"full":["https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/03\/Salesforce-Devops-Convergence.png",900,500,false],"thumbnail":["https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/03\/Salesforce-Devops-Convergence-150x150.png",150,150,true],"medium":["https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/03\/Salesforce-Devops-Convergence-300x167.png",300,167,true],"medium_large":["https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/03\/Salesforce-Devops-Convergence-768x427.png",768,427,true],"large":["https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/03\/Salesforce-Devops-Convergence.png",900,500,false],"1536x1536":["https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/03\/Salesforce-Devops-Convergence.png",900,500,false],"2048x2048":["https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/03\/Salesforce-Devops-Convergence.png",900,500,false],"lightbox":["https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/03\/Salesforce-Devops-Convergence.png",900,500,false],"search_results":["https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/03\/Salesforce-Devops-Convergence-125x125.png",125,125,true],"blog_entry":["https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/03\/Salesforce-Devops-Convergence-750x450.png",750,450,true],"blog_post":["https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/03\/Salesforce-Devops-Convergence.png",750,417,false],"blog_post_full":["https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/03\/Salesforce-Devops-Convergence.png",900,500,false],"blog_related":["https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/03\/Salesforce-Devops-Convergence-680x380.png",680,380,true],"gallery":["https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/03\/Salesforce-Devops-Convergence.png",900,500,false]},"uagb_author_info":{"display_name":"Vernon Keenan","author_link":"https:\/\/salesforcedevops.net\/index.php\/author\/vern\/"},"uagb_comment_info":11,"uagb_excerpt":"The case for investment in devops engineering is powerful. Devops is highly impactful because technology products change rapidly through the power of devops engineering. Product evolution based on user feedback&hellip;","_links":{"self":[{"href":"https:\/\/salesforcedevops.net\/index.php\/wp-json\/wp\/v2\/posts\/392","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/salesforcedevops.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/salesforcedevops.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/salesforcedevops.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/salesforcedevops.net\/index.php\/wp-json\/wp\/v2\/comments?post=392"}],"version-history":[{"count":0,"href":"https:\/\/salesforcedevops.net\/index.php\/wp-json\/wp\/v2\/posts\/392\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/salesforcedevops.net\/index.php\/wp-json\/wp\/v2\/media\/397"}],"wp:attachment":[{"href":"https:\/\/salesforcedevops.net\/index.php\/wp-json\/wp\/v2\/media?parent=392"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/salesforcedevops.net\/index.php\/wp-json\/wp\/v2\/categories?post=392"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/salesforcedevops.net\/index.php\/wp-json\/wp\/v2\/tags?post=392"},{"taxonomy":"post_series","embeddable":true,"href":"https:\/\/salesforcedevops.net\/index.php\/wp-json\/wp\/v2\/post_series?post=392"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}