Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Open Source Project Flogo for IoT Edge Apps and...

Kai Waehner
November 03, 2016

Open Source Project Flogo for IoT Edge Apps and Lightweight Microservices

Go-powered Open Source Project Flogo for Lightweight IoT and Edge Integration:

The Internet of Things (IoT) brings up 50 billion devices until 2020, which have to be connected somehow. Challenges include low bandwidth, high latency, non-reliable connectivity and the need for low network costs. Therefore, a gateway at the edge is needed remotely on site of the devices to filter, aggregate and send just relevant data into the cloud or data center.

This session introduces open source project Flogo, which allows developing ultra-lightweight IoT edge applications with a zero-coding web user interface. Coders can also rely just on Go code if they want. It is written in Go programming language and therefore 20-50x more lightweight than similar Java or JavaScript frameworks.

The session focuses on live demos and shows how to develop ultra-lightweight microservices and how to integrate IoT devices using standards such as MQTT, WebSockets, CoaP or REST. The last part of the session compares Project Flogo to other open source IoT projects like Eclipse Kura or Node-RED and cloud offerings such as AWS IoT.

Check out www.flogo.io and https://community.tibco.com/products/project-flogo for more information and community.

Keywords:
Internet of Things, IoT, Microservices, Edge Computing, Fog Computing, Open Source, Go, Golang, Flogo, Project Flogo, Node-RED, node red, IBM, Bluemix, TIBCO, TIBCO Software, Eclipse, Kura, Apache Camel, Serverless, Cloud, AWS, Azure, Google, GCP, Core, Edge, API Management, Integration, Cloud native, Java, JavaScript, OSGi, node.js, node js, Consumer IoT, Industrial IoT, IIoT, IoT Gateway, Gateway, Github, Apache, BSD, License, Microcontroller, Design Bot, Chat Bot

Kai Waehner

November 03, 2016
Tweet

More Decks by Kai Waehner

Other Decks in Technology

