1-888-310-4540 (main) / 1-888-707-6150 (support) info@spkaa.com
Select Page

GitLab: Breaking the DevOps Daisy Chain

Breaking the DevOps Daisy Chain with GitLab featured image
Written by Carlos Almeida
Published on April 2, 2023

In this short video, we’re going to take a look at what a traditional DevOps stack looks like. And, what that means for teams to stand up a new project and get CICD working. Additionally, we’ll discover how that contrasts with GitLab and our vision for complete DevOps. 

We recommend watching the video for the best experience and to easily follow on screen references. alternatively, you can read the video transcript below.

DevOps vs New Projects

So, here we look at the legacy state set of tools that many enterprises use for DevOps. Firstly, let’s talk about a brand new project that’s getting started by a developer.  Initially, they’ll have code and start creating this new project. And of course, the developer is going to be uploading that to their source code source control management system. For example, GitHub Enterprise. So we’ll need a new project there.

Creating Access In New Projects

And, to ensure the right people are credentialed and have access to that project. Next. we might hand off that project to the infrastructure and DevOps team. They’re going to create a new channel in Slack to help with ideation. They’ll create a new project with the right credentials again, matched up in JIRA, so that we can manage the planning of this project. Then, they’ll create a new project or folder in Jenkins, making sure it has the right credentials to connect back to source control. Following on from that, in the DevOps side of the house, we might make a new project. Or, perhaps write prod files for Puppet and Chef to stand up environments for this. Furthermore, maybe we include those in source control, maybe we don’t. It depends on our processes. Then for production, we’re going to have to stand up a new instance. So, I have to spec that instance, let’s say an AWS or Nettie’s. But, it doesn’t stop there because I’ll have to create that instance and ensure the credentials that get all the way back are ready for that instance.  And then maybe create a new project in New Relic. For example to monitor that production instance. 

Completing The Project Setup

But then also, if we want to Dockerize and kind of take this into the cloud, we’re going to have to create a Dockerfile. And maybe a Docker Hub to store that, or have an artifact store like Nexus or Artifactory. Following on, we’re going to connect the build process into that channel in Slack we created. That means we can actually have build statuses visible by the developers. Then there’s artifacts, or those Docker images – we’re going to want to factor those into our Puppet and CHEF scripts.

Now, we’re also going to want to focus on code quality. So, probably at build time, Jenkins will push code quality metrics to Sonar. Then we might want to connect that again back to Slack to understand how code quality is changing as we make changes. And then, you know, we’re going to want to again put the monitoring in the Slack so production issues are clearly noted back to developers.

The Overarching Challenge 

So this is, approximately 20-plus steps to set up, connect and wire together this brittle architecture. And, in many organizations, this can take a long period of time. 

And, it could involve multiple roles. For example, if someone manages JIRA, someone manages source control, someone else makes Jenkins and someone else manages production environments. Now we’re talking about multiple roles involved. And, they’re shared time, and you know when their availability is to stand up something new.

Utilizing GitLab For Project Configuration

So this contrasts with GitLab in a mature state, GitLab controls everything about our software delivery pipeline, and maybe it’s still connected to Slack because we want to do some chat ops. But, the developed code goes right into GitLab. From there, GitLab automatically detects what kind of it is builds it. And, it automatically:

  • Uses Heroku build packs for testing and code quality.
  • Dockerise’s the app for us.
  • Deploys it into a Kubernetes cluster with auto review apps and auto deploy. And, because it’s deployed in Kubernetes and we have prometheus baked in the gate lab were automatically monitoring that code. From day one. 

So, in this way developers are able to deliver code faster to production. And it cuts out that brittle house of cards traditional DevOps stack.

Ready To Break Your DevOps Daisy Chain?

If you would like support with GitLab, or breaking your DevOps daisy chain, contact our team here. We’ve been in business for over 20 years and supported DevOps teams globally to adopt more efficient ways of working,

Latest White Papers

The Next Chapter of Jira Service Management

The Next Chapter of Jira Service Management

The service industry is only becoming more competitive as the years pass, making efficient delivery vital to success. Development and Operations teams need to work together to deliver aid and Jira Service Management can help achieve this. Explore the future of Jira...

Related Resources

Exploring Modern Software Deployment Strategies

Exploring Modern Software Deployment Strategies

Deploying software can feel like a gamble due to all the strategies and solutions on the market, but it doesn’t have to be. Discovering which software deployment strategy works best for your organization is a great place to start. This strategy, combined with a modern...

Automatically Visualizing Dependencies in Codebeamer

Automatically Visualizing Dependencies in Codebeamer

If you work in the software and systems engineering space, you likely understand that managing dependencies across multiple components and requirements is critical for project success. Unfortunately, specifications can be difficult to track, and dependencies hard to...