3 ms·
> Then you're not talking about versioning are you? you're talking about install order. I didn't mean build order but install scripts and native module builds
by LunaSea 7y ago
> Then you're not talking about versioning are you? you're talking about install order.
I didn't mean build order but install scripts and native module builds.
The first type can create issues when external resources are downloaded (Puppeteer, Ngrok, etc.), which themselves have different versions or that fail to download and where the Node.js module falls back to another solution that behaves slightly differently.
The second type can occur when you have say Alpine Linux that uses MuslC and Amazon Linux uses GCC or when the native module tries to link with a shared library that is supposed to exists but doesn't.
> Are you generally proposing it would be common to use an entirely different OS? Or a non-boring extX filesystem?
I haven't checked but Amazon Linux by default uses XFS on EBS disks so I wouldn't be surprised if Lambda's used the same. So not a boring extX filesystem. ZFS is also relatively common.
> Serverless exists precisely to answer the question.
No, it clearly doesn't because your function will fail in local and succeed in Lambda, or the reverse, exactly due to the issues I mentioned in my various comments here and you will be left debugging.
Debugging which starts by finding exactly the differences between the two environments which would have been solved by a VM or Docker.
- nailer 7y ago> > > my dependencies might be different ... > I didn't mean build order but install scripts and native module builds. OK. Then you're still not talking about your dependencies being different. The dependencies are the same, they're just particular modules with very specific behaviour... > external resources are downloaded (Puppeteer, Ngrok, etc.), which themselves have different versions or that fail to download That's more a 'heads up when using puppeteer' than a indictment of serverless and a call to add an environment management layer like we did in 2005-2015. > Linux by default uses XFS on EBS disks so I wouldn't be surprised if Lambda's used the same. That's worth checking out. > Debugging which starts by finding exactly the differences between the two environments which would have been solved by a VM or Docker. I see what you're saying, but planning your whole env around something like a given puppeteer module dynamically downloading Chrome (which is very uncommon behaviour) isn't worth the added complexity.