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

Thảo luận trong 'Phần mềm' bắt đầu bởi tranvanthe92cd, 20/9/19.

  1. tranvanthe92cd PageRank 1 Member

    Tham gia ngày:
    5/6/18
    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

    [​IMG]
    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.
     
    #1

Chia sẻ trang này