Home / Companies / Octopus Deploy / Blog / September 2020

September 2020 Summaries

11 posts from Octopus Deploy

Filter
Month: Year:
Post Summaries Back to Blog
Matthew Casperson's blog post from September 30, 2020, explores using Amazon S3 as a Maven repository, highlighting its flexibility for storing various artifacts beyond just JAR and WAR files. Unlike typical server-side APIs, Maven repositories consist of static files parsed by the client, allowing them to be hosted on diverse file systems like HTTP or FTP, facilitated by Maven Wagon. The post details the integration of the third-party library S3StorageWagon to upload files to a Maven repo in AWS S3, outlining the process of compiling necessary code, managing dependencies, and defining repository settings in the Maven settings.xml file. It also covers creating an S3 bucket and IAM user, adjusting permissions for public access, and demonstrates uploading an artifact using Maven commands. Casperson emphasizes the ease of creating a public Maven repository on S3 without complex software, enabling access via HTTP and integration with tools like Octopus.
Sep 30, 2020 843 words in the original blog post.
Maven version strings can be complex due to various rules and edge cases, with the ComparableVersion class serving as the definitive guide for comparing them. The VersionInformation class further breaks down version strings into major, minor, patch, build number, and qualifier components. Special qualifiers like alpha, beta, milestone, rc, and final have predefined meanings and can influence the sorting of versions, while unrecognized qualifiers are treated as later releases. Version comparison is case insensitive, and different separators such as periods and dashes can often be used interchangeably. However, transitioning from a qualifier to a digit requires specific separators, unlike the transition from digits to qualifiers. Long versions with multiple numerical components are also supported, illustrating the flexibility of Maven's versioning system.
Sep 29, 2020 1,881 words in the original blog post.
Matthew Casperson's blog post, published on September 28, 2020, provides a detailed guide on setting up a local development Kubernetes cluster using Kind and integrating it with Octopus for deployments. He highlights the use of Kind due to its quick setup and compatibility with WSL2, enabling seamless switching between Windows and Linux environments. The post includes a screencast demonstrating the deployment of a web application on a Kind-created Kubernetes cluster. It outlines the necessary steps for installing and configuring Kind, enabling Docker integration with WSL2, extracting and handling certificates, and connecting to an Octopus instance using a polling worker. Casperson also explains how to set up a Kubernetes target for deployments and access services via port forwarding, ultimately showcasing how to deploy and access an NGINX container locally through a browser.
Sep 28, 2020 1,026 words in the original blog post.
Alex Yates discusses the transition to using Octopus Deploy for database deployments, emphasizing its potential to enhance security, reliability, and efficiency. He addresses concerns data guardians might have, portraying Octopus as a powerful ally rather than a threat. The article details how Octopus Deploy automates and secures deployment processes, reducing human error and improving mean time to recovery. Key features include separating duties, audit logging, and integrating with existing security infrastructure. Yates underscores the importance of understanding Octopus’s architecture, particularly the use of Tentacles and jump-boxes, to maintain database performance and security. By automating manual checks and approvals, organizations can streamline deployment processes, reducing bottlenecks and human error. A case study of Farm Credit Mid-America illustrates the successful implementation of automated deployments, highlighting cross-functional collaboration and the significant reduction in deployment failures. Yates concludes by advocating for data guardians to embrace automated validation, ensuring safer and more efficient deployment pipelines.
Sep 16, 2020 3,297 words in the original blog post.
Database migrations, also known as schema migrations or script-based updates, are essential in keeping application databases up-to-date with minimal risk, as demonstrated by Octopus Deploy's extensive experience. These migrations involve using scripts to ensure the persisted data's structure evolves consistently with application changes, thus preventing the application code from managing every possible version of the data. Various frameworks, such as NodeJS, Django, and Ruby on Rails, support migration scripts, often with rollback capabilities. Key lessons from Octopus Deploy's decade-long experience include isolating migration scripts from production code to prevent future dependencies, avoiding deserialization to simplify the process, and rigorously testing individual scripts to ensure reliability. Running long migrations online can reduce downtime, though it introduces challenges in maintaining database consistency across different states. Additionally, versioning documents separately from schema changes can offer flexibility, especially for teams using object-relational mappers or document databases.
Sep 15, 2020 967 words in the original blog post.
GitHub Codespaces, introduced by GitHub at Microsoft Build 2020, is an integrated development environment built into GitHub, offering a centralized platform for coding needs without leaving the platform. It addresses the challenge of managing multiple development tools and configurations by providing a single location to store and access settings, extensions, and code, making it easier to maintain consistency across different devices or during collaborative programming. Users in the private beta can access Codespaces directly from GitHub, create a new codespace for any repository branch, and enjoy a seamless transition from Visual Studio Code, as settings and extensions remain consistent. This tool is positioned as a significant advancement for developers, allowing them to code and manage their projects entirely within GitHub, reinforcing its role as a comprehensive development hub.
Sep 14, 2020 526 words in the original blog post.
Configuring High Availability for Octopus Deploy on AWS involves utilizing shared storage solutions such as Amazon FSx, which requires integration with Active Directory. This guide focuses on using FSx for Windows File Server, detailing steps from selecting the file system type, specifying file system details, and configuring network and security settings to encryption and optional backup preferences. After creation, the FSx file system can be accessed via its DNS name, allowing connection from an EC2 instance. The configuration process includes setting up shared storage directories for Octopus Deploy, enabling the migration of artifacts, task logs, and repository data from the EC2 instance to FSx. This setup facilitates the deployment of High Availability configurations by allowing additional nodes to be added easily.
Sep 09, 2020 797 words in the original blog post.
Interacting with APIs is essential for programmatic access to platforms, and the blog post by Michael Levan provides a guide on using PowerShell to interact with the Octopus Deploy API. It emphasizes the importance of understanding how APIs work and the authentication process, which in the case of Octopus Deploy, is simplified by the use of an easily generated API key. The post walks through creating a PowerShell function to call the Octopus Deploy Lifecycle API using a wrapper method and provides detailed instructions on setting up the necessary environment, including prerequisites like intermediate PowerShell knowledge and an Octopus instance. Additionally, it highlights the role of Swagger in making API documentation machine-readable, thus facilitating easier interaction with APIs. The article concludes by underscoring the versatility of APIs and the potential to interact with them using various programming languages, even in the absence of pre-existing wrappers or SDKs.
Sep 08, 2020 931 words in the original blog post.
In Shawn Sesna's detailed guide, he explains how to deploy the Octo Pet Shop application on Amazon Web Services (AWS) Fargate using a continuous integration and deployment (CI/CD) pipeline. The process involves using TeamCity for building Docker containers, AWS Elastic Container Registry (ECR) for storing them, and Octopus Deploy for managing deployments. The guide outlines the necessary steps to create AWS resources such as credentials, ECR repositories, virtual private clouds (VPCs), subnets, security groups, and ECS clusters. Sesna provides instructions on configuring TeamCity to connect and push images to AWS ECR and details setting up Octopus Deploy to use these images for deployment on Fargate. The deployment process includes defining task definitions and running tasks using AWS CLI scripts, ultimately making the application accessible through a web browser, despite a self-signed certificate warning.
Sep 07, 2020 2,595 words in the original blog post.
In a blog post by Michael Levan, Golang is highlighted as a suitable programming language for automation, particularly in the context of AWS. The article provides a step-by-step guide on using Golang to automate the retrieval of metadata from AWS EC2 instances. It outlines the prerequisites needed, such as beginner-level knowledge of Golang and AWS, and the setup of an AWS configuration on the local machine. The post details the process of importing necessary AWS packages from GitHub, setting up a Go environment in Visual Studio Code, and writing the main function to execute the automation script. By utilizing the AWS SDK for Go, the blog demonstrates how to connect to AWS, handle errors, and output EC2 instance information, emphasizing Golang's procedural nature and its ability to streamline automation tasks in AWS.
Sep 02, 2020 1,148 words in the original blog post.
This blog post by Michael Levan, published on September 1, 2020, provides a detailed guide on authenticating to Azure using the Go programming language, focusing specifically on virtual machines. It addresses the varying authentication processes across different programming languages and SDKs and introduces Go as a popular and fast-growing language in the tooling space. The post outlines the necessary prerequisites, such as a basic understanding of Go, an Azure account, and an appropriate IDE. It walks readers through the steps of setting up the required Azure packages, creating a Go program to perform authentication using the Azure SDK, and managing error handling. By the end of the guide, users should be able to successfully authenticate to Azure using their subscription ID, highlighting the importance of authentication in utilizing cloud platforms effectively.
Sep 01, 2020 814 words in the original blog post.