Hive Helix Artifact Manager Paul Allen Senior Integration Engineer Sven Erik Knop Technical Marketing Manager
2 Artifact manager?  Common artifact managers • Sonatype Nexus • Artifactory • Nuget (Windows specific) • Apache Archiva
3 What is an Artifact?  ‘... one of many kinds of tangible by-products produced during the development of software.’ Wikipedia: Artifact (software development)  Typically generated through a build process • Intermediary artifacts such as Java jar files or DLLs • Containers or Executables  Metadata describes details such as version or build time
4 Lifecycle of an Artifact  Build processes • Consume artifacts • Generate (intermediate) artifacts • Produce (deployable) artifacts ArtifactSCM 10101100 11100111 10101100 11100111 CI Build pipeline
5 What does an Artifact Manager do?  Storage of artifacts with their Metadata  Distribution through standardized access  Management
6 Why Hive?  We have an artifact storage – it is called Helix! • Storage, Security, Replication ...  Needs common interfaces • Accessibility for consumers • Browse, search and deploy • Management for setup, permission and cleanup
7 Hive  Stores and makes accessible your artifacts  Prototype of an Artifact Manager built on Helix • Lives in the workshop  Nectar for your bees, hence the name
Here comes the Science bit… Over to Paul
9 User Functions What is Hive? Helix P4D Hive PluginFramework Generic Docker Maven Docker Vagrant Browse Search Deploy
10 Generic Artifacts  Basic Curl for retrieval and deployment curl -o p4java.jar http://localhost:4567/view/test/p4java.jar curl -u admin:Password --upload-file p4java.jar http://localhost:4567/view/test/p4java.jar
11 Maven API  …or perhaps more useful, Maven: mvn package mvn deploy:deploy-file -DgroupId=com.perforce -DartifactId=p4java -Dversion=2015.1.1067177 -DrepositoryId=hive -Durl=http://localhost:4567/view/test -Dfile=p4java-2015.1.1067177.jar
12 Hive Pipeline ArtifactSCM 10101100 11100111 10101100 11100111 CI Build pipeline
13 Hive Pipeline ArtifactSCM 10101100 11100111 10101100 11100111 CI Build pipeline Hive Docker Maven
14 Helix backed Storage  Helix Depots Backed by one or more ‘local’ depot for each type. For example: 3 different Maven depots. PluginFramework Generic Maven Docker Vagrant // // // // // // //
15 Depot Types  Storage • Internal repository for company generated artifacts  Proxy • Cached copy of artifacts from a remote repository  Group • Collection of repositories: Storage, Proxy and other Groups • Query order determined by group
16 JSON Magic  Uses the Depot Description field for metadata Depot:mvn-central Type: local Description: Json: { "url":"http://repo1.maven.org/maven2/", "name":"mvn-central", "title":"Maven Central Proxy", "site":"PROXY", "type":"MAVEN", "description":"Proxy for Maven Central" }
17 File Storage  Accessible by all our clients • Path matches the artifact • No custom formats  All the features of Helix • Proxy • Replication technologies
18 Deployment Helix P4D HiveUsers
19 Distribution Replica ProxyHelix P4D
20 Web Management  Browse  Search  Deploy
21 User Administration  In addition to regular Perforce users anonymous Grant access to artifact depots for users without a login hive Grant access to artifact depots for Hive to cache files
22 Web Administration  Secure login  Manage Repos  Map Groups  Permissions  Obliterate
23 Demo  Browse anonymously  Login and Browse  Search for Content  Deploy an artifact
24 Follow Hive in the Workshop  Help develop plugins  Suggest improvements  Follow the activity
Thank you! pallen@perforce.com sknop@perforce.com @p4paul @p4sven

How to Combine Artifacts and Source in a Single Server

Editor's Notes

  • #10 A RESTful API for each artifact type, currently: Generic Maven Docker (under development) Gem (under development) Web Management tool