With Octopus Deploy 2019.11, you can quickly and easily convert manual operations tasks to automated self-service runbooks. Runbook Automation in Octopus is powered by over 450 reusable step templates. These templates include parameterized scripts that do the heavy lifting and allow you to automate frequently used operations processes.
Check-out our most popular runbook templates to automate your operations tasks.
Why Runbook Automation for operations tasks?
Modern development and operations teams collaborate to get work done efficiently and effectively. There is overlap between roles and it’s all about getting the right balance.
Development teams want to ship code fast and fix problems as quickly as possible. This can mean remoting into servers, including production or updating application/infrastructure configuration. Operations teams want to provide stable and reliable IT services while working with other teams. They typically find themselves choosing between two options:
- Give all developers permission to access production.
- Take full control over the infrastructure themselves.
The first approach increases the operations team workload which can be overwhelming and sometimes make them a bottleneck. The second approach allows development teams to ship code and fix production issues quickly, however poses a serious risk to infrastructure uptime.
With Octopus Deploy, Operations teams have a third option. Runbook Automation in Octopus allows operations teams to delegate permission to the platform so anyone can be authorized to run operations tasks themselves. Octopus delivers self-service without sacrificing control over production. In addition, it provides a comprehensive audit log of the changes made.
Developers can help operations automate processes that unnecessarily slow them down. By automating these processes and getting the operations team onboard, developers can help create a self-service model. This is a win-win scenario that benefits both development and operations teams.
Self-service operations for developers
Developers write code and ship new releases to their customers. With each new project or release, they need support from operations teams to help with operations tasks. System administrators are often overwhelmed and can't always respond quickly to requests. Runbook Automation enables developers to automate frequently used operations processes and reduces friction from shipping high-quality code.
Self-service runbooks can help developers streamline their development and testing process.
Database management - Refreshing test databases from production, creating new databases, executing ad-hoc queries, creating indexes, and managing security are all ideal for runbooks. These tasks can be recurring or executed ad-hoc but they are ideal for self-service.
Infrastructure provisioning - Operations teams are generally custodians of infrastructure, but this can slow down development teams when they need to spin up new servers to test features or services. Creating self-service runbooks to provision new servers within the appropriate boundaries can save both development and operations teams a great deal of time.
Collect log files from servers - Sometimes it’s extremely difficult to get assistance to retrieve a detailed log file on a production server to help diagnose performance problems or fix bugs. Using a reusable runbook to collect files (within the bounds of existing security and compliance policies) is a huge time saver to reproduce and fix problems.
Manage Kubenetes with (pre-authenticated) kubectl - Let’s be honest, Kubernetes isn’t easy, but there are ways to make supporting it less painful. Building reusable, self-service Kubernetes runbooks that are pre-authenticated can help reduce that complexity vs one-off ad-hoc scripts. Straightforward security and permissions (aligned with company policies) and no local tooling required.
Swap servers/services during a blue-green deployment - Blue-green deployments is a popular pattern for zero-downtime releases and updates. It’s common to shift a percentage of traffic to the new deployment slot to validate its operation before moving all traffic to the new slot or rolling it back completely. Runbooks are perfect for this, and they eliminate the need for the operations team's involvement. Deploy a new release, validate it, and then roll it out widely in a self-service manner.
Update configuration values for existing web applications or cloud services - Teams often need to tweak production service or infrastructure settings to provide short term incident recovery or to fix minor problems. If these changes fall outside of your CI/CD pipeline and config as code, it can be painful to get them actioned by operations personnel as they may be treated as a low priority. Building a runbook to update configuration settings is a fast and efficient solution for these scenarios.
Incident recovery (Service restarts) - Restarting web servers and services is often all that is needed to fix a production incident with a legacy web app or overwhelmed web service. In a more serious incident, this can provide enough time for a development team to investigate and then deploy a hotfix release.
We've been overhauling our internal infrastructure and back-end systems over the past month, including a move back to full @OctopusDeploy deployments; rediscovering how nice it is to have a platform-agnostic orchestrator that can deploy practically anything, anywhere ❤Nicholas Blumhardt