Nguyễn Đình ThuyênHệ thống · Góc nhìn
Nguyên tắc

Thiết kế để
còn đường quay lại.

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?

Đường quay lại
  1. Điểm tựa độc lập
  2. Khôi phục phần lõi
  3. Tiế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ó.

Đ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

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

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ế

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
  1. 01

    Bối cảnh

    Hiểu con người, giới hạn và mục đích.

  2. 02

    Cấu trúc

    Xác định phần thiết yếu và các phụ thuộc.

  3. 03

    Làm & kiểm tra

    Tiến từng bước nhỏ, có thể xem xét.

  4. 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ề.