Seli means 'Repository' in Swahili. As the name suggests, it is a package repository service for Red Hat based systems. I have been helping teams adopt Continous Delivery for the last year. One of the key aspects of Continuos Delivery is that every time a checkin happens the build process creates packages which could be potentially deployed. And with practices like automated infrastructure provisioning I trigger a new deployment on any build number on demand.
Now the side-effect of this is, I have seen my teams commit as many as 40-50 times a day, producing around 5-6 rpms with every checkin. This means we were adding 200-300 new packages every day, which becomes unmanagable very quickly. Very soon I had to automate deleting older packages, tagging packages etc, mantaining infrastructure like Nginx which serves the packages. There is also the aspect of tagging packages as the package moves through the Continuos Deployment Pipeline. Say the pipeline has three stages, Dev -> QA -> Pre-Prod ---> Production, now with every stage there would be ideally some automated tests to determine how good the build[packages] are, and the further the packages go in the pipeline, the better those builds are in terms of quality. So i would not want to delete the older packages which has reached to pre-prod as much as the ones which reached up to the QA/Dev Stage. It required me to write a lot of scripts to automate all these processes. Also when the Package repository is on a different machine i had to write scripts which upload the packages from the CI server to the repository and run commands to re-build the repository metadata.