Anand Tamboli
Sydney, NSW, Australia
Any source code or other supplementary material referenced by the author in this book is available to readers on GitHub via the books product page, located at www.apress.com/978-1-4842-4497-5 . For more detailed information, please visit http://www.apress.com/source-code .
ISBN 978-1-4842-4497-5 e-ISBN 978-1-4842-4498-2
https://doi.org/10.1007/978-1-4842-4498-2
Anand Tamboli 2019
Standard Apress
Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights.
While the advice and information in this book are believed to be true and accurate at the date of publication, neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or omissions that may be made. The publisher makes no warranty, express or implied, with respect to the material contained herein.
Distributed to the book trade worldwide by Springer Science+Business Media New York, 233 Spring Street, 6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail orders-ny@springer-sbm.com, or visit www.springeronline.com. Apress Media, LLC is a California LLC and the sole member (owner) is Springer Science + Business Media Finance Inc (SSBM Finance Inc). SSBM Finance Inc is a Delaware corporation.
Introduction
If you search for IoT platform on Google, it will return about 190 million results within a second. This is the level of proliferation that IoT has achieved (especially IoT platforms) in recent years. Every solution that is related to the IoT needs a platform.
Whether you develop a custom platform or buy it off the shelf means a lot to your final product. Moreover, the term IoT platform has many connotations, and vendors have overused it to a point where it does not convey anything meaningful.
As businesses and working scenarios are evolving, I am seeing many smaller companies delving into IoT. However, not having your own IoT platform is one of the impediments for such an evolution. The easy/lazy answer, as many would suggest, is to use freemium or free-trial platforms.
What lies ahead is a greater challenge when things scale and costs skyrocket exponentially. When the trial expires or freemium is not enough, users find themselves locked-in, and switching over is neither simpler nor easier.
Additionally, buying off-the-shelf solution often means that you subordinate requirements or retrofit things to suit what is available. You might end up building a subpar solution, if not an outright bad one. If having full flexibility and control means something to you, this book is for you.
I chose to write this book as I saw many of my customers struggling to understand the IoT platform landscape. State of the play has not been balanced with many vendors convoluting the offering to make it look like the greatest thing ever built. For short-term gains, they have raised artificial constraints and showed superficial problems that only their offering can solve. I believe in empowering customers, and this book is a humble attempt to do it.
The book is not about building a full-blown enterprise-grade system. It is about being agile in a true sense and reducing time to the market without breaking the bank. It is about designing something that you can scale incrementally without having to do a lot of rework or disrupting your current state of the work.
If you are a small to medium-sized company, or part of the development team at a non-IT company, you will find this book quite useful. If you are an independent developer, researcher, or learner, you will see the usefulness of the content for your endeavors too. Whether you are new to the programming world or have basic to intermediate programming skills, you will find this hands-on book equally useful.
The book supports the idea of being frugal at the start, and then invests only when and where necessary. It would help you to tap into technology advancements without bank-breaking budgets, and get off the ground quickly, contrary to the longer times required to adapt to the off the shelf or freemium platforms. More importantly, you will be in full control of what you are developing throughout the process.
Throughout 12 chapters of this book, I guide you through the step-by-step process of building your own IoT platform. There are must-haves and there are nice-to-haves; I will distinguish between the two and focus on how to build the must-haves. You will not only save heaps but also enjoy a control-wielding and satisfying learning experience.
In the first chapter, I discuss the necessary and sufficient qualities that any IoT platform must have and why. I also elaborate on the key question of why you should build your own.
Building your own means understanding at the ecosystem level is important; we do that in Chapter , where block diagramlevel details of the IoT platform are discussed.
Better planning is a key to success that reduces confusion and agony later on. So, I cover a platform wish list, and the technical and general requirements for the building of our platform in Chapters .
The rubber actually hits the road in Chapter , where we initialize the cloud instance, install the required software stack, and apply security. If you are eager to jump into the how of building things, this is where you might want to start (and read about the why later).
One of the core elements of the platform is a two-way messaging system bus, which is explained in Chapter along with the installation of broker software and securing it.
Building critical components of the platform, and the message broker extension with additional functionality, are covered in Chapter .
In Chapter .
In Chapter , we add documentation and provide the testing facility for developers with interactive API documentation.
Finally, in Chapter , I address a few commonly asked questions in various forums and discuss a few advancements that are in progress, which you might want to add to the platform when you build it. As I conclude, I leave you with a few possibilities to experiment.
Remember that all the code and configuration files discussed in this book are available on GitHub at https://github.com/knewron-technologies/in24hrs . Feel free to star, fork, or download them as you wish, and if you have more to add or suggest, I will be happy to hear from you.
I wish you all the best on this interesting journey and sincerely hope that you will enjoy the book as much as I enjoyed writing it!