Distributed system là gì

     

Distributed System là gì?

Hệ thống phân tán (distributed system) là khối hệ thống phần mềm mà những thành phần kết cấu nên nó nằm ở vị trí trên các máy tính không giống nhau được kết nối thành màng lưới (network). Các máy tính này phối hợp hoạt động với nhau để kết thúc một nhiệm vụ chung bằng phương pháp trao đảo sang lại những thông điệp (message).

Bạn đang xem: Distributed system là gì

Nói nôm mãng cầu là hệ thống phân tán là việc khối hệ thống bạn có nhiều quá trình xử lý hòa bình trên những nhiều server thiết bị lý không giống nhau.

Với các hệ thống doanh nghiệp to (enterprise) đòi hỏi sự hoạt bát trong mở rộng gia hạn thì distributed system là một trong những lựa chọn tuyệt đối nhờ các ưu thế của nó.

Các đặc thù chính để ra đời một hệ thống phân tán (distributed system) là:

Khả năng mở rộng(Scalability).Độ tin cậy (Reliability).Tính sẵn sàng (Availability).Hiệu suất (Efficiency).Tính không ngừng mở rộng và khả năng duy trì (Manageability).

Khả năng nở rộng (Scalability)

Scalability là năng lực mở rộng lớn (scaling) của hệ thống (system), các bước (process) hay mạng lưới (network), với nhu cầu tăng thêm về số lượng công việc tăng theo thời gian của mô hình kinh doanh (business model).

Mô hình gớm doanh rất có thể mở rộng lớn quy mô bởi vì nhiều nguyên nhân như gia tăng khối lượng dữ liệu tàng trữ (data storage) giỏi khối lượng các bước (process/request).

Ví dụ: số lượng truy cập hay đặt đơn hàng của một khối hệ thống thương mại năng lượng điện tử. Cùng yêu ước của sự mở rộng phải đạt được yêu cầu này mà lại không làm sút hiệu suất, nói chung tài năng mở rộng lớn là thỏa mãn nhu cầu được sử mở rộng kích cỡ của hệ thống theo thời gian.

Có nhì dạng scaling là không ngừng mở rộng theo chiều ngang (vertical scaling) và mở rộng theo theo hướng dọc (horizontal scaling):

Vertical scaling: là giải pháp tăng sức mạnh phần cứng của server bằng phương pháp nâng cấp cho CPU, RAM, Disk Storage, v.v… Vertical scaling thường xuyên bị số lượng giới hạn bởi thừa quá khả năng về thông số kỹ thuật vật lý văn minh và độ trễ khi hệ thống bị downtime để upgrade phần cứng tốt deploy hệ thống.Horizontal scaling: là giải pháp mở rộng bằng phương pháp thêm những Node/Server vào trong 1 mạng lưới đã có, làm cho tăng năng lực chịu mua của hệ thống. Cách làm này rẻ với dễ làm cho hơn so với vertical scaling, nhất là rất dễ dãi downsize cũng giống như upsize khối hệ thống và hạn cơ chế trễ khi bổ sung cập nhật thêm Node/Server hoặc deploy hệ thống.
*

Một lấy một ví dụ của horizontal scaling là MongoDB, Redis và Cassandra, cả nhì đều cung ứng sẵn những cách thức để scale hệ thống bằng phương pháp thêm nhiều node vào hoặc xóa bớt các node mà không hề có độ trễ (zero downtime).

Và một ví dụ khác về vertical scaling là MySQL, Sql Server, cả nhị đều có thể dễ dàng thay đổi từ một Server đang làm việc sang một hệ thống mới lớn hơn khỏe hơn, hoặc bổ sung thêm phần cứng cho server hiện tại tại, tuy nhiên quá trình này có downtime.

Độ tin cẩn (Reliability)

Reliability là kỹ năng chịu lỗi của hệ thống tức là hệ thống sẽ tiếp tục cung ứng dịch vụ của mình ngay khi tất cả một hoặc các thành phần (phần mềm/phần cứng) của khối hệ thống bị lỗi.

Độ tin tưởng là tính chất đặc trưng trong bất kể một khối hệ thống phân tán (distributed system) nào, chính vì trong một khối hệ thống như vậy, mọi mất dính của ngẫu nhiên một thành phần như thế nào đó nên được sửa chữa bằng một yếu tố đang mạnh bạo khác, bảo vệ luôn dứt nhiệm vụ yêu thương cầu.

Ví dụ của độ tin cẩn là, một trang dịch vụ thương mại điện tử hay hệ thống ngân sản phẩm (banking) mọi tin tức về giao dịch thanh toán (transaction) của người dùng sẽ không khi nào bị hủy vị lỗi server đang hoạt động giao dịch đó, mỗi vps bị lỗi sẽ nên được sửa chữa ngay vì chưng một bản sao chứa khá đầy đủ thông tin của hệ thống đó.

Xem thêm: Lý Do Biên Tập Viên Thúy Hằng Vtv: "Tôi Đã Từng Ngược Đãi Bản Thân Vì Tham Việc"

Để đã có được độ tin cậy, khối hệ thống phải có chế độ back-up real time của từng thành phần nằm trong hệ thống, đây cũng là một thử thách về mặt kỹ thuật cũng như ngân sách của dự án.

