32,36 €
Implement DevOps for Salesforce and explore its features
Key Features
Book Description
Salesforce is one of the top CRM tools used these days, and with its immense functionalities and features, it eases the functioning of an enterprise in various areas of sales, marketing, and finance, among others. Deploying Salesforce applications is a tricky event, and it can get quite taxing for admins and consultants. This book addresses all the problems that you might encounter while trying to deploy your applications and shows you how to resort to DevOps to take these challenges head on.
Beginning with an overview of the development and delivery process of a Salesforce app, DevOps for Salesforce covers various types of sandboxing and helps you understand when to choose which type. You will then see how different it is to deploy with Salesforce as compared to deploying with another app. You will learn how to leverage a migration tool and automate deployment using the latest and most popular tools in the ecosystem. This book explores topics such as version control and DevOps techniques such as Continuous Integration, Continuous Delivery, and testing. Finally, the book will conclude by showing you how to track bugs in your application changes using monitoring tools and how to quantify your productivity and ROI.
By the end of the book, you will have acquired skills to create, test, and effectively deploy your applications by leveraging the features of DevOps.
What you will learn
Who this book is for
If you are a Salesforce developer, consultant, or manager who wants to learn DevOps tools and set up pipelines for small as well as large Salesforce projects, this book is for you.
Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:
Seitenzahl: 127
Veröffentlichungsjahr: 2018
Copyright © 2018 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the authors, nor Packt Publishing or its dealers and distributors, will be held liable for any damages caused or alleged to have been caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
Commissioning Editor: Aaron LazarAcquisition Editor: Karan Sadawana, Denim PintoContent Development Editor: Rohit Kumar SinghTechnical Editor: Ketan KambleCopy Editor: Safis EditingProject Coordinator: Vaidehi SawantProofreader: Safis EditingIndexer: Rekha NairGraphics: Alishon MendonsaProduction Coordinator: Arvindkumar Gupta
First published: September 2018
Production reference: 1290918
Published by Packt Publishing Ltd. Livery Place 35 Livery Street Birmingham B3 2PB, UK.
ISBN 978-1-78883-334-9
www.packtpub.com
Mapt is an online digital library that gives you full access to over 5,000 books and videos, as well as industry leading tools to help you plan your personal development and advance your career. For more information, please visit our website.
Spend less time learning and more time coding with practical eBooks and Videos from over 4,000 industry professionals
Improve your learning with Skill Plans built especially for you
Get a free eBook or video every month
Mapt is fully searchable
Copy and paste, print, and bookmark content
Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.packt.com and, as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at [email protected] for more details.
At www.packt.com, you can also read a collection of free technical articles, sign up for a range of free newsletters, and receive exclusive discounts and offers on Packt books and eBooks.
Priyanka Dive is a DevOps engineer with substantial experience of working in the IT field on various technologies, such as Docker, Kubernetes, Jenkins, AWS, and Azure. She has worked on big data projects as a system and DevOps administrator. She has worked on Salesforce projects and implemented DevOps practices for small and large projects as well. She's a constant learner with a desire to learn anything new, and hence enjoys doing a lot of tech POCs. She is also a technical blogger who loves to write on emerging technologies. She is currently working as a DevOps Engineer Consultant for a US-based firm.
Nagraj Gornalli is a Team Leader at Persistent Systems on Salesforce projects. He has more than eight years' experience in the IT field with different technologies. He has done many certifications' such as Salesforce Certified Administrator, Salesforce Certified Platform Developer, Salesforce Certified Sales Cloud Consultant, Data Integration Specialist, Advanced Apex Specialist, Data Integration Specialist, and cloud certified professional. He started as a trailblazer and is now ranked as a "Ranger" in trailhead.
Guha Arumugam is a seasoned Salesforce Developer Lead and Technical Consultant with 8 years' expertise in complex implementations. He is a self-taught Salesforce professional with 8X Salesforce certification. He has expertise in all phases of SDLC (discovery and requirement gathering, project design, development/build, testing, and deployment) and Sandbox strategies. He has a solid understanding of Agile and Scrum methodologies.
Guha is also a Salesforce developer evangelist and speaker at various Dreamins across the US. He also leads the Washington DC Salesforce Developer and Salesforce Saturday groups. He is an avid Salesforce blogger and his blog posts have helped many aspiring Salesforce professionals in certifications.
If you're interested in becoming an author for Packt, please visit authors.packtpub.com and apply today. We have worked with thousands of developers and tech professionals, just like you, to help them share their insights with the global tech community. You can make a general application, apply for a specific hot topic that we are recruiting an author for, or submit your own idea.
Title Page
Copyright and Credits
DevOps for Salesforce
Packt Upsell
Why subscribe?
packt.com
Contributors
About the authors
About the reviewer
Packt is searching for authors like you
Preface
Who this book is for
What this book covers
To get the most out of this book
Download the color images
Conventions used
Get in touch
Reviews
Salesforce Development and Delivery Process
The typical Salesforce development process (without DevOps)
Traditional deployment
Issues with traditional deployment
Sandboxes
Eclipse for Salesforce development
Installing Eclipse Neon with the Force.com IDE plugin
Configuring a Force.com project in Eclipse
Technical and business challenges
DevOps for Salesforce?
Summary
Applying DevOps to Salesforce Applications
The need for a DevOps process in Salesforce development
The differences between DevOps for Salesforce and other tech stacks
Example – the typical DevOps process for a Java development stack
Configuring Maven in the Jenkins server
Adding a Jenkins webhook URL in a GitHub project
Continuous deployment
Installing the Publish Over SSH plugin in a Jenkins server
Summary
References
Deployment in Salesforce
What is deployment with reference to DevOps?
Deployment in Salesforce
Change Sets
Deployment connections
Deployment using Change Sets
Creating deployment connections
Creating Outbound Change Sets
Validating Inbound Change Sets
Using Quick Deploy to deploy Change Sets
Deployment using the Ant Migration Tool
Using the Force.com IDE to deploy Apex
Installing Salesforce DX plugins to Visual Studio Code
Summary
Introduction to the Force.com Migration Tool
What the Force.com Migration Tool is?
Setting up the Force.com Migration Tool
Prerequisites 
Java
Ant
Installing the Ant Migration Tool on Linux
Installing the Ant Migration Tool on Windows
Installing the Salesforce Ant Migration Tool
Retrieving metadata from a sandbox
Deploying metadata on a sandbox
Deleting files/components from a Salesforce organization using destructiveChanges.xml
How the Force.com tool helps developers and DevOps
Troubleshooting
Summary
Version Control
What is meant by SCVS?
Version control in Salesforce
Introduction to Git
Setting up a GitLab server on a Linux instance
Prerequisites
Installing the GitLab server
Creating your first project in GitLab
Working with a Git repository
Viewing the commit history
Adding a user to GitLab
Troubleshooting
Solution
Branching strategy
Handling branches using the Git CLI
Merging changes from develop to master
Using Git in the Eclipse IDE
Configuring Git and pushing code to Git
Summary
Continuous Integration
What is Jenkins?
CI using Jenkins
Installing a Jenkins server
Configuring the Ant Migration Tool with Jenkins
Configuring a Jenkins job to retrieve metadata from a sandbox
Triggering the same job again
Configuring a Jenkins job to deploy metadata on a sandbox
Summary
Continuous Testing
What is code quality?
Checking code quality using a PMD report
PMD static analysis for Salesforce Apex using a Visual Studio (VS) Code extension
PMD static analysis for Salesforce Apex using the command line
Executing Apex tests in a deployment using Jenkins
What is continuous testing?
Introducing Selenium
Setting up Selenium using Firefox
Recording tests using Selenium
Playing back the recorded tests using Selenium
Introducing Qualitia
Running test cases with Qualitia
Use case – continuous testing using Qualitia
Summary
Tracking Application Changes and the ROI of Applying DevOps to Salesforce
How to track application changes
Introducing Bugzilla
Publishing a build report to Git
How DevOps helps organizations deliver quickly
Enhanced productivity
How to measure ROI?
Summary
Other Books You May Enjoy
Leave a review - let other readers know what you think
Salesforce, with its immense functionalities and features, eases the functioning of an enterprise in various areas, such as sales, marketing, and finance. Deploying Salesforce applications is a tricky business, and it can get quite taxing for administrators and consultants. This book will help you implement DevOps for Salesforce and explore its features. You will learn DevOps principles and techniques for enterprise operations in Salesforce and see how to implement continuous integration and continuous delivery using tools such as Jenkins and Ant scripts. You will also learn how to use the Force.com Migration Tool and Git to achieve versioning in Salesforce.
If you are a Salesforce developer, consultant, or manager who wants to learn about DevOps tools and set up pipelines for small as well as large Salesforce projects, this book is for you.
Chapter 1, Salesforce Development and Delivery Process, gives an overview of the traditional Salesforce development process, including the environments used and how to set up an environment with Eclipse and Force.com IDE. We will also discuss sandboxes and types of sandbox.
Chapter 2, Applying DevOps to Salesforce Applications, discusses the need for DevOps in Salesforce projects and what challenges we might face while handling the development and deployment of large Salesforce projects.
Chapter 3, Deployment in Salesforce, shows how to deploy Salesforce code from one sandbox to another sandbox, from one sandbox to production, and from one organization to another organization. We will learn about the different types of code deployment and how to use them depending on the type of project.
Chapter 4, Introduction to the Force.com Migration Tool, discusses the Force.com Migration Tool and how to set up the tool in your environment. We will also see a sample deployment of metadata to a developer or test sandbox using the Ant Migration Tool.
Chapter 5, Version Control, helps you to understand source code versioning systems and their types. We will mainly focus on distributed Git version control. We will also learn about using Git with Salesforce projects and saving Salesforce metadata to Git.
Chapter 6, Continuous Integration, shows how to automate backups for Salesforce metadata and push code to the Git repository using Jenkins. We will also learn how to set up our own Jenkins server and configure it to retrieve metadata from our Salesforce sandbox.
Chapter 7, Continuous Testing, talks about code quality and continuous testing. We will discuss the tools used in automation testing, such as Selenium and Qualitia. We will also look at a test case in a sample Salesforce application using record and playback in Selenium.
Chapter 8, Tracking Application Changes and the ROI of Applying DevOps to Salesforce, discusses the basics of Bugzilla and how to track issues when they are reported by a tester or user. We will also learn how to enhance productivity and measure ROI.
To follow the instructions in this book, you need a Windows system with the following software installed:
Java
Eclipse
Git
Jenkins
ANT
PMD
We also provide a PDF file that has color images of the screenshots/diagrams used in this book. You can download it here: https://www.packtpub.com/sites/default/files/downloads/9781788833349_ColorImages.pdf.
There are a number of text conventions used throughout this book.
CodeInText: Indicates code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles. Here is an example: "Enter apex stat into the command panel."
A block of code is set as follows:
<?xml version="1.0" encoding="UTF-8"?> <Package xmlns="http://soap.sforce.com/2006/04/metadata"> <version>42.0</version> </Package>
When we wish to draw your attention to a particular part of a code block, the relevant lines or items are set in bold:
<?xml version="1.0" encoding="UTF-8"?> <Package xmlns="http://soap.sforce.com/2006/04/metadata">
<version>42.0</version>
</Package>
Any command-line input or output is written as follows:
$
pmd -d "Source Path" -R apex-ruleset -language apex -f CSV > "Destination Ptah\ReportName.csv"
Bold: Indicates a new term, an important word, or words that you see on screen. For example, words in menus or dialog boxes appear in the text like this. Here is an example: "Enter the Project name and Organization Settings details for connection."
Feedback from our readers is always welcome.
General feedback: Email [email protected] and mention the book title in the subject of your message. If you have questions about any aspect of this book, please email us at [email protected].
Errata: Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you have found a mistake in this book, we would be grateful if you would report this to us. Please visit www.packt.com/submit-errata, selecting your book, clicking on the Errata Submission Form link, and entering the details.
Piracy: If you come across any illegal copies of our works in any form on the Internet, we would be grateful if you would provide us with the location address or website name. Please contact us at [email protected] with a link to the material.
If you are interested in becoming an author: If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, please visit authors.packtpub.com.
Please leave a review. Once you have read and used this book, why not leave a review on the site that you purchased it from? Potential readers can then see and use your unbiased opinion to make purchase decisions, we at Packt can understand what you think about our products, and our authors can see your feedback on their book. Thank you!
For more information about Packt, please visit packt.com.
Before we jump into the DevOps process for Salesforce or how we can apply DevOps to Salesforce applications, we will first have a look at how typical or traditional Salesforce development is done in organizations.
