- Trình giả lập mã nguồn mở miễn phí có thể tái hiện hoàn toàn môi trường AWS trên máy cục bộ, được phát triển như một lựa chọn thay thế cho LocalStack đã chuyển sang tính phí
- Chạy 34 dịch vụ AWS trên một cổng duy nhất, đồng thời thực sự khởi chạy Postgres, Redis và container Docker để cung cấp môi trường kiểm thử ở cấp độ hạ tầng
- Tương thích hoàn toàn với AWS SDK, CLI, Terraform, CDK, Pulumi và được phát hành theo giấy phép MIT mà không cần đăng ký tài khoản hay telemetry
- Khởi động trong 2 giây, dùng 30MB bộ nhớ, Docker image 150MB, cho khả năng chạy cục bộ nhẹ và nhanh
- Mọi tính năng đều được cung cấp miễn phí, cho phép xây dựng một môi trường phát triển AWS cục bộ hoàn chỉnh thay thế các tính năng LocalStack Pro
Tổng quan về MiniStack
- MiniStack là công cụ mã nguồn mở miễn phí có thể giả lập hoàn toàn môi trường AWS trên máy cục bộ, được thiết kế như một lựa chọn thay thế cho LocalStack đã chuyển sang tính phí
- Chạy 34 dịch vụ AWS trên một cổng duy nhất và sử dụng Postgres, Redis, container Docker thực tế
- Hoạt động mà không cần đăng ký tài khoản, khóa giấy phép hay telemetry từ xa, và được phát hành theo giấy phép MIT
- Có thời gian khởi động khoảng 2 giây, mức dùng bộ nhớ nhàn rỗi 30MB, kích thước Docker image 150MB
- Sau khi LocalStack Community chuyển sang mô hình tính phí, MiniStack được đưa ra như một giải pháp thay thế miễn phí mang lại trải nghiệm phát triển tương đương
Tính năng và dịch vụ chính
- RDS, ElastiCache, ECS vận hành các container Docker thực tế để cung cấp môi trường hạ tầng thực tế
- Athena thực thi truy vấn SQL thực tế thông qua DuckDB; nếu chưa được cài đặt, nó sẽ trả về kết quả mô phỏng
- Duy trì khả năng tương thích với AWS SDK, có thể dùng cùng boto3, AWS CLI, Terraform, CDK, Pulumi...
- Mọi dịch vụ đều miễn phí, không có giới hạn tính năng hay phân chia gói trả phí
-
34 dịch vụ AWS được bao gồm
- S3: hỗ trợ bucket, object, quản lý phiên bản, mã hóa, vòng đời, CORS, sao chép...
- SQS: hỗ trợ các tính năng hàng đợi như FIFO, DLQ, batch, visibility...
- SNS: hỗ trợ topic, subscription, fanout sang SQS, phát hành theo lô
- DynamoDB: hỗ trợ CRUD, query, scan, transaction, TTL, GSI
- Lambda: hỗ trợ thực thi Python thực tế, ánh xạ sự kiện SQS, Layers
- Bao gồm hầu hết các dịch vụ cốt lõi của AWS như IAM / STS / Secrets Manager / CloudWatch / SSM / EventBridge / Kinesis / SES / Step Functions / API Gateway v1·v2 / Route53 / Cognito / EC2 / EMR / EBS / EFS / ALB / ACM / WAF / CloudFormation
- RDS khởi chạy container Postgres/MySQL thực tế, còn ElastiCache khởi chạy container Redis/Memcached thực tế
- ECS chạy container Docker thực tế, còn Glue và Athena cung cấp tính năng data catalog và thực thi SQL
So sánh với LocalStack
- LocalStack Free đã chuyển các dịch vụ cốt lõi sang mô hình trả phí, trong khi MiniStack cung cấp miễn phí cùng chức năng
- Các tính năng vốn chỉ có ở LocalStack Pro như Lambda, IAM, SSM, EventBridge, EC2, EMR, EBS, EFS, ALB, CloudFormation cũng được bao gồm miễn phí
- RDS, ElastiCache, ECS, Athena hoạt động dựa trên container thực tế
- Với thời gian khởi động khoảng 2 giây, 30MB bộ nhớ, Docker image 150MB, MiniStack nhẹ hơn LocalStack rất nhiều
- Giấy phép là MIT thay vì BSL/Proprietary của LocalStack, và giá là hoàn toàn miễn phí
Cách hoạt động dựa trên hạ tầng thực tế
- RDS: khi chạy lệnh
CreateDBInstance, hệ thống tạo container Docker Postgres/MySQL thực tế, có thể kết nối trực tiếp qua cổng cục bộ
- ElastiCache: với lệnh
CreateCacheCluster, hệ thống chạy container Redis thực tế, có thể dùng làm kho lưu session...
- ECS: với lệnh
RunTask, hệ thống chạy container Docker thực tế, cho phép kiểm thử định nghĩa tác vụ ECS trên máy cục bộ
- Athena: thực thi truy vấn SQL thực tế qua DuckDB và trả về tập kết quả
- Tương thích hoàn toàn với mọi công cụ AWS, có thể sử dụng mà không cần thay đổi API endpoint
Triển khai và sử dụng
Thông tin giấy phép và phát hành
- Được phát hành theo giấy phép MIT, cho phép fork và nhúng tự do
- Được cung cấp công khai trên GitHub và Docker Hub
- Nhà phát triển là Nahuel, và dự án dự kiến được duy trì đến năm 2026
Bài học cốt lõi
- MiniStack là giải pháp thay thế hoàn toàn miễn phí cho LocalStack, cung cấp môi trường AWS cục bộ dựa trên hạ tầng thực tế
- Điểm nổi bật là khởi động nhanh, tiêu thụ tài nguyên nhẹ, tương thích SDK đầy đủ
- Mọi tính năng đều miễn phí, giấy phép MIT, không có telemetry
- Đây là công cụ mang lại trải nghiệm kiểm thử tương đương môi trường production AWS trong phát triển cục bộ và môi trường CI/CD
1 bình luận
Ý kiến trên Hacker News
Tôi khá hiểu rõ về DynamoDB
Nhưng đoạn mã này không mô phỏng đúng các ngoại lệ của dịch vụ, kiểm tra đầu vào, eventual consistency, và các trường hợp biên
Vì vậy, phát triển hay kiểm thử dựa trên ministack khiến tôi không yên tâm
Hơn nữa, nhiều dịch vụ của AWS có free tier, nên cũng không có quá nhiều lý do để dùng một giải pháp thay thế như vậy
Tức là để xác minh ứng dụng có gọi đúng API với đúng dữ liệu hay không
Nếu cần hành vi thực tế của DynamoDB (ví dụ: giới hạn dung lượng, độ trễ nhất quán, xử lý stream) thì đây không phải là thứ thay thế
Tuy vậy, các đóng góp giúp tăng khả năng tái hiện lỗi luôn được hoan nghênh
Hiện đang chờ các lỗi như
ProvisionedThroughputExceededException,TransactionConflictException,ItemCollectionSizeLimitExceededExceptionCó thể dùng ministack cho các bài test cơ bản, rồi chỉ phát sinh chi phí AWS thật ở giai đoạn kiểm thử tải
Tôi đang cân nhắc ministack vì không hài lòng với thay đổi giấy phép của LocalStack
Nếu cần gấp thì có thể ghim bằng tag
community-archivelà xử lý được ngayLiên kết Docker Hub
Tôi nghĩ bất kỳ dự án mô phỏng nào cũng sẽ khó vượt qua được lý do khiến LocalStack thất bại
Duy trì khả năng tương thích miễn phí với rất nhiều dịch vụ AWS có vẻ không khả thi trong thực tế
Cũng có thể codebase của LocalStack quá hỗn độn, hoặc họ quản lý cộng tác viên không tốt
Giờ AWS đã trưởng thành hơn nên tốc độ thay đổi chậm lại, và AI có thể dễ dàng tạo ra 80% lượng mã
Ngoài ra, việc LocalStack tăng giá cũng tạo ra một nhóm lập trình viên đang tìm phương án thay thế mã nguồn mở
Cũng có rất nhiều thứ để học từ bản mã nguồn mở của LocalStack
Chỉ là muốn giữ cho các dịch vụ cốt lõi của bản community trước đây luôn được cập nhật
Chúng tôi không định hỗ trợ các dịch vụ lớn như MWAA
Vì phần lớn các dịch vụ AWS cốt lõi hầu như không thay đổi API
Nếu cần tính năng phức tạp ở local thì có thể dùng tài khoản AWS dev thật
Nếu tận dụng tốt LLM và các cách tiếp cận kiểm thử mới, có lẽ có thể tạo ra một bộ dịch vụ tương thích theo kiểu bán tự động
Nhưng tôi thì không muốn tự mình tham gia
Tôi cũng đã thử Floci, nhưng nó có những vấn đề điển hình của mã giai đoạn đầu
Vấn đề thật sự của LocalStack là drift
Test ở local thì qua, nhưng lên staging lại hay vỡ vì khác biệt ở format phản hồi S3 hoặc throttling của DynamoDB
Cuối cùng chúng tôi chuyển sang chạy kiểm thử tích hợp trong các môi trường AWS thật tồn tại ngắn hạn
Tốn kém hơn, nhưng giảm được rất nhiều sự cố bất ngờ khi lên production
Tức là chỉ khi qua local rồi mới chạy kiểm thử tích hợp trên AWS thật
Giờ tôi mới biết tin LocalStack thay đổi giấy phép
Trước đây tôi dùng nó khá tốt cho kiểm thử CI/CD trên GH Actions, và mức tương thích với AWS CLI cũng khá ổn
Thực ra tôi từng mong Amazon mua lại LocalStack và biến nó thành môi trường phát triển local chính thức
Nhưng như vậy có lẽ sẽ làm giảm doanh thu từ môi trường kiểm thử AWS, nên chắc không thực tế
Chúng tôi vẫn dùng khá hài lòng, nhưng thất vọng với định hướng này
Mong là đây không phải động thái để kiếm lợi nhuận ngắn hạn
Về dài hạn, khách hàng hoàn toàn có thể chuyển sang các lựa chọn miễn phí hoặc giải pháp cá nhân dựa trên GenAI
Cá nhân tôi không quan tâm đến Pods hay UI console của LocalStack
Hy vọng họ không nhận vốn VC với điều kiện phải xóa bản community edition
CLI có thể chạy tốt, nhưng nhiều lúc dịch vụ của LocalStack lại hoạt động khác với tài liệu mô tả
Nhìn README có sơ đồ ASCII do Claude tạo mà còn lệch hàng thì tôi khó mà tin tưởng
Nếu một dự án còn chưa làm nổi QC cơ bản, thì mô tả tính năng cũng khó tin được
Liên kết ví dụ
Liên kết CHANGELOG
Nếu cứ thế này thì mã chất lượng thấp do AI tạo ra sẽ còn tiếp tục gia tăng
Nếu đến cả căn lề cũng không kiểm tra thì lại càng khó tin
Dù còn hơi sớm để đưa vào SDLC, đây vẫn là một dự án có vẻ đầy hứa hẹn
Với những ai thất vọng với LocalStack thì nó có thể trở thành một lựa chọn thay thế
Trước đây từng có một phương án khác được đăng trên HN
Liên kết chủ đề liên quan
Đây mới chỉ là dự án được 7 ngày
Tôi thực sự rất muốn có một giải pháp thay thế LocalStack, nhưng hiện tại độ trưởng thành vẫn còn thiếu nhiều
Dạo này phần mềm có vẻ đều như thế này — website bóng bẩy, tuyên bố lớn, mã do AI tạo, kiểm thử thì thiếu
Tôi tò mò không biết phía GCP có gì tương đương
Tôi không hiểu vì sao Amazon lại không làm thứ như vậy
Làm thế sẽ tiện hơn cho tất cả mọi người rất nhiều
Giá như có tính năng mô phỏng chi phí thực tế