Sorry vì tớ trả lời muộn nhé! Tớ đã định trả lời cậu từ Trung thu, cơ mà không kiếm đâu ra thời gian để viết câu trả lời tử tế.
Về câu hỏi của cậu, tớ sẽ cố trả lời trong phạm vi kỹ thuật thuần túy. Tớ sẽ hạn chế đưa ra các khái niệm cơ bản, chẳng hạn về cloud, vì cậu nên dễ dàng google nó. Thay vào đó, tớ sẽ trả lời các câu hỏi mà cậu đưa ra, và giải thích rõ hơn về lý do sao cloud lại được sử dụng.
Trước tiên, tớ có thể thấy nhiều bạn đề cập tới việc cloud tương đồng với thuê máy tính của người khác. “Dịch vụ cloud” thực ra không đơn thuần là “thuê máy tính người khác” để làm.
Khi cậu mua máy tính, hay thuê VPS, thông thường cậu là người phải tự tay setup:
- Security measurement. Tường lửa, các biện pháp chống các cuộc tấn công từ hacker phổ biến như chống DDoS…, thiết lập network cho toàn bộ hệ thống… đều phải được cài đặt bởi cậu.
- Tự cài đặt các phương pháp để đảm bảo availability của hệ thống. Nếu cậu có 1 hệ thống yêu cầu availability cao (99.99% chẳng hạn), cậu phải tự cài đặt các phương pháp để scale hệ thống, deploy trên nhiều data center, nhiều quốc gia, tự cài đặt load balancer,… Tất cả chỉ để đảm bảo hệ thống có availability cao.
- Các giải pháp quan sát hệ thống cũng phải được tự cài đặt. Monitoring dashboard, log collection, alert notification,… đều phải tự cài đặt from scratch.
- Etc.
Có rất nhiều công việc cậu phải tự làm nếu cậu cần build 1 hệ thống có yêu cầu rất cao. Mấy ví dụ kể trên chỉ cho cậu thấy rằng, thực tế nó tốn kém như thế nào nếu cậu tự làm bằng tay cho tất cả các đầu việc đó. Cậu cũng phải có chuyên gia hiểu tất cả best practice để hoàn thành việc đó luôn.
Cloud thực tế đưa ra dịch vụ giải quyết tất cả những điều này. Cậu không chỉ “thuê server”, cậu sử dụng luôn toàn bộ các giải pháp cho các vấn đề kể trên, bao gồm cả chi phí vận hành cho tất cả các giải pháp. Chi phí cho việc sử dụng cloud, so với chi phí cậu làm tất cả mọi thứ, và phải tự lo vận hành tất cả, chắc chắn sẽ thấp hơn rất nhiều. Đó là điểm khác biệt so với việc thuê server thuần túy.
Ngoài ra, trên cloud platform cậu có rất nhiều các giải pháp mà chỉ có trên cloud (hoặc rất khó để tự cài đặt) cậu mới có (như serverless, CDN, etc.).
Từ đặc điểm đó, tớ nghĩ cậu có thể tự giải thích được tại sao mọi người lại cân nhắc dùng cloud nhiều thế. Với các business nhỏ và vừa, họ nên tập trung vào business hệ thống hơn là tốn chi phí cho việc maintain infrastructure. Với các business lớn, họ thường vận hành hệ thống private cloud riêng của họ, nơi cung cấp giải pháp infra cho toàn bộ tổ chức, và để các tổ chức nhỏ hơn tập trung vào business hệ thống.
Giờ, tớ sẽ trả lời các câu hỏi của cậu.
Vậy cho em hỏi hệ thống bây giờ đã có domain, đã đưa lên internet rồi, user truy cập chỉ cần tìm một app client như desktop app, mobile app, dùng browser bất kỳ mở web, thậm chí là dùng smart watch, từ nhân viên cho đến ban lãnh đạo chỉ cần dùng account login vào hệ thống là dùng được. Như vậy có được gọi là “đưa lên cloud”, hay cloud hóa, chuyển đổi số, … chưa ạ?
Tớ không nghĩ việc đề cập 1 hệ thống “online” được là hệ thống đã được “đưa lên cloud”, “chuyển đổi số” đâu Cậu hoàn toàn có thể tự mua server về hay thuê VPS để deploy hệ thống mà
Cậu chỉ có thể gọi hệ thống của cậu được “đưa lên cloud” khi:
- Hệ thống của cậu được triển khai trên một trong các dịch vụ public cloud. Tớ nghĩ cậu đã biết các dịch vụ public cloud nổi tiếng rồi.
- Hệ thống của cậu được triển khai trên private cloud.
Điểm phân biệt nằm ở hạ tầng mà cậu sử dụng, hơn là việc cậu có đưa thứ gì đó lên internet hay không.
Em thấy Spring boot cũng có dịch vụ cloud, các nền tảng ERP như Oracle, SAP cũng tới tấp quảng cáo cloud, cloud ở đây là họ đang cung cấp giải pháp gì hay đang bán gì vậy? (Đừng bắt em đọc docs ạ, nếu đọc docs hiểu em đã không lên đây hỏi )
Oh, cậu thực ra nên đọc doc của họ Đó là cách dễ nhất để cậu hiểu chính xác họ đang làm gì
Oracle, SAP,… có hệ thống cloud của riêng họ, và tớ nghĩ họ muốn bán các giải pháp về cloud đó, tương tự như Azure, AWS, GCP.
Về Spring boot, tớ nghĩ cậu confuse giữa Spring cloud framework (support để tạo ra cloud native app) với khái niệm cloud in general.
Hay là cloud nghĩa là mô hình giống như MongoDB, wordpress, … đang làm? tức wordpress là mã nguồn mở, ai không thích code, không biết devOps để deploy web tốn thời gian nên trả tiền cho wordpress, để họ tự config, tự gắn domain, 5 phút là có ngay website. MongoDB cũng open source, ai thích tự triển khai db thì tự config, muốn nhanh thì thuê bên MongoDB, click vài cái là có username, password cho team backend?
MongoDB có cloud service. Tớ đoán cậu đang đề cập tới nó. Nếu cậu đề cập tới việc download MongoDB về server của cậu, đó không phải cloud
WordPress không phải cloud-base system đâu cậu. Tất nhiên cậu có thể deploy WordPress website của cậu lên cloud, nhưng WordPress cơ bản không liên quan tới cloud.
Hay chỉ cần hiểu đơn giản cái gì đưa lên internet được thì gọi là cloud? nhưng từ mấy chục năm trước đã có nhiều hệ thống vận hành trên internet rồi mà, hay ngày xưa doanh nghiệp sử dụng MS access, excel, … toàn chạy local?
Nope. Không phải thứ gì được đưa lên internet cũng được gọi là đưa lên cloud. Và đúng là excel được chạy trên local trước kia
Cloud không phải khái niệm mới đâu. Khoảng chục năm trước, có một công ty diệt Virus ở Việt Nam từng “nổ” họ sử dụng “công nghệ điện toán đám mây” cho phần mềm diệt virus của họ rồi. Cơ mà tại thời điểm gần đây, các cloud service provider mới thực sự trưởng thành, và lợi ích của nó cho business là không thể chối bỏ, nên mọi người mới sử dụng công nghệ này. Đó chắc chắn không phải sản phẩm phóng đại của truyền thông đâu
Hope it helps!