mycentstoo
Joined 9 years ago
Joined 9 years ago
I’d love to see how this compares when either the problem space is different or the language/ecosystem is different.
It was a great read regardless!
Curious if anyone else thinks this. Maybe it’s just optimism but I’ve yet to be convinced that a company would want to maintain its productivity through trading engineers for AI if it had the same opportunity to grow its productivity through AI and maintaining headcount.
Center: 1200 Getty Center Drive, Los Angeles, CA 90049
Villa: 17985 Pacific Coast Highway, Pacific Palisades, CA 90272
I think AI is massively negative on the environment via increased energy consumption to train large LLMs, on creative endeavors via the auto-generated art, etc. on labor via automation of jobs through AI agents, or the degradation of the job market, on public communication via the proliferation of fake videos/news, on personal relationships via AI significant others, on child development through easier cheating, etc, etc.
I get that there's a certain inevitability about technology. I also feel - and this could be a terrible analogy - that might have been what it was like to develop nuclear weapons. Better to develop and harness the technology for yourself if your competition is doing so too. That's the world and the market that we've constructed and it's rational to take advantage where you can.
I certainly don't pretend to stand on any moral high ground about what I would do if given the opportunity to cash out from AI skills if I had them.
But it all makes me very sad. I think I'll go read a book.
If you want more customization - again not necessary - you can build via Packer. The thing is, you have to do that anyways with Docker or whatever your container runtime happens to be. Docker images need patches as well if you install dependencies like openssl, libpql, etc.
ArgoCD - ArgoCD is great but it's something that has to be separate managed and comes with a database, UI layer, etc. and it's own set of permissions. The whole point of ArgoCD is to have deployments specifically around GitOps for container-based applications. Unnecessary if you don't have K8s.
Load balancers are simpler with ALBs and route directly to the auto-scaling groups. Traeffik is something that you need to manage. Also, K8s typically requires the use of external load balancers to work in the cloud as it is which means there's a layer of complexity that was introduced. Typically, K8s through the External Load Balancer Controller will provision the LB and attach targets. So it adds complexity. Traeffik isn't free, you are paying for the compute in your cluster which has the overhead of the control plane.
Let's Encrypt is another layer of complexity that has to be managed. AWS has ACM which can dynamically create and renew your certifications without you having to do anything.
K8s as a cluster needs to be managed and introduces significant breaking API changes across minor versions (1.23-1.24, etc.). Postgres managed as a stateful application also breaks some of the benefits of K8s in that it needs to be managed as a StatefulSet rather than as a ReplicaSet which means you likely need different deployment mechanisms to avoid destroying it accidentally.
Ironically, this architecture doesn't need any customizations at all. You can provision it with a few modules in Terraform or you can click ops the entire thing. K8s on the other hand, requires pretty constant attention. You've now introduced the management of the cluster, the building of the image, management of ArgoCD, Traeffik as well as external load balancers.
Basically: - Route53 for domain management
- ACM for cert management
- EC2s for LBs
- ASGs to manage EC2s
- Small shell script within userdata to configure the host vm
- RDS if you need a database
Avoiding the operational and actual costs of K8s.
I think that there are compelling reasons to use K8s:
- Lots of smaller services that need to interface with each other
- Product is deployed to multiple clouds or in a hybrid setting
- Infrastructure team has deep expertise in K8s
Deployments are no downtime. It’s pretty nice and if you want to run with docker on the host instances you can but you can also just install the application using systemd.
- Serve traffic behind a load balancer that has a WAF
- Network segregation for database (separate subnets)
- Make sure you serve https and have a cert that’s valid. Redirect to https if http
- Restrict ports on LB
At some point later:
- Endpoint monitoring and threat detection
- VPC flow logging
- Execute backend as non root
- Dependency / artifact scanning
- Cloud SIEM to monitor common actions taken
- Make sure no hard coded creds. Ie, use role-base auth with cloud providers
- Reproducible infrastructure builds with infra as code
- Email domain protection
- Grab misspellings of domain names to prevent squatting
* AI will drive additional features as development accelerates
* There will be a window where fast adopting AI companies can deliver features faster than peers
* Those fast adopting AI companies will be able to garner additional revenue
* Gap closes as AI benefits slow in their impact to feature development and slower adopting companies catch up
* Companies that were faster adopters can no longer charge more for additional revenue without giving up market share to now caught-up competitors
* New normal is that companies are in a bind - they have to pay for tokens/AI aided development else they lose speed and therefore market share - but the paying is now without additional revenue and exists as a tax
Assumptions:
* No AGI
* LLMs have bounded impact on features
* Timeframe is long enough that companies that trail in AI won't be starved out
https://www.youtube.com/shorts/iVHmp9F4Rl0