Tích hợp liên tục – Continuous Integration (CI) – Phần 2

By | 26 December, 2018

Nếu bạn quan tâm đến các hướng dẫn tích hợp liên tục và best practice, tôi khuyên bạn nên xem một số blog công nghệ được đề cập dưới đây. Bạn có thể tìm thấy nội dung rất hữu ích ở đó.

Bối cảnh CI và CD đang thay đổi và định hình nhanh chóng kể từ năm 2006. Tuy nhiên, vẫn đáng để xem qua các nguyên tắc ban đầu về Tích hợp liên tục của Martin Fowler  . Martin giải thích quy trình thực hành tốt nhất:

  1. Maintain một code repository.
  2. Tự động hóa phần build của bạn.
  3. Làm cho bản build của bạn tự động được test.
  4. Mọi người trong nhóm đều commit hàng ngày.
  5. Mỗi commit (theo đường cơ sở) nên được build.
  6. Giữ bản build của bạn nhanh chóng.
  7. Nhân bản môi trường production và test ở đó.
  8. Làm cho nó dễ dàng để có thể lấy bản code mới nhất.
  9. Mọi người trong nhóm có thể xem kết quả của bản build mới nhất của bạn.
  10. Tự động triển khai bản build.

Ngành công nghiệp đã và đang làm khá tốt để cho phép điều này và các nhóm phần mềm phần lớn có thể làm việc với các nguyên tắc này. Với sự  xuất hiện của các container, giờ đây việc copy môi trường production và local của bạn trở nên dễ dàng hơn rất nhiều. Nền tảng Docker mới sẽ giúp bạn chính xác điều đó và hơn thế nữa.

Continuous Delivery checklist

Nguyên tắc của Martin Fowler là điểm khởi đầu tuyệt vời để suy nghĩ về việc thiết lập tốt nhất quy trình phát triển phần mềm của bạn. Jez Humble và David Farley cũng chỉ ra trong cuốn sách của họ Phân phối liên tục: Phần mềm đáng tin cậy phát hành thông qua build, test và deploy tự động hóa rằng danh sách sau đây phải là một phác thảo chung và checklist khi bạn muốn gửi code.

  1. Trước khi gửi thay đổi, hãy kiểm tra xem liệu bản build hiện đang ở trạng thái “Thành công”. Nếu không, bạn nên hỗ trợ sửa lỗi bản build trước khi gửi code mới.
  2. Nếu trạng thái hiện tại là “Thành công”, bạn nên khởi động lại không gian làm việc cá nhân của mình theo cấu hình này.
  3. Xây dựng và kiểm tra cục bộ để đảm bảo bản cập nhật không phá vỡ chức năng.
  4. Nếu thành công, hãy kiểm tra code mới.
  5. Cho phép CI hoàn thành với những thay đổi mới.
  6. Nếu quá trình build fails,  hãy dừng lại và  sửa chữa trên máy của bạn. Quay trở lại bước 3.
  7. Nếu build  pass ,  tiếp tục làm việc trên theo các mục tiếp theo.

Bạn nên lưu ý rằng đây chỉ là một phác thảo chung. Bạn có thể tìm thấy nhiều dịch vụ và giải pháp không tuân theo các bước này (như bước 2). Tuy nhiên, sẽ rất tốt khi nhận thức được các bước này. Tại sao?

Bởi vì nhiều nhà phát triển (theo nghiên cứu của DZone năm 2014 lên tới 41%) tin rằng họ đang đạt được Phân phối liên tục, trong khi thực tế chưa đến 10% trong số họ thực sự làm được. (Cuộc khảo sát được thực hiện trên 500 chuyên gia CNTT. Một phần lớn số người được hỏi là nhà phát triển (68%) hoặc quản lý nhóm (14%) với các phần hoạt động nhỏ hơn, QA và quản lý điều hành đại diện. Phần lớn số người được hỏi có trụ sở chính Hoa Kỳ (36%) hoặc Châu Âu (43%).)

Ít hơn 10% những người này thực sự làm việc với Phân phối liên tục. Đây là một trong những lý do tại sao thật tốt khi nhắc nhở chúng ta thúc đẩy bản thân đến gần hơn với  Phân phối liên tục thực sự . Một danh sách kiểm tra tốt chắc chắn sẽ giúp thiết lập đúng quy trình và giải thích nó cho nhóm của bạn và có khả năng quản lý.

Đó là một trong những lý do tại sao DZone, công ty đứng sau nghiên cứu, đưa ra một danh sách kiểm tra. Trong  Danh sách kiểm tra thời gian phân phối liên tục, bạn thực sự có thể kiểm tra các thực hành bạn hiện đang thực hiện để xem mức độ tiếp cận của bạn trong lĩnh vực của Phân phối liên tục. Bạn càng đạt điểm cao trong bài kiểm tra, bạn càng tiến gần đến Độ chín của CD. Danh sách kiểm tra không chỉ tốt để theo dõi khi bạn viết code mà còn có thể giúp bạn xác định các điểm yếu và các lĩnh vực cần cải thiện trong quy trình CD của công ty bạn. Các lĩnh vực chính của quy trình CD bao gồm:

  • Kiểm soát nguồn
  • Xây dựng quy trình
  • Kiểm tra và hỏi đáp
  • Triển khai
  • Tầm nhìn

Bạn có thể tải về danh sách kiểm tra của họ ở đây .

Một phiên bản trước đó của quá trình này mà bạn có thể muốn xem qua đã được Chris Shayan giới thiệu, khi ông viết về  ma trận trưởng thành Phân phối liên tục tại đây .

Đọc thêm về chủ đề:

Cách bắt đầu với Phân phối liên tục

Nếu bạn đang tự hỏi làm thế nào để bắt đầu với Phân phối liên tục, bài viết này của CTO Florian Motlik của chúng tôi trên Blog Dịch vụ web Amazon sẽ là một bài đọc rất hữu ích:  Năm mẹo để bắt đầu phân phối liên tục . 

Tài nguyên tích hợp liên tục

Tôi đã soạn một danh sách các tài nguyên để bạn bắt đầu với Tích hợp và phân phối liên tục và cũng đào sâu hơn nếu bạn tham gia nhiều hơn vào chủ đề. 

Sách

Blog và trang web

Nếu bạn có bất cứ thắc mắc hoặc phản hồi, xin hãy để lại bình luận xuống bên dưới.