July 2020 Summaries
12 posts from Octopus Deploy
Filter
Month:
Year:
Post Summaries
Back to Blog
A recent update to the Octopus Jenkins plugin has enhanced its capabilities by supporting pipelines, enabling the creation and deployment of packages and the association of metadata such as commit messages. This update allows for a streamlined process of deploying applications, as demonstrated through the creation of a Jenkins pipeline to deploy a sample Java application. The process involves installing and configuring the Octopus and Custom Tools plugins, setting up a Jenkins environment with necessary tools like Maven and JDK, and defining a declarative pipeline using a Jenkinsfile, which includes stages for adding tools, building, and deploying the application. The pipeline showcases the use of the Octopus CLI for packaging, pushing, and creating releases, with the capability to include build information such as GIT commit messages. This integration is visualized through Jenkins' Blue Ocean interface, offering an intuitive user experience. Overall, the integration of Octopus with Jenkins pipelines facilitates the management of deployments within Jenkins, enhancing the build experience through automation and visualization tools.
Jul 28, 2020
2,396 words in the original blog post.
Execution Containers for Workers, recently released by Octopus, offer a flexible and efficient solution for managing deployment processes by allowing users to extend or create Docker images tailored to their specific needs. The octopusdeploy/worker-tools Docker image serves as a comprehensive base with most deployment tools included, but users can customize it by adding additional tools, like mssql-cli, or updating existing ones, such as a newer version of PowerShell. By modifying the Dockerfile, users can create streamlined images that suit their deployment processes, potentially reducing image size and improving deployment efficiency. This approach not only facilitates version-controlled software dependencies and minimizes installation conflicts but also optimizes resource usage by reducing the number of Worker machines required, which can lead to cost savings. The ability to customize Docker images provides users with both immediate functionality and the flexibility to extend capabilities, enhancing the deployment process and reducing execution times.
Jul 27, 2020
1,432 words in the original blog post.
In the 2020 article by Tj Blogumas, the focus is on addressing the challenge of rapidly delivering code to production through a fully automated and repeatable deployment process, emphasizing the importance of successful testing at each layer of the testing pyramid to ensure service continuity. The article details the implementation of a pre-approved production-ready deployment pipeline using Octopus Deploy, which simplifies the process of visualizing and executing deployment steps. It describes the role of Continuous Integration (CI) and Continuous Delivery (CD) stages, highlighting the difference between them and the importance of validating each deployment stage to avoid potential failures. The article also touches on the use of Git branches and tags to manage code promotion, ensuring that developers have control over the deployment process by leveraging a pre-approved pipeline for small, low-risk changes. This approach aims to balance speed with quality in software deployment while maintaining confidence in the deployment success rate.
Jul 22, 2020
1,775 words in the original blog post.
Mark Harrison's blog post explores the use of Farmer, an open-source .NET domain-specific language (DSL), to streamline the process of generating and deploying Azure Resource Manager (ARM) templates. Harrison highlights the challenges of using traditional ARM templates, such as the reliance on strings and susceptibility to human error, and introduces F#'s type-safety as a solution. By leveraging Farmer, developers can create strongly-typed, concise ARM templates and deploy them using tools like Octopus Deploy. Harrison details the steps to create a Farmer template, including setting up a .NET Core application, defining Azure resources, and incorporating authentication with Azure. The post concludes with a demonstration of packaging and deploying the application using Octopus, emphasizing the benefits of version control and eliminating manual JSON editing.
Jul 21, 2020
2,279 words in the original blog post.
In the article, Mark Harrison outlines the process of converting an existing application deployment from a sequential to a rolling deployment pattern using Octopus, with a focus on the PetClinic application, a Java-based Spring Boot project. The sequential deployment method, which involves running steps one after another, can lead to application downtime. To address this, Harrison demonstrates how to implement a rolling deployment process, which minimizes downtime by using multiple servers and a load balancer to manage traffic. The transition involves scaling up server infrastructure, removing servers from the load balancer during updates, and adding them back once updates are complete, using child steps in Octopus for these tasks. The rolling deployment is configured to continue serving user requests even during updates, thereby enhancing application availability. Additionally, the new deployment pattern requires infrastructure changes, such as using a network load balancer and updating DNS records, to route traffic appropriately. The article concludes by highlighting the benefits of reduced downtime and continuous service availability offered by the rolling deployment approach.
Jul 20, 2020
2,288 words in the original blog post.
Change Advisory Boards (CABs) are commonly used by organizations to review changes before they are executed in production, often to comply with regulations or improve reliability by catching mistakes. However, research highlighted in "Accelerate" by Nicole Forsgren, Gene Kim, and Jez Humble suggests that CABs may do more harm than good by negatively impacting lead time, deployment frequency, and restore time without reducing change failure rates. The DevOps movement emphasizes the importance of quick and small changes, as well as a focus on Mean Time to Restore (MTTR) rather than preventing all failures, which can lead to more resilient systems. CABs often lead to delays and inefficiencies due to their batch processing of changes and lack of context understanding, making them less effective than expert code reviews conducted within the development team. Effective code reviews should be timely, context-aware, and involve knowledgeable peers rather than large committees, enabling organizations to improve their deployment processes and business outcomes. The ideal approach is to implement agile and lean methodologies that emphasize speed, quality, and innovation while minimizing bureaucratic overhead, thereby aligning with the four key metrics of lead time, deployment frequency, MTTR, and change failure rate for better business performance.
Jul 16, 2020
3,715 words in the original blog post.
Jeff Taylor shares his experience using PowerBI Desktop to analyze data from Octopus Deploy, highlighting the time and cost savings that automation has brought to his company. The detailed analysis includes various charts and reports on deployment history, runbook executions, and potential development issues, such as skipped releases due to undetected bugs. Taylor provides templates for these reports, compatible with both Octopus Cloud and self-hosted versions, to help others replicate his findings. Over five years, automation reduced deployment time from an estimated 3,572 hours manually to just 53.5 hours, saving the company approximately $285,760 in labor costs. Taylor encourages readers to explore their own data and contribute ideas for further reports, aiming to enhance the understanding and justification of automation benefits in DevOps environments.
Jul 15, 2020
1,960 words in the original blog post.
The WildFly Command Line Interface (CLI) is a versatile administration tool that provides both an interactive console and scripting capabilities for managing the WildFly application server. Users can connect to the CLI, which operates like a file system and allows navigation and configuration of the server's various aspects, using commands similar to those in Bash. The CLI supports multiple protocols, silent authentication, and various operations, such as reading and writing attributes or performing atomic batch operations. Users can script CLI commands for non-interactive execution, incorporating flow control statements like if/else and try/catch/finally for automation tasks. The CLI's functionality is enhanced with features like tab completion, multiline commands, and a GUI mode for a more visual navigation experience.
Jul 13, 2020
1,730 words in the original blog post.
Ryan Rousseau describes the process of contributing a step template to the Octopus Community Library, using his experience with creating a Firebase CLI deploy command template as an example. The Octopus Community Library is a repository for community-contributed extensions to Octopus Deploy, allowing users to share step templates that integrate with other applications or provide useful functions. Contributors can submit their templates by following guidelines posted in the library’s repository, which involve forking and cloning the repository, exporting and preparing the template in JSON format, and ensuring adherence to submission guidelines. Rousseau details his process, including setting up a Firebase category, testing the library site locally, and finally, submitting a pull request for review. The process concludes with a Contributor License Agreement, automated build checks, and a review by the Octopus team, after which the template becomes available to the wider community.
Jul 08, 2020
1,577 words in the original blog post.
Ryan Rousseau details the process of creating a custom step template in Octopus Deploy to facilitate the deployment of projects hosted on Firebase using the Firebase CLI. By choosing the "Run a Script" base template, Rousseau outlines the steps for configuring a new template named "Firebase Deploy," including setting parameters like package details, CI token, and deployment targets. He emphasizes the importance of parameters for flexibility and describes the scripting process in Bash, highlighting how optional parameters can be dynamically included in the deployment command. The guide concludes with the successful testing of the custom template, demonstrating its utility in standardizing and extending Octopus Deploy functionality, particularly for Firebase projects, and hints at future contributions to the Octopus Deploy Community Library.
Jul 07, 2020
1,357 words in the original blog post.
Testing code is a crucial practice for developers, with Test-Driven Development (TDD) being a popular methodology where tests are written before the actual code. Even if TDD isn't followed, implementing unit and mock tests remains essential to ensure code reliability and predictability after changes. This text focuses on testing Terraform code using Terratest, a Golang-based framework that aids in Infrastructure-as-code testing, particularly for creating and managing Azure Virtual Networks. The process begins with understanding the significance of unit and mock tests, followed by writing Terraform code for deploying Azure resources like Network Security Groups and Virtual Networks. The narrative then introduces Terratest, highlighting its capabilities and guiding the reader through setting up a test in Golang to validate the Terraform code, ensuring resources are deployed and destroyed correctly. Finally, the text suggests exploring kitchen-terraform, a rising framework in the testing landscape, for further learning.
Jul 06, 2020
1,718 words in the original blog post.
Terraform, an infrastructure as code tool written in HashiCorp Configuration Language (HCL), provides a versatile solution for developers and operations teams to efficiently manage and deploy infrastructure across different environments, such as Azure or AWS, using repeatable code. Historically, developers faced challenges in testing their code due to unavailable or hard-to-deploy infrastructure, but Terraform addresses these issues by allowing automated and code-based infrastructure deployment, which bridges the gap between development and operations teams. Terraform supports automated testing through tools like Terratest and kitchen-terraform, enabling developers to ensure their infrastructure configurations are robust and reliable. Additionally, the Terraform Provider Development Program encourages the creation of custom providers, fostering community contributions and collaboration. By promoting a shared language between developers and operations, Terraform enhances team synergy, allowing both groups to learn from each other and work more cohesively towards deploying and managing applications effectively.
Jul 01, 2020
1,670 words in the original blog post.