Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

© 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 …

Slide 3

Slide 3 text

© 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

Slide 4

Slide 4 text

© 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

Slide 5

Slide 5 text

© 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.

Slide 6

Slide 6 text

© 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 !

Slide 7

Slide 7 text

© Copyright 2000-2016 TIBCO Software Inc. Processes Analytics APIs Streams & Events Interconnect Everything Devices Equipment CORE Run the Business EDGE Change the Business People

Slide 8

Slide 8 text

© 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!

Slide 9

Slide 9 text

© Copyright 2000-2016 TIBCO Software Inc. Why Project Flogo?

Slide 10

Slide 10 text

Much lighter to run not only in the cloud but also on devices 50X lighter than Java Dropwizard 20X lighter than IBM Node-Red

Slide 11

Slide 11 text

© 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

Slide 12

Slide 12 text

© Copyright 2000-2016 TIBCO Software Inc. Open Source since October 2016… http://www.flogo.io

Slide 13

Slide 13 text

© Copyright 2000-2016 TIBCO Software Inc. What is it?

Slide 14

Slide 14 text

Project Flogo IoT Example

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

© Copyright 2000-2016 TIBCO Software Inc. Live Demo Flogo in Action à Overview

Slide 17

Slide 17 text

© 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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

© Copyright 2000-2016 TIBCO Software Inc. Examples of IoT Edge Microservices

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

A better IoT Integration Blueprint • Local control = more reliable • Less traffic = Lower TCO • Edge integration & event processing

Slide 22

Slide 22 text

© 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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

© 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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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)

Slide 27

Slide 27 text

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!

Slide 28

Slide 28 text

© Copyright 2000-2016 TIBCO Software Inc. Live Demo Flogo in Action à Source Code

Slide 29

Slide 29 text

© 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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

© 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

Slide 32

Slide 32 text

© 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

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

© Copyright 2000-2016 TIBCO Software Inc. Live Demo Flogo in Action à Features

Slide 35

Slide 35 text

Outlook: Flogo Nanoservices on Microcontrollers Flogo nanoservices that target microcontrollers like ARM M0 Offload I/O centric compute farther off to the edge.

Slide 36

Slide 36 text

Outlook: Conversational User Experience with Design Bots Conversational Design Experience Flow-based User Interface …coming in 2017.

Slide 37

Slide 37 text

© 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

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

Amazon IoT Reference Architecture Potential Flogo use cases • Event-driven Flows • Device Lifecycle Mgmt • Orchestration Core Integration Agile Microservices API Management

Slide 40

Slide 40 text

Google IoT Reference Architecture

Slide 41

Slide 41 text

© 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

Slide 42

Slide 42 text

© 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 …

Slide 43

Slide 43 text

Questions? Please contact me! Kai Wähner Technology Evangelist [email protected] @KaiWaehner www.kai-waehner.de LinkedIn