News for hackers. Stuff that matters.
Re:How I use the good parts of AWS by manigandham on Sunday July 28, 2019 @03:56AM (#20546368)
That's why I recommend containers, because automating deployment and config would be the same regardless of destination, right? Monitoring also seems to be the same if you're using built-in cloud stuff.

As for scale, I think that's massively overstated. Servers are really fast and most apps aren't anywhere near capacity. Even a $10 digitalocean server is plenty of power, and there's no cold starts. Even YC's advice is to focus on features and dev speed, and worry about scaling when it truly becomes an issue.

Re:How I use the good parts of AWS by AmericanChopper on Sunday July 28, 2019 @06:32AM (#20546802)
But a lambda is just a container that you don’t have to manage.

I don’t get this sort of anti-serverless sentiment. If you have even one good SRE, then it’s an absolute breeze. Writing a lambda function is writing business logic, and almost nothing else. I can’t see how you could possibly do any better in terms of development velocity. I don’t get this ‘testing functions is hard’ trope either. Writing unit test that run on your local is easy.

Re:How I use the good parts of AWS by takeda on Sunday July 28, 2019 @10:04AM (#20547581)
Your code becomes AWS specific, it is more expensive if you need to scale, it has higher latency, it is harder to test locally etc etc.

IMO lambda is awesome to handle infrastructure automation.

Re:How I use the good parts of AWS by AmericanChopper on Sunday July 28, 2019 @05:02PM (#20549824)
> Your code becomes AWS specific

Not really, aside from the other AWS services you consume (KMS, parameter store...). A cloud function takes an event, executes your business logic, and returns a response. The structure of the event can change slightly, but they’re remarkably portable, and I’ve moved them before. If you’re doing it right, most of your API gateway config will be an OpenAPI spec, and equally portable.

> it is more expensive if you need to scale

This is context specific.

> it has higher latency

Again context specific, and likely not something actually worth caring about.

> it is harder to test locally

This is one I simply cannot understand. You can run your functions locally, they’re just regular code. I’ve never had a problem testing my functions locally. If anything I’d say it’s easier.

There’s upsides and downsides to any architecture design. Serverless models have their downsides, but these anti-serverless discussions tend to miss what the downsides actually are, and kinda strawman a bunch of things that aren’t really.

I’d say the most common downside with serverless is that the persistence layer is immature. If you want to use a document database, it’s great, if you want to use a relational one, you might have to make a few design compromises. But that said, this is something that’s improving pretty quickly.

Re:How I use the good parts of AWS by nostrebored on Sunday July 28, 2019 @04:49AM (#20546501)
Focus on features and dev speed by managing a container mesh, the underlying server, system libraries, patching for security, handling a potential spike, solving each problem with your architecture as if it were novel, etc.?

There are times to go serverless and times to avoid it, but with what you're saying you want to optimize for, serverless is the answer.

Re:How I use the good parts of AWS by manigandham on Sunday July 28, 2019 @05:25AM (#20546602)
I guess you can make either one as complicated as you want, but surely just putting a container on a server is rather simple? There's no mesh for a single server, and is a potential spike a realistic concern?

I get your point but I think with products like Knative/Cloud Run everything will converge on a lambda-for-containers model eventually which combines the best of both worlds.

Re:How I use the good parts of AWS by nostrebored on Sunday July 28, 2019 @07:52AM (#20547043)
There's still a mesh. Containers need to know which containers to communicate with and across which ports.

If putting a container on a service at scale were simple then services like Lambda would have never been popularized and orchestration frameworks like kubernetes wouldn't exist

Re:How I use the good parts of AWS by manigandham on Sunday July 28, 2019 @08:48AM (#20547243)
I don't think popularity means it's the best option. That's the point of the blog post.

I'm also the first to recommend Kubernetes as soon as you need it as it's a solid platform, but most apps stay small and don't need all that upfront complexity. However I stand by Knative being the best of both, have you had a chance to look at that?

Re:How I use the good parts of AWS by ldoughty on Sunday July 28, 2019 @08:07AM (#20547096)
I agree servers and containers to get started...

However, once you are running enough containers, your server bill becomes something you can't ignore...

Making enough servers with enough memory capacity to keep all or containers running with fail over support was $400/month.. and that was just 60 containers (an easy number to hit in micro-services architectures).

And your right, we never got near server capacity by CPU usage .. completely agree there, we ran out of memory to keep the containers in memory ready for use.