Transcript

  1. Kai Wähner Technology Evangelist [email protected] LinkedIn @KaiWaehner www.kai-waehner.de November 2016

    Open Source Project Flogo for Integration of the Internet of Things and Ultra-Lightweight Microservices
  2. © Copyright 2000-2016 TIBCO Software Inc. • an ultra-lightweight integration

    framework powered by Golang • open source and easily extendable • used to develop IoT edge apps or cloud-native / serverless microservices • complementary to other integration solutions and IoT cloud platforms Key Takeaways Flogo is …
  3. © Copyright 2000-2016 TIBCO Software Inc. 1) IoT Edge Applications

    2) Overview about Flogo 3) Use Cases 4) Go-powered Source Code 5) Architecture and Features 6) IoT Reference Architectures Agenda
  4. © Copyright 2000-2016 TIBCO Software Inc. 1) IoT Edge Applications

    2) Overview about Flogo 3) Use Cases 4) Go-powered Source Code 5) Architecture and Features 6) IoT Reference Architectures Agenda
  5. © Copyright 2000-2016 TIBCO Software Inc. Internet of Things (IoT)

    … refers to the ever-growing network of physical objects that feature an IP address for internet connectivity, and the communication that occurs between these objects and other Internet-enabled devices and systems.
  6. © Copyright 2000-2016 TIBCO Software Inc. Integration Key for Success

    of IoT Projects Without Integration there is no Internet of Things! Gartner Market Guide for IoT Integration “Through 2018, half the cost of implementing IoT solutions will be spent on integration. “ Strategic Planning Assumption, Benoit J. Lheureux, Massimo Pezzini, Alfonso Velosa !
  7. © Copyright 2000-2016 TIBCO Software Inc. Processes Analytics APIs Streams

    & Events Interconnect Everything Devices Equipment CORE Run the Business EDGE Change the Business People
  8. © Copyright 2000-2016 TIBCO Software Inc. Hybrid Integration Platform (HIP)

    Application Integration Application Integration (on a PaaS) iPaaS Integration Platform as a Service iSaaS Integration Software as a Service Cloud-Ready Cloud-Native API Management On Premise Public Cloud Public Cloud Public Cloud On Premise Public Cloud Process Integration Business Process Management Platform Streaming Analytics Fog Computing Edge Devices Edge Integration Analysts are sure: HIP is “the new default” in most enterprises!
  9. Much lighter to run not only in the cloud but

    also on devices 50X lighter than Java Dropwizard 20X lighter than IBM Node-Red
  10. © Copyright 2000-2016 TIBCO Software Inc. 1) IoT Edge Applications

    2) Overview about Flogo 3) Use Cases 4) Go-powered Source Code 5) Architecture and Features 6) IoT Reference Architectures Agenda
  11. Flogo Concepts to the End User Trigger Flow Activity Error

    Handler Flogo App One or more Flows Flows Activities + Transitions + Optional error handler Triggers Starts those flows
  12. © Copyright 2000-2016 TIBCO Software Inc. 1) IoT Edge Applications

    2) Overview about Flogo 3) Use Cases 4) Go-powered Source Code 5) Architecture and Features 6) IoT Reference Architectures Agenda
  13. Build Cloud-Native, Lightweight Microservices • Public Cloud • Containers on

    PaaS • Serverless Architectures © Copyright 2000-2016 TIBCO Software Inc. Use Cases for Flogo IoT Edge Apps • Consumer • Industrial IoT
  14. Typical IoT Integration Scenario What’s wrong with Cloud-only IoT Integration?

    • Connectivity is unreliable • Non-trivial latency in hops • Networks costs add up quickly
  15. A better IoT Integration Blueprint • Local control = more

    reliable • Less traffic = Lower TCO • Edge integration & event processing
  16. © Copyright 2000-2016 TIBCO Software Inc. 1) IoT Edge Applications

    2) Overview about Flogo 3) Use Cases 4) Go-powered Source Code 5) Architecture and Features 6) IoT Reference Architectures Agenda
  17. How do you build edge apps today? Java • Heavy

    (>200MB) • Not agile • Robust • Licensing risk NodeJS • Lighter (~70MB) • Agile • Not IoT robust • Clear licensing C/C++ • Lightest • Not Agile • Robust • Clear licensing
  18. © Copyright 2000-2016 TIBCO Software Inc. Why Go? Modern programming

    language Getting a lot of traction due to usage in frameworks like Docker or Kubernetes Concurrency Built into the language (Goroutines, channels, no explicit thread programming) Memory management Modern Garbage collector Statically typed Type-safe development with no “surprises” during runtime “Partly” object-oriented Simple and flexible type system, composition instead of inheritance Zero-dependency programming model All-included binary file, no dependent “external” libraries Speed Ultra fast compilation and startup time, very lightweight footprint
  19. So what is the Difference? Hardware OS VM - JVM

    Framework - OSGi App Eclipse Kura Hardware OS VM – V8 Framework – Node.js App Node-RED Hardware OS App Flogo Typically 100s of dependencies – 100MB+ “All included” zero- dependency model enabled by to Golang
  20. Comparison – Resource Requirements of IoT Frameworks Eclipse Kura Node-RED

    Flogo VM JVM V8 Golang Base Disk Space 59 MB 56 MB ~ 0 MB Base Runtime Memory ~ 170 MB (with Open JDK) ~ 20 MB (with Oracle Embedded Java) > 50 MB ~ 5 MB Startup time Slow (~8 sec) Slow (~5 sec) Fast (~1 sec) Application Build Slow Not Applicable Fast (~2 secs)
  21. Flogo Repositories on Github flogo-lib Core libraries. flogo-services Backing services

    required by Flogo for flow and state management. flogo-contrib Flogo extensions available out of the box, like triggers or activities. flogo-cli A command line tool to build Flogo apps. https://github.com/TIBCOSoftware/flogo (very permissive open source BSD license) Web Designer coming very soon – free to download and use!
  22. © Copyright 2000-2016 TIBCO Software Inc. 1) IoT Edge Applications

    2) Overview about Flogo 3) Use Cases 4) Go-powered Source Code 5) Architecture and Features 6) IoT Reference Architectures Agenda
  23. Flogo Architecture Trigger(s) Action Activity Activity Activity Flow Your custom

    Go code github.com/TIBCOSoftware/ flogo-lib/core/action Custom Action App Flow Service State Service
  24. © Copyright 2000-2016 TIBCO Software Inc. • Wire together hardware

    devices, APIs and online services • Integrate and orchestrate stateless devices and microservices • Transform / Filter / Route / Aggregate / Enrich • Error handling, Re-Try, Re-Routing, Wait, Resume, etc. • State Management via State Service and Flow Service • Device activiation and diagnostics, performance management, ... • Recover from faults, continue where a device crashed, … • Not just a dataflow pipeline • Synchronous and asynchronous communication Flogo is a Process Engine
  25. © Copyright 2000-2016 TIBCO Software Inc. • Open source framework

    (permissive BSD license) • Ultra-light footprint (powered by Go) for edge devices (disk and memory) • Zero dependency model • Can be run on a variety of platforms (edge devices, on premise, cloud, container) • Deployable on small computers or directly on (even very small) devices • Connectivity to IoT technologies (MQTT, CoaP, REST, …) • Highly optimized for unreliable IoT environments • For developers / integration specialists / citizen integrators • Web UI for visual coding, testing, debugging • Extendable SDKs / APIs • Some innovating features and attributes • Step-back debugger • Remote Operations and Analysis • Etc. Characteristics
  26. Web-Native Step-Back Debugger • Step back in a flow •

    Interactively design/debug your process • Simulate sensor events • Change data or configuration and run from Trigger or any Activity • Underlying technology could be used to support remote ops debugging of failed flows
  27. Outlook: Flogo Nanoservices on Microcontrollers Flogo nanoservices that target microcontrollers

    like ARM M0 Offload I/O centric compute farther off to the edge.
  28. © Copyright 2000-2016 TIBCO Software Inc. 1) IoT Edge Applications

    2) Overview about Flogo 3) Use Cases 4) Go-powered Source Code 5) Architecture and Features 6) IoT Reference Architectures Agenda
  29. Intel IoT Reference Architecture Potential Flogo use cases • Event-driven

    flows & rules • Device Lifecycle Mgmt • User Experience Core Integration Agile Microservices API Management
  30. Amazon IoT Reference Architecture Potential Flogo use cases • Event-driven

    Flows • Device Lifecycle Mgmt • Orchestration Core Integration Agile Microservices API Management
  31. © Copyright 2000-2016 TIBCO Software Inc. Serverless Architecture with IBM’s

    OpenWhisk (Open Source) https://apiguy.tokyo/2016/03/01/openwhisk-a-world-first-in-open-serverless-architecture/ Flogo Edge App Flogo Edge GateWay Ultra- Lightweight Serverless Flogo App
  32. © Copyright 2000-2016 TIBCO Software Inc. • an ultra-lightweight integration

    framework powered by Golang • open source and easily extendable • used to develop IoT edge apps or cloud-native / serverless microservices • complementary to other integration solutions and IoT cloud platforms Key Takeaways Flogo is …