Tại Sao Định Nghĩa Trạng Thái Khai Báo Là Quan Trọng Trong GitOps?
Tại sao các tổ chức chưa áp dụng nhanh chóng trạng thái khai báo mặc dù có nhiều lợi ích? Trạng thái khai báo là nguyên tắc mà mọi người biết trong GitOps, nhưng ít ai thực sự sử dụng. Báo cáo gần đây về Tình Trạng GitOps cho thấy chỉ 40% tổ chức đang sử dụng cấu hình khai báo. Vậy trạng thái này là gì và tại sao nó lại quan trọng đến vậy trong GitOps?
Trạng Thái Khai Báo Là Gì?
Trong GitOps, có hai cách để quản lý trạng thái:
- Cách đầu tiên là xác định một chuỗi các bước để đưa một cấu hình cơ bản vào trạng thái mong muốn. Phương pháp này mang tính mệnh lệnh, với một danh sách các hướng dẫn theo từng bước để đạt được kết quả mong muốn.
- Cách thứ hai, trạng thái khai báo, định nghĩa trạng thái cuối cùng mà không chỉ rõ các bước để đạt được nó.
Hãy tưởng tượng về pizza: Bạn có thể thực hiện theo công thức, từ việc kéo bột, thêm sốt cà chua, rồi phủ phô mai và vài lát cà chua. Hoặc bạn có thể cho một đầu bếp pizza kinh nghiệm xem bức tranh của một chiếc Margherita và họ sẽ tự làm mọi thứ. Làm theo công thức sẽ cho bạn một chiếc pizza mệnh lệnh, trong khi chỉ cần cho xem hình sẽ cho bạn pizza khai báo.
Tương tự, cấu hình mệnh lệnh bao gồm một loạt các lệnh API, lệnh và kịch bản, trong khi cấu hình khai báo xác định trạng thái mục tiêu và để công cụ thực hiện phần nặng.
Open GitOps nói rằng: “Một hệ thống được quản lý bởi GitOps phải có trạng thái mong muốn được thể hiện một cách khai báo.” Đây là một trong bốn nguyên tắc, vì vậy chắc chắn nó rất quan trọng. Nhưng tại sao?
Tại Sao Trạng Thái Khai Báo Lại Quan Trọng?
Cấu hình khai báo cung cấp trạng thái mục tiêu có thể xác minh. Điều này làm cho nó hữu ích không chỉ trong công cụ mà còn là tài liệu về cách mà hệ thống nên trông như thế nào. Để xây dựng cùng một hiểu biết với cấu hình mệnh lệnh, bạn sẽ phải thực hiện tất cả các bước và hiểu cách chúng sẽ thay đổi trạng thái cơ bản, điều này có nghĩa là bạn cần phải giữ toàn bộ quy trình trong mô hình tâm trí để hiểu kết quả cuối cùng. Điều này cũng để lại chỗ cho những giả định và thiếu sót, và có thể dẫn đến một trạng thái không giống như bạn tưởng tượng.
Cấu hình khai báo đơn giản hơn để hiểu. Nó chuyển gánh nặng đạt được trạng thái đó cho các công cụ tự động hóa.
Với trạng thái khai báo, bạn nhận được:
- Một trạng thái mục tiêu đã được tài liệu hóa
- Thay đổi và xem xét dễ dàng hơn
- Lịch sử thay đổi và dấu vết kiểm tra dễ đọc
- Chuyển giao gánh nặng điều chỉnh cho các công cụ
Không Phải Là Nhiệm Vụ Đơn Giản
Mặc dù việc bắt đầu một dự án mới với trạng thái khai báo khá dễ dàng, nhưng có nhiều yếu tố khiến việc chuyển đổi một hệ thống hiện có trở nên khó khăn.
Thời gian mà một hệ thống tồn tại trước khi bạn đưa nó vào kiểm soát tự động, càng lâu thì càng bị ảnh hưởng bởi ClickOps và độ trôi cấu hình. Điều này khiến việc hiểu và tài liệu hóa trạng thái mong muốn trở nên khó khăn hoặc thậm chí không thể.
Các hệ thống cũ có thể không độc lập hoặc mô-đun, và có thể khó khăn trong việc xây dựng hình ảnh trạng thái mong muốn. Quyết định trong quá khứ có thể khiến phải sử dụng cấu hình mệnh lệnh — ví dụ, nếu chúng yêu cầu các triển khai xâu chuỗi mà dịch vụ phải được cập nhật theo thứ tự cụ thể.
Nếu bạn đã tự động hóa việc thay đổi sơ đồ cơ sở dữ liệu, bạn sẽ gặp phải thách thức tương tự. Thông thường, dễ dàng hơn để lấy một bản sao lưu cấu hình cơ sở dữ liệu, sau đó áp dụng các kịch bản để thay đổi sơ đồ từ đó trở đi.
Các công cụ cơ sở dữ liệu hiện đại cho phép tạo ra những kịch bản này từ mô hình trạng thái mong muốn của sơ đồ. Các công cụ GitOps có thể tạo ra trạng thái khai báo mong muốn ban đầu từ các hệ thống đang chạy có thể đóng vai trò tương tự trong việc cải thiện việc áp dụng thực tiễn này.
Vai Trò và Khu Vực Đang Trong Quá Trình Chuyển Đổi
Mặc dù tỷ lệ áp dụng trạng thái khai báo vẫn thấp, một số vai trò nghề nghiệp đang đi trước trong việc áp dụng. Kiến trúc sư là những người có khả năng sử dụng cấu hình khai báo cao nhất, với 60% trong số họ đang sử dụng nó. Quản trị hệ thống là nhóm đứng sau cùng với 33.3%.
Cũng có sự khác biệt theo khu vực, với Châu Âu, Bắc Mỹ và Châu Đại Dương đều có tỷ lệ áp dụng trên 40%, trong khi các khu vực khác có dưới 30%.
Tất cả các con số này có khả năng sẽ cải thiện khi các tổ chức phát triển và trưởng thành trong thực tiễn GitOps. Những tổ chức mới bắt đầu với GitOps sẽ thấy cải thiện từ các thực tiễn GitOps khác bất kể lựa chọn cấu hình khai báo hay mệnh lệnh. Khi họ đạt được mức độ trưởng thành cao hơn, cấu hình khai báo sẽ là nơi để tìm kiếm cải tiến tiếp theo.
Cấu Hình Khai Báo Sẽ Tăng Cao
Cấu hình khai báo là một trong sáu thực tiễn bổ sung và khuếch đại lẫn nhau. Trong khi bạn chỉ nhận được lợi ích đầy đủ của GitOps bằng cách áp dụng tất cả các thực tiễn được khuyến nghị, bạn có thể làm việc trên việc giới thiệu chúng theo thời gian để bạn có thể onboard hiệu quả và phát triển mức độ kỹ năng và sự tự tin cao trước khi thêm nhiều hơn. Sáu thực tiễn và nguyên tắc bao gồm:
- Trạng thái mong muốn khai báo
- Định dạng dễ đọc cho con người
- Xem xét mã phản hồi
- Kiểm soát phiên bản
- Kéo tự động
- Điều chỉnh liên tục
Báo cáo Tình Trạng GitOps chỉ ra rằng nhiều tổ chức đang bắt đầu hành trình GitOps của họ. Khi họ có được kỹ năng và kinh nghiệm để áp dụng các nguyên tắc và thực tiễn này, bạn có thể mong đợi số lượng tổ chức sử dụng cấu hình khai báo sẽ tăng lên. Lợi ích quá quan trọng để bỏ qua.
Bạn có thể tìm hiểu thêm bằng cách tải xuống báo cáo và xem webinar về báo cáo Tình Trạng GitOps của Octopus.