In order to have the most successful deployment, there are a few best practices that software development teams should be mindful of.
First, following a continuous delivery approach allows software development teams to release in shorter cycles, so that building, testing, and releasing can be done with greater speed and reduced error rates. As stated in an earlier post of ours, you’re doing continuous delivery when:
• Your software is deployable throughout its lifecycle.
• Your team prioritizes keeping the software deployable over working on new features.
• Anybody can get fast, automated feedback on the production readiness of their systems whenever somebody makes a change to them.
• You can perform push-button deployments of any version of the software to any environment on demand.
• Second, if you’re observing the continuous delivery model, developers should utilize software deployment tracking. In this post, we’re going to explain why.
Whether you’re doing continuous delivery or frequent deployments, your code lives in Git, it's being written and reviewed through pull requests, and you're referencing issues in your commit messages. But how do you answer the questions like, what, exactly, shipped today? How many times did you deploy code this week? When did the resolution of issue #134 find its way into production? Who were the authors of the changes?
The answer: software deployment tracking.
Sleuth’s deployment tracking gives your distributed teams a deploy-centric view of your codebase. Information regarding your deployment is made available in a way that developers, product managers, support staff, management, and your customers can easily digest.
Deployment tracking is not only extremely beneficial for showing what’s being shipped, when, and from whom, but it’s also great for showing you what you’re about to ship during the deployment process so you can be prepared.
With Sleuth, when code is pushed to the deployment branch, you’ll be notified of what is about to ship. You’ll be notified when a project has undeployed code, allowing you to sift through your undeployed changes.
With the Sleuth deploy view, you have clear visibility into all the information about your upcoming deployments such as pull requests, commits, issues, files, builds, impact, and authors.
If you’re practicing continuous delivery, you might be deploying several times a week or even in a day! With that kind of visibility, you need to be sure that your deployments are moving in the right direction.
In addition to defining key service-level indicators (SLIs) to measure your application’s health, you also need a method for ensuring your software deploys are meeting those SLIs and not causing new errors and bugs. This is where software deployment tracking makes a critical difference in DevOps teams.
Sleuth’s impact tracking uses your SLIs to analyze your deployments and ensure that they are meeting your requirements and free of new, additional errors.
Software teams work with an existing set of mission-critical tools. For instance, tools like GitHub and Bitbucket are utilized for storing code and are capable of facilitating meaningful code review and issue tracking.
Using all of the raw data already available, deployment tracking tools can integrate easily and be able to answer all your team’s deployment questions.
Sleuth integrates with your GitHub or Bitbucket repositories to provide that deploy-centric view we discussed previously and allows you to answer questions about what's shipped and who shipped it.
The Slack integration to enable software deployment teams to stay on top of changes and alert your team when changes have deployed.
The LaunchDarkly integration tracks changes made via your feature flags so you can instantly see the impact "flipping" your feature flags have on your code.
Additionally, our impact integrations with Datadog, Rollbar, Honeybadger, and Sentry, help you to track errors and let you know if your code deployments and/or feature flags are affecting your code negatively or positively.
When major bugs happen, you’re on the hook to restore stability and implement damage control in the meantime. Deployment tracking allows you to sound the alarm and freeze production while you’re fixing the problem.
With Sleuth, software developers gate changes to the production source code with the click of a button. This halts pull requests and prevents them from merging into the main branches. It also automatically notifies your team of the situation through your Slack integration.
In addition to helping you bring stability to an incident, locking can also be used to prevent deployments over the weekend, during a key customer demo, or even just to give you more time to monitor an existing large deployment. Sleuth’s deployment tracker keeps tabs on your key code and infrastructure repositories, as well as other sources of changes, such as feature flag changes.
Sleuth’s deployment tracking software gives your organization deploy-centric visibility into software releases. It shows you what’s being released and by whom, when releases are coming, and tracks impact in real-time.
Additionally, Sleuth integrates with your existing mission-critical tools and prevents unwanted changes.