Whenever an application is uploaded to the CloudBees Platform as a
Service (PaaS), it is not just blindly copied from your desktop onto the
PaaS. Instead, we perform some smart processing so that only the delta
from the previous upload needs to be sent, which significantly reduces
the bandwidth and time required to upload a new version of your
application.
Through that process, we anonymously capture some statistics about
what’s being uploaded. To that end, we are using some package filter
rules to identify particular frameworks and languages. Obviously, if a
specific framework is not in the rule set, it will not be identified. To
date, our rule set has been able to identify known frameworks/languages
in 36% of the applications, so there are certainly improvements we
could make. (If there is interest, we could make the ruleset available
as a public Git repo so it can be further enhanced by specific
framework/language communities.)
Build-stage
First surprise, ANT is still very much used as a build tool for the apps deployed to CloudBees:
If we had been able to analyze the content of more applications, would
the result have been different? Possibly, but this result was very
surprising to me given the notoriety enjoyed by Maven, including in our
mailing lists.
Libraries
In terms of libraries, I’m listing here the top 20 we’ve identified.
Obviously they are not mutually exclusive (i.e. you could use log4j,
Hibernate and Spring in the same application!) and some libraries also
come with their own implicit dependencies:
Languages and frameworks
We also looked at what type of JVM-based languages and frameworks were being run on the platform and here are the results:
I do not find those numbers particularly high. It might be interesting,
in a later post, to remove the “sample apps” that new subscribers can
easily deploy as they might impact those numbers for no good reason.
Note: we might be missing a rule in our rule set since Lift apps should bring a Scala dependency.
Various Statistics
We can also compute some other statistics which don’t necessarily add
much in terms of comparison but which can be interesting nevertheless.
Here are some of them:
- The application that has the most JARs contains … 353 JARs
- The application that has been active
the longest on the platform is more than 1,100 days old (it means they
just passed their 3 years mark!) , with a few older than 1,000 days
- The application with the longest name has … 58 characters :)
Let us know if there are any other stats you’d like to see!
Onward,
Sacha
Sacha Labourey, CEO
CloudBees
Comments