Tôi thiết kế theo hướng chấp nhận mất mát có kiểm soát và có khả năng phục hồi, thay vì giữ mọi thứ bằng mọi giá.
RESILIENCE FIRST
Thử một tình huống
Mất một thiết bị, còn một điểm tựa.
Tôi xem thiết bị là thứ có thể hỏng hoặc thất lạc. Khả năng quay lại cần một điểm tựa độc lập với chính thiết bị ấy, cùng hướng dẫn đủ rõ để làm theo khi đang bối rối.
Câu hỏi tôi đặt ra: nếu chỉ còn những gì nằm ngoài thiết bị này, tôi bắt đầu từ đâu?
Một phần dừng, phần còn lại có đường đi.
Tôi phân biệt điều cần giữ để làm việc với điều có thể dựng lại sau. Tách các phụ thuộc giúp một sự cố nhỏ có cơ hội dừng ở phạm vi nhỏ.
Câu hỏi tôi đặt ra: phần nào phải khôi phục trước, phần nào có thể chờ?
Thêm tiện ích, giữ quyền lựa chọn.
Trước khi thêm một dịch vụ, tôi nhìn cả lối vào lẫn lối ra: dữ liệu có lấy lại được không, cấu hình có thể bàn giao không, và việc bỏ công cụ có kéo theo phần lõi không?
Câu hỏi tôi đặt ra: nếu ngày mai không dùng công cụ này nữa, điều gì vẫn thuộc về mình?
Đường quay lại
01Điểm tựa độc lập
02Khôi phục phần lõi
03Tiếp tục công việc
Khám phá hệ thống
Bốn lớp, bốn mức ưu tiên.
Tôi phân biệt nền tảng để quay lại, phần lõi để vận hành và những phần có thể dựng lại. Chọn một lớp để xem vai trò của nó.
01
Điểm tựa để quay lại.
Nền tảng danh tính và quyền sở hữu cần một đường khôi phục độc lập. Tôi giữ lớp này gọn, ít phụ thuộc vào những dịch vụ có thể thay đổi.
Danh tính / sở hữu / điểm tựa
02
Phần lõi để vận hành.
Những gì giúp tôi tiếp tục làm việc cần được bảo vệ và có cách khôi phục từ bên ngoài. Chìa khóa duy nhất không nên nằm trong chính chiếc hộp mà nó mở.
Truy cập / cấu hình / khôi phục
03
Hạ tầng có thể dựng lại.
Tên miền, dịch vụ và các kết nối tạo thành phần mở rộng của hệ thống. Tôi làm rõ phụ thuộc và đường quay lại để sự cố ở đây không kéo đổ nền tảng.
Hạ tầng / phụ thuộc / thay thế
04
Công cụ có thể buông.
Ứng dụng và tiện ích nên giúp công việc nhẹ hơn. Tôi giữ dữ liệu và phần lõi đủ độc lập để có thể đổi hoặc bỏ một công cụ khi nó không còn phù hợp.
Tiện ích / thử nghiệm / lựa chọn
Từ trao đổi đầu tiên đến bàn giao
01
Bối cảnh
Hiểu con người, giới hạn và mục đích.
02
Cấu trúc
Xác định phần thiết yếu và các phụ thuộc.
03
Làm & kiểm tra
Tiến từng bước nhỏ, có thể xem xét.
04
Giữ đường quay lại
Lưu tài liệu, bàn giao và khả năng khôi phục.
Hệ thống tốt không đòi hỏi con người hoàn hảo.
01 / Một điểm tựa độc lập
Đường khôi phục cần tồn tại ngoài chính thứ đang được khôi phục. Tôi tránh những vòng phụ thuộc mà muốn mở A phải có B, rồi muốn mở B lại cần A.
02 / Mỗi phần có một mức ưu tiên
Tôi chia hệ thống thành ROOT, CORE, BRANCH và LEAF để quyết định cần giữ gì trước. Đây là cách tôi suy nghĩ về thiết kế, không phải một tiêu chuẩn bảo mật áp dụng giống nhau cho mọi người.
03 / Khôi phục phải làm được
Tôi phân biệt việc có dữ liệu ở một nơi khác với việc thực sự lấy lại được dữ liệu ấy. Một đường khôi phục đáng tin cần có hướng dẫn rõ và được kiểm tra trong điều kiện phù hợp.
04 / Thay đổi có nhịp
Tôi ưu tiên thay đổi từng phần, giữ lại trạng thái đã hoạt động và xem kết quả trước khi đi tiếp. Khi tình huống chưa rõ, việc đầu tiên là hiểu mình còn giữ được gì.
Giữ điều cốt lõi. Chừa chỗ cho sai sót. Luôn biết đường về.