-
Notifications
You must be signed in to change notification settings - Fork 407
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Is Leshan server ready for production in industry ? #1614
Comments
Hi,
At least, we try to be. (except demos and some experimental feature which are not production ready, the client is maybe a bit less production ready, I think it is mainly used for testing) I can also say that Leshan 1.x is currently used in production at Semtech (SierraWireless) You can also see : Leshan 1.x is the stable release (stable API). It implements LWM2M v1.0.x only and is based on Californium/Scandium 2.x. See more details at : https://github.com/eclipse-leshan/leshan/wiki/Roadmap
This is a classic use case and should be supported following : https://github.com/eclipse-leshan/leshan/wiki/LWM2M-Devices-with-Dynamic-IP
It's very hard to answer to this kind of question, it depends on so many different factor but I guess this should be OK 🤔
Leshan is dual licensing so you can choose to use one license or another. If all of this information is not enough, you could directly contact license@eclipse.org |
@JaroslawLegierski, @jvermillard, @cyril2maq, @gcx-seb maybe you have some experience to share about your usage of Leshan ? |
I use Leshan 2.0.x in production for some customers (I'm a freelancer), and even load-tested it way above 10k devices, so if you need 2.0.x features, it's totally doable to run it in prod; but you need to be careful when upgrading milestones. IMO, 10k devices can be doable on a single machine. If you target more than 50~100k+ it's where you need more work to have a multinode setup + redis to manage the sessions |
In my experience (coap/dtls, Californium), it's not only about the number of devices, it depends also on the number of intended messages. 1.000.000 devices sending every hour results in less than 300 msg/s. But 1000 webcams with 30 msg/s will result in 30.000 msgs/s. So, how frequently are your beacons considered to send messages? I also made frequently the experience, that not the CoAP device frontend is a performance bottleneck, in quite a lot of times, it's the application-backend. So, please also verify, that this is able to process the load. |
Ok, actually our beacons are not very verbose, we are generally sending around 16 bytes every 1 minutes in term of data push (SEND method,, only the useful data speaking without SENML CBOR overhead). Exceptionnally it could output more data if beacon was out of cellular coverage during long time (datalogger feature), in this case the beacon may output more than 1500 bytes x 50 times in the same connection but then that's all ... So the average uplink content is really reduced and we will use CBOR and opaque data as much as possible |
That's less than 200 msgs/s, so it should not be an issue. Just to mention: 16 bytes application data will require about 100 bytes additional for ip, udp, dtls, and coap. That will be 5MB per month and device. And it will drain the battery a lot. |
We have different ways to cope with data thoughput VS battery. When generating lot of data (connection period short < 5min) it's generally in USB plugged case, otherwise we have configs to deliver data by chunks to limit overhead of connections / transmits. That's also why I am pushing to use LwM2M today instead of MQTT !! |
At Orange we do use leshan 2.X in production, with heterogeneous types of devices and LwM2M SDK connected to ours servers, and I can confirm it is very robust. Even more in your case, where it seems that you manage both device and server code. And as @jvermillard and @sbernard31 mentioned, the API can still change (with breaking change), so you need to anticipate this in your project. On our side, with regards to our backend application, we currently aim about 5k devices per leshan instance. So we performed loading tests with 5k devices on 1 instance with heavy usage (bootstrap, firmware updates, observation...). As @boaks mentionned, performance limitations will probably not come from leshan but rather from your backend application. And FYI, to handle multi-instances, you will need some work regarding specific implementations (using redis to share sessions). |
Thanks. Regards |
Apart from Leshan, Most of the "Production Readiness" Depends on the backend integrations (mainly the patterns used to integrate) with your own frameworks and managing client connect, disconnect and bootstrapping cycles ( loadbalancing and avoiding thundering heards) |
Thanks a lot for let us know!
150k is the default, with Cf 3.11 it will be Californium3.properties:
to adapt that. With Cf 2.x it depends on Californium.properties:
and which value is passed to
You may need to check here in the Leshan project, what is supported. |
@EmbGangsta any news do you know if Leshan will be used by CLS ? |
I hope we could ! Today it would be the best approach in term of "price". Our developers are maybe a little lazy and would like a ready to use solution but when they look to other ones (IOTEROP or Alaska) they deem that prices are too high... So I am pushing them to use Leshan yes ! |
Thx for the update.
I will be unavailable next few days back the 21th. |
Question
Hi,
Our company (www.cls.fr) is very interested in using LwM2M and we would like to add instance of leshan server inside our infrastructure but I wonder if today leshan is ready to be used in industrial in production mode ?
We need to support LwM2M 1.1 with queue mode as our devices will be sleeping most of the time, will use dynamic IP addresses (devices are using cellular modems).
Then 10000+ beacons could connect at the same time, is Leshan able to cope with this ?
What would be the licensing model in use ?
Regards
The text was updated successfully, but these errors were encountered: