this post was submitted on 07 Jul 2024
239 points (92.2% liked)
Technology
59312 readers
4526 users here now
This is a most excellent place for technology news and articles.
Our Rules
- Follow the lemmy.world rules.
- Only tech related content.
- Be excellent to each another!
- Mod approved content bots can post up to 10 articles per day.
- Threads asking for personal tech support may be deleted.
- Politics threads may be removed.
- No memes allowed as posts, OK to post as comments.
- Only approved bots from the list below, to ask if your bot can be added please contact us.
- Check for duplicates before posting, duplicates may be removed
Approved Bots
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
And that's a good thing, IMHO. As an architect I don't want to rely on some single genius knowing secret incantations or anything like that.
Boring, tried and true services, repeatedly put together and if the organization allows the time for it, with excessive documentation.
No one's talking about secret incantations.
They're talking about knowing how your applications actually work, so you're not tied to the whims of a third party.
Hence or anything like that.
If people don't know what your systems actually do, you're going to have huge problems at some point.
Where did I request for "not knowing what systems do"?
That's literally the entire chain you clicked down.
The fact that cloud provider calls aren't based in any kind of core principles and force you to spend all your resources understanding their nonsensical structure instead of what your code actually does.
Wrong. You don't know how it's implemented, but you very much know what they do. Even heard about abstraction?
Abstraction is great. When it's meaningful.
Cloud abstraction adds massive complexity that has no correlation to what your code does.
An di shouldn't. Separation of concerns.
Straw man. I'm encountering sys admins and systems "engineers" who don't know how to spec out a server, don't understand how certificates work, don't understand basic IP addressing principles, don't understand basic networking topology.
They just know how to click a list of specific buttons in a GUI for one specific Corpo vendor.
Maybe that is fine for a Jr. Admin just starting out, but it isn't what you want for the folks in charge of building, upgrading, and maintaining your company's infrastructure.
There's nothing wrong with making interfaces simpler and easier to understand. And there's nothing wrong with building simplified abstractions on top of your systems to gain efficiency. But this should not be done at the cost of actual deep understanding and functionality.
The people you call when things go badly wrong will always be the folks that have that deep understanding and competency. It already has started hitting the developer community in the last few years. The Jr. Devs that did a 3 month boot camp where they learned nothing but how to parrot code and slap APIs together, are getting laid off and cannot find work.
The devs that went to school for Comp Sci, that have years of real world experience, and actually understand the theory and the nuts and bolts of the underlying tech, they are still largely employed and have little trouble finding work.
I think the same will happen soon in the IT world. Deep knowledge and years of dirty, greasy hands will always be desirable over a parrot that only knows how to click GUI buttons in a specific order.
That's incompetence, and that's a different problem.
Is that what you get with Cloud? Because there are still a million ways to shoot yourself in the foot. The main difference is that the single genius doesn't need to implement things him/herself, but decisions still need to be taken and fragile setups can still be built.
Imagine an ec2 instance in a satellite account performing some business critical function with an instance role, whose custom IAM policy allows to do it in another account. Clouds are not giving you good engineering, they are giving you premade building blocks, you can absolutely still make a mess with those. Even more, the complexity and the immense portfolio of features can allow very creative ways to build very low-quality systems.
I think you can have good, boring, simple systems built by engineers. With or without Cloud services.
You can still make a mess, but you can't fuck up the building blocks, so it's a big improvement.
Using an ec2 instance is already a yellow flag, you have higher level services for most tasks.
Yeah in general you can't mess the building blocks from the PoV of availability or internal design. That is true, since you are outsourcing it. You can still mess them up from other points of view (think about how many companies got breached due to misconfigured S3 buckets).