Inspiration
Greengrass: The Quiet Hero of AWS
Amazon recently made Greengrass fully open source, introducing a world of new capabilities for AWS users. Learn more about why Loupe is so excited about this revolutionary technology.
Prior to joining Loupe, my background was in industrial controls manufacturing. Charged with heading up an IoT effort, my job was to look for new technologies and find ways to implement them on our platform. At Loupe, my role is not so different — which is why I’m excited to share AWS Greengrass and how it will revolutionize our clients’ operations.
AWS is the leading (and largest) cloud platform for the Industrial Internet of Things. AWS has put major effort into developing technology for factory automation, something Amazon knows quite a lot about. This has shaped the rest of the IoT world and introduced new opportunities for AWS users — Greengrass among them.
The Standard Approach
Typically in an AWS control scheme, you have a cell with multiple PLCs in operation — each reporting back to AWS in the cloud. This is done by making a connection to the IoT core (a device connector for AWS) and passed through AWS security tools. The rules engine can then forward data to a Lambda function, and Lambda can act on it.
Unfortunately, there are challenges and risks with managing individual device connections to the cloud.
The internet itself can be unreliable or systems may not be designed around reliable outfacing networks. Latency is one obvious drawback here: With a good connection, you can see messages in single-digit milliseconds. That’s perfect for web applications, but not control applications — and can be a problem if you’re relying on feedback from a cloud logic engine. Not to mention, the quality of your application overall is completely determined by the health of your network. If a connection goes down, it could result in a loss of data.
It presents a security risk. Each device has individual credentials and presents a security liability when allowed to touch the internet. If controllers are communicating over a local network, they’re likely using a less secure protocol (since they’re not credentialed in the same way a connection to the cloud would be), exposing you to possible malicious behavior.
It is costly. Like most cloud platforms, AWS cost is linear based on frequency of connections and transactions to IoT service. In this scenario, one of these devices is reporting everything to AWS. So you’re paying for the connection to the IoT core, the Lambda function, and all bandwidth it’s using. This increases with device count, meaning it scales quickly and can become both expensive and difficult to scale back.
And these are just the beginning. When you run this model, you’re relying on MQTT messaging only — which adds work and creates opportunity for errors. There are also on-premise nuances to consider, like local resources (file system that needs to be synced, etc.), version control, and more. Suffice it to say that these vulnerabilities make device management on the cloud less than ideal.
Enter: Greengrass
Greengrass is a software developed by AWS and designed on top of a Linux operating system. An “on-premise” proxy to the IoT Core service, its original purpose was to remedy these reliability issues. Its on-premise communications are cost-free, and it will run on almost any platform.
Loupe is particularly excited about Greengrass and the opportunities it presents — particularly because B&R controllers are certified AWS Greengrass devices. This means they support all security requirements of AWS, and all the language requirements and logic with Greengrass. And best of all, Amazon made Greengrass fully open source as of two weeks ago — so now it’s not just installable for free, but fully customizable. You can leverage Greengrass with either systems that are deployed remotely, or those that need some kind of remote maintenance or secure connectivity (whether it’s a plant or OEM machine).
How It Works
Greengrass takes the IoT core, Lambda functionality, and network security tools, and deploys them as software on a local device in your network. Since AWS services are no longer dependent on the cloud, it decreases latency and increases reliability and uptime.
Thanks to pre-processing and logic at the edge-of-network, you can configure Greengrass to only transmit batch data (reducing your transactions and subsequent costs). This makes it almost infinitely scalable based on function demand.
Greengrass also enables local execution of Lambda functions. Beyond just processing logic, this advances the idea of version management and code deployment and can allow you to develop a global fleet of logic engines from anywhere in the world.
The benefits here are clear:
- Connect securely to all Greengrass devices
- Decrease latency for cloud connected applications
- Leverage remote deployment and maintenance
- Reduce cost of transmission
- Increase uptime with automated updates and rollback capabilities
- Allow use of higher-level code in simple ways
What’s Possible Next?
The applications for Greengrass are almost endless, and Loupe is already leveraging this technology with several of our clients.
Does your IoT include mobile equipment like a ship — where you have an unreliable and expensive connection to the cloud but still need AWS services and reporting? Do you have processes that require constant integration? Are your systems heavily deployed to remote sites all over the world — requiring you to rapidly update code as you scale?
What if you could automate that code delivery and maintenance? Greengrass allows automation at every level — from the build, to the deployment, to the update. It removes any specific IDE requirement for developers and allows a completely web-based, available-anywhere environment.
Loupe is uniquely positioned to support Greengrass and the capabilities it introduces. If this sounds interesting to you, let’s talk.
Contributor
Jesse Cox
AUTOMATION ENGINEER