Chào anh em, lại là Ngân đây. Mấy nay ngồi tối ưu lại source code cho mấy site khách hàng, cứ 10 ông thì hết 9 ông than “Em ơi sao web chậm thế, anh mua hosting gói xịn nhất rồi mà”. Log vào check thử thì ôi thôi, toàn Shared Hosting đời tống, hoặc mấy con VPS cấu hình ảo lòi mà cứ ngỡ là Cloud xịn. Thấy nhiều bác, kể cả mấy ông làm MMO hay Dev mới vào nghề vẫn còn lơ mơ khái niệm này, bị sales thuốc cho sấp mặt nên hôm nay tui viết bài này. Không phải copy paste định nghĩa trên Google đâu nhé, cái này là mổ xẻ từ hạ tầng đi lên để anh em hiểu bản chất nó vận hành thế nào.
ĐỊNH NGHĨA BÌNH DÂN HỌC VỤ
Nói nôm na cho dễ hình dung trước. Nếu Shared Hosting truyền thống giống như anh em thuê một cái giường tầng trong ký túc xá, thằng giường trên nhảy mạnh thì thằng giường dưới rung, toilet dùng chung kẹt là cả đám nhịn. Thì Cloud Hosting nó là một căn chung cư cao cấp.
Nhưng khoan, đừng hiểu nhầm Cloud Hosting chỉ là một con VPS (Virtual Private Server) đơn lẻ. Sai bét. Cloud Hosting là một hệ sinh thái các máy chủ kết nối với nhau. Dữ liệu và website của các bác không nằm trên một con server vật lý chết tiệt nào cả, mà nó nằm trên một cụm (Cluster).
CẤU TRÚC HẠ TẦNG BÊN DƯỚI - CHUYỆN KHÔNG PHẢI AI CŨNG KỂ
Đây là phần tui muốn nói sâu nhất để anh em phân biệt được hàng xịn và hàng dỏm. Một hệ thống Cloud chuẩn chỉnh (Real Cloud) nó phải giải quyết được bài toán High Availability (HA) và Data Integrity.
Về Compute (Tính toán): Nó dùng công nghệ ảo hóa (Virtualization) như KVM hoặc VMware để chia tài nguyên. Nhưng cái hay là nó chạy trên một pool tài nguyên chung. Nếu con server vật lý đang chứa cái máy ảo (VM) của bác bị cháy CPU, hệ thống tự động “live migrate” (di cư nóng) cái VM đó sang một con server vật lý khác trong cụm ngay lập tức. Web bác chỉ khựng lại vài mili-giây hoặc không hề down time. Đây là cái ăn tiền so với VPS thường.
Về Storage (Lưu trữ): Đây mới là cái quyết định độ mượt. Dân chuyên không ai lưu data trên ổ cứng local của server vật lý cả. Họ dùng hệ thống lưu trữ phân tán (như CEPH Storage). Tức là 1 block dữ liệu của bác, khi ghi xuống, nó sẽ được nhân bản (replica) ra thành 3 bản và vứt ở 3 con server lưu trữ khác nhau. Chết 1 ổ cứng? Chết 2 ổ cứng? Không sao cả, data vẫn còn nguyên và tự động rebuild lại. Đừng bao giờ tin mấy ông bán Cloud mà không cam kết được cơ chế Replication này.
VẤN ĐỀ VỀ IOPS VÀ CÂU CHUYỆN “NGHẼN CỔ CHAI”
Nhiều bác mua Cloud cứ nhìn RAM với CPU, trong khi cái làm web bác quay đều quay đều lại là Disk I/O. Trong môi trường Cloud, vì data đi qua mạng (Network Storage) nên độ trễ (latency) là kẻ thù số 1.
Để xử lý cái này, hạ tầng phải dùng 100% SSD Enterprise hoặc NVMe, và đường truyền nội bộ giữa các node server phải là 10Gbps hoặc 40Gbps. Khi anh em deploy một con Database nặng, cái chỉ số IOPS (Input/Output Operations Per Second) mới là thứ quyết định sống còn. Cloud xịn là phải cam kết được IOPS tối thiểu, chứ không phải kiểu “best effort” hên xui. Các bác chạy Query SQL mà thấy Disk wait cao vút thì hiểu là hạ tầng storage bên dưới đang bị nghẽn hoặc bị oversell quá mức rồi.
ẢO HÓA - LINH HỒN CỦA CLOUD
Sâu thêm chút nữa về công nghệ. Tại sao tui hay khuyên anh em né mấy gói giá rẻ bèo nhèo? Vì họ thường dùng công nghệ Container-based (như OpenVZ) thay vì Hardware Virtualization (như KVM).
Với OpenVZ: Anh em dùng chung Kernel với máy chủ vật lý. Tài nguyên RAM/CPU là ảo, chia sẻ (share). Ông hàng xóm mà DDOS hoặc chạy tool đào coin thì bác cũng nghẽn theo.
Với KVM (Kernel-based Virtual Machine): Đây là chuẩn mực của Cloud hiện đại. Tài nguyên được cô lập hoàn toàn. Ram 4GB là đúng 4GB vật lý dành riêng cho bác. Kernel riêng, bác thích cài Linux, Windows hay Custom OS gì cũng được. Khi chọn Cloud Hosting hay Cloud VPS, bắt buộc phải hỏi nhà cung cấp xem họ dùng nền tảng ảo hóa gì. Nếu là KVM thì hãy xuống tiền.
TÚM CÁI VÁY LẠI
Cloud Hosting không phải là phép màu giúp web code lởm thành web xịn, nhưng nó là cái nền móng vững chắc nhất hiện tại. Nó cho phép anh em Scale (mở rộng) nóng ngay lập tức. Đang chạy event, traffic x10, vào dashboard kéo thanh trượt tăng CPU/RAM lên là xong, hết event lại kéo xuống. Không cần chuyển server, không cần cấu hình lại IP.
Làm IT, làm Web hay MMO thì cái đầu lạnh là một chuyện, nhưng cái “hậu phương” server phải chắc thì mới ngủ ngon được. Đừng ham rẻ vài đồng mà mua mấy con VPS share tài nguyên nát bét rồi tối ngày đi fix lỗi time-out. Anh em nào cần tư vấn sâu hơn về kiến trúc hệ thống hay cần build lab để test thì cứ ới tui, tui rep trong phạm vi hiểu biết. Kiến thức là để chia sẻ mà.