Master System Design (6): Single Point of Failure (SPOF) - Gót chân Achilles

Nội dung bài viết

Video học lập trình mỗi ngày

Tiếp tục hôm này anh em bàn tiếp về vụ "Single Point of Failure (SPOF)" cũng có thể nói đúng hơn đó là "Gót chân Achilles" đại diện cho một kiến trúc khổng lồ nhưng nếu một Point bị beark or failed thì hệ thống sẽ sụp đổ giống như Achilles có sức mạnh phi thường như bị một mũi tên ghim vào chân.

Hôm nay chúng ta lại có dịp hàn huyên về "System Design" , anh em có hứng thú với chủ đề này thì có thể xem lại những nội dung bàn luận trước.

1 - System Design Interview (2): TƯỜNG THUẬT NGỒI GHẾ NÓNG với 15 câu hỏi về BACKEND vs SYSTEM..

2 - System Design Interview (1): TƯỜNG THUẬT NGỒI GHẾ NÓNG với 15 câu hỏi về BACKEND vs SYSTEM..

Hôm rày mới ra cho anh em vụ "Triển khai Aws Lambda | Series Nodejs backend" nhớ xem nhé...

System Design: Gót chân Achilles

Chuyện kể rằng: Achilles là con trai của Peleus- một chiến binh mạnh mẽ với Thetis- nữ thần biển cả. Chàng sở hữu một sức mạnh phi thường do là một á thần nhưng không thể bất tử như người mẹ của mình. Khi mới hạ sinh, nữ thần Thetis nhận được một lời tiên tri rằng con trai của bà sẽ qua đời trong một trận chiến, nên bà đã cầm gót chân nhúng thân thể Achilles vào nước Styx "Sông Styx (thần thoại)") - con sông của sự bất tử vĩnh hằng. Kể từ đó, Achilles vừa có sức mạnh thần thánh bất khả chiến bại vừa có thân thể mình đồng da sắt có thể miễn dịch mọi đao kiếm trên đời - ngoại trừ một điểm yếu duy nhất là gót chân, nơi không được nhúng vào nước thần và vẫn còn là da thịt phàm nhân. Cuối cùng, trong Chiến tranh thành Troia, Achilles chết vì bị mũi tên của Paris "Paris (thần thoại)") (có thể là tên độc) bắn trúng gót chân.

Cũng giống như trong hệ thống kiến trúc, anh em xem hình ảnh với kiến trúc này.

System Design - Single Point of Failure (SPOF)

Nhìn vào có lẽ nhiều anh em giang hồ ở đây đang lẩm bẩm điều gì? Nó tuyệt vời, nó có vẻ là hoàn thiện cho lên Product? Khoan có cái gì ở đây ? Nhiều suy nghĩ được nảy lên trong đầu mỗi lập trình viên đúng không?

Nhấp một ngụm tách cafe, châm điếu thuốc, và gác cái chân lên ghế công thái học, open một bài nhạc "Đà lạt còn mưa không em" và cùng thảo luận về "Single Point of Failure (SPOF)" trong "System Design"...

System Design - Single Point of Failure (SPOF)

Tôi cung cấp hình ảnh thứ hai, và đây là "Single Point of Failure (SPOF)" đầu tiên, chí mạng là gì?

System Design - Single Point of Failure (SPOF)

Đó chính là việc nhiều services dùng chung một database. Nó rất đơn giản để hiểu và tôi chả có gì phải giải thích hơn, nội sơ có nhiều connect hơn là cũng mệt roài. Chính vì vậy nếu được cho phép và cấp quyền quản lý các anh em vị trí Senior cố gắng tách riêng các dịch vụ và dữ liệu khác nhau, giống như cách mà tôi và các anh em đã triển khai ở đây: [Thực hành Order Process (payment, reward, inventory) trong Microservices | EC2 A vs EC2 B] (https://youtu.be/RI3i8s16384)

Điểm chí mạng thứ hai là gì? Nhìn kỹ một chút đó chính là cái thằng này..

Load Balancer

Nó giống như một cái cổng vào sân vận động vậy, nếu chỉ một cổng thì làm sao check hết người hâm hâm mộ, vì vậy chưa vào trong anh em đã bỏ về vì chờ lâu quá. Chúng ta không bàn luận sâu về cái sai vì đã nói rất nhiều rồi, nói lại anh em lại nhàm.

Vậy cách khắc phục là gì?

Fix - Single Point of Failure (SPOF)

Hãy nhìn vào cuộc sống... Nếu một cổng không đủ thì hãy mở cổng thêm ở phía nam để đón gió đông. Thiếu thì cửa bắc, cửa đông.... Vô vàn. Đây là cách tiếp theo xem hình ảnh.

Nếu của kẹt quá thì hãy đóng lại...

Or có nhiều hệ thống họ sẽ không phức tạp như vậy, ho để sẵn một em phục vụ nếu cần em ấy nhảy vào liền:

Tận tình chăm sóc...

System Design - Like a Senior

Học "System Design" không phải mà một buổi mà là có khi cả chặng đường vòng tròn của một lập trình viên. Mỗi Bussiness đều có style riêng của họ, áo màu cam , màu đỏ... Nhưng tất cả có một form chung đó là cái áo..

Vì vậy cố gắng từng chặng đường...

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