Fakecloud: Local AWS cloud emulator for integration tests

1 day ago (fakecloud.dev)

There’s also MiniStack, which forked from LocalStack after they started breaking developer workflows: https://ministack.org/

Both fakecloud and its website look sloppily vibe-coded, and its “authors” are anonymous. It’s going to take a while for it to earn trust. I’d treat it with suspicion. (Curl-to-shell pipe to install? Ugh.)

  • Agreed with everything up to:

    "curl-to-shell pipe to install" - what's the problem here? that's pretty common on linux systems and something the AWS CLI uses.

    Or is the problem the fact that this dev is untrusted and is executing a possibly malicious script on your machine?

    • For a mock server? Surely a versioned, standalone executable, library/package or docker image makes more sense. Integration tests generally need to be portable and running on CI, you don't wanna be shell-piping whatever exists in the moment.

    • The problem, for me, is that self-running installers can create a mess that's hard to keep track of.

      I've run Linux without meaningful package management, as that was kind of the style of the time 30 years ago with Slackware. It can quickly become untenable.

      There's no real difference between an uninspected script that gets piped straight from the URL into the shell, or a similarly-uninspected make&&sudo make install routine from a tarball. They can both execute code that does bad things (whether unintentionally or deliberately), and they can both leave a mess that is hard to cleaned up.

      I've found that it is better to just avoid going down that road to begin with. Whether distro-specific packages, Docker containers, flatpaks, or whatever: All of these make housekeeping easier.

    • curl-to-shell is a terrible installation mechanism because it's not easily reversible and I can't tell if any of the assets are signed, or integrity checked, or not.

  • > and its “authors” are anonymous.

    The blog posts are all attributed to "Lucas Vieira" and the dev group https://faisca.dev that is attributed as the author has 2 other projects. Lucas comes up in LinkedIn and looks like an actual person working in San Francisco.

    Re: curl; this seems to work:

      cargo install fakecloud

"46 at true 100% conformance". This is factually incorrect. Inspected their DynamoDB service and it comes nowhere close to implementing the full api.

  • Here are some bugs: - `ADD m.a.c :inc` update expression wrote a literal top-level m.a.c attribute but didn't change the nested number. - TransactGetItems returned fields not requested. - update expression can update the same key multiple times.

    In total my conformance suite found 583 failures out of 1279 tests.

    • Wow! This is not production-ready at all. DynamoDB would be my main use case. I'll stick with DynamoDB local.

There are always nice, but there are a lot of scaffolding work involved with larger systems. It would be nice to be able to provide for example the terraform of the infrastructure and let these tool create their own. Might be a nice feature to add because I haven't seen it done yet.

I kinda like most of these emulators but why is there none targeting GCP/Azure

I always welcome warmly projects like these, the only problem is that unless there’s a strong community behind, founders tend to build companies around them, raise capital, then put useful functionalities behind paywalls (see localstack).

When I see that, it always reminds me of Steve Jobs’s quote: ”It’s not a product, it’s a feature”.

Aren’t cloud companies like AWS, Azure, GCP the first to be interested in providing their users a meaningful way to do test integrations of their products? Shouldn’t they provide them in the first place?

  • It depends on the company. Azure provides local emulators for some of their products like CosmosDB and Azure Storage.

    Depending on what your size and other things, sometimes it's just easier to have dev instances you test against. Like S3 emulator, you could download one of many and test it but unless your test suite is extensive, the costs against S3 test bucket would probably cost you .03 cents for assurances that everything will work against AWS. If that's breaking the bank at the company, you probably have bigger problems.

    • > Like S3 emulator, you could download one of many and test it but unless your test suite is extensive, the costs against S3 test bucket would probably cost you .03 cents

      Not sure if your serious.

      You picked the simplest service that isn't expensive at all to run. Have you tried with an RDS cluster for example, how does that work?

      Does your integration test create a new cluster to use? That's slow to set up.

      Does it use an existing one? Now you might have failures due to noisy neighbors and your cost will not be small.

      And that's just RDS, as soon as it's not serverless, costs aren't trivial anymore.

      1 reply →

  • You’d think that but it doesn’t seem to be the case. I do a lot of offline development and the only way it used to be possible was localstack but that’s AWS only. The open source community is the only interested party, it seems. Thankfully, there’s a lot of contribution happening in this space. Because I have need, I make a lot of my own contributions. I’m doing full stack cloud development against GCP without ever leaving my device.