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.
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 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:
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 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.
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:
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.
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.
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:
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.
Get a beautiful status page that's free forever.
With unlimited team members & subscribers!