
In our first video, I welcome you to the world of Gitlab and there’s a very exciting journey ahead of us! I'll start by introducing myself and my background with Gitlab. Then I'll walk you through our Gitlab Journey by explaining what you'll learn in each section as well as what you need for this course and goals that I'm aiming for you to reach by the end of this course.
In order to have a good understanding of how Gitlab came to be, I want to talk to you about one of the most important concepts behind Gitlab's philosophy which is Concurrent DevOps and eventually how Gitlab became the go-to-tool for all things CI/CD…
So to do that, let’s first understand where the necessity of a tool like Gitlab comes from; what’s wrong with the tools we currently use?
In this lecture, let's have a look at the basics of Gitlab and understand its workflow from starting with an idea and eventually deploying your software to production.
It's time to get ourselves familiar with the Gitlab UI to learn how its structured and navigate our way around it.
In this lecture, we'll create our own Gitlab account to start working with it.
Now we have our Gitlab account, it's time to have a glance at the capabilities of our Gitlab user and the account.
In this lesson, we'll create ourselves an SSH key pair and share the public part with Gitlab to be able to push our code and sign our commits.
It's time to start working on our own project! In this lecture, we'll create our very first Gitlab project and then commit and push our first lines of code to it.
Now we have a project and pushed our code to it, it's time to explore what Gitlab projects can do for us and how to navigate our way around them.
In this lecture, I want to focus your attention to Continuous Integration (CI) and Continuous Delivery (CD) and how they fit into the Gitlab CI/CD workflow from pushing your code, deploying it to production and repeating everything in between continuously to develop and improve your software.
It's time get familiar with Gitlab Web IDE; a modern IDE based on Visual Studio Code.
Here we come to a very exciting part; it's time to implement our own .gitlab-ci.yml file for our project to enable Gitlab CI/CD!
As we implemented our .gitlab-ci.yml file, now let's switch over to Gitlab to find out how Gitlab visualises and runs our jobs in the CI/CD pipeline.
We've implemented and seen the Gitlab CI/CD in action. Now it's time to examine each and every line in our .gitlab-ci.yml file to understand how our stages and jobs came to be.
Knowing the capabilities of CI/CD with Gitlab is important to take full advantage of it. Let's see how we can configure and customise the CI/CD to our needs.
It's time to explore software development lifecycle capabilities of Gitlab. Here we start with Gitlab Groups, Subgroups and Projects.
Working in teams require access management and let's find out how we can manage user access and membership with Gitlab.
We work on issues as we implement our software and Gitlab has neat capabilities to support our work there too. Let's find out how we can work with issues and track them.
Branching and Merge requests are a must for any CI/CD tool and Gitlab is no exception. Let's find out about how we can branch out, create merge requests and conduct code reviews with Gitlab.
Every project has certain milestones to get to and Gitlab helps us manage them with Milestones.
You need to document your software or simply want to take notes? Easy with Wiki. And the same goes for small snippets of code with Code Snippets.
It's time to discover more ways to work with Gitlab CI/CD pipelines. Lectures in this section are mainly in two categories:
In the first one, we’ll start exploring how to work with packages in Gitlab
Then we’ll focus our attention to container registries and learn how we can work with containers in Gitlab
This will conclude our first category. In our second category, we’ll start diving into the world of Gitlab runners:
In the first lecture, we’ll develop a custom runner image
In the second lecture, we will learn how to integrate our custom runner image with our existing project
Then comes the Gitlab runners themselves..
In the following lecture, we’ll learn how to register ourselves a custom gitlab runner using an EC2 instance
And finally in the last lecture, we’ll integrate our custom runner with our existing project to customise everything related to runners in our pipeline!
Let's explore how we can push and host our packages in Gitlab with Package Registry.
Let's explore how we can push and host our Docker containers in Gitlab with Container Registry.
In our upcoming lectures, we will focus on custom Gitlab runners and custom images for these runners and learn how we can implement them.
Let's develop a custom Gitlab runner image to use with shared runners and projects pipelines.
Let's integrate the custom Gitlab runner image with projects pipelines.
In this lecture, let's register an AWS EC2 instance as a runner for our Gitlab project.
No let's integrate our AWS EC2-based runner as we as the custom runner image with our Gitlab project pipeline.
In this section, we’re going to continue our journey with more advanced capabilities that we can take advantage of.
In our first lecture, we'll learn how to integrate a Kubernetes cluster with our Gitlab project to continuously deploy software.
Next up is to learn how to take advantage of managed Terraform states with Gitlab.
Right after that, we'll discover and work with Gitlab API and Gitlab CLI respectively.
We'll also integrate Gitlab with Slack and see how to talk to Gitlab from Slack as well as get notified about changes in our project within Slack channels.
And finally, we'll explore the analytics capabilities of Gitlab to get insight into our projects.
In this lecture, we will learn how to integrate a Gitlab project with a Kubernetes cluster using kind, one of the most popular Kubernetes distributions for development but make no mistake; the way we integrate applies to any Kubernetes distribution so you can apply the same practices to Amazon EKS, Azure AKS, Google Kubernetes Engine and so forth.
Terraform has changed the game for infrastructure-as-code. Gitlab treats Terraform as a first-class citizen and provides us the backend capability where we can set Gitlab as an HTTP backend for Terraform to store our state. Let's find out how we can use Gitlab to store and manage our Terraform state.
There are more ways to work with Gitlab other than just the UI. Gitlab offers us an API that we can use to automate and interact with Gitlab.
In this section, we're going to explore the REST API from Gitlab and see how we can work with it.
In the previous lecture, we've explored the Gitlab REST API to make requests to Gitlab to retrieve projects, groups and more.
For those who prefer a CLI to do the same; meet glab or Gitlab CLI!
You can extend your Gitlab usage and capabilities by integrating external tools and services.
In this lecture, we're going to integrate Gitlab with Slack to manage a Gitlab project as well as to get notified about what's going with our project.
Gitlab provides out of the box analytics capabilities for projects. With this feature, you can get lots of insight into what's going on with your projects such as programming languages, commit statistics and more.
In this section, we will explore next steps in our Gitlab journey, starting with Gitlab documentation to find out how to navigate and find what we're looking for for everything related to Gitlab.
Learning never ends with Gitlab. And to support our learning needs, Gitlab offers a really nice experience with Gitlab Learn. Gitlab Learn offers us many trainings that are either self-paced or instructor-led to follow along and improve our Gitlab skills. You also have a chance to get certified with qualified trainings.
For any number of reasons, you might need to or want to run your own Gitlab and that's perfectly fine! In this lecture, let's find out about ways to install Gitlab on different environments.
For those who are looking to get more out of Gitlab and take advantage of extra capabilities, there are plans for teams of any size. Let's find out what those plans are how much you need to pay to elevate your Gitlab experience.
Our course is about to end but your journey to the world of Gitlab is just getting started!
Learn and experience the world of modern CI/CD with Gitlab!
**GitLab named a Leader in the 2023 Gartner Magic Quadrant for DevOps Platforms!**
It's no surprise that Gitlab is so popular among millions of developers and thousands of high-velocity teams around the world that want the best experience effortlessly and deliver their software to the world in an instant. Did you know Gitlab dot com alone has more than 30 million developers signed up? Not to mention those who run their own Gitlab...
In this course, you'll learn why developers and teams love Gitlab, build and continuously deliver great software to the users like you and me every day.
We'll start by exploring the world of Gitlab. I'll introduce myself and my experience over the years with Gitlab by actively using it. We'll then go ahead and explore the course section by section and what's in it for you. Then we'll see what you need to follow along with this course; a Gitlab account which I'll help you how to create, familiarity with git commands and a basic understanding of Docker. And make no mistake; I'll explain you at the every step of the way!
In Getting Started with Gitlab section, we'll start by creating our Gitlab account. Once our account is ready, we'll go ahead and explore our Gitlab account and it's features. Then we'll create an SSH key pair and configure Gitlab to trust this key to push our code and sign our commits with it. Time comes to creating a project and making our first commit to Gitlab! Once we learn how to do all that, we'll start exploring features of projects with Gitlab.
In Getting Started with Gitlab CI/CD section, we'll start by learning how Gitlab CI/CD works under the hood and how it helps us to quickly deliver our software to our users. We'll then explore and learn to work with Gitlab Web IDE; a modern IDE based on Visual Studio Code. Once we're familiar with the Web IDE, we'll implement our first Gitlab CI/CD pipeline with .gitlab-ci.yml. Then we'll explore our pipeline execution in Gitlab UI and I'll explain you every single line of code that we implemented for the pipeline. And finally, we'll explore the CI/CD settings for projects with Gitlab.
In Software Development Lifecycle with Gitlab section, we'll start by learning Projects, Groups, Subgroups. Then we'll learn how to manage user access for projects and groups. Now it's time to focus on project management capabilities with Gitlab using Issue Tracking and Milestones. Most importantly, we'll learn how to branch out, create merge requests and conduct code reviews with Gitlab. Finally, we'll learn how to use the Wiki feature to document our software and Code Snippets to store snippets of code in our projects.
In the first part of Advanced Topics with Gitlab CI/CD, we'll explore Gitlab package and container registries as well as the Gitlab Runner. We'll start by having a glance at the topics and the first up is Gitlab Package Registry. We'll learn how to push our packages to Gitlab Registry. Then we'll learn how to work with Gitlab Container Registry by building and pushing our docker images to it. Then we'll focus our attention to Gitlab Runners. We'll start by learning how to build our own Gitlab Runner images based on Docker. After pushing our image to Gitlab Container Registry, we'll integrate it with a project to use it. We won't stop there and we'll actually register our own custom runner by using an AWS EC2 instance. We'll tie everything together by integrating our customer runner that uses our custom runner image to customise everything in our Gitlab pipeline.
In the second part of Advanced Topics with Gitlab CI/CD, we'll explore more and more interesting topics that you can take advantage of, love and potentially use every single day!
We'll start by learning how to integrate a Kubernetes cluster with Gitlab and continuously deliver software with manifests in our Gitlab projects. Next up is to learn how to manage Terraform state with Gitlab; we'll see how easy it is to use Gitlab Terraform backend without any credentials!
Here we come to another exciting part; we'll learn how to take advantage of Gitlab API and Gitlab CLI or glab to further enhance our experience while working with Gitlab!
Next up is to learn how to integrate other tools with Gitlab and we'll integrate Slack to both talk to Gitlab from Slack channels as well as get notified in Slack when certain events happen in our projects. Finally, we'll explore project insights and analytics with Gitlab to learn, understand and have an insight into our projects in Gitlab.
In Getting More Out of Gitlab section, we'll learn more ways to elevate our Gitlab experience. We'll start by exploring the vast ocean of Gitlab documentation for every single topic about Gitlab. Then we'll learn Gitlab Learn which help your team get trained on curated content whether instructor-led or self-paced. We'll also explore certification possibilities for validating our Gitlab expertise even further. For those who are looking to run their own Gitlab instance for various reasons, we'll also explore various different ways of running and hosting our own Gitlab instance.
Finally, we'll explore Gitlab plans and pricing for teams for those who are looking to get more out of their Gitlab experience with more features.
These and much awaits you in this course! Whether you're just starting your journey to the world of Gitlab or a day-to-day user who is looking to learn new ways to get more out of Gitlab, join me in this course to learn from my near-decade Gitlab experience!