as the Wiki doesn't really help me on this one, I need to reach out to you for this question.
at the moment we only worked with artifacts of type zip (local and remote file artifacts), no problems there, just create it, store it in the nexus or not, CA RA handles the distribution, we unzip it during the deployment process.
but well, all nice things might come to an end and now I'm standing in the middle of nowhere.
At the moment our whole infrastructure is being looked at and next to the goal to move everything to visual studio team services and Git version control, there also is the wish to finally introduce jfrog artifactory for storing binary files.
Here comes the part, where I'm currently lost. I know that we simply could change the artifact repository for CA RA to use artifactory, so that all internal processes regarding the artifact handling would just work with artifactory. we tested it, worked immediately. BUT (yes, there is always one) we don't think that this would cover all scenarios, so I'm trying to figure out some other ways to handle the artifacts, just to evaluate the best approach.
My question now: how do all the artifact types work? For example the ftp or http artifacts. How are they being distributed? Does the management server retrieves files from the ftp/http location and then uses it's own mechanism to distribute it further to the execution server and the agents? Or is it really just a link and the agent tries to connect to the ftp/http address as soon as the artefact is being used in the deployment?
The reason behind the question is, that some of our TAs would like to see the build handle the storing of artifacts in artifactory and then use those stored artifacts within CA RA. So I thought we could use something like an ftp/http artifact in CA RA and link to the stored artifact in artifactory, but what happens with DMZ deployments? That is why I need to understand the distribution process of those other artifact types, because if the agent needs to call the ftp/http address, it can't be used for a DMZ deployment.
I just need more knowledge around the artifact handling in CA RA, especially, as I mentioned, regarding the different types, so any help or information is highly appreciated,
Management Server retrieves the artifacts (no matter the type) using the retrieval agent, after that the management server distributes it to the execution server which then again sends it to the agents.
Can someone verify that or am I wrong?
Michael this is my understanding of the over all flow.
The Execution Server that owns the retrieval agent will request the agent to give it the required artifact. Once the Execution server has this artifact, it will do one oftwo things based on whether it owns or manages the target agent? (by target agent I mean the agent assigned to the server type for a particular environment)Yes, (it manages target server) - then cache the file and send it to the target agent(s)No, (it does not manage target server) - determine what execution server does manage the target agent(s), send the artefact to that execution server which in turn will forward it to the required target agent(s).
thanks, so this would mean, that no matter the artifact type itself, the machanism of distributing the artifact stays the same? which would mean, every artifact type can be used for a DMZ deployment and we don't need to do anything else, when we switch to a different artifact type? (it does make sense this way, we just weren't sure)
this is correct, the retrieval agent or retrieval group associated with an artifact will retrieve the artifact from wherever it is stored and the artifact will be routed through the NES architecture using Nimi to the target agent . so if you have a complex network including a DMZ already in place and the NES routing setup then you will not need to make any changes. Hope this helps.
yes it does help, a lot! thank you