Hi guys, how are you? I hope you’re all doing just fine!
Today we are here to talk about Continuous Delivery.
This will be a five part article, in which we’ll discuss:
- What is Continuous Delivery and why is that important?
- What are the available tools and how to choose one?
- Spinnaker: I want to sail in this one!
- Jenkins X: New way to look the good old Jenkins
- Concourse CI: New guy in town
I really hope you find this series useful, and if you do, please leave a comment or DM me on LinkedIn.
In this series I’ll talk about 3 tools that I consider a great place to start your studies. There are a lot more on the market, but I'd rather check this ones first.
I’ll also list a few positive and negative points about each tool. I’d really appreciate if you guys comment down below what are your thoughts.
After this article, The next three ones will be more technical, showing how to install it and a little demo with them.
Spinnaker, the oldest
Spinnaker was first released in May, 2017. And it has been an amazing option since. It has a lot of integrations, like Gitlab, Bitbucket, Jenkins, Kubernetes and others.
The development is sustained by Netflix, and you can check the source code here. Spinnaker is a multi-cloud continuous delivery platform with 2 core concepts:
Spinnaker really makes it easy when it comes to Application Management and Application Development. Although it could be a little tough in the beginning, as soon as you get used to the agnostic nomenclature things will run much smoother.
- easy to manage multiple application on different environments
- easy to create pipelines of deployment
- has a log control of who did what
- has a lot of integrations
- canary deployment and other cool strategies
- it is very hard to troubleshoot or identify where the problem is, because Spinnaker has a lot of services in it
- hard to setup and scary to upgrade
- documentation is not that great
- has a problem with different kubernetes versions
To sum up, it is an awesome tool, it has been for a long time with us and the community behind is supportive. You may want to take a closer look in part three of this series or if you are into Chaos Engineering, because Spinnaker has a native integration with the Simian Army.
Jenkins X, A new face to the good old Jenkins
JenkinsX is a CI/CD tool made for Kubernetes. The core of JenkinsX is built upon the good old Jenkins. You do not install Jenkins, but most of the plugins associated with Jenkins to make a container pipeline are already build in JenkinsX.
This tool was developed by Cloudbees with the aim to work better with Docker and Kubernetes applications and to integrate with Git and Configuration as a Code Tools.
Since DevOps is already taking over the infrastructure industry Jenkins X has a lot of potential and I see it in a good spot for your studies. There are some pros and cons that I'd like to show you
- natively integrated with microservice architecture
- easy to deploy on any k8s cluster
- automated ci and cd
- if your application is not yet on containers, you cannot use it
- it's new, it's buggy
- documentation is quite oversimplified
I'm really looking forward to part 4 of this series, in which we'll discuss more about Jenkins X capabilities and potential. As well some little demo.
Concourse CI, the new one
Concourse CI is a new tool that was developed in 2014. The main objective of this tool is to build a new way of thinking about pipelines. It was built upon containers so it has a lot of potential dealing with them, specially in the resources type.
I've studied a little about it, but so far I was able to identify those points:
- highly scalable
- works so well with containers
- flexible pipelines
- easy to write Yaml(although I must say it's a new paradigm to those used to Jenkins)
- reusable pipelines
- the workers are a little buggy
- the fly command line is not that intuitive
- hard to understand some concepts(like jobs and resources)
Well, I'll get into further details in each tool mentioned in this article on the next three articles.
Stay tuned for more. See ya!