Chào các bạn. Bài viết này sẽ là phát súng đầu tiên trong seri của mình. Chính xác là khâu chuẩn bị cho cả dự án migration này. Bạn không thể làm gì nếu như bạn không lên kế hoạch trước, vạch ra các đường đi nước bước cụ thể. Vì vậy với mình khi được giao nhiệm vụ, mình đã lên kế hoạch cụ thể cho dự án. và dứoi đây là những thứ mình đã chuẩn bị:
1. Nhân sự
Chắc chắn rồi. Để thực hiện được dự án này, bạn cần phải có con ngừoi với những vai trò khác nhau. Một mình bạn hay team devops sẽ là không đủ. Hãy thông báo trước với mọi ngừoi về công việc bạn sắp làm việc để họ có thể thu xếp thừoi gian hỗ trợ bạn. Tổi thiếu với mình thì sẽ là như sau:
Devops team: Sẽ là tốt hơn nếu như có nhiều hơn 2 thành viên. Nhưng nếu chỉ có 1 như mình, không lo vì còn có các team khác hỗ trợ.
Dev team: Cực kì quan trọng.
QC team: Cũng quan trọng không kém. Họ sẽ đảm bảo về ứng dụng của bạn hoạt động đúng khi được đưa lên môi trường mới.
Partner team ( Optional ) Nếu bạn dịch chuyển hệ thống của bạn lên đám mây nào, thì trước hết bạn hãy tìm cho mình một partner team đủ tin cậy để đồng hành cùng bạn trong dự án. Có thể kể đến các lợi ích sau:
- Partner sẽ thay mặt cho nhà cung cấp dịch vụ cloud hỗ trợ bạn trong toàn bộ quá trình bạn sử dụng dịch vụ. Hãy tận dụng họ trong quá trình dịch chuyển lên cloud.
- Credits: Khi làm việc với hãng và partner, công ty bạn sẽ nhận được khoản credits đáng kể để phục vụ quá trình dịch chuyển. Ví dụ như bạn cần khoảng 2 - 3 tháng để xây dựng hạ tầng mới trên cloud và đưa toàn bộ ứng dụng lên đó. Thì hãng sẽ cấp cho bạn một mức credits để cover cho khoảng thời gian dịch chuyển đó cho đến khi tất cả các ứng dụng của bạn chạy ổn định trên môi trường mới.
- Discount: Khi thanh toán hoá đơn hàng tháng của dịch vụ cloud qua partner, bạn sẽ nhận được mức discount từ 5 - 15% hoá đơn thàng tháng. Sẽ giảm đáng kể chi phí đó.
2. Xác định các hệ thống và thứ tự được đưa lên
Không phải là một phát bạn đưa tất cà các hệ thống ứng dụng của bạn lên cloud. Hãy chia nhỏ ra từng cụm một, xác định độ ưu tiên ta sẽ đưa lần lượt từng cụm dịch vụ lên. Sẽ rất rủi ro và vất vả nếu như bạn đưa tất cả chúng lên cùng lúc. Như với công ty của mình có 3 cụm dịch vụ chính như sau: POS, Paygate và Ewallet, với mỗi một cụm sẽ có đội Dev và QC khác nhau. Vậy làm sao xác định được thứ tự đưa lên cloud. Mình đưa ra gợi ý như sau:
- Dựa vào độ phức tạp: Mỗi một cụm dịch vụ sẽ có quy mô khác nhau. Dịch vụ nào có quy mô nhỏ mình sẽ đưa lên trước. Lấy kinh nghiệm cho các cụm dịch vụ sau. Bạn có thể dựa vào số lượng microservice, số lượng database của mỗi dịch vụ để phân chia quy mô.
- Dựa vào active user: Nếu cụm nào có số lượng active user nhỏ hơn. Hãy đưa cụm đó lên trước.
- Các tiêu chí khác: Tuỳ thuộc vào tính chất của mỗi dịch vụ để bạn cân nhắc xem: dịch vụ nào của công ty là quan trọng nhất, dịch vụ nào mang lại nhiều doanh thu nhất. Cái nào nhất, đưa lên sau cùng.
Vậy thì với các dịch vụ của công ty mình có một bảng so sánh như sau:
Dịch vụ | Microservices | Active User | Doanh thu |
---|---|---|---|
POS | < 10 | Ít | Nhỏ |
Paygate | < 30 | Lớn | Lớn |
Ewallet | < 100 | Nhỏ | Nhỏ |
Dựa vào bảng so sánh này, mình quyết định phần chia thứ tự các dịch vụ được đưa lên cloud như sau: POS, Ewallet, Paygate
3. Hãy chuẩn bị thật kĩ càng sự hiểu biết về hệ thống của bạn
Hãy nắm các hệ thống của bạn trong lòng bàn tay . Nếu bạn không muốn phát sinh nhiều vấn đề trong toàn bộ quá trình dịch chuyển của bạn.
Tổng kết
Vậy đúc kết lại, chiến lược của mình sẽ như sau:
- Chuẩn bị về mặt nhân lực đầy đủ cho dự án. Và tìm kiếm một partner phù hợp.
- Chia nhỏ hệ thống thành từng cụm dịch và đưa lên lần lượt. Không vội vàng, chậm mà chắc.