Tính chuẩn bị (Availability)

Tính chuẩn bị (Availability) là tổng thời gian một khối hệ thống vẫn hoạt động thông thường trong một khoảng thời hạn cụ thể. Thước đo của tính chuẩn bị sẵn sàng là tỷ lệ xác suất thời gian mà lại hệ thống vận động liên tục trong một khoảng thời hạn (thường là 1 năm).

Bạn sẽ bắt gặp các tỷ lệ xác suất của tính sẵn sàng là: 99,9%(3 số 9), 99,99% (4 số 9) cùng 99,999% (5 số 9).

Ví dụ như một cái xe hơi rất có thể chạy trong vô số tháng cơ mà không cần duy trì bảo dưỡng, thì nói cách khác là mẫu xe đó gồm tính sẵn sàng chuẩn bị cao. Nếu dòng xe tương đối đó chấm dứt hoạt động để đem lại gara để bảo trì, nó được xem như là không sẵn sàng trong thời gian đó.

Sự khác biệt của độ tin cậy (reliability) cùng tính sẵn sàng chuẩn bị (availability)

Nếu khối hệ thống có tính reliability thì nó chắc hẳn rằng sẽ có availability, mặc dù nhiên khối hệ thống có tính availability không tức là nó bao gồm tính reliability. Nói một phương pháp khác thì reliability có nghĩa là nó tất cả tính high availability, tuy nhiên vẫn hoàn toàn có thể đạt được xem availability cùng với một khối hệ thống không tất cả tính reliability bằng cách giảm thiểu tối đa thời gian bảo trì, sửa chữa.

Hãy lấy một ví dụ, một hệ thống eCommerce có xác suất availability lên tới 99,99% trong 2 năm đầu tiên, nhưng hệ thống có một lỗi ẩn chứa về bảo mật thông tin mà trong quá trình kiểm test (testing) ko phát hiện ra, người sử dụng không hề biết về điều ấy và chúng ta vẫn rất hạnh phúc (happy) với hệ thống, cho đến một ngày rất đẹp trời vào bỗng nhiên lỗi tiềm ẩn đó bị khai quật dẫn đến hệ thống giảm tính chuẩn bị trong một thời hạn dài cho tới khi lỗi được fix.

Kỳ thực mà nói một khối hệ thống có độ tin cậy cao (high reliability) gần như là rất khó có được trong thực tế, nhưng mà hầu như chúng ta chỉ nhắm tới một khối hệ thống có tính chuẩn bị sẵn sàng cao (high availability) cơ mà thôi.

Hiệu suất (Efficiency)

Hiệu suất (Efficiency) của một hệ thống phân tán (distributed system) là năng lực chịu tải (high load) và thời hạn phản hồi (low latency). Tức là một hệ thống có khả năng chịu được nhiều request đồng thời với độ trễ rẻ là một khối hệ thống có công suất cao.

Thông thường xuyên nó được đo bằng con số request nó nhận thấy và bình luận trong một khoảng thời gian, thường được tính bằng giây.

Ví dụ một hệ thống eCommerce có hiệu suất là chịu được 5k lượt đặt hàng trên một giây — 5k order / second, giỏi 500k lượt fan cùng truy cập vào cùng 1 thời điểm.

Tính mở rộng và khả năng duy trì (Manageability)

Một tính chất đặc biệt quan trọng khác của một hệ thống phân tán (distributed system) sẽ là khả năng tiện lợi mở rộng và bảo trì của hệ thống. Có thể nói là thời hạn thực hiện sửa chữa thay thế (repair) hay gia hạn (maintain) lúc cần, nếu thời gian trên càng tốt thì tính availability càng thấp.

Để giành được tính mở rộng và khả năng duy trì (Manageability), khối hệ thống cần phải tiện lợi phát hiện nay lỗi hoặc lỗi tiềm tàng nếu như có, khả năng gấp rút phát hiện nay được lý do lỗi (root cause), dễ dàng thực hiện tại các thay đổi cần thiết nhằm điều chỉnh, hoặc dễ dàng và đơn giản chỉ là dễ dàng mở rộng khi cần.

Việc sớm phát hiện tương tự như giải quyết sự việc sớm đang làm giảm downtime từ đó tăng tính chuẩn bị của hệ thống. Lấy ví dụ những ứng dụng doanh nghiệp (enterprise system) có tác dụng tự phát hiện nay lỗi kế tiếp cô lập và report nhanh cho người vận hành hệ thống.

Xem thêm: Đổi 2500 Usd Đến Vnd ) - Chuyển Đổi Đô La Mỹ Sang Đồng Việt Nam Usd/Vnd

Kết Luận

Hệ thống phân tán (distributed system) là khối hệ thống phần mềm mà các thành phần kết cấu nên nó nằm ở vị trí trên những máy tính khác biệt được liên kết thành màng lưới (network). Các máy tính này phối hợp hoạt động với nhau để dứt một trách nhiệm chung bằng cách trao đảo qua lại các thông điệp (message).

Các tính chất chính để hiện ra một khối hệ thống phân tán (distributed system) là:

Khả năng mở rộng(Scalability).Độ tin tưởng (Reliability).Tính sẵn sàng chuẩn bị (Availability).Hiệu suất (Efficiency).Tính mở rộng và khả năng duy trì (Manageability).