Vậy Cloud là cái gì?
Ngắn gọn, để hiểu đúng bản chất của Cloud: “There is no cloud, it’s just someone else’s computer“.
Nói một cách đơn giản, khi bạn dùng dịch vụ Cloud Azure, tức là bạn đang dùng ké máy của Microsoft trong host database, host app. Khi bạn dùng dịch vụ Cloud AWS tức là bạn đang dùng máy trong data center của Amazon.
Không chỉ dùng ké máy, bạn còn dùng ké cơ sở hạ tầng (điện cho máy chạy, quạt làm mát máy, hạ tầng mạng) của họ nữa.
Cloud thì có hơn gì hosting?
Đọc tới đây, bạn sẽ thắc mắc: “Ủa trước giờ em làm web cũng thuê hosting rồi up code lên thôi. Vậy Cloud nó có khác gì hosting hay VPS đâu?”
Thật ra, Cloud và web-hosting/VPS chỉ là 2 giải pháp khác nhau để giải quyết cùng 1 vấn đề. Tuy nhiên, có một số điểm “hay ho” khiến cho Cloud dần dần được nhiều người sử dụng:
- Linh hoạt hơn: Với hosting, bạn thường thuê 1 con host, tính tiền theo tháng. Nếu muốn chọn host xịn hơn, bạn thường phải chờ đến cuối tháng hoặc hết ngày.
- Dễ scale và tiết kiệm chi phí: Do tính linh hoạt của Cloud, ta có thể scale up, tăng thêm máy vào những giờ cao điểm, sau đó giảm bớt vào giờ thấp điểm để tiết kiệm chi phí.
- Có cung cấp API: Các nhà cung cấp Cloud thì có API, SDK để các bạn sử dụng, nhằm tích hợp vào hệ thống. Các API này giúp ta dễ dàng build tool để làm việc với Cloud.
- Nhiều dịch vụ: So với hosting, các nhà cung cấp Cloud cung cấp nhiều dịch vụ hơn nhiều. Từ Virtual Machine (VPS), Database, Message Queue, lưu trữ file, Load Balancer, cho tới Git Repo hoặc các tool để analytic, profile performance hệ thống.
Cuộc sống trước khi có Cloud?
Để hiểu lý do tại sao Cloud được nhiều công ty lựa chọn để sử dụng, cuộc sống của mấy SysAdmin khi chưa có Cloud được gọi là mô hình On-Premise.
Để một hệ thống có thể hoạt động trơn tru, các SysAdmin sẽ phải đi mua những con server (có thể là rack hoặc tower). Giá một con vào khoảng 600-2000$ tùy vào nhu cầu.
Mua về xong, họ sẽ lắp vào hệ thống, nối đủ thứ dây dợ lòng thòng vào. Sau đó họ sẽ SSH vào các server này để setup các phần mềm cần thiết (Language Runtime như Java, PHP, Python; Web Server hoặc Proxy Server như apache, IIS, nginx).
Sau bước cài đặt sẽ là bước config các phần mềm này (mở port, config thiết lập máy,…). Đến khi server đã được cài đặt hoàn chỉnh, họ mới deploy code của developer lên và chạy. Chuyện tới đây là tạm xong!
Tuy nhiên, công ty sẽ tốn tiền điện, tiền quạt cho hệ thống này. Khi máy hỏng hóc hoặc khi hệ thống cần phục vụ thêm người dùng, các anh SysAdmin sẽ phải tháo máy, mua máy khác gắn thêm vào. Ngoài ra, các anh IT sẽ phải lo việc back-up, bảo mật, nâng cấp phần mềm cho hệ thống.
Toàn bộ những việc này khá tốn thời gian, công sức và … tiền (tiền đầu tư hệ thống, tiền điện, tiền quạt, tiền trả lương IT).
Ngoài ra, nếu đầu tư quá ít vào dàn máy, bạn sẽ tốn công nâng cấp trong tương lai. Ngược lại, nếu đầu tư qúa nhiều, bạn sẽ tốn một khoản tiền lớn ngay lúc đầu, chỉ để phục vụ một lượng nhỏ người dùng.
Cuộc sống sau khi có Cloud
Sự ra đời của Cloud tạo nên một sự thay đổi khá lớn trong cách chúng ta vận hành hệ thống. Giờ đây, các công ty không cần phải tốn tiền thuê nhiều SysAdmin nữa, chỉ việc đưa hệ thống lên Cloud để tận hưởng sự ngon, bổ, nhanh rẻ:
- Cần một server mới: Chỉ cần tạo 1 con máy ảo trên Cloud, tốn khoảng 20-200$/tháng tùy nhu cầu
- Cần database mới: Thay vì thuê server và cài SQL/MySQL, chỉ cần lên cloud tạo 1 DB là xong
- Cần chỗ cho người dùng lưu trữ file, nhạc, ảnh: Tạo Storage trên Cloud thôi
- Cần setup Web Server, Load Balancer: Cloud có hết.
- Hệ thống ít người quá: Giảm cấu hình server xuống để tiết kiệm tiền là xong!
- Hệ thống gần quá tải: Tăng cấu hình server, tăng số lượng server chỉ tốn vài cái click chuột
- Cần back-up, bảo mật, nâng cấp phần mềm: Cloud tự lo hết cho bạn luôn (nếu biết cách setup)
- Không tốn chi phí vận hành: tiền điện, máy lạnh, phòng máy, bảo trì,…
Các nhà cung cấp dịch vụ Cloud và thị phần
Hiện tại, có 3 nhà cung cấp dịch vụ Cloud (Cloud Provider) phổ biến nhất là AWS của Amazon, Azure của Microsoft, và GCP của Google. Ngoài ra còn có IBM, Oracle, VMware Cloud, ServerSpace, Kamatera,…
Trừ các công ty chuyên cung cấp dịch vụ Cloud, hoặc các công ty siêu khủng, đa phần các công ty không tự xây dựng hệ thống Cloud của riêng mình, mà sử dụng dịch vụ Cloud được bên thứ ba cung cấp, gọi là Public Cloud.
AWS – Kẻ tiên phong của thị trường Cloud
AWS (Amazon Web Service) là nhà cung cấp Cloud đầu tiên trên thị trường, có thị phần lớn nhất, được nhiều người sử dụng nhất.
Nguồn gốc của AWS nằm ở những vấn đề mà bất cứ một công ty nào cũng có thể gặp phải khi xây dựng hệ thống IT của riêng mình. Khi cơn bão dotcom qua đi và Amazon trở lại với nhịp tăng trưởng khổng lồ, hạ tầng IT của trang bán hàng này ngay lập tức rơi vào tình trạng hụt hơi.
Đầu thập niên 2000, Amazon liên tục gặp tình trạng quá tải gây gián đoạn đến doanh thu và hình ảnh trong mắt công chúng. Vấn đề này buộc Benjamin Black và Chris Pinkham phải tìm cách tái cơ cấu hạ tầng IT của Amazon. Mỗi tầng của hệ thống cần được chuẩn hóa để những người làm việc trên tầng khác có thể chú tâm làm việc một cách dễ dàng.
Mở các dịch vụ chuẩn mực này ra bên ngoài là bước tiến hoàn toàn tự nhiên để biến nền tảng của Amazon thành nền móng của Internet. 20 năm sau, AWS đã trở thành một đế chế nhỏ bên trong Amazon với trị giá thị trường lên tới 120 tỷ USD.
Cuộc chiến đám mây và 3 ông lớn Amazon, Microsoft, Google
Ban đầu, vào năm 2006, chỉ có mỗi Amazon cung cấp dịch vụ Cloud Computing. Lợi nhuận của mảng này khá là khủng, khiến Cloud trở thành một trong những nguồn doanh thu và lợi nhuận chính của Amazon.
Thấy ngon ăn, không muốn cho Amazon độc chiếm thị trường, Microsoft cũng nhảy vào, ra mắt Cloud Azure vào năm 2010. Microsoft có lợi thế hơn vì có lượng khách hàng doanh nghiệm nhiều, cung cấp các dịch vụ Cloud của Microsoft với giá rẻ hơn nên cũng phát triển khá là nhanh.
Google thì chậm chân hơn khá nhiều. Trước đó họ đã có Google App Engine, sau này họ mới mông má thêm nhiều dịch vụ khác, gọi là Google Cloud Platform, ra mắt vào khoảng năm 2011.
Học về lịch sử Cloud để các bạn biết lựa chọn thứ gì để học và phù hợp với bản thân, đây cũng là kiến thức nên biết khi phỏng vấn.
Các dịch vụ mà Cloud cung cấp
Mặc dù có đôi chút khác nhau về cách sử dụng, cách quản lý, đa phần các nhà cung cấp Cloud đều cung cấp những dịch vụ tương tự nhau.
- Virtual Machine (VM): Cung cấp máy ảo để chúng ta có thể cài và chạy ứng dụng. (Amazon EC2, Azure VM, Google Compute Engine)
- Storage: Cung cấp nơi để lưu trữ file tĩnh (ảnh, nhạc, video, text) để ứng dụng hoặc người dùng có thể upload/download về. (Amazon S3, Azure Blog Storage, Google Cloud Storage)
- Database: Cung cấp cơ sở dữ liệu (SQL hoặc NoSQL) để sử dụng tiện lợi, không cần cài đặt, update (Amazon có DynamoDB, RDS; Azure có Azure SQL Database, CosmosDB; Google có Google Cloud SQL, Google Cloud Datastore)
- PaaS: Cung cấp nền tảng Platform as a Service để deploy ứng dụng và chạy (Amazon có Elastic BeanStack, Azure có Azure App Service, Google có App Engine)
- Serverless: Dịch vụ giúp chạy code mà không cần quan tâm đến hạ tầng hay server (Amazon có Lambda, Azure có Azure Function, Google có Google Cloud Function)
Ngoài ra còn khá nhiều dịch vụ nữa như Firewall, Load balancer, Machine Learning,… nhưng mình chỉ liệt kê những cái cơ bản thôi.