Julian Canlas
Julian Canlas

Founder of the SEO content marketing agency, Embarque.
julian@embarque.io @jic94

What is a DevOps Artifact? & Best Practices

DevOps software development doesn't just produce a final software product. Oh no, you’ll also generate an enormous amount of DevOps artifacts (or artefacts). Artifacts aren’t something you want to throw away, ignore, or mismanage.

But what are artifacts?

They are by-products created during the software development lifecycle. Artifacts should be stored in an artifact repository for team members to easily access. There are too many possibilities to count, but DevOps artifacts can include container images, meeting notes, risk assessments, user guides, images, executables, and prototypes.

If your team builds a prototype to gain feedback from stakeholders, that's an artifact. If your team outlines a plan to integrate with a status page service like Instatus, that's an artifact. Continue reading to learn more about the different types of artifacts and how to manage them properly.

Types of DevOps Artifacts

DevOps artifacts are created for nearly every software development process, including coding, configuration, compilation, automated testing, archiving, packaging, documentation, minimum viable product requirements, and more.

Within Azure DevOps, artifacts can get subdivided into three main categories: build artifacts, pipeline artifacts, and Azure artifacts. Outside Azure DevOps, the general categories are project management artifacts and code artifacts. Let’s have a look at these.

Build (Code) Artifacts

Build artifact is the designated Azure name for all by-products of the coding and build process. Outside of Azure, you might hear these artifacts called code artifacts (not to be confused with AWS CodeArtifact). There is a further nuance there, but for the purpose of this article, we'll consider them the same.

Code artifacts are usually the biggest category of artifacts directly resulting from developers building software. These are files your team used to deploy or test your application. This might include executable files, .dll files, data models, libraries, or database files. Here are some examples:

  • Test cases, test suites, test reports – each stage of the testing process, from strategy to test reports, result in documents and files that are artifacts.
  • Microservicesmicroservice architecture or building software from tiny compact services that communicate over an API, is extremely popular today. These compact services are artifacts.
  • Compiled Code – code written in a compiled programming language like C++ is compiled into an executable to make it ready for users. The executable is an artifact.

Pipeline Artifacts

Pipeline artifacts in Azure are a newer form of Build artifacts. This means the by-products are essentially the same. Pipeline artifacts are better than build artifacts because of reduced upload and download times but can only be used with YAML pipelines.

Azure Artifacts

Azure Artifacts is more of a specific software service than an artifact category, but it's worth mentioning here because of its place in the Azure DevOps landscape. Azure Artifact software supports packages like Python, npm, and NuGet inside a typed package repository. Azure Artifacts is a paid service for artifact repositories exceeding 2 GB.

Project Management Artifacts

Dev and Ops team members create project management artifacts during active development to ensure all software components work together to meet the project requirements. PM artifacts include:

  • Risk Assessments – assessments that identify critical services and components of the software and the associated risks and triggers. May include risk mitigation plans.
  • Status Monitoring – documents outlining KPIs and other application monitoring policies and systems. This may include operating procedures for incidents and timely status updates. For example, creating an Instatus status page for notifying users during outages or other service interruptions is an artifact.
  • End-User documentation – user guides, FAQs, software documentation, integration documentation, and training materials are artifacts.
  • Case Studies – documents outlining client challenges and the software solutions to those challenges, including the ROI, are artifacts.

Are DevOps Artifacts Useful?

There's been a lack of emphasis on this aspect of software development since the inception of DevOps. But artifacts are an integral part of the software development life cycle and should be managed effectively to serve a DevOps team best.

Every document, file, service, code, or component created during the software development process is a DevOps artifact. These artifacts offer an enormous source of information for continuous development, stakeholders, and other involved parties. Teams should be able to find and share artifacts easily. As the SDLC advances, artifacts can become increasingly valuable as references for future work.

What is an Artifact Repository?

Most DevOps teams will have an artifact repository that keeps all artifacts secure and versioned. Build tools help manage dependencies and other compiled artifacts. Popular artifact repository tools include JFrog, DockerHub, AWS CodeArtifact, Azure Artifacts, Helix Core, and Cloudsmith. These tools provide a single source for packages, Helm charts, container images, and other artifacts to seamlessly integrate with CI/CD tools and advance the software development lifecycle.

Managing Artifacts

Suppose you're not using an artifact repository or universal repository manager. In that case, your first step to effectively managing artifacts should be to browse the available options and select the best fit for your team and product.

Source code management tools and shared drives can work but are less effective when managing complex artifacts. For example, container images are incredibly useful but will be challenging to manage through alternative means.

A central hub for all artifacts is vital to the efficient and pain-free management of artifacts that may number hundreds or thousands by the initial launch of a software product. Choose an artifact repository that improves your development pipelines while offering dependable performance. Careful management of all artifacts advances the build, test, and deploy process by keeping artifacts easily accessible to be 'consumed' in later stages.

Here are some key ideas to remember when managing artifacts:

  • Ensure that all package types your application requires are supported by your chosen artifact repository software
  • Ensure all team members have remote access to the repository
  • Label and tag artifacts appropriately for easy searching
  • Remove unneeded artifacts and set up automatic deletion of outdated artifacts

The Bottom Line

Your team will create many artifacts during the DevOps software development process. These artifacts range from container images to executables, software documentation, risk assessments, libraries, images, directories, archives, Instatus pages, and much more. Without artifact software, managing hundreds of disparate artifacts can become very inefficient and unwieldy.

If your team uses Azure, you can opt to use the package management system known as Azure Artifacts. Otherwise, you can select from one of the great options mentioned in this article, although JFrog is the market leader. Choosing the right artifact repository and adequately managing these assets can give your team a much-needed advantage over your competition while helping you develop the best software application possible.

Instatus status pages
Hey, want to get a status page?

Get a beautiful status page that's free forever.
With unlimited team members & subscribers!

Check out Instatus

Start here
Create your status page or login

Learn more
Check help and pricing

Talk to a human
Chat with us or send an email

Statuspage vs Instatus
Compare or Switch!

Updates
Changesblog and open stats

Community
Twitter, slack, now and affiliates

Policies·© Instatus, Inc.