Bài đăng

Đang hiển thị bài đăng từ Tháng 12, 2020

SYSTEM DESIGN CƠ BẢN – PHẦN 20: CAPACITY PLANNING – DỰ TOÁN CÔNG SUẤT CHO ỨNG DỤNG (TẬP 2)

Hình ảnh
  SYSTEM DESIGN CƠ BẢN – PHẦN 20: CAPACITY PLANNING – DỰ TOÁN CÔNG SUẤT CHO ỨNG DỤNG (TẬP 2) 4. THIẾT KẾ VÀ TỐI ƯU HÓA ỨNG DỤNG Thiết kế của ứng dụng hoặc phần mềm đóng một vai trò lớn trong việc lập dự toán công suất. Nếu một session được tạo cho mỗi người dùng đồng thời, điều này có nghĩa là mức tiêu thụ bộ nhớ cho mỗi session. Đối với mỗi hoạt động, các yếu tố như kết nối cơ sở dữ liệu, số lượng object được lưu trữ trong bộ nhớ và lượng xử lý diễn ra sẽ xác định dung lượng bộ nhớ và dung lượng xử lý cần thiết. Các ứng dụng được thiết kế tốt sẽ cố gắng giữ cho những con số này ở mức thấp hoặc sẽ chia sẻ tài nguyên của hiệu quả. Số lượng tài nguyên được tạo ra cho một ứng dụng cũng đóng một vai trò. Ví dụ, đối với các hoạt động chuyên sâu của cơ sở dữ liệu, kích thước nhóm kết nối cơ sở dữ liệu sẽ là một yếu tố hạn chế. Tương tự, thread pool, thời gian thu gom rác, v.v. cũng xác định hiệu năng của hệ thống. Việc thử và thử nghiệm chịu tải ứng dụng bằng các công cụ (ví dụ: đối...

SYSTEM DESIGN CƠ BẢN – PHẦN 19: CAPACITY PLANNING – DỰ TOÁN CÔNG SUẤT CHO ỨNG DỤNG (TẬP 1)

Hình ảnh
  SYSTEM DESIGN CƠ BẢN – PHẦN 19: CAPACITY PLANNING – DỰ TOÁN CÔNG SUẤT CHO ỨNG DỤNG (TẬP 1) by   hoangedward Một trong những công việc cuối cùng trong khâu thiết kế hệ thống sau khi đã hoàn thành khâu logical design là dự toán công suất vật lý của hệ thống để xem cần bao nhiêu máy chủ, (v)CPU, RAM, Disk, network bandwidth là bao nhiêu để hệ thống có thể hoạt động đủ mượt nhưng không quá nhàn rỗi dẫn đến lãng phí tài nguyên. Hiện nay với xu hướng người người, nhà nhà đi lên Cloud để tận dụng khả năng elastic, auto-scaling thì có vẻ là công việc này sẽ nhẹ nhàng hơn, nhưng lại có những challenge khác liên quan đến việc thiết kế ứng dụng để làm sao scale được. Trong phạm vi bài viết này, hãy cùng xem xét về góc cạnh dự toán công suất cho ứng dụng. 1. GIỚI THIỆU Khả năng xác định hoặc dự báo khả năng của một hệ thống hoặc tập hợp các thành phần, thường được gọi là ‘sizing’ của một hệ thống, là một hoạt động quan trọng trong thiết kế hệ thống. Một hệ thống với công suất quá k...

SYSTEM DESIGN CƠ BẢN – PHẦN 18: REST, GRAPHQL, WEBHOOKS, & GRPC

Hình ảnh
  SYSTEM DESIGN CƠ BẢN – PHẦN 18: REST, GRAPHQL, WEBHOOKS, & GRPC by   hoangedward Để giúp các API developer hiểu được nên sử dụng phong cách thiết kế API nào, trong ngữ cảnh nào. Hãy cùng xem xét REST, GraphQL, gRPC và Webhooks, phân tích điểm mạnh và điểm yếu của chúng để ap dụng cho đúng vào từng trường hợp. REST Có thể nói nguyên lí REST và cấu trúc dữ liệu RESTful được biết đến rộng rãi trong giới lập trình web nói chung và lập trình ứng dụng nói riêng. Bản thân REST không phải là một loại công nghệ. Nó là phương thức tạo API với nguyên lý tổ chức nhất định. Những nguyên lý này nhằm hướng dẫn lập trình viên tạo môi trường xử lý API request được toàn diện. REST (REpresentational State Transfer) là một dạng chuyển đổi cấu trúc dữ liệu, một kiểu kiến trúc để viết API. Nó sử dụng phương thức HTTP đơn giản để tạo cho giao tiếp giữa các máy. Vì vậy, thay vì sử dụng một URL cho việc xử lý một số thông tin người dùng, REST gửi một yêu cầu HTTP như GET, POST, DELETE, vv đ...

SYSTEM DESIGN CƠ BẢN – PHẦN 17: MÔ HÌNH VỀ TÍNH NHẤT QUÁN ACID VÀ BASE

Hình ảnh
SYSTEM DESIGN CƠ BẢN – PHẦN 17: MÔ HÌNH VỀ TÍNH NHẤT QUÁN ACID VÀ BASE by   hoangedward Khi nói đến cơ sở dữ liệu NoSQL, các mô hình nhất quán dữ liệu đôi khi có thể khác biệt đáng kể so với các cơ sở dữ liệu quan hệ được sử dụng (cũng như khá khác biệt so với các cơ sở dữ liệu NoSQL khác). Hai mô hình nhất quán phổ biến nhất được biết đến bởi các từ viết tắt ACID và BASE. Mặc dù chúng thường đọ sức với nhau trong một trận chiến để giành chiến thắng cuối cùng, cả hai mô hình nhất quán đều có ưu điểm – và nhược điểm – và không phải lúc nào cũng phù hợp hoàn hảo. Chúng ta hãy xem xét kỹ hơn về sự đánh đổi của cả hai mô hình nhất quán cơ sở dữ liệu. ACID Nhiều developer đã quen thuộc với các ACID transaction khi làm việc với các cơ sở dữ liệu quan hệ. Như vậy, mô hình nhất quán ACID đã trở thành chuẩn mực trong một thời gian. ACID là 1 tập hợp các thuộc tính mà 1 transaction (giao dịch) thao tác với database phải đạt được nhằm bảo đảm tính toàn vẹn, hợp lệ, an toàn, tính bền vững...