Guest author Fintan Ryan is an industry analyst at RedMonk, the developer-focused industry analyst firm.
As my RedMonk colleague Stephen O’Grady has previously observed, at times the software industry does not fully realize the value of the data it sees in day-to-day operations. This cannot be said of New Relic, of course (full disclosure: New Relic is a RedMonk client), and we have had the opportunity to work with the New Relic team to interpret data it has compiled about Docker usage patterns.
It is important to state that this data strictly reflects what New Relic’s customers have chosen to provide. However, New Relic has a significant footprint in the enterprise, and has been actively monitoring container infrastructure for quite some time. James Governor has discussed the “Rise of the Docker Pattern,” and New Relic is in a great position to assess this pattern’s emergence.
RedMonk looked at which programming languages are being used with Docker, uptake and usage patterns, and the growth of the Docker community.
The languages of containers: PHP
When looking at New Relic’s data on the programming languages being used in conjunction with containers, PHP sticks out. The high level of PHP usage shown in New Relic’s data may come as a surprise to many “cloud native” aficionados, but, as we consistently see in the RedMonk programming language rankings, PHP is an incredibly widely used language. If anything, we expect to see PHP usage grow even more as questions around persistent storage and containers continue to be addressed by the ecosystem.
An area in which PHP is, perhaps unfairly, considered to be weak is around packaging—so it is fair to say that the convenience and value of packaging PHP applications in a Docker container should not be underestimated.
The languages of containers: Ruby and Node
Node was always going to feature heavily in the container landscape. The early adopters of Node were among the very earliest adopters of Docker, and many of these developers come from a Ruby background. One interesting point we observed in the data is the number of companies running both Ruby and Node together in production.
The languages of containers: Java
It should come as no surprise that the usage of Java and Docker is growing. We at RedMonk are keenly aware of just how active the Java community is, and how forward-looking many parts of the community are. Cloud-native approaches fit very well with the newer Java frameworks, and although the data we looked at does not break down into frameworks used, we would expect to see Spring in a large number of cases.
However, and we will return to this point later in this post, we also see a small but significant amount of “lift and shift” activity, with workloads such as departmental applications moving from older environments such as Virtual Machines (VMs) to Docker. Many of these applications are sitting in technologies such as Apache Tomcat servers.
The languages of containers: Python
Python users tend to be passionate about the language, and this passion came through in this dataset. The combinations of Python usage with other languages were minimal.
We would expect a significant number of the Python-based applications to be built on the Flask framework, but it is also worth noting that Python has found a welcoming home in data science. Similar to PHP, we may be seeing a trend for packaging Python-based data-science applications using Docker.
The languages of containers: .NET
The popularity of .NET should not come as a surprise given Microsoft’s investment in, and support of, Docker. That said, it is interesting to see just how much .NET and Docker are already being used together. We expect this number to grow significantly over the coming 12 months.
The uptake of containers and observing usage patterns
The data compiled by New Relic shows a very strong adoption curve for containers across the enterprise, which is consistent with the data we are tracking. Most, if not all, forward-looking enterprises are looking towards containers as part of their next-generation application strategy.
New Relic’s data on exactly how long individual containers, and groupings of containers, run for shows a shifting pattern in workloads. While not yet displacing VMs, there is definitely a pattern of “lift and shift” to containers occurring for certain classes of applications, something that we’ve previously seen with both VMWare and AWS.
As mentioned above, the movement of department-level applications as well as systems that are considered valuable, but not mission critical, is a potential driver of these longer-running containers. However, the majority of containers are short run, confirming the current bias towards dynamic scalable workloads such as those we observe being developed under microservices approaches.
The popularity of Docker and its growing community
To help add external color to New Relic’s findings, RedMonk conducted some additional research into the Docker community.
A notable inflection point for many communities that emerge around open source projects occurs when the popularity on GitHub is surpassed by the size of the meetup community. Many of those who star projects on GitHub are, rightly, classed as early adopters. In the early stages, meetups and GitHub fans tend to be made up of similar audiences.
However, as emergent technologies evolve and gain traction, the attendees and makeup of the meetups begins to change. You see the number of operational talks increasing, and this is definitely the case with Docker. Vendor talks are still very common, but when people come and talk about their real-world experiences you know a technology is being well established.
That said, this inflection point between GitHub and meetup numbers for Docker actually happened last year. What is truly impressive is the momentum has not just been maintained, it has accelerated. The number of meetup members in the last 12 months has grown by 180% to more than 102,000. The number of meetups explicitly focused on Docker has grown by 38%, to 250 worldwide.
At the same time, we have seen year-on-year growth of more than 100% in the number of stars on GitHub in the past 12 months, compared to the 12 months ending in June 2015. This trajectory would delight any open source project.
There is no doubt that a significant amount of this community growth is due to Docker’s relentless focus on generating a groundswell of interest. However, this level of interest does not happen just because a corporate entity is behind it. There is a massive level of interest across the technology ecosystem, and multiple volunteers willing to run meetups.
Impressive growth on Stack Overflow
As informative as meetups and GitHub can be, we keenly observe trends on Stack Overflow as well. Docker truly stands out here, with 264% growth in questions in the last 12 months, and more than 8,000 questions asked about and around Docker.
There can be no doubt that the usage of Docker, and of containers in general, is growing at an extremely impressive rate. We continue to observe a significant level of adoption beyond the early adopter community, from workloads in languages such as PHP, to “lift and shift” application movement of traditional enterprise apps.
As we have said previously, the cloud native journey is only just beginning, and the enterprise adoption of Docker will continue to grow.
Disclaimer: New Relic, Docker and Pivotal (Spring) are current RedMonk clients.