3 ms·
How does LocalStack compare to something like serverless[0], which lets you also have locally run abstractions over services? While I realize the most obvious
by no_wizard 4y ago
How does LocalStack compare to something like serverless[0], which lets you also have locally run abstractions over services?
While I realize the most obvious difference being that serverless is also a deploy framework that "abstracts" the cloud, I think one of its primary benefits of adoption is that it also does a good job (in my experience, but I have not yet impelemented things deeply with it) emulates services very well where needed, for instance, DynamoDB[1]
If it was without that, I think it would be a lot less useful and way less easier to adopt, so I think its just as important to the story.
Why on earth AWS doesn't have their own first party emulators for everything I still don't understand to this day. I credit that for why Firebase & GCP are easier to use, because they have a good local development story for alot of their services (Firebase in particular has an emulator suite for nearly all their services)
[0]: https://www.serverless.com/ https://www.serverless.com/
[1]: https://www.serverless.com/guides/dynamodb https://www.serverless.com/guides/dynamodb
- whummer 4y agoGreat point. Fully agree that providing a first-class local development experience is critical to the overall story of application development frameworks. I guess the main difference is that frameworks like Serverless provide a great experience if you fully buy into their way of doing things (i.e., implement your application assets in the Serverless YAML DSL, etc), whereas LocalStack is a generic platform that works on the API emulation level, hence easily integrates with most tooling out of the box. Making the switch from Serverless to, say, AWS CDK, or AWS SAM, or Architect framwork may not be as seamless - however, for each of these frameworks you can always run the local emulation natively on LocalStack. This can help reduce the overall vendor lock-in effect that a lot of application development frameworks come with. In fact, LocalStack also provides an integration with Serverless [0] - among many other tools [1]. [0] https://github.com/localstack/serverless-localstack https://github.com/localstack/serverless-localstack [1] https://docs.localstack.cloud/integrations https://docs.localstack.cloud/integrations
- jayair 4y agoI'm biased but for local development, I prefer to emulate the least amount of AWS services. You don't have to deal with any gotchas while going to prod. Some background, with SST we connect your local environment to the services deployed to AWS and just run the Lambda functions locally: https://docs.sst.dev/live-lambda-development https://docs.sst.dev/live-lambda-development
- chops415 4y agoSST has been a breath of fresh air. Very excellent devex for companies using serverless.
- NotTameAntelope 4y agoLocalstack is super useful for local (or CI build) development of tech that would be deployed into the cloud. I would definitely not recommend using Localstack for anything in production. I don't think serverless has anything quite as fully featured as what Localstack is able to provide, 1:1 parity across most of AWS's offerings. I use it for stuff like SecretsManager and Cognito testing (as well as for S3). I don't use it for RDS emulation at all, and just stick a stock postgres container in that spot to achieve local development.
- cle 4y ago> I think one of its primary benefits of adoption is that it also does a good job [...] emulates services very well where needed, for instance, DynamoDB[1] Under the hood, serverless uses DynamoDB Local which is the same AWS-provided DynamoDB emulator that LocalStack uses.
- rmbyrro 4y ago> Why on earth AWS doesn't have their own first party emulators for everything Because they want you to pay for local development, not only production. Google offers an emulator because otherwise no one would and they need to catch up with AWS, which has, what, 4x their market share? AWS offers local emulators for services they need to catch up, like Lambda and DynamoDB.
- jamesfinlayson 4y agoI was excited when you said local Lambda emulator, but SAM just looks like a wrapper around https://github.com/lambci https://github.com/lambci