We finally have laid down the roadmap to appliance building Nirvana. We met yesterday and last week with our manufacturers to discuss the technicalities of the process and the logistics to wrap it all up.
We now have the following in place:
- Network Boot system that allows us to:
- Boot into our Kickstart environment.
- Boot into Clonezilla to clone or restore images.
- Boot into anything we want. ((This is freakin awesome, Knoppix, Windows Installation, or the latest and greatest Linux distro, just plug into our PXE boot system with menu.c32 and we're set to go. I know, I know, easier said than done, but we do have at least 3 network-bootable OS choices now, more will be added soon.))
- The process to make an image and pass it on to our manufacturers.
- They will keep an inventory of machines ready to go with our latest image.
- When an order comes in, we notify them and they process it and ship directly.
- Just prior to shipping, the operator runs a script that takes care of a few things:
- Regenerates unique identifier keys and similar stuff, like SSH keys, certificates and other similar objects.
- Generates, applies and securely tells us the credentials needed for the system.
- Gets its Serial Number and other device specific information and calls home with that information so we can register the machine appropriately.
- The confidence that they will prepare our orders to spec and ship directly.
If you've ever had to do something similar, I'm sure you understand what this means, now we can spend time in improving the performance and features of the appliance instead of having to build them each time we get new orders. We have freed up dozens of man hours for each machine that is purchased. That is the real value of this project. We are near its completion, I'd say we're about 98% there.
We tested three out of the four models that we have, and I have one more to work on that seems to be a little problematic in regards to its network card and the kickstart process. It makes me wonder if something broke recently or if we haven't sold very many units of this type. The testing included cloning an appliance, uploading to an ftp site ((This step was really superfluous but we're also working on fully automating the transmission of a new image to the manufacturer and the only way to give them a new image is via FTP so we had to include this in our testing.))Â then restoring the image and running our preparation scripts. This makes the appliance ready to ship.
Now the only part that we have to test is the actual process with one or two machines. Our manufacturer has now agreed to run two or three appliances through an order fullfilment process test run which will highlight any deficiencies, improvements or changes we should or could make to our design. They will actually be shipping to us and we'll be the customer for these models.
Some additional benefits to having this type of work outsourced is the convenience of post-ship support. The manufacturer takes care of any warranty issues that require a replacement machine or a repair; failed Hard drives, flaky network card, . We chose to have the customer support part of it handled by our Help Desk as we've had it in the past ((We think we should provide excellent Customer Support so we like to have full control over that, we know our customers and our Help Desk is good at what they do)), but we'll pass on new RMAs directly to the manufacturer and they will handle the shipping and returns automatically. This is another huge time and money saver; you see, all of these services are basically included with most of our purchases, we just never had a chance to take advantage of them. When you are a manufacturer specialized in a niche market then usually you can offer a lot of value to your customers by bundling features that are already built into your infrastructure. I still wish that they would have accommodated our original request to host a mirror kickstart environment at their facility, but I understand why --in this case-- it was better to go with the flow and stick to their process instead of making them follow ours.