CI/CD diagram, infra

 Trong quá trình phỏng vấn, có thể các bạn sẽ gặp một số câu hỏi liên quan đến devops ví dụ như

- Bạn deploy code trên hệ thống như thế nào?

- Bạn có thể nói qua về infrastructure của dự án được không?

...

Sau đây là diagram, các bạn có thể tham khảo 


1 - Cluster config repo

Đây là 1 repo nơi bạn chứa cấu hình tất cả thông tin liên quan đến infra, ví dụ DB server, db name, users,...

Một thao tác đơn giản nhất là khi bạn muốn tạo 1 db mới, bạn chỉ cần vào Cluster config repo này ( ví dụ file mysql-prod.yaml) thêm các cấu hình DB cần thiết, sau đó push file này lên. Việc còn lại sẽ có 1 software là Puppet làm


2 - Puppet

Là 1 phần mềm dùng để provisioning cho infra của các bạn. Có thể hiểu nôm na phần mềm này sẽ set up cho bạn 1 infra dựa trên những cấu hình có được từ Cluster config


3 - Actor Người dùng

Ví dụ khi người dùng truy cập trang abc.com, thì request này sẽ được route đến Load Balancer (Cân Bằng Tải)

4 - Load Balancer

Cân bằng tải, tiếp nhận các request từ người dùng, và sau đó redirect đến các server

5 - Cluster

Gồm nhiều server liên kết lại với nhau


CI/CD

5 - Khi code được PUSH lên 1 branch, nếu code được host trên GITLAB, event push này kích hoạt 1 hệ thống gọi là GITLAB RUNNER


6 - GITLAB Runner sẽ chạy 1 số lệnh để build code, run unit test,...


7 - GITLAB Runner sẽ gọi đến RUNDECK để thực thi quá tình deploy ( có thể là copy code đến server đích, chạy thêm 1 số lệnh cần thiết tùy vào môi trường,...)

Comments

Popular posts from this blog

Các câu hỏi liên quan đến restful API

Active record (Eloquent) trong Laravel và Data Mapper (Doctrine) trong Symfony