From 7c7febab420ff81cd998bd75740af61fbb166c37 Mon Sep 17 00:00:00 2001 From: Drew Short Date: Tue, 14 Jan 2020 21:22:00 -0600 Subject: [PATCH] Adding Choosing a CI/CD System post --- .../2019-12-25-choosing-a-source-control.md | 5 ++- .../2020-01-14-choosing-a-ci-cd-system.md | 33 ++++++++++++++++++ .../concourse_main_page.jpg | Bin 0 -> 138611 bytes 3 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 content/posts/2020-01-14-choosing-a-ci-cd-system.md create mode 100644 static/img/posts/2020-01-14-choosing-a-ci-cd-system/concourse_main_page.jpg diff --git a/content/posts/2019-12-25-choosing-a-source-control.md b/content/posts/2019-12-25-choosing-a-source-control.md index c0f9b6f..f8ac322 100644 --- a/content/posts/2019-12-25-choosing-a-source-control.md +++ b/content/posts/2019-12-25-choosing-a-source-control.md @@ -7,6 +7,7 @@ tags: - "source control" categories: - "guide" +nextPost: "posts/2020-01-14-choosing-a-ci-cd-system.md" --- Over the last 10 years I've used a handful of source control systems, however the world seems to mostly have converged on git as the source control system of choice for open source projects. It's also the source control system that I'm most familiar with, so it's the system I'll focus on. @@ -149,4 +150,6 @@ With this we expose the http endpoint for an ACME certificate provider, and redi With these two configurations in place, Gitea can be brought up and the service can be accessed publicly on the server. -![Gitea Main Page](/img/posts/2019-12-25-choosing-a-source-control/gitea_main_page.jpg) \ No newline at end of file +![Gitea Main Page](/img/posts/2019-12-25-choosing-a-source-control/gitea_main_page.jpg) + +␀ \ No newline at end of file diff --git a/content/posts/2020-01-14-choosing-a-ci-cd-system.md b/content/posts/2020-01-14-choosing-a-ci-cd-system.md new file mode 100644 index 0000000..3850e00 --- /dev/null +++ b/content/posts/2020-01-14-choosing-a-ci-cd-system.md @@ -0,0 +1,33 @@ +--- +title: "Choosing a CI/CD System" +date: 2020-01-14T17:00:56-06:00 +draft: false +tags: + - "guide" + - "ci/cd" +categories: + - "guide" +previousPost: "posts/2019-12-25-choosing-a-source-control.md" +--- +Once a source control system was decided on and stood up. The next logical step for me was to identify a continuous integration and delivery platform to pair with it. On the home-lab I use the combination of GitLab and the integrated CI/CD system in the suite. With this new environment I wanted to put all the pieces together myself so that the amount of magic was at a minimum. Here are the following CI/CD systems I read about and evaluated. + +- [Jenkins](https://jenkins.io/) + - Jenkins is the one I'm most familiar with, as I use it daily at work. Jenkins is old, but well loved and highly extensible. +- [Drone](https://drone.io/) + - Drone seems seems to take a log of cues from CircleCI, TravisCI and the GitLab CI. The configuration pipelines are similar to the pipelines I've written for my local home-lab GitLab instance. In my reading, Drone seems to not handle scaling well, and had some weird limitations (like a repository could only have a single pipeline, meaning all potential pipelines for a repository need to be baked into that one resource). +- [Concourse](https://concourse-ci.org/) + - Concourse isn't exactly a CI system, even though it is positioning itself as one. Rather Concourse is a do things system based on the concept that all actions happen in containers and share information between steps via resources. It seems to have playbooks that allow it's usage as a CI, but there's a decent amount of configuration that's needed before it can reach feature parity with the dedicated CI/CD systems. The community is fairly active and there are a decent number of third party resources to interact with external systems. + +My criteria was software that I could self host and maintain. The software also had to be something that didn't hide the internals from me and would be flexible enough to work for the foreseeable future. + +I have a particular love for Jenkins, and I almost went with it. The Blue Ocean UI is quite beautiful and functional and the jenkinsfile plugin allows for very similar behavior to my existing GitLab setup. However Jenkins is a nightmare for stability and security, and as a one man shop maintaining it could become a full time job. Ultimately Jenkins wasn't going to tick the easily maintainable box. + +Drone looked really interesting as the model it used was even more familiar to me. I ran a drone CI for awhile and I enjoyed interacting with it. However I ultimately moved away from Drone as it just wasn't scratching my itch and I sometimes found myself fighting to configure it to do what I wanted. I'm certain that if I had stuck with Drone, that it would've met most of my CI/CD needs and that would be good enough. + +Ultimately I settled on Concourse, the "Do Things With Containers" approach really appealed to me and it seemed like a reasonable decision for a piece of infrastructure that might pull double duty within my system. The ability to have multiple pipelines based on a resource also seemed like something that might be advantageous, perhaps breaking the testing, build, publishing and deployment steps into separate pipelines with some sort of semaphore or messaging system between it. As it is, I'm not sure if that's what I'll do, but we'll revisit it in the future after I've been using the setup for a reasonable amount of time. + +This is my current Concourse landing page. I've moved a decent number of jobs over to it, ranging from docker image builds through a TypeScript bot for my matrix server. + +![Concourse Main Page](/img/posts/2020-01-14-choosing-a-ci-cd-system/concourse_main_page.jpg) + +␀ \ No newline at end of file diff --git a/static/img/posts/2020-01-14-choosing-a-ci-cd-system/concourse_main_page.jpg b/static/img/posts/2020-01-14-choosing-a-ci-cd-system/concourse_main_page.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d5f0528809863998d9f2e77fea7d41b874a35291 GIT binary patch literal 138611 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 z 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 literal 0 HcmV?d00001