The Ops factory somewhere over the rainbow.

lundi 14 janvier 2013
One year and a half since the last post. Wouah, it has been a while! And why, push to came back to this killer-time activity which is a blog writing? Nothing less than a tweet from JFrog.

https://twitter.com/artifrog/status/290873580386918401
https://twitter.com/artifrog/status/290873580386918401
 
So I decide to write down some lines about hat is Bintray and why I use it.

First of all, JFrog is the glorious editor of the Binary Repository Manager named Artifcatory. If you want further information I advice you to Google some names like Nexus and Archiva to understand what it is all about.

And since a couple of week, JFrog offer a new offer, a cloud one: Bintray.

Bintray is simply a Cloud Platform As A Service offer. The platform offer you storage and services to create you own binary binary repository in the cloud. For Java/Maven developers it sounds like heaven, you'll now have you very own jar repository. 

But I write this post today is more for the second kind of hosting. Bintray also allow you to create Linux RPM repositories. And that feature made my day!!

Indeed, 2 or 3 months ago I had the pleasure to attend to Henri Gomez's talk at one session of the LavaJUG. During his presentation Henri explained us the concept of OpsFactory. Basically, it consists in transforming a software artifact (jar/war) into a native package (deb/rpm). The benefits of a such mechanism? Well, offer all the strength and reliability of natives package managers to software installation.

In this way, Henri already built a GitHub repository named devops-incubator in which he host all the "sources" to build native packages of the most famous DevOps tools (Subversion, Nexus, Jenkins, etc.)

Based on his talk and on this repository, I made a funny experiment. I bet all of you know the CloudBees Cloud Continuous Integration offer (based on Jenkins) named BuildHive. This wonderful service is tottaly integrated with GitHub and propose you to continuously build your repository. So my made was to let BuildHive build Henri's native packages. And guess what ? We (Henri and I) succeed ;)


If you want to know I did, just mail me and I will send you the shell script which builds the native packages ;)

Despite this success, it wasn't enough ;) The next step would be to host these freshly build packages in a place on the Internet, so anybody could download them and test them without effort. 

In my quest I first thought at GitHub, it will host both the sources and the binary of the native package. To be franc I had a quick look at GitHub's API for download exposition but it was a little bit obscure, IMHO.

And after a fake end of the world, (and some additional weeks) JFrog open Bintray accesses to some beta testers. With the RPM management feature, Bintray fits my need of a cloud native package hosting service. Moreover, it offers an amazing REST API.
So since the devops packages building automation was done, I tried to automate also their deployment  Of course I re-use BuidHive as automation tool.

And we made it again! 

There you can have an overview of the script which automates the rpm deployments to Bintray


Now, all the  required tools exist to start from a classic software binary and transform it and also host it directly on the cloud. You can add Henri's repository into your yum repository and use your native package manager to install the devops-incubator packages. Moreover, the upgrades become a non-event, you will also use your package manager to upgrade your tools.

Because one image is worth a thousand words, there you have the big picture of the OpsFactory:

Aucun commentaire :

Enregistrer un commentaire