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

Project Flogo

Project Flogo

Open Source framework for IoT Integration. See flogo.io.

Avatar for Rajeev Kozhikkattuthodi

Rajeev Kozhikkattuthodi

December 03, 2016

Other Decks in Technology

Transcript

  1. Open Source Framework for IoT Integration Ultralight to run on

    IoT devices Web UI for Design & Auto-Stepback Debugging Edge-native design for resilience
  2. Agenda •  IoT Integration challenges •  Designing IoT Integration • 

    What’s Project Flogo? •  What’s next? •  Q&A
  3. Extreme Scale 21 billion connected devices by 2020 Extreme Fragmenta/on

    125+ IoT Pla7orms Digital-Na/ve UX 70% users are Millennials & Gen-Z by ‘20 Looming Security Risk Immature Security PracDces The Perfect Storm in IoT Image credits : NaDonal Ocanic and Atmospheric AdministraDon/Wikipedia Business Models in flux Early stage market risk SoBware eats the world Unclear ecosystem dynamics
  4. Gartner Market Guide for IoT Integration 2016 “Through 2018, half

    the cost of implementing IoT solutions will be spent on integration.” Vodafone 2016 IoT Barometer Report “IT integration is key to using IoT data effectively. IoT is all about data, but 81% of business said that IoT can only deliver real value if effective use is made of the data generated” http://www.vodafone.com/business/iot/the-iot-barometer-2016 There is no IoT without Integration
  5. What’s an Enterprise got to do? Executive Sponsorship Rapidly evolving

    Business Models Software as a core competency Establishing Business Case Proprietary lock-in API-Only integration approaches Software bloat on edge devices Poor Developer & DevOps Tooling Fragmented platforms Unreliable connectivity Lopsided cost models New security practices Ecosystem Dynamics Total Cost of Ownership Flexible Pricing Models Smart-cloud but Dumb-Edge
  6. Event-driven Microservices •  Model events, not just APIs •  Domain-driven

    design principles apply •  Examples of events – Temperature, Pressure, Humidity, Light, etc. – Device Activation, Reboot/reset, Timer, etc.
  7. IoT Integration Myth #2 App logic runs in the cloud,

    only data collection runs in the edge Our Point of View Build Edge apps on the device to complement the cloud.
  8. Typical Cloud-only IoT Integration scenario What’s wrong? •  Connectivity is

    unreliable •  Non-trivial latency in hops •  Connectivity increases TCO
  9. A better IoT Integration blueprint Edge integration & event processing

    •  Local control = more reliable •  Less bandwidth & lower TCO •  Fewer hops & latency
  10. IoT Integration Myth #4 We cant afford loosely coupled microservices

    on edge devices. Our Point of View Yes, you can. And you must.
  11. IoT Integration Myth #3 Build for the cloud, run on

    the edge device. Our Point of View Build Edge-Native, not just Cloud-Native.
  12. On-Prem Infra “My Pet” Cloud Infra “Herd of Cattle” IoT

    Edge Infra “Swarm of Bees” © User:Mark Osgatharp / Wikimedia Commons / CC-BY-SA-3.0 © Keith Weller, USDA ARS / Wikimedia Commons / CC-BY-SA-3.0 © JimmyDominico, Pixabay / CC0 Public Domain
  13. Cloud Infrastructure “Herd of cattle” Infinite compute scale Elastic resource

    pool Reliable connectivity Reliable shared storage Optimized for general purpose processing Identity & location agnostic Edge Infrastructure “Swarm of bees” Finite compute scale Limited resources Unreliable connectivity Unreliable local storage Optimized for I/O processing Identity & location matters Cloud-NaDve Edge-NaDve
  14. Meditation on inevitable death should be performed daily. Every day

    when one's body and mind are at peace, one should meditate upon being ripped apart by arrows, rifles, spears and swords, being carried away by surging waves, being thrown into the midst of a great fire, being struck by lightning, being shaken to death by a great earthquake, falling from thousand-foot cliffs, dying of disease or committing seppuku at the death of one's master. - Yamamoto Tsunetomo Inspiration for Anti-Fragile Edge Apps
  15. Edge-Native Application Checklist •  Externalize any application-state •  Think events,

    not just APIs or services •  Think async messaging, not just Request-Response •  Model “digital shadows/twins” in the cloud •  Privilege autonomous operations
  16. Open Source Framework for IoT Integration Ultralight to run on

    IoT devices Web UI for Design & Auto-Stepback Debugging Edge-native design for resilience
  17. Comparing Flogo with alternatives Eclipse Kura Node-RED Flogo VM JVM

    V8 Not applicable Base Disk/ Container 59 MB 56 MB ~ 0 MB (Scratch container) Base Runtime ~ 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 sec) Based on early testing & publicly available information
  18. Developing integration apps in Flogo 1 Design & Debug flows

    in Web UI 2 Package into apps using CLI or CI/CD 3 Run directly on edge gateways & devices
  19. Web UI to design flows •  Low friction web-native UX

    •  Express app logic using rich flows, not just data or request pipelines •  Inline data transformations •  Build against a variety of IoT device platforms – ARM, x86, etc.
  20. Flogo End User Concepts Flogo App = Flows + Triggers

    •  Triggers start flows •  Flow consists of Activities & Transitions •  Optional flow-level error handler Trigger Flow AcDvity Error Handler
  21. Flogo – what’s going on behind the scenes Trigger(s) AcDon

    AcDvity AcDvity AcDvity Flow Your custom Go code github.com/TIBCOSojware/flogo-lib/core/acDon Custom Ac/on App Flow Service (for Design & Debug) State Service
  22. Web-based Auto-Stepback Debugger •  Debug edge apps in web browser

    •  Simulate external triggers like sensor or gateway events •  Automagically step-back in a flow to observe output for any activity •  Replay from trigger or any activity
  23. We chose Golang •  Lightweight & efficient •  Strict typing

    •  Fast build times •  Zero-dependency binary executables •  Optimized for multi-core •  Awesome for large code bases •  Great community!
  24. Zero-dependency app model Hardware OS VM - JVM Framework -

    OSGi App Java based Eclipse Kura Hardware OS VM – V8 Framework - Node App NodeJS based NodeRed Hardware OS App Golang-based Project Flogo Typically 100s of dependencies – 100MB+ Zero-dependency apps enabled by Golang
  25. Hardware OS Security Logging Metrics Protocol Bridges DiagnosDcs Sensor Processing

    Make room for what matters – your apps Flogo Hardware OS VM - JVM Framework - OSGi App Java based Eclipse Kura Hardware OS VM – V8 Framework - Node App NodeJS based NodeRed Zero overhead means you don’t run out of room for real apps
  26. Zero-dependency model •  Self-contained binaries for target platforms •  Deterministic

    build & operational behavior •  No dependency hell to manage – No messing with Java Classpath & Classloaders – No unwieldy package.json dependencies •  Easy to plug into your DevOps pipeline of choice
  27. Edge-native Design Externalize state of apps on unreliable devices Examples

    •  Resilience: Device activation app that survives device cold-boots •  Debugging: Remote forensics & debugging of faults in apps Trigger(s) AcDon Flow Service (Design/Debug only) State Service Pluggable transports like HTTP, MQTT, etc. App
  28. Beware the class hoarder! Flogo builds custom engines that bring

    along none of the stuff you don’t need. © Jeff Werner Flickr / by-nc-sa hqps://www.flickr.com/photos/jeffwerner/2308087644
  29. Custom-built engines Users retain full control over activities and triggers

    included in an engine •  Zero waste – no class hoarding like Java •  Improved security – include only what you trust •  Reject “out of policy” applications
  30. Intel IoT Architecture PotenDal Flogo™ use cases •  Event-driven flows

    •  Device Lifecycle Mgmt •  User Experience FTL/eFTL BW Container EdiDon Microflow CE Mashery
  31. Amazon IoT Reference Architecture Flogo Cloud use cases •  Device

    Lifecycle Mgmt •  OrchestraDon BusinessWorks Microflows Mashery Flogo Edge use cases   Event-driven Flows   Device Lifecycle Mgmt
  32. What’s next for Flogo? Lighter •  Run Flogo nanoservices on

    microcontrollers Simpler •  ApplicaDon modeling in Web UI •  ConversaDonal Bot design interface Beqer •  Support for 12FA & container tooling in PaaS •  More connectors & extensions to IoT & SaaS endpoints
  33. Flogo Nanoservices on Microcontrollers Flogo nanoservices that target microcontrollers powered

    by ARM M0 & higher Offload I/O centric compute farther off to the edge. So what? •  Event processing logic on microcontrollers