Câu 1Khi bạn dùng shared hosting, bạn quản lý tầng nào?
Khác biệt giữa cloud và on-premises — shared hosting và phạm vi trách nhiệm
Bài viết này nằm trong khóa Kiến thức nền tảng về CNTT, xây dựng từ đầu những kiến thức CNTT thực tế tối thiểu mà bạn cần để lập trình và vibe coding.
Khác biệt nằm ở chỗ ai sở hữu thiết bị server và bạn tự quản lý đến tầng nào. Hình minh họa cho thấy phạm vi trách nhiệm của ba hình thức và vị trí của AWS, Google Cloud, Azure.
Bài viết này nói về ba hình thức nơi ứng dụng chạy: on-premises, shared hosting và cloud.
Khác biệt gom lại ở một điểm: ai sở hữu thiết bị server, và ai quyết định thứ nằm bên trong nó.
Ở phần cuối, bài viết cũng nói về vị trí của các nhà cung cấp cloud tiêu biểu là AWS, Google Cloud và Azure.
Chỉ on-premises là bạn tự sở hữu thiết bị.
Ba hình thức khác nhau ở chỗ ai sở hữu thiết bị server và ai quyết định cấu hình
Ba hình thức khác nhau ở hai điểm: thiết bị server nằm ở đâu, và ai quyết định cấu hình gồm OS (Operating System. Phần mềm nền tảng nằm giữa thiết bị và chương trình, lo phần file, mạng và màn hình) cùng môi trường chạy.
Tòa nhà của nhà cung cấp nơi đặt thiết bị là trung tâm dữ liệu (data center. Tòa nhà chuyên dụng để đặt và vận hành rất nhiều server),
còn phần được chia ra bên trong đó và chạy như một máy độc lập là server ảo (virtual server. Trong tài liệu hướng dẫn còn được viết là "instance").
Bạn có tự chọn được cấu hình hay không chính là điểm phân định giữa shared hosting và cloud.
- Tòa nhà chuyên dụng có nguồn điện, điều hòa và đường truyền
- Rất nhiều server vật lý giống nhau xếp trong đó
- Chọn OS, khởi động và cài môi trường chạy
- Đặt app.js và dữ liệu ở đây
- Chạy độc lập với A
- Từ A không nhìn thấy được
- Sẽ dùng cho lượt đăng ký tiếp theo
Bạn chỉ thao tác được với phần của mình; phần bên cạnh và bản thân server vật lý đều không nhìn thấy được.
Một lần đăng ký là bạn khởi động được bao nhiêu máy tùy ý, và dùng xong thì dừng lại.
Giá cũng được tính theo lượng đã dùng và thời gian đã dùng.
Sách nhập môn còn gọi hình thức ai cũng đăng ký được này là public cloud.
Khác biệt là chủ sở hữu thiết bị và người quyết định thứ bên trong
Ba hình thức chỉ khác nhau ở chỗ thiết bị server là của ai và ai quyết định thứ bên trong nó.
Cả thiết bị lẫn thứ bên trong đều là của bạn thì là on-premises, giao cả hai cho nhà cung cấp thì là shared hosting, thiết bị của nhà cung cấp còn cấu hình do bạn chọn thì là cloud.
Phạm vi trách nhiệm — nhà cung cấp quản lý đến tầng nào, và phần của bạn bắt đầu từ đâu
Thứ bạn nhìn vào khi chọn là ai sửa khi có hỏng hóc.
Một server gồm năm tầng: tòa nhà cùng nguồn điện và đường truyền, thiết bị, OS, môi trường chạy, ứng dụng cùng dữ liệu.
Cách hai bên chia nhau quản lý từng tầng là phạm vi trách nhiệm (nhà cung cấp cloud gọi đây là mô hình trách nhiệm chung).
| Tầng | On-premises | Shared hosting | Server ảo trên cloud |
|---|---|---|---|
| Ứng dụng và dữ liệu | Bạn | Bạn | Bạn |
| Môi trường chạy | Bạn | Nhà cung cấp | Bạn |
| OS | Bạn | Nhà cung cấp | Bạn |
| Thiết bị server | Bạn | Nhà cung cấp | Nhà cung cấp |
| Tòa nhà, nguồn điện và đường truyền | Bạn | Nhà cung cấp | Nhà cung cấp |
Với on-premises, cả năm tầng đều do bạn quản lý; với shared hosting thì chỉ tầng trên cùng.
Với server ảo trên cloud, ranh giới rơi vào giữa thiết bị và OS.
Chỉ ở on-premises thì việc đặt mua linh kiện và thay thế khi thiết bị hỏng mới là việc của bạn.
Với shared hosting và cloud thì nhà cung cấp thay, còn ở cloud bạn chỉ cần khởi động lại trên thiết bị khác là chạy được.
Nhưng việc kiểm tra xem ứng dụng và dữ liệu có chạy như cũ hay không thì ở hình thức nào cũng là việc của bạn.
- Nhà cung cấp quản lý tòa nhà và thiết bị
- Nhà cung cấp cũng là bên thay thiết bị hỏng
- Bạn chọn trong số có sẵn rồi khởi động
- Cập nhật sau khi khởi động là bạn tự làm
- Bạn tự cài node hay python
- Đặt app.js và dữ liệu ở đây
- Khi mất thì khôi phục cũng là việc của bạn
Nhà cung cấp chỉ chuẩn bị tới thiết bị, sau khi bạn chọn OS và khởi động thì phần còn lại là của bạn.
Lỗi của ứng dụng hay mất dữ liệu thì nhà cung cấp không sửa.
Dưới ranh giới là nhà cung cấp, trên ranh giới là bạn
Server gồm năm tầng, nhà cung cấp quản lý phần dưới còn bạn quản lý phần trên.
On-premises thì toàn bộ là của bạn, shared hosting thì chỉ tầng trên cùng là của bạn, server ảo trên cloud thì từ trên thiết bị trở lên là của bạn, và nhà cung cấp chỉ sửa phần dưới ranh giới.
Trên cloud, bạn chọn nơi đặt cho từng thành phần của ứng dụng
Trên cloud không chỉ có server ảo.
Khi bạn chọn managed service (dịch vụ mà nhà cung cấp lo việc cài đặt, cập nhật và xử lý sự cố cho OS và môi trường chạy, còn bạn chỉ cấu hình và sử dụng), ranh giới dịch lên trên.
Mỗi thành phần đặt ở một nơi khác nhau, nên ranh giới của từng thành phần cũng khác nhau.
Với dịch vụ lưu trữ file và cơ sở dữ liệu được quản lý, việc quản lý OS và môi trường chạy chuyển sang phía nhà cung cấp.
Với cơ sở dữ liệu được quản lý, việc bạn làm chỉ là thiết kế bảng và đọc ghi dữ liệu.
Với backend còn có cả nơi đặt kiểu chỉ chạy phần xử lý khi có request tới.
Mọi thứ trong khung đều là thiết bị của nhà cung cấp, bạn không sở hữu thiết bị nào.
Dù vậy, OS và môi trường chạy bên trong server ảo vẫn do bạn tự cài và tự cập nhật.
Chọn nơi đặt thì ranh giới cũng dịch theo
Nơi đặt càng giao nhiều cho nhà cung cấp thì phần việc còn lại của bạn càng ít.
Với cơ sở dữ liệu được quản lý, việc bạn làm chỉ là thiết kế bảng và đọc ghi dữ liệu, còn riêng backend đặt trên server ảo thì từ OS trở lên vẫn thuộc phần bạn quản lý.
AWS, Google Cloud và Azure — các nhóm dịch vụ chung, và lĩnh vực mạnh của từng bên
AWS, Google Cloud và Microsoft Azure là tên các cloud do Amazon, Google và Microsoft vận hành.
Mỗi cái là tên riêng của một công ty, và bên trong chứa rất nhiều dịch vụ.
Đơn vị khu vực địa lý gom các trung tâm dữ liệu lại là region.
- Đặt trung tâm dữ liệu khắp nơi trên thế giới
- Ở khu vực nào cũng cung cấp cùng những nhóm dịch vụ đó
- Chọn OS, khởi động rồi dùng
- Chứa bảng và dữ liệu
- Đặt file lên để công khai hoặc lưu giữ
- Có cùng những nhóm dịch vụ đó
- Bạn chọn được khu vực gần người dùng ứng dụng
Chọn region gần người dùng ứng dụng thì thời gian đi và về của request và response ngắn lại.
| Nhóm | AWS | Google Cloud | Microsoft Azure |
|---|---|---|---|
| Công ty vận hành | Amazon | Microsoft | |
| Server ảo | Amazon EC2 | Compute Engine | Virtual Machines |
| Cơ sở dữ liệu được quản lý | Amazon RDS | Cloud SQL | Azure SQL Database |
| Lưu trữ file | Amazon S3 | Cloud Storage | Blob Storage |
Nhìn vào cột nhóm bên trái là bạn biết vai trò, kể cả với cái tên lần đầu nhìn thấy.
Điểm chung của ba công ty dừng lại ở các nhóm này.
Dù cùng có đủ các nhóm dịch vụ như nhau, mỗi nhà cung cấp lại xây dựng dày hơn ở những lĩnh vực khác nhau.
Bạn không nhất thiết phải chọn hẳn một công ty.
Dùng nhiều nhà cung cấp, mỗi bên cho một mục đích, là multi-cloud (hình thức dùng nhiều nhà cung cấp cloud theo từng mục đích), và bạn chọn được nhà cung cấp mạnh ở lĩnh vực mà từng thành phần cần.
Có điều, mỗi nhà cung cấp lại có màn hình thao tác và thuật ngữ riêng, nên số thứ phải nhớ và phạm vi phải quản lý đều tăng lên.
Khi ứng dụng còn nhỏ thì gom về một nhà cung cấp, đến khi phát sinh nhu cầu mới tính đến việc chia ra.
Nhóm dịch vụ thì chung, lĩnh vực mạnh thì khác
AWS, Google Cloud và Azure lần lượt là tên các cloud của Amazon, Google và Microsoft, và cả ba đều có những nhóm dịch vụ như nhau: server ảo, cơ sở dữ liệu được quản lý và lưu trữ file.
Vì các nhóm là chung nên chỉ cần nắm một nhà cung cấp là bạn đọc được tên của những bên còn lại bằng cách quy chúng về đúng nhóm, nhưng lĩnh vực mạnh của mỗi bên lại khác nhau, và còn một cách chọn nữa là multi-cloud, dùng nhiều nhà cung cấp theo từng mục đích.
Kiểm tra kiến thức
Hãy trả lời từng câu hỏi một.
Câu 2Khi bạn dùng server ảo trên cloud, ai là người cập nhật OS?
Câu 3Phát biểu nào về AWS, Google Cloud và Microsoft Azure là đúng?