Ở những bài trước, tụi mình đã cùng tìm hiểu về Cloud, cũng như những dịch vụ hay dùng của Azure rồi.
Trong phần này, mình sẽ tổng hợp lại toàn bộ series, cũng như giới thiệu các bạn bạn biết Toàn bộ một hệ thống chạy trên Azure sẽ trông như thế nào nhé!
Xem xong, các bạn sẽ biết được mối quan hệ giữa các dịch vụ này, cách kết hợp chúng với nhau nha! Các bạn đọc bài, thấy quên phần nào cứ bấm vào link phần đó để đọc lại nhé!
Mục lục
Lý thuyết
- Giới thiệu Series Cùng học Cờ Lao – Tìm hiểu về Cloud Computing
- Cloud là cái chi chi? Cloud có gì hot?
- Sự ra đời của Cloud; AWS, Azure, Google Cloud Platform và các dịch vụ của họ
- Những ưu nhược điểm của Cloud
Thực hành cùng Azure
- Phần 1: Cách tạo account Microsoft Azure để bắt đầu nghịch
- Phần 2: Tạo máy ảo (Virtual Machine) Windows để nghịch ngợm
- Phần 3: Cùng deploy ứng dụng Web trên máy ảo Azure Cloud
- Phần 4.1: Azure App Service là gì? Nó có gì hay ho?
- Phần 4.2: Deploy ứng dụng lên Azure App Service trong 5 phút
- Phần 5.1: Sự bá đạo của Azure SQL Database?
- Phần 5.2: Tạo và kết nối SQL Database trên Cloud trong 10 phút
- Phần 6.1: Lưu trữ file từ vài trăm MB tới hàng chục TB với Azure Storage
- Phần 6.2: Tìm hiểu về Azure Blob và Azure File
- Phần 7: Một số service hay ho khác của Azure
- Phần cuối: Toàn bộ một hệ thống chạy trên Azure sẽ như thế nào
Để dễ hình dung, chúng ta hãy thử tượng tượng ta muốn làm 1 mạng xã hội nho nhỏ như Facebook, Gạ Phò hay Củ Sen đình đám vừa ra mắt nha!
Application – Azure App Service hoặc Azure VM
Mạng xã hội của chúng ta có thể được viết thành 1 cục bằng C#/PHP/Node.JS/Java. Hoặc nó có thể tách thành nhiều service nhỏ, mỗi service viết bằng 1 ngôn ngữ khác nhau.
Cách đơn giản nhất là deploy nguyên app/từng service lên Azure App Service, khỏi cần phải cài đặt gì phức tạp, muốn scale cũng dễ dàng luôn.
Trường hợp Azure App Service không hỗ trợ, chúng ta cũng có thể thuê nguyên con Azure VM, tha hồ cài cắm gì cũng được. Khi cần scale, ta có thể áp dụng thêm Azure Load Balancer để cân bằng tải giữa nhiều máy luôn.

Ngoài ra, ở các công ty có DevOps, dùng microservice thì họ thường deploy lên Docker Swarm hoặc Kubernetes. Mảng này thì Google Cloud khá ngon, còn Azure hồi mình dùng thử Azure Kubernetes thấy hơi chuối, khuyên anh em đừng thử nha!
Database – Azure SQL Database hoặc CosmosDB + Redis Cache
Mạng xã hội thì phải có nơi lưu trữ thông tin của người dùng phải không nào? Thường thì dân viết C# hay dùng Microsoft SQL, còn lại thì đa phần giang hồ dùng MySQL hoặc Postgres.
Tin vui là cả 3 database này thì Azure đều có cả. Azure SQL Database còn hỗ trợ khá nhiều thứ hay ho như montoring, recommend đánh index, tự backup, dễ scale lên xuống nữa.
Ngoài ra, để giảm tải cho database, tăng tốc độ hệ thống, ta có thể dùng Redis làm cache để đỡ xử lý nhiều trên server.

