Kiểm chứng phương án rời dịch vụ trước khi phụ thuộc vào nó
Đã hoàn tấtTách quyền sở hữu mã nguồn khỏi khả năng chuyển đổi vận hành. Thử xuất dữ liệu, build độc lập, truy cập hạ tầng và bằng chứng cần cho chuyển giao.
Xuất bản bởi TaigaCách chúng tôi viết
Kiểm tra mức hiểuTổ chức sở hữu mã nguồn. Bằng chứng bổ sung nào hỗ trợ khả năng chuyển đổi vận hành?Làm bài tập
Bạn sẽ học gì
- Xác định tài sản và quyền cần để vận hành không có nhà cung cấp.
- Thiết kế bài thử rời dịch vụ nhỏ trước khi hình thành phụ thuộc quan trọng.
- Tách quyết định xuất dữ liệu, chuyển giao và xóa.
Xác định những gì phải tiếp tục dùng được
Sở hữu mã nguồn có giá trị. Đó chỉ là một phần của kế hoạch rời dịch vụ.
Xét ứng dụng giả định có mã nguồn trong repository công ty. Quá trình build tải package riêng từ nhà cung cấp. Production dùng tài khoản cloud của nhà cung cấp. Chưa ai ghi quy trình khôi phục cơ sở dữ liệu.
Công ty có mã nhưng chưa thể vận hành dịch vụ độc lập. Kế hoạch rời dịch vụ phải bao phủ đồng thời quyền, tài sản, truy cập và kiến thức.
Lập danh mục phụ thuộc
| Tài sản hoặc trách nhiệm | Câu hỏi khi rời dịch vụ |
|---|---|
| Mã và lịch sử | Nhóm tiếp theo có truy cập được toàn bộ repository không? |
| Package và giấy phép | Nhóm có thể lấy và dùng mọi phụ thuộc cần thiết không? |
| Dữ liệu và schema | Có thể khôi phục bản ghi dùng được với quan hệ nguyên vẹn không? |
| Hạ tầng và cấu hình | Có thể tạo lại môi trường và cấu hình cần thiết không? |
| Danh tính và secret | Ai tạo thông tin xác thực thay thế và kiểm soát truy cập? |
| DNS và chứng chỉ | Ai có thể chuyển endpoint công khai? |
| Bằng chứng và vận hành | Quyết định, runbook, test và hồ sơ sự cố nào còn khả dụng? |
Kiểm tra định dạng và phạm vi xuất. Bản xuất tài liệu đọc được không nhất thiết giữ mọi quan hệ, tệp đính kèm hoặc hồ sơ thực thi. Yêu cầu mẫu và kiểm tra cùng người sẽ sử dụng.
Thực hiện build lại độc lập
Dùng môi trường thử nghiệm an toàn và dữ liệu ví dụ được phê duyệt. Giao bộ tài liệu, tài sản chuyển giao dự kiến cho kỹ sư được cấp quyền. Yêu cầu họ build ứng dụng, áp dụng cấu hình, khôi phục dữ liệu và kiểm chứng một thao tác nghiệp vụ trọn vẹn.
Ghi từng mục thiếu và thời gian để có được. Tránh âm thầm bổ sung kiến thức không có tài liệu trong bài thử. Mục tiêu là tìm những gì nhóm tiếp theo sẽ thiếu.
Sau đó xem ràng buộc chuyển giao: thuê bao chồng thời gian, thời gian chuyển dữ liệu, truy cập package, đổi danh tính và khả năng có hỗ trợ. Tính chi phí này vào so sánh tự xây hay mua.
Tách xuất dữ liệu khỏi xóa
Xuất dữ liệu tạo bản sao. Chuyển giao thay đổi bên vận hành dịch vụ. Xóa loại bỏ các bản ghi xác định theo quy trình đã thống nhất. Đây là các quyết định riêng với bằng chứng khác nhau.
Xác định phạm vi lưu giữ và xóa cần thiết cùng người phụ trách liên quan. Xác nhận điều khoản và quy trình hiện tại của nhà cung cấp. Không xóa bản sao khôi phục dùng được duy nhất trước khi kiểm chứng hệ thống nhận.
Taiga có tài liệu về quy trình xuất dành cho quản trị và quy trình xóa riêng. Giá trị secret không nằm trong bản xuất. Vì vậy, chuyển giao cần cách được phép để tạo lại secret cần thiết. Đối chiếu nội dung xuất hiện tại với nhu cầu chuyển giao; đừng cho rằng đó là backup ứng dụng đầy đủ.
Quyết định phụ thuộc nào chấp nhận được
Khả năng chuyển đổi không đòi hỏi loại bỏ mọi dịch vụ được quản lý. Phụ thuộc có thể là lựa chọn hợp lý khi hiểu giá trị, ràng buộc và đường chuyển giao.
Ghi phụ thuộc đã chấp nhận, người phụ trách và điều kiện review lại. Lặp bài thử rời dịch vụ sau thay đổi quan trọng về kiến trúc hoặc hợp đồng. Tiếp tục với kế hoạch áp dụng bao gồm các trách nhiệm này từ đầu.
Làm bài tập
Nhà cung cấp giả định giao repository Git và bản xuất cơ sở dữ liệu. Liệt kê năm mục khác cần để chạy ứng dụng độc lập. Chọn một mục và mô tả test giúp phát hiện phụ thuộc còn thiếu.
Tải worksheet (Markdown)Bỏ chọn sẽ xóa toàn bộ tiến độ đã lưu trong trình duyệt này.
Tiến độ ở trong trình duyệt này. Không tài khoản, không theo dõi.
Nguồn và đọc thêm
- NIST: Secure Software Development Framework ↗
- Taiga docs: Data and privacy ↗
- Taiga docs: Integrations and environments ↗