Mô hình triển khai EzyPlatform trên một máy chủ
Back To BlogsBa thành phần chính
EzyPlatform được tạo nên bởi 3 thành phần chính:
- Admin: Đây là nơi bạn có thể quản trị mọi thứ, từ những công việc DevOps như cài cắm plugin đến quản lý người dùng, quản trị viên hay tài nguyên.
- Web: Đây là nơi cung cấp API và giao diện người dùng cho web.
- Socket: Đây là nơi cung cấp các API cho socket, bạn có thể sử dụng websocket, tcp hay udp đều được.
Ba thành này tách rời với nhau, nghĩa là bạn có thể bật tắt 3 thành phần này độc lập với nhau.
Tại sao lại tách rời mà không gộp chung?
Trong triển khai thực tế thì tuỳ vào dự án mà chúng ta sẽ cần phải bật cả 3 thành phần. Ví dụ đối với các dự án không cần realtime bạn chỉ cần bật Admin và Web là đủ, hay thậm chí là các dự án thuần DevOps bạn chỉ cần bật admin là đủ.
Ngoài ra khi chỉ có nhu cầu nâng cấp một phần nào đó bạn sẽ chỉ cần khởi động lại thành phần bị thay đổi thay vì phải khởi động cả 3 thành phần cùng lúc.
Những cổng nào sẽ bị chiếm dụng?
Bạn có thể cấu hình các cổng cho ezyplatform, tuy nhiên mặc định thì nó sẽ chiếm dụng các cổng sau:
- 9090: Cho admin.
- 8080: Cho web.
- 3005: Cho TCP socket.
- 2611: Cho UDP socket.
- 2208: Cho websocket thông thường.
- 2812: Cho ssl websocket.
Triển khai sử dụng load balancer (LB)
Bạn có thể sử dụng bất kỳ loạiLB nào (ví dụ nginx) mô hình sẽ như sau:
Theo cách này thì Admin và Web sử dụng giao thức HTTP sẽ đứng sau LB để tận dụng cấu hình SSL và các cấu hình bổ sung của LB còn client có thể kết nối trực tiếp đến socket mà không phải thông qua LB cho đơn giản, vì LB cũng có giới hạn 65,000 cổng khi LB kết nối với socket nó sẽ phải mở các công đóng vai trò như các client trung gian giữ kết nối giữa socket của ezyplatform với client.
Tổng kết lại
EzyPlatform gồm 3 thành phần chính là Admin, Web và Socket. Ba thành phần này có thể tách rời nhau để phù hợp với mọi loại hình dự án. Bạn sẽ cần sử dụng load balancer để cấu hình SSL cho phần Admin và Web, còn socket thì client có thể kết nối trực tiếp.