The Case for Gitlab

Happy Wednesday, Jira Guys and Gals. I hope your week has been a great one so far. Before I get into it, I want to thank everyone for the support you have shown me over the past week. Whether it’s partners reaching out with Job offers and sponsorship proposals, readers celebrating, or even Atlassian’s social media & learning team showing their support, I’ve felt the love.  

So, what are we talking about today? This weekend, I dove in and started bringing a Raspberry Pi Kubernetes cluster online. It’s smaller than I’d hoped – with the chip shortage, finding new Raspberry Pi systems is hit or miss. But it at least lets me get the Ansible roles and playbooks debugged and in place ahead of time. One of the things I plan to use this for is a Bitbucket Pipeline runner. However, this was the image I shared:

So what’s going on here? Am I using Bitbucket or Gitlab? Because that is my Ansible playbook running on Gitlab. Why would I dare use something non-Atlassian? Am I not The Jira Guy? And will I ever share my custom ansible roles for Confluence and Jira?  

Hold off, one at a time. Let’s dig into this and show what tools I’m using and how I’m using them.

What is my Git Repo situation?

So, yes. I use Gitlab and even prefer it as an “On-Prem” solution. This choice is because, unlike Bitbucket Cloud, Bitbucket Server/DC doesn’t include pipelines. If you want to build automatically with Bitbucket Server, you need to use Bamboo – which is even more resources I need to allocate on my admittedly limited local servers.

That being said, I love the “pipeline” concept. Let me define how I build my project in code alongside my code. If I need to update, I branch my code, update what I need to, and issue a PR to get those changes into my main branch.

Another benefit of Pipelines is because it runs on Docker containers, you can change your build environment without impacting your other builds. Need that new version of Python? While you have a fair bit of work in code updates, your build environment is easy to update.

Never put your eggs into one basket.

That being said, I hope some of you caught the “On-Prem” part above. Yes, I use Gitlab. I also use Bitbucket Cloud to store the same code. Some of it is even stored yet again in Github. So, what gives?

This arrangement goes back to what I say: always have a plan B. Let’s say I was only running Gitlab. Yes, I take regular backups, but to be 100% honest, I don’t test my backups for my tools as much as I should. The backups could be bad, which means if something happens to my Gitlab instance, there goes all my code and the work it represents.

Unfortunately, I’m not talking hypotheticals here. This situation has happened before. And yes, I lost almost everything I didn’t have on a local repo.  

Since then, I’ve started syncing selected repos to Bitbucket Cloud. This sync is fairly easy to set up in GitLab and works great. I even send some code that I want to share to Github. My general rule of thumb: If I want it to be private by default, it goes to Bitbucket. If I want it public by default, it goes to Github.  

Atlassian Open DevOps

The background to all of this is Atlassian’s new “Open DevOps” initiative. What’s that? It’s a design philosophy built around Jira but boils down to “Use the tools you want.” This way of thinking means Atlassian tools have integrations with almost anything you can imagine.   

The idea is that the project team can figure out what works best for them. It shouldn’t be up to Atlassian to tell us what we can and can’t use. Do we want to use Jira with Gitlab instead of Bitbucket? Yeah. Do you want to add Snyk for security auditing? Sure! Are we monitoring with Datadog or New Relic? No matter which we choose, bring it on!

So, with so much choice, how do we define what works for us? Atlassian has a pretty good tool for showing what the options are.

So, do you want source code management tools? Click the checkbox on the side and see what your options are. This is brilliant for showing you what you can choose from, but it will still be on you to figure out what’s the best of your options, which comes down to good old-fashioned experience and research.  

What’s in my toolchain

So, obviously, my project management tool of choice is Jira. Not only is it literally in my name, but It’s also the most flexible tool I’ve used for the purpose. I can use it to define any sort of project, from accounting to chores. 

That being said, as of late, I’ve been using Jira Cloud for my instance. Are you surprised? Well, I’ve said it often, it’s where the new toys are. I still manage Jira Data Center for work (for at least another week), and I still feel some people will continue to need to keep data “On-Prem.” But I’ve also recently shrunk my server footprint at home, so I can only run so many VMs. Jira Cloud is the best solution at home because I don’t have the infrastructure to install Jira locally—a right fit for each tool. 

Code management: I’ve use Gitlab as my primary, with Bitbucket Cloud as a backup site. This decision comes down to the mirroring and speed. Bitbucket Cloud no longer offers mirroring without a custom pipeline, whereas this is a built-in feature in Gitlab. However, the GitLab feature only works for push without paying for a license. So I push my code to GitLab, which is then pushed in turn to Bitbucket Cloud.

However, all my builds are done locally on GitLab. First, most of my systems are local, and I want to avoid opening them up to the Internet to be able to use Bitbucket Pipelines. I still need to learn how Bitbucket’s local runners impact this, but I know GitLab runners never touch the cloud, so I can run as many as I want for as long as I want.

For monitoring, I still prefer Datadog. It is still one of the better tools I’ve used. The thing I love about it over something like Grafana is that it just works. The queries are easy to generate and turn into graphs. Don’t get me wrong, I still love the diverse ways Grafana can display the data, but getting it to that point is so much more work.  

What do you think?

Are you using an unusual combination of Tools? What are your choices, both Atlassian and otherwise? I want to hear from you.

Remember you can find my social media links on my Linktree. Be sure to follow, like, comment, and share my posts – it helps out immensely. Also, If you’d like to support me in writing this blog, consider signing up for my Patreon. Last week, I put out a post asking people what sort of rewards they would want, and this week, I’ll be putting out a poll to let Patreons choose an article for September!

Also, remember to join me and Alex tomorrow for The Jira Life. We record each Thursday at 5 PM Eastern/2 PM Pacific. Last week, we talked about Classroom Licensing for Atlassian tools and how Atlassian TAMs are rebranding. What will come up this week? Tune in to find out!

But until next time, my name is Rodney, asking, “Have you updated your Jira issues today?”

1 Comment

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.