Lưu trữ File với Azure Blob/Azure File Storage
Tất nhiên, đã là mạng xã hội thì phải có nơi cho phép người dùng up hình vếu, up hình cho mèo để sống ảo, đăng clip quảng cáo bán hàng.
Azure cung cấp Azure Blob và Azure File, tha hồ cho chúng ta lưu trữ từ vài chục GB cho đến vài trăm TB. Chi phí được tính theo dung lượng lưu trữ, lưu lượng tải về nên lưu nhiều tốn nhiều, lưu ít tốn ít, không cần phải đầu tư quá nhiều.
Ngoài ra, nếu ta mở rộng, muốn dữ liệu được lưu trữ ở nhiều vùng khác nhau, phục vụ khách hàng trên toàn cầu, ta có thể tìm hiểu và áp dụng CDN. Cái này thì Azure cũng có Azure CDN luôn!

Quản lý hệ thống bằng Azure Monitor
Tất nhiên, một hệ thống dù có nhiều tính năng tới mức nào, nhưng chạy không ổn định, lúc chậm lúc nhanh, khi sập khi tèo thì … dĩ nhiên sẽ bị người dùng tẩy chay.
Do vậy, bản thân mỗi service của Azure đều có gắn kèm analytic:
- Azure App Service có hiện thị server load, memory load, thời gian response của các response, request
- Azure VM sẽ ghi log đủ thứ, dung lượng đĩa còn trống, RAM và CPU sử dụng, tốc độ đọc/ghi của ổ cứng v…v
- Azure Database thì hiển thị dung lượng còn dư, số lượng đọc/ghi, những câu query chậm, chiếm tài nguyên để optimize

Trên thực tế, người ta sẽ sử dụng Azure Monitor để lấy dữ liệu từ nhiều nguồn này để tạo thành dashboard, hiên thị trạng thái của hệ thống.
Ngoài ra, người ta thường setup thêm Health Check (Gửi request tới các service/web để xem nó sống hay không) và Notification.
Khi hệ thống có vấn đề (service chết, RAM quá cao, API chậm, …), Azure sẽ gửi thông báo qua tin nhắn SMS/ email để team có biện pháp xử lý kịp lúc
Một số tính năng thêm khác
- Dùng Redis để làm message queue
- Dùng Azure Notification Hub để gửi notification cho người dùng trên di động
- Dùng Cognitive Services để nhận dạng khuôn mặt, âm thanh, xử lý ảnh.
Các bạn có thể tham khảo thêm tại Phần 7: Một số service hay ho khác của Azure. Một số service chuyên biệt dùng để lưu trữ, phân tích, xử lý big data thì mình ko dùng nên ko rõ. Bạn nào đã từng làm thì vào chia sẻ nha!

Tạm kết
Sau một chặng đường dài hơn nửa năm, cuối cùng series Cùng Học Cờ Lao cũng đã đi đến hồi kết.
Trong quá trình viết series này, mình cũng ôn lại được kha khá kiến thức về Azure, đồng thời tổng hợp và chia sẻ lại những điều mình biết về Cloud cho các bạn đọc.
Trong phạm vi series, mình chỉ giới thiệu những service phổ biến, hay được anh em developer sử dụng. Bản thân Azure có quá trời service mà mình chưa biết, hoặc chưa đụng tới bao giờ. Do vậy, nếu trong series có gì thiếu sót, mong anh em thông cảm, góp ý để mình cải thiện nhé.

Series hơi rải rác nên mình đã tổng hợp lại phần mục lục phía trên. Sắp tới chắc mình sẽ tổng hợp chỉnh sửa lại rồi ra ebook luôn 1 thể.
Đây là một series dài, hơi nặng technical và khá khó. Nếu bạn chịu đọc đến đây, cảm ơn bạn đã chịu khó đồng hành cùng Code Dạo. Hi vọng những thứ mình chia sẻ trong series này có ích cho bạn.
e đọc tới đây rồi, nhưng là đọc bài này đầu tiên =)))
LikeLike
Hi anh, a có thể gợi ý cho e roadmap để học thành cloud computing architecture ko ạ? E cám ơn.
LikeLiked by 1 person
E cứ xem để cương ôn thi mâyd chứng chỉ cloud architecture rồi ôn theo ha
LikeLike
Đã cày xong Series trong 1 buổi cafe sáng chủ nhật.
Quá hay, ngắn gọn xúc tích.
LikeLiked by 1 person