{"id":131,"date":"2016-06-15T12:46:13","date_gmt":"2016-06-15T12:46:13","guid":{"rendered":"http:\/\/redmonk.com\/fryan\/?p=131"},"modified":"2016-07-26T17:57:18","modified_gmt":"2016-07-26T17:57:18","slug":"ci-the-cloud-native-on-ramp-and-the-dominance-of-jenkins","status":"publish","type":"post","link":"https:\/\/redmonk.com\/fryan\/2016\/06\/15\/ci-the-cloud-native-on-ramp-and-the-dominance-of-jenkins\/","title":{"rendered":"CI: The Cloud Native On Ramp and The Dominance of Jenkins"},"content":{"rendered":"<p><strong>TL; DR<\/strong> \u2013 If you are trying to modernise your development practices, or go cloud native, without CI\/CD you are doing it wrong<\/p>\n<p>Possibly the most frequent piece of advice I have given over the last number of years has been for development organisations to get a continuous integration (CI) system into place. It is closely followed by looking at your deployment pipeline, but without, at least, the CI building block there is pretty much nothing else a development organisation is going to do to become more productive that will have even moderate longer term success.<\/p>\n<p>When it comes to the world of cloud native having a CI\/CD pipeline in place is basic table stakes. This was very aptly summed up recently by <a href=\"http:\/\/twitter.com\/kelseyhightower\">Kelsey Hightower<\/a>\u00a0from\u00a0Google when he said:<\/p>\n<blockquote class=\"twitter-tweet\" data-width=\"500\" data-dnt=\"true\">\n<p lang=\"en\" dir=\"ltr\">If you don&#39;t have a CI system capable of building your application, then Kubernetes is the least of your problems. Focus on CI first.<\/p>\n<p>&mdash; Kelsey Hightower (@kelseyhightower) <a href=\"https:\/\/twitter.com\/kelseyhightower\/status\/741308546248118272?ref_src=twsrc%5Etfw\">June 10, 2016<\/a><\/p><\/blockquote>\n<p><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n<h2>Jenkins, Jenkins, Jenkins<\/h2>\n<p>The undoubted leader in the CI world is <a href=\"https:\/\/www.cloudbees.com\/jenkins\/about\">Jenkins<\/a>. It is by far the most common tool that we hear about in discussions, and the level of activity and interest on both Stackoverflow and github only goes to confirm this.<\/p>\n<p><a href=\"http:\/\/redmonk.com\/fryan\/files\/2016\/06\/ci-jenkins-so.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-132\" src=\"http:\/\/redmonk.com\/fryan\/files\/2016\/06\/ci-jenkins-so.jpg\" alt=\"ci-jenkins-so\" width=\"550\" height=\"274\" srcset=\"https:\/\/redmonk.com\/fryan\/files\/2016\/06\/ci-jenkins-so.jpg 550w, https:\/\/redmonk.com\/fryan\/files\/2016\/06\/ci-jenkins-so-300x149.jpg 300w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/redmonk.com\/fryan\/files\/2016\/06\/jenkins-stars.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-133\" src=\"http:\/\/redmonk.com\/fryan\/files\/2016\/06\/jenkins-stars.jpg\" alt=\"jenkins-stars\" width=\"550\" height=\"274\" srcset=\"https:\/\/redmonk.com\/fryan\/files\/2016\/06\/jenkins-stars.jpg 550w, https:\/\/redmonk.com\/fryan\/files\/2016\/06\/jenkins-stars-300x149.jpg 300w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><\/a><\/p>\n<p>Comparing the discussions on Jenkins to the other major CI systems people mention in our conversations we see just how much of lead it has.<\/p>\n<p><a href=\"http:\/\/redmonk.com\/fryan\/files\/2016\/06\/ci-jenkins-v-everyone-so.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-134\" src=\"http:\/\/redmonk.com\/fryan\/files\/2016\/06\/ci-jenkins-v-everyone-so.jpg\" alt=\"ci-jenkins-v-everyone-so\" width=\"550\" height=\"274\" srcset=\"https:\/\/redmonk.com\/fryan\/files\/2016\/06\/ci-jenkins-v-everyone-so.jpg 550w, https:\/\/redmonk.com\/fryan\/files\/2016\/06\/ci-jenkins-v-everyone-so-300x149.jpg 300w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/redmonk.com\/fryan\/files\/2016\/06\/ci-jenkins-v-bamboo-so.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-135\" src=\"http:\/\/redmonk.com\/fryan\/files\/2016\/06\/ci-jenkins-v-bamboo-so.jpg\" alt=\"ci-jenkins-v-bamboo-so\" width=\"550\" height=\"274\" srcset=\"https:\/\/redmonk.com\/fryan\/files\/2016\/06\/ci-jenkins-v-bamboo-so.jpg 550w, https:\/\/redmonk.com\/fryan\/files\/2016\/06\/ci-jenkins-v-bamboo-so-300x149.jpg 300w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/redmonk.com\/fryan\/files\/2016\/06\/ci-jenkins-v-hudson-so.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-136\" src=\"http:\/\/redmonk.com\/fryan\/files\/2016\/06\/ci-jenkins-v-hudson-so.jpg\" alt=\"ci-jenkins-v-hudson-so\" width=\"550\" height=\"274\" srcset=\"https:\/\/redmonk.com\/fryan\/files\/2016\/06\/ci-jenkins-v-hudson-so.jpg 550w, https:\/\/redmonk.com\/fryan\/files\/2016\/06\/ci-jenkins-v-hudson-so-300x149.jpg 300w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h2>The New World, Pipelines and a Container Focus<\/h2>\n<p>With the advent of containers, we have seen a number of companies emerge providing CI\/CD pipelines, along with various pieces of tooling and approaches to automate the workflow.<\/p>\n<p>Companies and offerings operating in this space broadly fit into two categories, those that are focused almost exclusively on containers and a pipeline for that ecosystem (e.g. <a href=\"http:\/\/wercker.com\">Wercker<\/a>, <a href=\"https:\/\/app.shippable.com\/\">Shippable<\/a>, <a href=\"http:\/\/codeship.com\">Codeship<\/a> and <a href=\"https:\/\/semaphoreci.com\/\">Semaphore<\/a>), and those that are looking at multiple output formats (e.g <a href=\"https:\/\/travis-ci.com\/\">TravisCI<\/a>, <a href=\"http:\/\/circleci.com\">CircleCI<\/a>), sometimes in conjunction with another system such as jFrog for managing the build output binaries\/artifacts.<\/p>\n<h2>Spinnaker and Concourse<\/h2>\n<p>For more mature users of CI\/CD two projects that are of interest are <a href=\"http:\/\/www.spinnaker.io\/\">Spinnaker<\/a> and <a href=\"https:\/\/concourse.ci\/\">Concourse<\/a>.<\/p>\n<p><a href=\"http:\/\/www.spinnaker.io\/\">Spinnaker<\/a> is a multi-cloud deployment system developed by Netflix. Now it is fair to say that spinnaker is not for the faint of heart given the complex set up requirements, and as a project for general usage it is still evolving. However, as with many pieces of software from Netflix, it solves a lot of the deployment problems that companies have at scale.<\/p>\n<p><a href=\"https:\/\/concourse.ci\/\">Concourse<\/a> is an all new CI\/CD pipeline tool being developed by Pivotal, and it has a stated goal of reducing the number of moving parts in the pipeline to a minimum so you have a clear and predictable way in which software moves through the pipeline. This is very much in keeping with the overall opionated approach that the <a href=\"http:\/\/cloudfoundry.org\">Cloud Foundry<\/a> community takes to software, and if you are already bought into Cloud Foundry, Concourse may be interest you. It will be interesting to see the usage patterns across the wider software development community, but there are definitely attractions in the simplicity of the approach.<\/p>\n<p>Both projects are seeing reasonable levels of interest on Github, and we expect to see both evolve overtime, with Concourse in particular coming into play in the Cloud Foundry world due to its background at Pivotal.<\/p>\n<p><a href=\"http:\/\/redmonk.com\/fryan\/files\/2016\/06\/spinnaker-concourse-stars.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-137\" src=\"http:\/\/redmonk.com\/fryan\/files\/2016\/06\/spinnaker-concourse-stars.jpg\" alt=\"spinnaker-concourse-stars\" width=\"550\" height=\"292\" srcset=\"https:\/\/redmonk.com\/fryan\/files\/2016\/06\/spinnaker-concourse-stars.jpg 550w, https:\/\/redmonk.com\/fryan\/files\/2016\/06\/spinnaker-concourse-stars-300x159.jpg 300w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><\/a><\/p>\n<h2>Pipelines, Pipelines and Jenkins<\/h2>\n<p>The importance of pipelines has obviously been recognised by <a href=\"http:\/\/cloudbees.com\">Cloudbees<\/a>, the main company behind Jenkins with their <a href=\"https:\/\/jenkins.io\/blog\/2016\/05\/26\/introducing-blue-ocean\/\">Blue Ocean project <\/a>announced last month. This is a very early stage effort, but again we are already seeing a significant level of interest.<\/p>\n<p><a href=\"http:\/\/redmonk.com\/fryan\/files\/2016\/06\/jenkins-blueocean-stars.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-138\" src=\"http:\/\/redmonk.com\/fryan\/files\/2016\/06\/jenkins-blueocean-stars.jpg\" alt=\"jenkins-blueocean-stars\" width=\"550\" height=\"292\" srcset=\"https:\/\/redmonk.com\/fryan\/files\/2016\/06\/jenkins-blueocean-stars.jpg 550w, https:\/\/redmonk.com\/fryan\/files\/2016\/06\/jenkins-blueocean-stars-300x159.jpg 300w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><\/a><\/p>\n<h2>A Single Thread of Advice?<\/h2>\n<p>No matter what tools you are going to choose though, there is one single point to take away. If you are a development organization that wants to be more agile, get your CI\/CD pipeline in order. It does not matter how many cool new technologies you throw at things, if this part of the puzzle is not in place, you are setting yourself up to fail.<\/p>\n<p><strong>Disclaimers<\/strong>: Pivotal, Atlassian (Bamboo), Oracle (Hudson) are current RedMonk clients.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>TL; DR \u2013 If you are trying to modernise your development practices, or go cloud native, without CI\/CD you are doing it wrong Possibly the most frequent piece of advice I have given over the last number of years has been for development organisations to get a continuous integration (CI) system into place. It is<\/p>\n","protected":false},"author":40,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[20,27,30,2,31,15,9,17,3,25],"tags":[],"class_list":["post-131","post","type-post","status-publish","format-standard","hentry","category-cio","category-cloud","category-cloud-foundry","category-containers","category-cto","category-developers","category-devops","category-infrastructure","category-orchestration","category-strategy"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/redmonk.com\/fryan\/wp-json\/wp\/v2\/posts\/131","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/redmonk.com\/fryan\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/redmonk.com\/fryan\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/redmonk.com\/fryan\/wp-json\/wp\/v2\/users\/40"}],"replies":[{"embeddable":true,"href":"https:\/\/redmonk.com\/fryan\/wp-json\/wp\/v2\/comments?post=131"}],"version-history":[{"count":0,"href":"https:\/\/redmonk.com\/fryan\/wp-json\/wp\/v2\/posts\/131\/revisions"}],"wp:attachment":[{"href":"https:\/\/redmonk.com\/fryan\/wp-json\/wp\/v2\/media?parent=131"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/redmonk.com\/fryan\/wp-json\/wp\/v2\/categories?post=131"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/redmonk.com\/fryan\/wp-json\/wp\/v2\/tags?post=131"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}