WHAT IS A SOFTWARE ARTIFACT?
An artifact is any software asset that is connected to or part of a software project. Artifacts are normally binary packages and are used to characterize or describe the function, architecture, and design of the application. Common types of artifacts are images, executables, data models, libraries, use cases and of course the compiled application binary.
ARTIFACT MANAGEMENT OPTIONS
These artifacts need to be stored and shared with all the developers on that project. Some possible solutions include a shared drive, a source control management tool or an artifact management repository. A shared drive has limitations including limited version control and no artifact deployment capability. A source control management tool is really only designed for managing source code text files and not complex artifacts like large binaries or Docker images.
QUALITY, CONSISTENCY AND AUDITABILITY
All of the artifacts need to be consistently managed, versioned, and deployed across development teams and sometimes across multiple sites, to ensure quality, reliability and auditability. This is where things get tough and that’s when the tough get going! An artifact repository, is specifically designed to store, version, and deploy different types of artifacts for builds from a central location, and offers the best solution for this ever growing artifact management problem. If you look around, you probably already have several ways to manage your artifacts, but it’s likely they are inconsistent with each other.