Trong cộng đồng lập trình viên Python, một công cụ quản lý cơ sở hạ tầng AWS mới có tên Stelvio đang nhận được sự chú ý khi các nhà phát triển tìm kiếm giải pháp thay thế cho các công cụ hiện có. Hiện đang ở giai đoạn alpha sớm, Stelvio nhằm đơn giản hóa việc triển khai đám mây cho các lập trình viên Python bằng cách cho phép họ định nghĩa cơ sở hạ tầng AWS sử dụng mã Python thuần túy thay vì cấu hình JSON hoặc các ngôn ngữ khác.
Bức tranh Phân mảnh của Các Công cụ Python AWS
Hệ sinh thái hiện tại dành cho các nhà phát triển Python làm việc với kiến trúc serverless AWS đang bị phân mảnh đáng kể. Các nhà phát triển trong cộng đồng đã chỉ ra một loạt các giải pháp hiện có bao gồm Zappa, Chalice, Serverless Framework, AWS CDK, CloudFormation và AWS SAM—mỗi giải pháp đều có những hạn chế riêng. Nhiều công cụ trong số này hoặc bị bỏ rơi, bảo trì kém, yêu cầu cấu hình không phải Python, hoặc không được thiết kế đặc biệt dành cho các nhà phát triển Python.
Tôi nghĩ thật đáng kinh ngạc khi cộng đồng Python có khoảng 5 giải pháp nửa vời cho vấn đề này, tất cả đều hoặc bị bỏ rơi, kiếm tiền kém hiệu quả, hoặc có giao diện người dùng không ổn định.
Quan điểm này phản ánh sự thất vọng mà nhiều lập trình viên Python cảm thấy khi cố gắng triển khai các ứng dụng serverless lên AWS. Sự thay đổi gần đây của Serverless Framework—chuyển sang mô hình trả phí ở phiên bản 4—đã làm tăng thêm nhu cầu tìm kiếm các giải pháp thay thế đáng tin cậy, với một số nhà phát triển đề cập đến các phiên bản được cộng đồng duy trì như osls như giải pháp tạm thời.
Các Công Cụ Triển Khai AWS Python Hiện Tại Được Đề Cập Trong Thảo Luận:
- Stelvio (Giai đoạn alpha sớm) - Cơ sở hạ tầng dưới dạng mã nguồn gốc Python
- Zappa - Sử dụng cấu hình JSON
- Chalice - Có vẻ đã bị bỏ rơi, trộn lẫn cơ sở hạ tầng với mã ứng dụng
- Serverless Framework - Gần đây đã chuyển sang mô hình trả phí ở phiên bản v4
- osls - Thay thế mã nguồn mở cho Serverless Framework
- AWS CDK - Dài dòng hơn nhưng toàn diện
- CloudFormation - Ngôn ngữ mẫu AWS cấp thấp
- AWS SAM - CloudFormation đơn giản hóa cho serverless
- Mangum - Bọc các ứng dụng ASGI để triển khai Lambda
Tính Năng Hiện Tại Của Stelvio:
- Hỗ trợ AWS Lambda
- Tích hợp Amazon DynamoDB
- Cấu hình API Gateway
- Quản lý vai trò/chính sách IAM tự động
- Cấu hình gốc Python
Sắp Có Trong Stelvio v0.2.0 (Tháng 4 năm 2025):
- Các phụ thuộc & lớp Lambda
- Chỉ mục DynamoDB
- Hỗ trợ CORS
- Bộ xác thực API Gateway
Cách tiếp cận Ưu tiên Nhà phát triển của Stelvio
Stelvio nổi bật bởi tập trung cụ thể vào các nhà phát triển Python thay vì các chuyên gia cơ sở hạ tầng. Người tạo ra công cụ này, Michal, giải thích rằng mặc dù AWS CDK là một cải tiến đáng kể so với CloudFormation và Terraform, các công cụ cơ sở hạ tầng vẫn có thể được làm cho thân thiện hơn với nhà phát triển.
Cách tiếp cận của Stelvio nhấn mạnh vào việc giảm thiểu mã boilerplate thông qua các giá trị mặc định thông minh. Ví dụ, việc tạo bảng DynamoDB với tích hợp API Gateway chỉ yêu cầu vài dòng mã Python, tự động xử lý việc tạo các chính sách IAM, vai trò, tài nguyên API Gateway, phương thức, tích hợp và nhóm nhật ký CloudWatch—những tác vụ sẽ yêu cầu nhiều mã hơn đáng kể trong AWS CDK.
Một nguyên tắc thiết kế quan trọng của Stelvio là sự tách biệt giữa mã cơ sở hạ tầng và mã ứng dụng, không giống như một số giải pháp thay thế kết hợp chúng thông qua decorators hoặc các cơ chế khác. Sự tách biệt rõ ràng này phù hợp với các phương pháp kỹ thuật phần mềm tốt nhất trong khi vẫn duy trì sự đơn giản mà các nhà phát triển Python mong đợi.
Khả năng Hiện tại và Lộ trình Tương lai
Hiện tại, Stelvio hỗ trợ AWS Lambda, Amazon DynamoDB, API Gateway và cấu hình IAM tự động. Theo nhà phát triển, phiên bản 0.2.0 dự kiến ra mắt vào tháng 4 năm 2025 với hỗ trợ cho các phụ thuộc và lớp lambda, chỉ mục DynamoDB, CORS và các công cụ xác thực API Gateway. Phiên bản 0.3.0 sẽ giới thiệu một công cụ CLI chuyên dụng.
Mặc dù triển khai hiện tại tập trung vào các thành phần serverless, nhà phát triển đã chỉ ra kế hoạch mở rộng phạm vi dịch vụ AWS ngoài các dịch vụ Lambda/API/DynamoDB ban đầu, có thể bao gồm cấu hình VPC, cổng NAT và nhóm bảo mật. Cũng có đề cập đến khả năng mở rộng ngoài AWS sang các dịch vụ như Cloudflare.
Phản hồi từ Cộng đồng và Cuộc Tranh luận Đang diễn ra
Phản hồi từ các nhà phát triển Python nói chung là tích cực, với nhiều người bày tỏ sự quan tâm đến một công cụ đơn giản hóa việc quản lý cơ sở hạ tầng AWS bằng cú pháp Python quen thuộc. Một số nhà phát triển hiện đang gặp khó khăn với việc tạo API Gateway đã cho biết họ sẽ áp dụng Stelvio khi nó đạt đến mức sẵn sàng cho sản xuất.
Tuy nhiên, cuộc thảo luận của cộng đồng cũng cho thấy những tranh luận đang diễn ra về các lựa chọn kiến trúc. Một số nhà phát triển đặt câu hỏi về việc tập trung vào Lambda và DynamoDB, gợi ý rằng các máy chủ truyền thống và cơ sở dữ liệu quan hệ có thể phục vụ tốt hơn cho các ứng dụng khi chúng phát triển và yêu cầu thay đổi. Những người khác hỏi về quyết định xây dựng trên Pulumi thay vì sử dụng trực tiếp boto3, mà nhà phát triển đã trả lời bằng cách trích dẫn các lợi ích như quản lý trạng thái và tiềm năng đa đám mây.
Khi cơ sở hạ tầng đám mây tiếp tục phát triển về độ phức tạp, các công cụ như Stelvio đại diện cho những nỗ lực nhằm làm cho việc triển khai dễ tiếp cận hơn đối với các nhà phát triển muốn tập trung vào việc xây dựng ứng dụng thay vì quản lý chi tiết cơ sở hạ tầng. Liệu Stelvio có thành công ở nơi mà các công cụ khác đã gặp khó khăn hay không vẫn còn phải chờ xem, nhưng cách tiếp cận tích hợp Python và tập trung vào trải nghiệm nhà phát triển của nó dường như đã giải quyết được những điểm đau thực sự trong cộng đồng.
Tham khảo: Stelvio