At a guess they are talking about applications being built from the ground up to dynamically allocate resources using cloud providers APIs directly rather than relying on an assumption fixed resources are already provisioned and the application runs within them.
I wonder if I'm right ...
Ceph is a storage backend. Most of them tend to be built for or work well with kubernetes.
- very fast startup
- low memory
- can be easily distributed or is stateless
Contradictory perhaps? So it's not what it means but it is what it means?
In order to achieve what you've said in vague terms you definitely do need to try to be stateless, have fast startup and reduce memory. Clear examples are things like lambda and fargate.
How can you be elastic if you have an application server that takes 10 minutes to start?
If that indeed is what cloud native means, it sounds interesting. But the problem is that all these APIs and especially "managed" services are super proprietary and you'll vendor lock yourself pretty hard. But I suppose that ship has sailed a long time ago.
Authentication and integration with auth and secret providers are another distinguishing feature. I personally find "cloud native" software to be a pain to use locally because they usually come in the form of a docker-compose and kubernetes setup, and those absolutely gobble up ram and disk space.
Or to put it more clear, applications written in modern language runtimes, packaged in containers that can be run on top of whatever orchestration is available, and using provider APIs and resources.
Same as "web scale" and "big data".
Whether that’s just marketing BS or real depends on the project. Wether it fits your particular kind of cloud environment is also a different story.
In the specific case of NATS I love how I can start with a single server on localhost, then maybe upgrade to a single fly.io instance, then later move to a larger AWS, instance, then later add some fault-tolerance by turning a single server into a cluster, then later have multiple clusters in various AZs around the world, hosted on different cloud providers.
NATS makes all of these changes (and a lot more) a breeze. Any component or application using pub/sub, KeyVal, durable streams, request/response will just keep working without a single any changes.
Disclaimer: I love NATS, it’s the most promising piece of infrastructure technology I have seen in a long time.