• Downloading from our site will require you to have a paid membership. Upgrade to a Premium Membership from 10$ a month today!

    Dont forget read our Rules! Also anyone caught Sharing this content will be banned. By using this site you are agreeing to our rules so read them. Saying I did not know is simply not an excuse! You have been warned.

Gitab CI cơ chế hoạt động thế nào và làm sao để tăng tốc

Khái niệm CI/CD không còn xa lạ, khi đã xong hoàn tất, việc kiểm tra code trở thành nhu cầu thiết yếu với mọi người project. Lập trình viên có thể sử dụng Travis, Jenkin, Gitlab CI, hỗ trợ cho quá trình học tập

%2BGitab-CI-co-che-hoat-dong-the-nao-lam-sao-de-tang-toc-do.png


Hôm nay, chúng tôi xin giới thiệu về Gitlab CI, nền tảng hoạt động nó như thế nào, cùng là một vài tuỳ chỉnh giúp tốc độ xử lý của nó nhanh hơn và tối ưu tích hợp luôn

Xem thêm: viết phần mềm

Nền tảng Gitlab CI hoạt động thế nào

Xem thêm:
ngôn ngữ lập trình web

Để Gitlab công nhận repository cần ứng ụng CI, cần khi báo 1 file .gitlab-ci.yml nằm ở thư mục gốc. File này phải được đặt đúng tên và có định dạng hợp lệ, khi ấy gitlab mới xác định và áp dụng CI cho repository của bạn.


Xem thêm: lập trình website

Bất cứ khi nào bạn commit gì đó lên repository , GitLab sẽ tìm kiếm file .gitlab-ci.yml và bắt đầu công việc trên Runners theo những nhiệm vụ được định nghĩa trên file ".yml". Nội dung file gồm những section, lệnh thực thi, biến, ... mà bạn muốn thực hiện trong quá trình triển khai.

Lưu ý rằng: ".gitlab-ci.yml" là một tệp YAML vì vậy bạn cần chú ý đến thụt đầu dòng. Luôn sử dụng dấu cách, không phải tab.

Gitlab runner

Các nhiệm vụ được định nghĩa trong tệp ".gitlab-ci.yml" nhưng để thực hiện chúng cần tới Gitlab runner

Runner có thể là một chương trình, 1 container, nó thực thi những câu lệnh và báo kết quả trả về cho gitlab. Runner có nhiều loại, phân biệt dựa vào executor. Khi khởi tạo runner, việc chọn executor nào sẽ quyết định môi trường thực thi các câu lệnh trong file yml kể trên.

Để liên kết runner với gitlab, cần thực hiện đăng ký với mỗi repository áp dụng CI, token được lấy tại Settings ➔ CI / CD trong từng repo

Sau khi đăng ký thành công, runner sẽ thực hiện các câu lệnh được khai báo thành các pipeline, trong đó gồm các jobs được định nghĩa trong tệp ".gitlab-ci.yml

Tăng tốc việc thực thi

Quá trình biên dịch , xử lý, test, ... có thể mất hàng chục phút để hoàn thành, thậm chí hàng giờ, một số cấu hình dưới đây sẽ giúp rút ngắn thời gian đó.

1. Cài đặt Gitlab Local

Thay vì quản lý và triển khai dự án trên gitlab global, bạn có thể cài đặt gitlab và gitlab runner trên local. Cụ thể bạn có thể sử dụng docker cho quá trình đó, nó sẽ giúp việc thực hiện nhanh hơn do sử dụng tài nguyên trên chính các máy chủ của bạn.

2. Sử dụng trình điều khiển overlay2

Theo mặc định, khi sử dụng docker: dind, Docker sử dụng trình điều khiển vfs trên mọi lần chạy. Thay vào đó, sử dụng trình điều khiển overlay2 sẽ giúp quá trình thực thi nhanh hơn, việc cấu hình cũng rất đơn giản, dễ dàng khai báo trong tệp ".gitlab-ci.yml"

3. Tối ưu hóa source code

Thay vì sử dụng quá nhiều cài đặt phụ thuộc, hay biên dịch lại Dockerfile mỗi lần thực thi, bạn có thể tối ưu việc cài đặt thêm những thư viện trong quá trình biên dịch, hoặc sử dụng cache cho việc build docker image nhằm rút ngắn thời gian.

4. Sử dụng các job song song thay vì lần lượt các job

Điều đó thực sự hữu ích với các công việc có thể độc lập thực hiện mà không phải chờ kết quả của công việc khác

5. Hạn chế chia câu lệnh ra quá nhiều job

Bởi, trước mỗi job thực hiện sẽ có khoảng thời gian pending cho việc đó. Chính vì vậy, hãy gộp những câu lệnh có thể vào chung job, thời gian pending rút ngắn cũng không phải là ít. Lưu ý, không gộp chung quá nhiều câu lệnh, khi biên dịch 1 câu lệnh có lỗi, sẽ khiến cả job phải chạy lại.

6. Sử dụng cache của gitlab

Giả sử mỗi lần thực thi lại cần cài đặt đầy đủ nodee module cho một project nodejs, quá trình đó sẽ tốn rất nhiều thời gian, thay vào đó, Gitlab cho phép bạn sử dụng cache nhằm rút ngắn thời gian.
 

Facebook Comments

Similar threads

New posts New threads New resources

Back
Top