4 ms·
I think people are overly concerned with 'performance'. So long as the approaches meet real world thresholds for specific things, particularly the speed of cer
by sonnyblarney 8y ago
I think people are overly concerned with 'performance'.
So long as the approaches meet real world thresholds for specific things, particularly the speed of certain time-sensitive requests - then the technology is 'viable'.
(And let's also assume 'reliability' as a key component of 'viability')
Once the tech is 'viable' - it's really a whole host of other concerns that we want to look at.
#1 I think would be the ability of the tech to support dynamic and changing needs of product development.
Something that is easy, fewer moving parts, smaller API, requires less interference and support from Devops - this is worth a lot. Strategically - it may be the most valuable thing for most growing companies.
'Complexity' in all it's various forms represent a kind of constant barrier, a force that the company is going to have to fight against to make customers happy. This is the thing we want to minimize.
Obviously, issues such as switching costs and the 'proprietary trap' are an issue, and of course 'total cost of operations' i.e. the cost of the services are important basis of comparison, but even the later is an issue later on for the company, once it reachers maturity. (i.e. A 'Dropbox' type company should definitely start in the cloud, and not until they have the kind of scale that warrants unit-cost scrutiny would they consider building their own ifra)
In the big picture of 'total cost of ownership' - it's the ability of the system to meet the needs of product development, now 'how fast or cheap' it is, that's really the point.
Something that is 2x the cost, and 10% 'less performant' - but is very easy to use, requires minimal devops focus, and can enable feature iteration and easy scale - this is what most growing companies need.
Unless performance or cost are key attributes and differentiators of the product or service - then 'take the easy path'.
- Chyzwar 8y ago> For Fargate, this meant deploying 50 instances of my container with pretty beefy settings — 8 GB of memory and 4 full CPU units per container instance. This is for hello world application. This is insane. Single EC2 HVM instance would have better performance. > Something that is 2x the cost, and 10% 'less performant' - but is very easy to use, requires minimal devops focus, and can enable feature iteration and easy scale - this is what most growing companies need. Cost is close to 50x and Fargate is not necessarily lower overhead. Terraform + Packer + EC2 vs ECS + Docker + Fargate is pretty the same for me. You still need to build images and manage the deployment lifecycle.
- sonnyblarney 8y agoWhy would you use " Terraform + Packer + EC2 vs ECS + Docker + Fargate" if you can just use AWS Lambda?
- bdcravens 8y agoBecause it's never just Lambda. It's the toolchain you use for deployment and orchestration, routing, etc. (eg, "Serverless Framework + Lambda + API Gateway")
- sonnyblarney 8y agoWell 'serverless framework' really is just node.js or java. That's likely going to be used anyhow. Lambda itself doesn't really take maintenance. Routing can be done in the app, you only need one - or a small number of 'endpoints' so messing with API gateway can be minimized. You can run any sized app with a single API Gateway endpoint, and a single lambda, on a simple node.js setup. I can't see any reason to use containers on EC2 or containers on Amazon's container service until an app gains quite a degree of sophistication.
- Chyzwar 8y agoCloudFormation, API gateway, AIM, Secret Manager. Production application requires much more than just a lambda. It is better to start from something more structured than shell scripts.