Reader small image

You're reading from  Industrial Internet Application Development

Product typeBook
Published inSep 2018
Reading LevelIntermediate
PublisherPackt
ISBN-139781788298599
Edition1st Edition
Languages
Tools
Right arrow
Authors (4):
Alena Traukina
Alena Traukina
author image
Alena Traukina

Alena Traukina is IoT practice Lead at Altoros. She has over 12 years of experience in delivery and support of business-critical software applications, working closely with business owners and providing strategic and organizational leadership for software development. Over the years, Elena has served in different capacities, ranging from software engineer to software engineering manager and the head of Altoross Ruby Department. She is also one of the first GE's Predix Influencers.
Read more about Alena Traukina

Jayant Thomas
Jayant Thomas
author image
Jayant Thomas

Jayant Thomas (JT) is the director of software engineering for the IoT apps for GE Digital. He is responsible for building IoT SaaS applications using the Predix platform, and specializes in building microservices-based architecture, reactive, event-driven systems. JT holds a masters in technology from NIIT and MBA in technology from UC Davis, CA, and has 12 patents in the speech language processing, multimodal application, and cloud architectures. When not hacking code, JT spends time with kids and enjoys crossfit training and kickboxing.
Read more about Jayant Thomas

Prashant Tyagi
Prashant Tyagi
author image
Prashant Tyagi

https://www.linkedin.com/mynetwork/invite-connect/connections/ In discussion for Cloud agritech
Read more about Prashant Tyagi

Veera Kishore Reddipalli
Veera Kishore Reddipalli
author image
Veera Kishore Reddipalli

Kishore Reddipalli is a software technical director and expert in building IIoT big data and cloud computing platforms and products at ultra scale. He is passionate about building software for analytics and machine learning to make the authoring of algorithms at scale, from inception to production, a simpler process. He has been a speaker at global conferences on big data technologies. Over the years, he has provided leadership in various capacities. Throughout his career, his roles have ranged from software engineer to director of engineering and architecture for the development of platforms and products in domains such as clinical decision support systems, electronic medical records, Predix Platform, Predix Operations Optimization for IIoT, and etch-process control at nanometer level using big data and machine learning technologies in the semiconductor industry. He holds an MS in computer science from Texas A&M University Corpus Christi.
Read more about Veera Kishore Reddipalli

View More author details
Right arrow

Best Practices for IIoT Applications

In the previous chapter, we discussed how to build an IIoT application using Predix services. This chapter takes it further and looks at various different best practices to successfully build a multitenant, maintainable, reliable IIoT application. We will look at the following areas in this section:

  • Best practices for API development
  • The power of the polyglot programming choice
  • Eventual consistency for higher performance
  • Strategies to handle multiple versions of the application at scale
  • The advantages of using established trust between microservices
  • UX strategy for application adoption
  • Tracing and logging end to end

Best practices for API development

We will start with discussing API development best practices because the API is the cornerstone for good microservices-based architecture, which in turn forms the basis of the IoT cloud tier. APIs in a microservices context are always RESTful interfaces. RESTful APIs use constructs of HTTP at their core and JSON as their payload for request and response. We will look at a few key aspects of developing an awesome API. We can develop RESTful APIs using frameworks such as Spring Boot, Node—Express, or Python—Flask.

The API endpoint should be descriptive

The endpoint of the API should be self-descriptive and should use HTTP methods such as GET, PUT, POST, and DELETE to perform the...

Sorting, filtering, searching, and versioning

In addition to the CRUD operation, we need to handle various other regular operations, such as searching for certain device names. In addition, we can get the list of devices and sorting them into ascending or descending the results. Filtering is another interesting feature we can utilize to filter the responses, so that, by using includes, we can get only the fields we are interested in. Finally, we can have the endpoint support searching capability so that we can request certain types of devices with a name or asset of certain types.

Sorting of devices by name

Sorting is essentially a request for a sorted list of items, for example, a list of devices sorted by name. By default...

The power of polyglot programming

IoT development is, by nature, polyglot, which means it is using different programming languages, frameworks, and so on, for developing IoT applications. It is essential to appreciate the power of polyglot programming and use it wisely to get the maximum mileage. In this section, we will go over some of the benefits and traps of leveraging polyglot programming to improve IoT development.

Using Java programming for microservices development is advisable due to the plethora of tools available for Java, in addition to frameworks such as Spring Boot. Java has good support for many databases, and security tools such as OAuth integration. In addition, Java has many IDEs, built tools, code coverage tools, and so on, and this make it the winner for microservices development. Java stands out as a clear winner for API/microservices development. In addition...

Strategies to handle multiple versions of the @scale application

Typically, to manage applications at scale, we need to make sure we can seamlessly update, deploy, and run multiple versions of the applications in parallel for testing and certification before releasing the application for production use. Automation using CI/CD is mandatory for creating a continuous deployment pipeline. There are certain challenges, such as when to cut over to the newer version, and DB upgrades are still a challenge that need to be overcome. In this section, we will cover the concepts of Blue-Green deployment and best practices of database migration.

Blue-Green deployment

The idea behind Blue-Green deployment is to have two identical environments...

Summary

In this section, we covered some of the key best practices to follow while developing IIoT applications.

In the next chapter, we will cover the future of IIoT.

lock icon
The rest of the chapter is locked
You have been reading a chapter from
Industrial Internet Application Development
Published in: Sep 2018Publisher: PacktISBN-13: 9781788298599
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
undefined
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $15.99/month. Cancel anytime

Authors (4)

author image
Alena Traukina

Alena Traukina is IoT practice Lead at Altoros. She has over 12 years of experience in delivery and support of business-critical software applications, working closely with business owners and providing strategic and organizational leadership for software development. Over the years, Elena has served in different capacities, ranging from software engineer to software engineering manager and the head of Altoross Ruby Department. She is also one of the first GE's Predix Influencers.
Read more about Alena Traukina

author image
Jayant Thomas

Jayant Thomas (JT) is the director of software engineering for the IoT apps for GE Digital. He is responsible for building IoT SaaS applications using the Predix platform, and specializes in building microservices-based architecture, reactive, event-driven systems. JT holds a masters in technology from NIIT and MBA in technology from UC Davis, CA, and has 12 patents in the speech language processing, multimodal application, and cloud architectures. When not hacking code, JT spends time with kids and enjoys crossfit training and kickboxing.
Read more about Jayant Thomas

author image
Prashant Tyagi

https://www.linkedin.com/mynetwork/invite-connect/connections/ In discussion for Cloud agritech
Read more about Prashant Tyagi

author image
Veera Kishore Reddipalli

Kishore Reddipalli is a software technical director and expert in building IIoT big data and cloud computing platforms and products at ultra scale. He is passionate about building software for analytics and machine learning to make the authoring of algorithms at scale, from inception to production, a simpler process. He has been a speaker at global conferences on big data technologies. Over the years, he has provided leadership in various capacities. Throughout his career, his roles have ranged from software engineer to director of engineering and architecture for the development of platforms and products in domains such as clinical decision support systems, electronic medical records, Predix Platform, Predix Operations Optimization for IIoT, and etch-process control at nanometer level using big data and machine learning technologies in the semiconductor industry. He holds an MS in computer science from Texas A&M University Corpus Christi.
Read more about Veera Kishore Reddipalli