Mục Lục
- Khái Niệm
- Hướng Dẫn Bước Từng Bước
- Thực Hành Tốt Nhất
- Các Cạm Bẫy Thường Gặp
- Mẹo Tối Ưu Hiệu Suất
- Giải Quyết Vấn Đề
I. Khái Niệm
1.1 AWS Transform là gì?
AWS Transform là một dịch vụ mới của AWS sử dụng AI tự động hóa để hiện đại hóa và di chuyển cơ sở hạ tầng, ứng dụng và mã nguồn lên AWS. Dịch vụ này giúp giảm thời gian, công sức và rủi ro khi xử lý các hệ thống cũ hoặc phức tạp như mainframe, VMware và các khối lượng công việc .NET bằng cách phân tích, tái cấu trúc và triển khai lại trên đám mây.
1.2 Các Trường Hợp Sử Dụng Chính
Hiện Đại Hóa Mainframe
- Chuyển đổi COBOL, JCL, CICS, Db2, VSAM thành các ứng dụng Java hiện đại.
- Tự động phân tích mã, trích xuất logic kinh doanh, tạo tài liệu kỹ thuật và tái cấu trúc.
Di Chuyển VMware
- Di chuyển máy ảo từ VMware tại chỗ lên Amazon EC2.
- Tự động tạo kế hoạch di chuyển, cấu hình mạng VPC và chuyển đổi VMs sang EC2.
Hiện Đại Hóa .NET
- Nâng cấp từ .NET Framework cũ lên .NET đa nền tảng.
- Tích hợp với Visual Studio; tự động giải quyết các phụ thuộc, xây dựng và kiểm tra.
Đánh Giá Di Chuyển
- Đánh giá chi phí và tính khả thi trước khi di chuyển.
- Đề xuất dựa trên AI cho kích thước EC2, tối ưu hóa BYOL và phân tích chi phí.
1.3 Khả Năng Chính
- AI tự động với con người trong quy trình (HITL) cho các tác vụ và quyết định phức tạp.
- Tự động hóa toàn diện: khám phá → lập kế hoạch → tái cấu trúc mã → triển khai.
- Hợp tác linh hoạt: quyền truy cập theo vai trò (Quản trị viên, Người phê duyệt, Người đóng góp, Độc giả).
- Không gian làm việc để phân tách các dự án, với các công việc và kết nối chuyên biệt.
- Nhật ký công việc và bảng điều khiển để theo dõi tiến độ và quyết định.
1.4 Quy Trình Làm Việc Điển Hình
-
Thiết lập môi trường
- Tạo tài khoản AWS với quyền quản trị.
- Kích hoạt dịch vụ AWS Transform.
- Cấu hình AWS IAM Identity Center cho người dùng và nhóm.
-
Tạo Không Gian Làm Việc
- Dành riêng cho mỗi dự án chuyển đổi.
- Chứa các kết nối, công việc và tài sản.
-
Tạo Kết Nối
- Kết nối với các môi trường mục tiêu (tài khoản VMware, kho mã GitHub, các tài khoản AWS khác).
- Cấu hình chính sách IAM và mã hóa với KMS.
-
Tạo Công Việc
- Chọn loại công việc: Di Chuyển VMware, Hiện Đại Hóa Mainframe, Chuyển Đổi .NET, v.v.
- Tải lên các đầu vào (xuất RVTools, mã nguồn, JCL, bảng tính, kho Git, v.v.).
-
Thực Hiện Các Bước Quy Trình
- VMware: Khám phá → Nhóm → Tạo VPC → Nhân bản & Di chuyển
- Mainframe: Phân tích COBOL → Tạo Tài liệu → Trích xuất Logic → Tái cấu trúc → Xây dựng Java
- .NET: Kết nối Git → Giải quyết các phụ thuộc → Chuyển đổi Mã → Kiểm tra & Xây dựng
- Đánh giá: Tải lên tệp → Ước tính chi phí → Tính khả thi di chuyển
-
Theo Dõi Tiến Độ
- Nhật ký công việc: nhật ký hành động chi tiết.
- Bảng điều khiển: tình trạng công việc tổng thể và KPIs.
II. Hướng Dẫn Bước Từng Bước
2.1 Mục Tiêu
Sử dụng AWS Transform để hiện đại hóa các ứng dụng COBOL trên mainframe (thường trên IBM z/OS) bằng cách:
- Phân tích mã COBOL/JCL/CICS.
- Tạo tài liệu kỹ thuật và trích xuất logic kinh doanh.
- Phân tách một monolith thành các miền chức năng.
- Tái cấu trúc và chuyển đổi mã thành Java hiện đại.
- Lập kế hoạch cho các đợt di chuyển.
- Tạo các pipeline triển khai trên AWS.
Hành trình theo bốn giai đoạn: Đánh giá → Di động → Di chuyển & Hiện đại hóa → Hoạt động & Tối ưu hóa.
2.2 Quy Trình
Bước 1: Chuẩn Bị Mã Nguồn
-
Tải xuống kho demo CardDemo: https://github.com/aws-samples/aws-mainframe-modernization-carddemo
-
Chọn Mã → Tải xuống ZIP.
-
Sau khi giải nén, xác định thư mục
app/
với nhiều thư mục con.
Bước 2: Giữ Chỉ Các Thư Mục Cần Thiết
Giữ lại các thư mục dưới app/
:
✅ Giữ | Lý do |
---|---|
app/cbl/ | Các chương trình COBOL |
app/jcl/ | Các kịch bản Job Control Language |
app/cpy/ | Copybooks (định nghĩa dữ liệu chia sẻ) |
app/bms/ | Các bản đồ màn hình CICS (nếu có) |
app/data/ | Dữ liệu EBCDIC (kiểm tra hoặc demo) |
app/proc/ | Các quy trình JCL và chương trình trợ giúp |
Xóa:
❌ Xóa | Lý do |
---|---|
catlg/, ctl/, csd/, cpy-bms/ | Không cần thiết cho phân tích cốt lõi |
Bước 3: Nén Mã Nguồn
- Đổi tên thư mục
app
thànhmainframe-src
, sau đó nén nó.
Bước 4: Tải Lên S3
-
Mở AWS Console → S3: https://s3.console.aws.amazon.com/s3/
-
Tạo một bucket (ví dụ:
lam-mainframe-transform
). -
Tải lên
mainframe-src.zip
vào bucket.
Bước 5: Tạo Không Gian Làm Việc và Công Việc
-
Mở cổng AWS Transform và đăng nhập qua IAM Identity Center.
-
Mở không gian làm việc của bạn hoặc tạo một cái mới.
-
Chọn Tạo một công việc.
-
Chọn loại công việc: Hiện đại hóa Mainframe.
-
Để trải nghiệm toàn bộ pipeline, chọn: Phân tích mã, Tạo tài liệu kỹ thuật, Phân tách mã, Lập kế hoạch chuỗi di chuyển, và Chuyển đổi mã sang Java.
-
Đặt tên cho công việc và tạo nó.
Bước 6: Bắt Đầu Hiện Đại Hóa
-
Bỏ qua Thêm cộng tác viên và tiếp tục kết nối với tài khoản AWS.
-
Nhập ID Tài khoản AWS của bạn và chọn Tiếp theo.
-
Trong bảng điều khiển S3, sao chép Bucket ARN của
lam-mainframe-transform
và dán vào AWS Transform để tạo một kết nối. Chọn Tạo kết nối. -
Sao chép liên kết xác minh, mở nó trong một tab mới và phê duyệt quyền truy cập vào S3 cho AWS Transform.
-
Sau khi được phê duyệt bởi quản trị viên, chọn Gửi đến AWS Transform để tiếp tục.
-
Nhập S3 URI của
mainframe-src.zip
và chọn Gửi đến AWS Transform.
Bước 7: Phân Tích Mã COBOL
- Khi hoàn tất phân tích mã, xem kết quả và chọn Gửi đến AWS Transform để tiếp tục.
Bước 8: Tạo Tài Liệu Kỹ Thuật
-
Mở Tóm tắt và chọn tất cả các thư mục trong Tệp đã chọn.
-
Chọn Gửi đến AWS Transform để bắt đầu Phân tách mã.
-
Khi hoàn thành, xem tài liệu đã tạo tại:
s3://lam-mainframe-transform/transform-output/
Bước 9: Phân Tách Thành Các Miền
- Tạo một phân loại miền. Mỗi miền đại diện cho một lĩnh vực chức năng riêng biệt.
- Các miền ban đầu và tệp hạt giống đề xuất:
Miền | Tệp hạt giống | Độ phức tạp Cyclomatic | Mô tả (EN) | Lý do Lựa chọn |
---|---|---|---|---|
Miền Khách Hàng | CBCUS01C.cbl, COUSR00C.cbl | 20 / 102 | Xử lý thông tin khách hàng và người dùng | Quản lý khách hàng/người dùng chính, độ phức tạp trung bình |
Miền Giao Dịch | CBTRN01C.cbl, COTRN00C.cbl | 59 / 100 | Xử lý và quản lý giao dịch tài chính | Logic giao dịch cốt lõi, độ phức tạp cao |
Miền Thẻ | COCRDLIC.cbl, COCRDUPC.cbl | 144 / 159 | Danh sách và cập nhật dữ liệu thẻ | Hoạt động thẻ chính, độ phức tạp cao |
Miền Tài Khoản | CBACT01C.cbl, CBACT04C.cbl | 1 / 98 | Dữ liệu và hoạt động cấp tài khoản | Logic tài khoản cơ bản, độ phức tạp trung bình |
Miền Quản Trị | COADM01C.cbl | 36 | Các tính năng và điều khiển quản trị | Module tập trung, có thể tách biệt rõ ràng |
Chung/Tiện Ích | CBSTM03A.cbl, CSUTLDTC.cbl | 1 / 11 | Các tiện ích và chức năng trợ giúp chung | Tiện ích nhẹ thường được sử dụng lại |
-
Trong AWS Transform, chọn Hành động → Tạo miền.
-
Tạo Miền Khách Hàng với mô tả: Xử lý thông tin khách hàng và người dùng.
-
Chọn
CBTRN01C.cbl
và chọn Đánh dấu là tệp hạt giống. -
Thêm
COUSR00C.cbl
cũng là tệp hạt giống. Chọn Tạo. -
Chọn Lưu để hoàn tất miền.
-
Lặp lại cho các miền khác đã liệt kê ở trên. Đối với Miền Chung/Tiện Ích, bật Đặt làm miền chung.
-
Khi các miền đã sẵn sàng, chọn Phân tách và sau đó Gửi đến AWS Transform.
Bước 10: Lập Kế Hoạch Các Đợt Di Chuyển
-
Trong Lập kế hoạch đợt di chuyển, xem xét các tham chiếu đề xuất.
-
Chọn Thêm tham chiếu, cung cấp các đợt tham chiếu, và chọn Thêm và tái tạo.
-
Khi hoàn tất, chọn Gửi đến AWS Transform để tiếp tục với Tái cấu trúc mã.
Bước 11: Tái Cấu Trúc Mã
-
Trong Chuyển đổi, chọn tất cả các miền và chọn Gửi đến AWS Transform.
-
Khi tái cấu trúc hoàn tất, chọn Xem kết quả để tìm
generated.zip
trong S3.
III. Thực Hành Tốt Nhất
- Đảm bảo sao lưu toàn bộ mã nguồn trước khi bắt đầu quá trình hiện đại hóa.
- Sử dụng công cụ kiểm tra mã tự động để xác minh tính chính xác của mã sau khi chuyển đổi.
- Tạo tài liệu chi tiết cho mỗi giai đoạn để dễ dàng theo dõi tiến độ và phát hiện vấn đề.
IV. Các Cạm Bẫy Thường Gặp
- Không xác định rõ ràng các miền chức năng có thể dẫn đến khó khăn trong việc phân tách mã.
- Bỏ qua các bước kiểm tra có thể dẫn đến lỗi không mong muốn sau khi chuyển đổi.
V. Mẹo Tối Ưu Hiệu Suất
- Tối ưu hóa các truy vấn COBOL trước khi chuyển đổi để giảm thiểu độ phức tạp trong mã Java.
- Sử dụng AWS CloudWatch để theo dõi hiệu suất ứng dụng sau khi triển khai.
VI. Giải Quyết Vấn Đề
- Nếu gặp lỗi trong quá trình phân tích mã, hãy kiểm tra lại cấu trúc mã nguồn và đảm bảo rằng các tệp đã tải lên đúng định dạng.
- Sử dụng tài liệu hướng dẫn từ AWS để tìm hiểu về các lỗi cụ thể và cách khắc phục chúng.