DEV Community

Cover image for Cloud, why so difficult? 🤷‍♀️

Cloud, why so difficult? 🤷‍♀️

Elad Ben-Israel on January 24, 2024

A manifesto for cloud-oriented programming. Don't get me wrong, I love the cloud! It has empowered me to build amazing things, and completely ch...
Collapse
 
ranjancse profile image
Ranjan Dailata • Edited

Have you guys heard about pulumi. If not, welcome to Pulumi, much user friendly, code with your favorite programming language and target your favorite cloud of your choice. They are the best one to refer. I love them :)

Advice - Do not reinvent the wheel. Humans will be dead, AI's will take over LOL

Collapse
 
matijasos profile image
Matija Sosic

I love the compiler approach! We're also building a language (wasp-lang.dev/), so I'm aware of the challenges that come with it? Have you implemented your LSP yet?

Collapse
 
rybickic profile image
Chris Rybicki • Edited

Wasp looks sick! Yes, Wing's toolchain is designed with an LSP-first approach so it reuses the same code for parsing and type checking with the core compiler. :-)

Collapse
 
matijasos profile image
Matija Sosic

nice, the same!

Collapse
 
faaktap profile image
Fakie Tap

Very good read, thanks!

Collapse
 
eladb profile image
Elad Ben-Israel

Thank you

Collapse
 
nevodavid profile image
Nevo David

Great stuff!

Collapse
 
mfts profile image
Marc Seitz

Love this manifesto! Great read and converted me ⭐️

Collapse
 
fernandezbaptiste profile image
Bap

Man.. really enjoyed that one. Keep dem coming :D

Collapse
 
kwnaidoo profile image
Kevin Naidoo

Very nice article! and the compiler concept is pretty neat.

I was solving a similar problem, but, took a different approach: plexscriptables.com/

Right now this has very basic functionality, but eventually, it will become a fully-fledged GUI to make deploying cloud resources easy.

I think the majority of issues with the cloud are vendor lock-ins. AWS will release 3000 products and DevOps people get excited, everyone wants to use the shiny new thing, and 5 years later - you have this huge technical debt.

Each of these products then comes with its learning curve coupled with hundreds, if not thousands of "wiki" pages.

With some Linux skills including some Python and BASH, you can easily build out your infrastructure using dedicated or VPS-type servers. Most of these products are just wrappers and layers upon layers around Redis, MySQL, HaProxy, etc...

Where it makes sense, usually this is for scaling purposes - then reach out to AWS lambda's and whatever else. Bring them in slowly only when needed.

Problem with abstraction layers - the day something goes wrong, or you need to do something beyond what the compiler can do, you're stuck and don't have the skills to work around this.

Collapse
 
eladb profile image
Elad Ben-Israel

All abstractions can break when things go wrong but that doesn’t mean they are not powerful and valuable. Abstractions are the essence of software as they enable developers to deliver more value to our users faster. When things don’t work, we gotta open the hood. That’s been like that with software since the dawn of computers ❤️

Collapse
 
allkrish profile image
ashish

superb, resonates with my thoughts about working with cloud!

Collapse
 
nathan_tarbert profile image
Nathan Tarbert

What a great write-up @eladb!

Collapse
 
goodevilgenius profile image
Dan Jones

The idea that you to have to push to the cloud with each iteration is bonkers. I haven't worked like that since 2008.

Since then, I've got all the servers I need (minus occasionally some 3rd party APIs) running locally. At each iteration, I point curl at localhost and test it myself.

I have worked from a plane with no Wi-Fi recently. When my Internet goes out at home, I keep working.

Collapse
 
shaiber profile image
Shai Ber

Great read, thanks!

Collapse
 
dpark profile image
Dan

Really lovely read!