3 khái niệm mà backend chém nhiều và sai nhiều nhất!

Nội dung bài viết

Em nói em làm backend được 3 năm, chắc chắn em hiểu về nguyên tắc thiết kế của hệ thống là khả năng chịu lỗi, tính khả dụng cao hoặc hệ thống có khả năng phục hồi sau sự cố chứ? Vậy em hiểu thế nào?

Đây chính là 3 thuật ngữ mà đảm bảo anh em đang hiểu sai nhiều nhất. Đó là khả năng chịu lỗi (Fault Tolerance), tính khả dụng cao(High Availability), và khả năng phục hồi (Disaster Recovery ). Nghe rất nhiều, nhưng hiểu không được bao nhiêu. Nếu như vậy thì bài viết này sẽ viết một cách ngắn gọn nhất. Yên tâm chỉ 2 phút bạn đọc mà thôi, nhưng mất 2 ngày lên kế hoạch, tìm hiểu thông qua một bài báo đã cũ cộng thêm đúc kết kinh nghiệm từ tôi nữa đấy. Đừng đùa...

Fault Tolerance là gì?

Trong kiến trúc hệ thống phần mềm thì Fault Tolerance được gọi là khả năng chịu lỗi, viết tắt là FT. FT có nhiệm vụ giữ vai trò cho hệ thống được hoạt động liên tục dù nó đang bị lỗi một phần trong hệ thống. Theo Wiki

Vậy hiểu ngắn gọn như thế nào cho nhanh. Để hiểu nhanh bạn chỉ cần xem hình minh hoạ dưới đây.

Fault Tolerance


Trong hình trên chúng ta có thể thấy máy bay có bốn động cơ chính. Thực tế có nhiều sự kiện thực tế khi xảy ra một sự cố làm chiếc máy bay bị hỏng một động cơ thì các kỹ sư đã cho phép các động cơ còn lại hoạt động và máy bay vẫn tiếp tục bay. Tất nhiên đó là ví dụ minh hoạ. Giống như trong hệ thống server, cúp điện thì chạy bằng máy nổ.. Ok, i'm fine!!

High Availability là gì?

High Availability viết tắt là HA chính là tính khả dụng cao mà chúng ta hay nghe. HA là một thiết kế có tính sẵn sàng cao để luôn sẵn sàng 99,999% thời gian hoặc càng nhanh đưa hệ thống trở lại hoạt động thì càng tốt. Theo wiki

Tiếp tục hiểu ngắn gọn thì xem tiếp hình ảnh sau đây: High Availability là gì


Lốp dự phòng cho một chiếc xe ô tô là một ví dụ về thiết kế có tính khả dụng cao chính xác nhất. Khi một trong bốn chiếc lốp bị thủng hoặc nặng hơn nữa bị nổ thì sẽ có một lốp dự phòng sẽ thay thế và có thể trở lại hoạt động. Giống như phần mềm vậy chính là thiết kế Load balancer là một minh chứng. Chỗ này nghẽn thì qua chỗ kia.

Nếu bạn nào tinh ý sẽ nhận thấy, thế éo nào thấy HA và FT giống nhau nhỉ? Đúng, nhưng sai. FT không có bạn cơ hội dừng lại nghĩa là hệ thống sẽ không có thời gian chết như việc ví dụ trên máy bay. Còn HA là có thời gian dừng lại để thay lốp, thay nhanh hay chậm thì do bạn. Hệ thống cũng vậy, việc chuyển đổi công tắc nhanh hay chậm cũng do bạn.

Disaster Recovery là gì?

Disaster Recovery viết tắt DR hiểu là khả năng phục hồi sau sự cố tại nạn hệ thống. Nghĩa là cho dù Doanh NGhiệp của bạn có phá sản đi chăng nữa, thì dữ liệu vẫn phải còn và sẽ phục thù. Đọc thêm wiki.

Disaster Recovery


Hãy tưởng tượng rằng máy bay phản lực trong hình trên là cơ sở hạ tầng CNTT của bạn và phi công là doanh nghiệp của bạn. Khi chiếc phi cơ trên bị cháy, thì điều bắt buộc phi công phải bung dù để bảo toàn mạng sống của mình. Đó là toàn bộ điểm của việc khắc phục thảm họa - bạn đang cứu doanh nghiệp của mình bằng cách loại bỏ cơ sở hạ tầng bị xâm phạm.

Một giải pháp khắc phục thảm họa tốt là tất cả về việc đưa dữ liệu và hoạt động có giá trị của doanh nghiệp bạn ra khỏi cơ sở hạ tầng bị lỗi và chạy lại trên cơ sở hạ tầng mới. Nên nhớ rằng khôi phục sự cố không phải là cứu cơ sở hạ tầng. Khôi phục thảm họa là để cứu doanh nghiệp của bạn.

Khoan áp dụng hay suy nghĩ

Hãy nhớ rằng, ít có hệ thống nào kết hợp được 3 cả điều trên. Vì cũng liên quan đến một phần chi phí,v à nhân công do đó. Hãy suy nghĩ xem, nếu có HA rồi thì có cần FT nữa hay không? Vì đa số kiến trúc hiện này đều sử dụng HA hết. Tin tôi đi, bạn hãy hỏi chính bạn thân bạn, nếu triển khai bạn ưu tiên về thuật ngữ nào trước? Nếu bạn không phải là người triển khai thì hỏi người chịu trách nhiệm trong công ty bạn mà xem. HÃY SUY NGHĨ..

Bài viết có sử dụng hình ảnh từ nguồn tại đây

Có thể bạn đã bị missing