Home / Companies / Octopus Deploy / Blog / May 2020

May 2020 Summaries

7 posts from Octopus Deploy

Filter
Month: Year:
Post Summaries Back to Blog
Mark Harrison's article introduces an experimental Bitbucket Pipe called octopus-cli-run, designed to integrate Atlassian Bitbucket Pipelines with Octopus Deploy by utilizing commands from the Octopus CLI. This Pipe, which is published on Docker Hub, allows users to manage packages, releases, and deployments through a series of CLI commands, such as pack, push, build-information, create-release, and deploy-release. Each command has specific variables and optional arguments that can be configured in the bitbucket-pipelines.yml file to automate tasks like packaging files, pushing them to the Octopus repository, creating build information, and deploying releases. The article provides detailed examples using the PetClinic sample application, illustrating how to implement these commands in a Bitbucket Pipeline to simplify configuration and enhance reusability. Harrison concludes by emphasizing the benefits of using Bitbucket Pipes to streamline DevOps workflows and encourages users to explore further integration possibilities between Bitbucket and Octopus Deploy.
May 27, 2020 1,225 words in the original blog post.
In the blog post by Bob Walker, readers are guided through building trust in automated database deployments using Octopus Deploy. The author emphasizes the initial skepticism surrounding database automation and shares strategies to ensure deployments do not result in data loss or production outages. Key techniques include generating and reviewing delta scripts, implementing manual interventions for approvals, and using notifications to keep key team members informed. Walker highlights the importance of separating roles and responsibilities, allowing developers to deploy in lower environments while requiring DBA approvals for staging and production. The process also involves using scripts to check for potentially harmful commands, thereby reducing the risk of errors. The ultimate aim is to create a reliable deployment process that instills confidence in the team, enabling more frequent and secure database changes.
May 25, 2020 3,057 words in the original blog post.
Implementing database deployments can be challenging due to various issues such as tightly coupled databases, which lead to dependencies and conflicts between different applications, as illustrated by an incident where changes to one application's database schema caused another application to fail. Problems also arise from circular dependencies during automated deployments and issues with Redgate SQL Source Control when using a three-part naming convention, which can disrupt the build order. Default constraints without explicit names in Microsoft SQL Server can lead to deployment failures due to mismatched constraint names, while mixing deployment technologies like Redgate SQL Source Control and DbUp can result in unintended repeated execution of scripts. Additionally, state-based deployment software, although powerful, can have bugs, such as incorrect handling of identity columns, which can complicate deployments. These experiences highlight the complexities and potential pitfalls in database deployment processes, underscoring the importance of careful planning and troubleshooting to avoid time-consuming issues.
May 13, 2020 819 words in the original blog post.
Kubernetes is evolving into a versatile cloud operating system capable of managing complex business processes through operators, enabling users to focus on higher-level concepts rather than basic building blocks like Pods and Services. This transformation is exemplified by Tekton Pipelines, which allow for the definition and execution of build tasks within a Kubernetes cluster, creating a headless CI/CD platform. Using MicroK8S, a lightweight Kubernetes distribution, developers can easily set up the necessary environment, including a Docker image registry and DNS support, to run Tekton Pipelines. Tekton facilitates the creation and management of build tasks and pipelines that can compile and push Docker images, using tools like Kaniko to build images within Kubernetes environments. While Tekton offers a powerful framework for CI/CD processes, it may be too low-level for most engineering teams without additional tools like Jenkins X and OpenShift Pipelines, which provide more user-friendly interfaces and functionalities built on top of Tekton. Despite its complexity, Tekton highlights Kubernetes' flexibility and potential to host comprehensive CI/CD solutions, although its direct use might be limited to teams with the necessary expertise.
May 11, 2020 1,644 words in the original blog post.
Matthew Casperson's blog post from May 6, 2020, explores how to configure a Tomcat Docker image to enable the manager application for Java deployments. The process involves defining a Tomcat user with necessary roles in the tomcat-users.xml file and modifying the context.xml file to disable network filtering, allowing external traffic. Since the default Tomcat Docker image does not load applications by default, users must move the default applications from /usr/local/tomcat/webapps.dist to /usr/local/tomcat/webapps by overriding the Docker command. The post provides detailed instructions, including the necessary command and configuration files, to ensure Tomcat runs with a functional manager application, while clarifying that these default applications are not pre-loaded due to security precautions.
May 06, 2020 461 words in the original blog post.
Maven serves as a versatile artifact repository, extending beyond traditional Java packages to host generic ZIP archives, which can be published and consumed in various deployment processes, such as those in Octopus projects. The process begins with configuring the Maven repository in the settings.xml file, where credentials for a Nexus Maven repository are specified. A standard ZIP archive, containing files like test.txt, is created and uploaded using the Maven deploy:deploy-file goal, ensuring that the repositoryId matches the corresponding id in the settings.xml. To use the new artifact in Octopus, the Nexus server is added as an external Maven feed, allowing for the artifact to be searched and downloaded to target machines. This functionality highlights how Maven repositories can manage a wide array of deployments, with Octopus natively supporting these Maven feeds for efficient artifact consumption.
May 05, 2020 348 words in the original blog post.
Matthew Casperson's article delves into the intricacies of creating a robust CI/CD pipeline for deploying Java applications to Tomcat, focusing on aspects such as high availability and zero downtime deployments. It outlines a comprehensive setup involving Apache web servers for load balancing, PostgreSQL for session replication, and Keepalived for managing load balancers' high availability. The article also discusses implementing Tomcat's parallel deployments to facilitate zero downtime, ensuring database changes are backward and forward compatible with tools like Flyway, and handling session persistence through PostgreSQL. Additionally, it touches on deploying feature branches with Octopus channels, addressing Maven's versioning limitations, and securing deployments with HTTPS certificates. By meticulously detailing each component of the infrastructure and deployment process, Casperson provides a guide for achieving a seamless and resilient deployment pipeline.
May 04, 2020 8,321 words in the original blog post.