- Floci là trình giả lập AWS cục bộ mã nguồn mở miễn phí có thể chạy ngay mà không cần đăng ký tài khoản hay xác thực, với kiến trúc nhẹ khởi động bằng một lệnh duy nhất
- Là giải pháp thay thế không giới hạn để chuẩn bị cho thời điểm LocalStack Community Edition ngừng dịch vụ vào năm 2026, đồng thời cho phép sử dụng thương mại nhờ giấy phép MIT
- Rất nhẹ với thời gian khởi động 24ms, bộ nhớ 13MiB, kích thước image 90MB, cho thấy tốc độ nhanh gấp 100 lần và mức dùng bộ nhớ ít hơn 10 lần so với LocalStack
- Hỗ trợ đầy đủ hơn 20 dịch vụ AWS và đạt 408 bài kiểm tra SDK đều vượt qua, đảm bảo mức độ tương thích cao
- Có thể tích hợp ngay chỉ bằng cách thay đổi endpoint của AWS SDK hiện có, cung cấp giải pháp thay thế dùng được ngay trong môi trường phát triển và kiểm thử cục bộ
Tổng quan về Floci
- Floci là trình giả lập AWS cục bộ mã nguồn mở miễn phí, có thể chạy ngay mà không cần đăng ký tài khoản hay token xác thực
- Chạy chỉ với lệnh
docker compose up, không có giới hạn CI/CD hay khóa tính năng
- Tên gọi bắt nguồn từ cirrocumulus floccus, một dạng mây, với định hướng “nhẹ, mượt và luôn miễn phí”
Vị thế như một giải pháp thay thế LocalStack
- LocalStack Community Edition dự kiến ngừng dịch vụ vào tháng 3 năm 2026, sau đó sẽ yêu cầu token xác thực, ngừng hỗ trợ CI và dừng cập nhật bảo mật
- Floci được cung cấp như một giải pháp thay thế không giới hạn cho tình huống này
- Được phát hành theo giấy phép MIT, cho phép sử dụng linh hoạt bao gồm cả mục đích thương mại
So sánh hiệu năng và tính năng
- Rất nhẹ với thời gian khởi động khoảng 24ms, bộ nhớ nhàn rỗi 13MiB, kích thước Docker image 90MB
- So với phiên bản cộng đồng của LocalStack, tốc độ khởi động nhanh hơn khoảng 100 lần và mức dùng bộ nhớ ít hơn hơn 10 lần
- Hỗ trợ hơn 20 dịch vụ AWS, vượt qua 408/408 bài kiểm tra SDK
- Các dịch vụ chính được hỗ trợ:
-
API Gateway v2 / HTTP API**,** Cognito**,** ElastiCache (Redis + xác thực IAM)
-
RDS (PostgreSQL, MySQL, xác thực IAM), S3 Object Lock (COMPLIANCE / GOVERNANCE)
- DynamoDB Streams, IAM, STS, Kinesis, KMS v.v. được hỗ trợ đầy đủ
- Trên LocalStack, các tính năng trên chỉ được hỗ trợ một phần hoặc chưa được hỗ trợ
Bắt đầu nhanh
- Cung cấp ví dụ cấu hình
docker-compose.yml cơ bản
- Sử dụng cổng
4566, mount thư mục cục bộ ./data
- Lệnh chạy:
docker compose up
- Có thể truy cập mọi dịch vụ tại
http://localhost:4566
- Có thể dùng giá trị tùy ý cho thông tin xác thực AWS (
AWS_ACCESS_KEY_ID=test, AWS_SECRET_ACCESS_KEY=test)
- Ví dụ lệnh:
aws s3 mb s3://my-bucket
aws sqs create-queue --queue-name my-queue
aws dynamodb list-tables
Tích hợp SDK
- Có thể dùng nguyên trạng chỉ bằng cách thay đổi endpoint của AWS SDK hiện có
- Ví dụ theo từng ngôn ngữ chính:
- Trong mọi ví dụ,
region là us-east-1 và thông tin xác thực dùng giá trị "test"
Thẻ image
latest: image native, được khuyến nghị với tốc độ khởi động dưới 1 giây
latest-jvm: image nền tảng JVM, ưu tiên tính tương thích đa nền tảng
x.y.z / x.y.z-jvm: bản phát hành cố định theo phiên bản
Cấu hình môi trường
- Mọi cấu hình đều có thể được ghi đè bằng biến môi trường có tiền tố
FLOCI_
- Các biến chính:
QUARKUS_HTTP_PORT: mặc định 4566
FLOCI_DEFAULT_REGION: mặc định us-east-1
FLOCI_DEFAULT_ACCOUNT_ID: mặc định 000000000000
FLOCI_STORAGE_MODE: chọn giữa memory, persistent, hybrid, wal (mặc định hybrid)
FLOCI_STORAGE_PERSISTENT_PATH: đường dẫn thư mục dữ liệu (./data)
- Tài liệu cấu hình đầy đủ: configuration docs
- Cấu hình lưu trữ theo từng dịch vụ: storage docs
Giấy phép
- Được cung cấp theo giấy phép MIT, cho phép sử dụng và chỉnh sửa tự do không giới hạn
1 bình luận
Ý kiến Hacker News
Tôi ước các nhà cung cấp đám mây như AWS, GCP, Azure sẽ chính thức cung cấp trình giả lập cho phát triển cục bộ
Hiện tôi đang dùng nhiều serverless stack của AWS, và việc kiểm thử tích hợp trên máy local gần như là bất khả thi
Localstack là một phương án thay thế ổn, nhưng nếu AWS tự cung cấp tính năng này thì trải nghiệm của lập trình viên chắc sẽ tốt hơn nhiều
Mọi người sẽ nhầm những khác biệt đó là lỗi của AWS, nên từ góc nhìn của AWS đây sẽ là một cơn ác mộng hỗ trợ
Cũng thú vị khi thấy Localstack bị cạnh tranh nhờ xu hướng shift-left infrastructure tooling dựa trên AI
Giờ nó đã bị thu hẹp lại, nhưng trước kia ý tưởng là mô phỏng toàn bộ Azure cloud ngay trên máy local
Phần mềm nên được thiết kế theo hướng trừu tượng hóa và dựa trên interface để không bị phụ thuộc vào API của một cloud cụ thể
Loại công cụ này với tôi trông như một nỗ lực vô nghĩa
Nếu là để unit test thì tốt hơn nên mocking các lời gọi AWS,
còn nếu là để phát triển local thì an toàn hơn khi thật sự provision môi trường test bằng công cụ IaC như Terraform
Nếu hành vi của trình giả lập khác với dịch vụ thật, sẽ có nguy cơ bug lọt ra production
Tôi tổng hợp lại kinh nghiệm và suy nghĩ của mình về khái niệm “AWS local”
Người còn ngại cả việc nhập thẻ tín dụng thì đằng nào cũng không trở thành khách hàng chi tiêu lớn
Nhưng khi triển khai thực tế thì món nợ bảo mật này vẫn phải giải quyết, và trong quá trình đó kiểu code “chạy ngon trên máy tôi” thường sẽ hỏng
Một lựa chọn FOSS khó có thể bắt kịp được mức đó
Nếu muốn tuân thủ nguyên tắc đặc quyền tối thiểu thì phải mở từng quyền một, mà việc này chậm như một trò whack-a-mole với quyền hạn
Nếu có thể mô phỏng chính xác cả IAM ở local, chu kỳ triển khai có thể được rút ngắn rất nhiều
Bản trả phí của Localstack có tính năng này, nên tôi tò mò không biết dự án mới làm tốt đến đâu
Bạn cần chạy nhanh hàng trăm bài kiểm thử tích hợp, còn gọi AWS thật thì không hiệu quả vì độ trễ, vấn đề nhất quán, chi phí, rate limit v.v.
Việc cấp tài khoản AWS cho từng lập trình viên cũng là một cơn ác mộng quản trị
Câu kiểu “phải tự ăn một cú hóa đơn AWS thật mới học được” cũng phi thực tế chẳng khác gì nói “muốn hiểu lửa thì phải bị bỏng”
Nếu cấp tài khoản riêng cho từng lập trình viên và chỉ thiết lập billing alert thì vấn đề bảo mật cũng không quá lớn
Tôi tò mò không biết dự án này khác moto như thế nào
Nhiều người không hài lòng với việc Localstack đổi giấy phép, nhưng thực ra đã có những phương án thay thế tốt
Phạm vi dịch vụ mà moto hỗ trợ rất ấn tượng
Đội của chúng tôi cũng suýt chuyển sang, nhưng cuối cùng vẫn ở lại nhờ hợp đồng hỗ trợ enterprise của Localstack
Trông khá hữu ích cho việc test
Tôi đang làm tự động hóa đóng gói Lambda bằng Ansible role,
và sẽ tiện hơn rất nhiều nếu có thể mocking phần kiểm tra xem đã có file zip trên S3 hay chưa
Bản Community Edition của LocalStack sẽ kết thúc vào tháng 3/2026, đồng thời dự kiến yêu cầu token xác thực và ngừng cập nhật bảo mật
Floci được giới thiệu là một phương án thay thế không có những ràng buộc này
Nó tạo ra vòng phản hồi nhanh và tiết kiệm hàng nghìn giờ vì không phải chờ triển khai CloudFormation
Chúng tôi thậm chí còn có thể test trên tàu mà không cần kết nối Internet
Tên dự án này trong tiếng Romania có nghĩa là “một cục lông nhỏ”, còn trong tiếng lóng thì là lông mu, nghe khá buồn cười
Đây đúng là dự án tôi đã chờ đợi
Tôi thích Localstack, nhưng luôn nghĩ rằng một giải pháp mở do cộng đồng dẫn dắt sẽ phù hợp hơn nhiều
Nếu có cấu trúc để các kỹ sư AWS trực tiếp đóng góp thì sẽ có lợi cho tất cả mọi người
Trong lúc việc áp dụng AI đang tăng tốc như hiện nay, kiểm thử tích hợp local là điều bắt buộc
Thay vào đó, cung cấp chính thức một phiên bản container local sẽ thực tế hơn
test local là cách duy nhất để thử nghiệm an toàn các tình huống như “mô hình ảo giác rồi xóa bảng dữ liệu”
Tôi đã dùng Localstack rồi và thấy khá ổn
Có ai biết có thứ gì tương tự cho GCP không?
bigquery-emulator khá hữu ích,
nhưng tôi vẫn chưa tìm được thứ gì mô phỏng toàn bộ GCP
Tính năng trông thì hay, nhưng lịch sử commit gần như không có, cũng chẳng thấy PR hay issue nào
Nó trông như một dự án được tạo tự động, nên tôi có cảm giác khó mà tin tưởng
Tôi không chắc nó có an toàn khi dùng để test với dữ liệu thật hay không
Hiện còn quá sớm, nên tôi sẽ tiếp tục theo dõi
Trước đây người ta tin rằng cứ là mã nguồn mở thì sẽ có ai đó tìm ra lỗ hổng bảo mật,
nhưng giờ có thể chạy kiểm toán bảo mật bằng LLM
Nó không hoàn hảo, nhưng kiểu kiểm toán tự động này khiến việc giấu mã độc trở nên khó hơn