I'm working on a project that might grow up to several thousands of things. The management is on AWS. My lack of knowledge is about practical operations, like the creation of the things.
Currently we need to:
- power up the board to get (via serial, display, WiFi, etc...) the ID
- on AWS create a new thing with this ID
- create the certificates as well
- download the certificates and copy them to the board
- add the new thing to our system's database
- assign the new thing to the commercial stuff (i.e. customer, plant, etc...)
Please note that each board is configured and installed at office. So we known in advance which is the final customer/plant.
Of course this procedure is time consuming and error prone. It works only for few prototypes. But it cannot work when the numbers grow.
Is there a way to automate this? For another customer - where I had the whole control of the code, so no AWS but a plain and simple PHP backend - I did something like this:
- On power up the board checks if it was already configured
- If not, sends its own ID to a local webserver
- If the ID is unknown, it's added to the database ("thing" created) in a special table of the newly discovered things
- If there are systems that are waiting for boards, the software assigns the new discovered things to them and put the record in another table
- The board updates itself downloading the configuration from a REST service
It worked fine but there were two main characteristics that now I don't have:
- the boards had a display, so it was easy to catch the right one
- I wrote all the code, there were no "hidden" or third-party code like in AWS
Please, would you help me to understand how one should approach these simple operations in a Could-based environment?