4 - GitLab Architecture
- back to GitLab CICD - Nana course
2 - GitLab Executors
- Shell Executor
- 👍 simplest one, but with a lot of cons
- 👎 no clean build environment
- 👎 maintenance burden
- Docker Executor
- 👍 commands executed inside a container
- 👍 jobs are isolated
- 👎 maintenance burden
- Virtual Machine
- only makes sense if you're completely unable to use Docker
- 👍 isolated environment
- 👎 overhead to instantiate a new job environment
- Kubernetes Executor
- only makes sense if you have a kubernetes cluster
- 👍 high availability setup
- 👍 isolated environment (new Pod for each job)
- Docker Machine Executor
- ⚠️ Docker Machine has been deprecated by Docker
3 - Job Execution Flow
- GitLab Server
- GitLab Runner
- Executor
- Runner requests new jobs from GitLab Server
- Runner compiles and sends job's payload to Executor
- Executor clones sources or downloads artifacts from GitLab instance and executes the job
- Executor returns job output and status to the Runner
- Runner updates job output and status to GitLab Server
4 - Docker Executor
-
Scope of Runners:
- Shared runners: available to all groups and projects in a GitLab instance
- Group runners: available to all projects in a group
- Specific runners: associated with a specific project
-
AWS Pre-Requisite - Useful lecture for me to get used with AWS web interface.