Commit 97dd16f5 authored by Greg Sutcliffe's avatar Greg Sutcliffe

Add CRs graph

parent 12ef04d1
......@@ -124,13 +124,28 @@ increase in popularity, while PuppetDB (orange) has fallen sharply. Given
Ansible's meteoric rise in popularity over the last few years, combined with the
plugin maturing nicely this year, I think this is fairly easy to understand.
### Provisioning & Compute Resources
### Provisioning, Compute Resources, Hammer, API
Things have shifted slightly here, but not much:
```{r provisioning}
print(provisioning)
grid.arrange(provisioning,hammer,api,ncol=3)
```
Slight increase in those using Foreman, slight decrease in those not using
Foreman. Not too remarkable.
For provisioning, a slight increase in those using Foreman, slight decrease in
those not using Foreman, not too remarkable. Likewise, there's a slight increase
in people using Hammer, which is nice to see.
On the API front, we see more people using the API overall, but with less using
API v1 - I think we're getting close to finally dropping APIv1, yay!
```{r compute-resources}
grid.arrange(compute_resources_old,compute_resources,ncol=2)
```
Nothing too surprising here - bare metal is still king, VMware is the most
popular CR, and the rest can duke it out. THe only remarkable things I see are
(a) how much Openstack has dropped, (b) EC2 catching up to Libvirt, and (c)
HyperV catching up to Azure. How quickly this field changes from year to year
only goes to show that I really need to start doing some partnering with
providers to get CR plugins written quicker...
\ No newline at end of file
This diff is collapsed.
......@@ -113,11 +113,24 @@ increase in popularity, while PuppetDB (orange) has fallen sharply. Given
Ansible's meteoric rise in popularity over the last few years, combined with the
plugin maturing nicely this year, I think this is fairly easy to understand.
### Provisioning & Compute Resources
### Provisioning, Compute Resources, Hammer, API
Things have shifted slightly here, but not much:
![](InitialAnalysis_files/figure-html/provisioning-1.svg)<!-- -->
Slight increase in those using Foreman, slight decrease in those not using
Foreman. Not too remarkable.
For provisioning, a slight increase in those using Foreman, slight decrease in
those not using Foreman, not too remarkable. Likewise, there's a slight increase
in people using Hammer, which is nice to see.
On the API front, we see more people using the API overall, but with less using
API v1 - I think we're getting close to finally dropping APIv1, yay!
![](InitialAnalysis_files/figure-html/compute-resources-1.svg)<!-- -->
Nothing too surprising here - bare metal is still king, VMware is the most
popular CR, and the rest can duke it out. THe only remarkable things I see are
(a) how much Openstack has dropped, (b) EC2 catching up to Libvirt, and (c)
HyperV catching up to Azure. How quickly this field changes from year to year
only goes to show that I really need to start doing some partnering with
providers to get CR plugins written quicker...
......@@ -412,7 +412,7 @@
<path d="M 605 136.367188 L 607 136.367188 L 607 257 L 605 257 Z M 605 136.367188 "/>
</clipPath>
</defs>
<g id="surface160">
<g id="surface3">
<rect x="0" y="0" width="648" height="288" style="fill:rgb(100%,100%,100%);fill-opacity:1;stroke:none;"/>
<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:1.066978;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(100%,100%,100%);stroke-opacity:1;stroke-miterlimit:10;" d="M 0 144 L 324 144 L 324 0 L 0 0 Z M 0 144 "/>
<g clip-path="url(#clip1)" clip-rule="nonzero">
......
This diff is collapsed.
......@@ -331,7 +331,7 @@
<path d="M 591 139.78125 L 593 139.78125 L 593 257 L 591 257 Z M 591 139.78125 "/>
</clipPath>
</defs>
<g id="surface165">
<g id="surface8">
<rect x="0" y="0" width="648" height="288" style="fill:rgb(100%,100%,100%);fill-opacity:1;stroke:none;"/>
<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:1.066978;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(100%,100%,100%);stroke-opacity:1;stroke-miterlimit:10;" d="M 0 144 L 324 144 L 324 0 L 0 0 Z M 0 144 "/>
<g clip-path="url(#clip1)" clip-rule="nonzero">
......
......@@ -223,7 +223,7 @@
<path d="M 40.070312 16 L 643.519531 16 L 643.519531 18 L 40.070312 18 Z M 40.070312 16 "/>
</clipPath>
</defs>
<g id="surface170">
<g id="surface13">
<rect x="0" y="0" width="648" height="288" style="fill:rgb(100%,100%,100%);fill-opacity:1;stroke:none;"/>
<rect x="0" y="0" width="648" height="288" style="fill:rgb(100%,100%,100%);fill-opacity:1;stroke:none;"/>
<path style="fill:none;stroke-width:1.066978;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(100%,100%,100%);stroke-opacity:1;stroke-miterlimit:10;" d="M 0 288 L 648 288 L 648 0 L 0 0 Z M 0 288 "/>
......
......@@ -340,7 +340,7 @@
<path d="M 633 24.695312 L 635 24.695312 L 635 256.929688 L 633 256.929688 Z M 633 24.695312 "/>
</clipPath>
</defs>
<g id="surface175">
<g id="surface18">
<rect x="0" y="0" width="648" height="288" style="fill:rgb(100%,100%,100%);fill-opacity:1;stroke:none;"/>
<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:1.066978;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(100%,100%,100%);stroke-opacity:1;stroke-miterlimit:10;" d="M 0 288 L 324 288 L 324 0 L 0 0 Z M 0 288 "/>
<g clip-path="url(#clip1)" clip-rule="nonzero">
......
......@@ -47,6 +47,4 @@ plugin_bars_old <- ggplot(data, aes(x = reorder(value,relative_perc), y = relati
scale_fill_manual(values = cols2) +
labs(x = "", y = "Percent") +
ggtitle("2017 Plugins ") + expand_limits(y=47) +
theme(legend.position = "none")
grid.arrange(plugin_bars,plugin_bars_old,ncol=2)
\ No newline at end of file
theme(legend.position = "none")
\ No newline at end of file
#d<-as_tibble(old_csv$Do.you.do.provisioning.) %>% filter(value != '') %>% mutate(value = value == "No") ; mean(d$value)
#d<-as_tibble(raw_csv$Do.you.do.provisioning.) %>% filter(value != '') %>% mutate(value = value == "No") ; mean(d$value)
# Do you provision?
d1 <- as_tibble(raw_csv$Do.you.do.provisioning.) %>%
filter(value != '') %>%
......@@ -16,11 +15,125 @@ d2 <- as_tibble(old_csv$Do.you.do.provisioning.) %>%
select(-n)
d <- rbind(d1,d2) %>% filter(value != "")
provisioning <- ggplot(d, aes(x = value, y = perc, fill = fct_relevel(year, '2017', '2018'))) +
provisioning <- ggplot(d, aes(x = fct_recode(value, 'Not Foreman' = 'Yes, but not through Foreman'),
y = perc,
fill = fct_relevel(year, '2017', '2018'))) +
geom_bar(stat = 'identity', position = 'dodge') +
labs(x = "", y = "Percent") +
ggtitle("Provisioning ") + expand_limits(y=47) +
ggtitle("Provisioning ") +
theme(legend.title = element_blank(),
legend.position = c(0.94,0.75),
legend.background = element_rect(size=0.5, linetype="solid", colour='black'),
plot.title = element_text(hjust = 1,margin = margin(b = -20)))
\ No newline at end of file
legend.position = c(0.17,0.8),
legend.background = element_rect(size=0.5, linetype="solid", colour='black'),
plot.title = element_text(hjust = 0,margin = margin(b = -20)))
# Do you use hammer?
d1 <- as_tibble(raw_csv$Do.you.use.the.Hammer.) %>%
filter(value != '') %>%
group_by(value) %>%
summarise(n=n()) %>%
mutate(perc = round((n / sum(n))*100,2), year = as.factor(2018)) %>%
select(-n)
d2 <- as_tibble(old_csv$Do.you.use.the.Hammer.) %>%
filter(value != '') %>%
group_by(value) %>%
summarise(n=n()) %>%
mutate(perc = round((n / sum(n))*100,2), year = as.factor(2017)) %>%
select(-n)
d <- rbind(d1,d2) %>% filter(value != "")
hammer <- ggplot(d, aes(x = value, y = perc, fill = fct_relevel(year, '2017', '2018'))) +
geom_bar(stat = 'identity', position = 'dodge') +
labs(x = "", y = "Percent") +
ggtitle(" Hammer") +
theme(legend.position = "none",
plot.title = element_text(hjust = 0,margin = margin(b = -20)))
# Do you use the Api?
d1 <- as.factor(unlist(strsplit(as.character(raw_csv$Do.you.use.the.Foreman.API.),split = ";"))) %>%
fct_collapse('v1' = 'Yes - API v1','v2' = 'Yes - API v2 (default if not specified)')
d1 <- as_tibble(d1) %>%
filter(value != '') %>%
group_by(value) %>%
summarise(n=n()) %>%
mutate(perc = round((n / sum(n))*100,2), year = as.factor(2018)) %>%
select(-n)
d2 <- as.factor(unlist(strsplit(as.character(old_csv$Do.you.use.the.Foreman.API.),split = ";"))) %>%
fct_collapse('v1' = 'Yes - API v1','v2' = 'Yes - API v2')
d2 <- as_tibble(d2) %>%
filter(value != '') %>%
group_by(value) %>%
summarise(n=n()) %>%
mutate(perc = round((n / sum(n))*100,2), year = as.factor(2017)) %>%
select(-n)
d <- rbind(d1,d2) %>% filter(value != "")
api <- ggplot(d, aes(x = value, y = perc, fill = fct_relevel(year, '2017', '2018'))) +
geom_bar(stat = 'identity', position = 'dodge') +
labs(x = "", y = "Percent") +
ggtitle(" API") +
theme(legend.position = "none",
plot.title = element_text(hjust = 0,margin = margin(b = -20)))
# Compute resources
data <- raw_csv$What.Compute.Resources..including.bare.metal..do.you.use.
data <- as.factor(unlist(strsplit(as.character(data),split = ";"))) %>%
fct_collapse('Proxmox'=c('Proxmox','proxmox','ProxmoxVE')) %>%
fct_lump(n=10)
data <- as_tibble(data) %>%
group_by(value) %>%
summarise(n=n()) %>%
arrange(desc(n)) %>%
mutate(relative_perc = round((n / max(n))*100,2) )
n <- sum(data$n)
other <- data[data$value=='Other',2]
data <- data %>% filter(value != 'Other')
cols <- rep(x = 'grey', length(data$value))
names(cols) <- data$value
compute_resources <- ggplot(data, aes(x = reorder(value,relative_perc),
y = relative_perc,
label = relative_perc,
fill = value)) +
geom_bar(stat = 'identity', position = 'dodge') + coord_flip() +
scale_fill_manual(values = cols) +
labs(x = "", y = "Percent") +
ggtitle(paste("2018 Compute Resources (",n," votes)",sep='')) +
theme(legend.position = "none") +
annotate(geom="text", x=1, y=80, label=paste("Other -",other,'votes'))
data_old <- old_csv$What.Compute.Resources..including.bare.metal..do.you.use.
data_old <- as.factor(unlist(strsplit(as.character(data_old),split = ";"))) %>%
fct_collapse('Hyper-V'=c('Hyper-V','Hyper-V.SC-VMM','HyperV'),
'Proxmox'=c('Proxmox','proxmox'),
'Libvirt'=c('Libvirt','libvirt (manual templates)')) %>%
fct_lump(n=10)
data_old <- as_tibble(data_old) %>%
group_by(value) %>%
summarise(n=n()) %>%
arrange(desc(n)) %>%
mutate(relative_perc = round((n / max(n))*100,2) )
n <- sum(data_old$n)
other <- data_old[data_old$value=='Other',2]
data_old <- data_old %>% filter(value != 'Other')
cols_old <- rep(x = 'grey', length(data_old$value))
names(cols_old) <- data_old$value
compute_resources_old <- ggplot(data_old, aes(x = reorder(value,relative_perc),
y = relative_perc,
label = relative_perc,
fill = value)) +
geom_bar(stat = 'identity', position = 'dodge') + coord_flip() +
scale_fill_manual(values = cols_old) +
labs(x = "", y = "Percent") +
ggtitle(paste("2017 Compute Resources (",n," votes)",sep='')) +
theme(legend.position = "none") +
annotate(geom="text", x=1, y=80, label=paste("Other -",other,'votes'))
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment