10
18 Comments

What are the biggest challenges with cloud development?

As cloud developers ourselves (at Nitric), we're currently really interested in helping other cloud developers have a better experience building, testing, and deploying cloud applications.

What are the biggest challenges you face with cloud-native and serverless development?

If you're up for it, we created this <5 minute survey to help us learn more, and your feedback would be really helpful!
Take the survey

on April 4, 2022
  1. 6
    • Vendor lock-in
    • Convoluted pricing models
    • Lack of managed databases (including poor concurrent connection limits for small instances)
    1. 1

      Thanks @BackendDev, this is helpful! I'm curious, how have you dealt with your vendor lock-in challenges?

      1. 2

        I always choose an open source database or public domain based database such as Postgres or SQLite. I write my HTTP services using Go so I don’t depend on frameworks or lots of downstream dependencies. I containerize all my apps so I can deploy them on any cloud provider. I avoid using Functions altogether wherever possible and if I do use them I treat them as throw-away glue.

        If I need an email service , I always call it using the raw SMTP interface and never using the cloud provided SDKs. For example, AWS offer Simple Email Service (SES) than can be called by both the raw SMTP or via their SDK. SES offers their own email templating feature but use Go templates to render HTML and Text files application side, even though I have to write a bit extra code.

        If I need to use AWS‘ SQS or Google Cloud Platform’s PuB/Sub I use a layer of abstraction (in the form of a library that publishes its own interface) so that I only use the lowest common denominator of services that each provider offers. This way I can switch out if I need to bail out on a cloud provider.

        I basically date with AWS and GCP but I’ll never marry them.

        1. 1

          What you're saying about using abstraction over SQS or PubSub resonates with me. That's what we've been trying to build for those and many other services in the Nitric framework (topics, queues, storage...).

          If you have the time I'd be super interested in your take on what we've done - does it hit the mark for you or have we missed it?

          You also talked about "lowest common denominator" and we hear that a lot. These days I feel those standard services are such similar commodities, you don't lose a lot with abstraction. Are there features you miss when you implement your own abstraction?

          1. 1

            I've been mulling over your last post a while and hadn't come up with an good answer.

            I'm assuming you're after some feedback to improve your platform. To be completely honest, whenever I see the word framework I run for the hills. As a developer there is already so much surface area to cover when it comes to development. You've got languages, databases, servers etc. I'm also mostly written Go these days and 99 times out of a 100 I can write an HTTP web app or service quickly without the need for any framework (The Go standard library is very complete in that respect.) With that in mind I'm probably not the best person to ask as I've not written any TypeScript in over a year.

            I did take a peek and the concept is sound. I think taking an opinion is a good idea sometimes, especially in your case where you're providing an abstraction over the big three infrastructure providers. Do you guys have any YouTube videos showing how to build?

  2. 1

    Thanks for your question. The biggest challenge I have with cloud-native and serverless development is that I'm always worried about security. Thankfully, there's a lot of material out there that talks about how to make sure you're doing things right, but I still always have some anxiety when it comes to deploying my software.

  3. 1

    Support for running ethereum nodes

    1. 2

      What's your use case? I might be able to implement it as a one-click template in my product (easypanel.io).

      1. 1

        Running a full node is for two things:

        1. collect incoming events in real-time. I put a subset of them into a pg database for faster and easy querying.
        2. write transactions to the blockchain.

        Infura and similar API providers are overpriced garbage with low API limits than make anything interesting cost many thousands per month. Running bare metal on Hetzner is about $35/month.

        1. 1

          That should be pretty easy to do. I have limited experience in crypto but I'd love to try to setup a node together. Are you up for a 15-min zoom call?

          P.S. I also use Hetzner, great service, great prices!

          1. 1

            For security reasons, I don’t link my wallet to my physical identity and I don’t have the equipment to do calls pseudonymously yet.

            So, maybe not for a couple of months!

  4. 1

    Huge proponent of serverless here. I feel there's a lack of serverless SQL database offerings out there (with generous free tiers)

    1. 1

      I definitely agree with you on that one. Planetscale seems promising, we've been playing with that recently, but more variety would be nice. What flavor of SQL db is your go-to?

      1. 2

        Wow wasn't aware of this one. Pretty cool find! I've been using supabase, a bit spoilt by their built-in realtime and auth capabilities. It's not exactly serverless though

  5. 1
    • Debugging
    • Observability
    • Onboarding new devs who are not super proficient with AWS
    1. 1

      What's your biggest hurdle onboarding new devs? I've seen the number of services available cause issues, also new cloud architecture is unfamiliar. Do they sound right to you, are there other challenges?

    2. 1

      Hey Sandro, thanks! What are your current debugging practices?

      I actually recently listened to this AWS bites podcast about onboarding junior devs to AWS–maybe some of the points about what to teach first could be helpful.