pydata paris 2015 - track 4.1 jean-paul smets et ivan tiagov

84
© 2015 Nexedi SA – Company Confidential Wendelin Big Data Industrial Monitoring Platform 2014-04-03 – Paris

Upload: pole-systematic-paris-region

Post on 16-Jul-2015

190 views

Category:

Data & Analytics


1 download

TRANSCRIPT

Page 1: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

© 2015 Nexedi SA – Company Confidential

Wendelin Big DataIndustrial Monitoring Platform

2014-04-03 – Paris

Page 2: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

© 2015 Nexedi SA – Company Confidential

Who are we?

● Jean-Paul Smets

● Nexedi CEO

● Author of ERP5

[email protected]

● Ivan Tyagov

● Senior Developer

● Wendelin project lead

[email protected]

Page 3: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

© 2015 Nexedi SA – Company Confidential

Who is missing?

● Kirill Smelkov

● Senior Developer

● wendelin.core

● Sebastien Robin

● Project Director

● Author of POC

Page 4: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

© 2015 Nexedi SA – Company Confidential

Agenda

● Where do we come from

● Wendelin Architecture

● Detailed Example

● Future Roadmap

Page 5: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

© 2015 Nexedi SA – Company Confidential

Where do we come from?

Page 6: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

© 2015 Nexedi SA – Company Confidential

Nexedi

● Possibly Largest OSS Publisher in Europe– ERP5: ERP, CRM, ECM, e-business framework

– SlapOS: distributed mesh cloud operation system

– NEO: distributed transactional NoSQL database

– Wendelin: out-of-core big data based on NumPy

– re6st: resilient IPv6 mesh overlay network

– RenderJS: javascript component system

– JIO: javascript virtual database and virtual filesystem

– cloudooo: multimedia conversion server

– Web Runner: web based Platform-as-a-Service (PaaS) and IDE

– OfficeJS: web office suite based on RenderJS and JIO

Page 7: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

© 2015 Nexedi SA – Company Confidential

Page 8: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

© 2015 Nexedi SA – Company Confidential

Page 9: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

© 2015 Nexedi SA – Company Confidential

+

?

Application Convergence

Page 10: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

© 2015 Nexedi SA – Company Confidential

Case 1: Wind Turbines

● Collect logs

● Collect records

● Predict failure

● Plan maintenance

● Reduce downtime

→ add X% profits

Page 11: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

© 2015 Nexedi SA – Company Confidential

Case 2: Cars

● Collect logs

● Collect records

● Predict failure

● Plan maintenance

● Reduce downtime

→ increase loyalty

Page 12: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

© 2015 Nexedi SA – Company Confidential

Case 3: Solar Energy

● Collect logs

● Collect records

● Predict degradation

● Plan maintenance

● Increase efficiency

→ add X% to profits

Page 13: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

© 2015 Nexedi SA – Company Confidential

Wendelin Architecture

Page 14: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

© 2015 Nexedi SA – Company Confidential

Standard Hardware no router / no SAN

– 2 x 10 Gbps– 2 x 6 core Xeon CPU– 512 GB RAM– 4 x 1 TB SSD– 1 x M2090 GPU

x 160

x 32

+

+

x 320

– 10 Gbps– Unmanaged

Page 15: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

© 2015 Nexedi SA – Company Confidential

Wendelin Hypercube Datacenter

Page 16: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

© 2015 Nexedi SA – Company Confidential

Take the Best Analytics scikit-learn.org

Page 17: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

© 2015 Nexedi SA – Company Confidential

Add Distributed Storage neoppod.org

neoctlSate accessCommand control

MasterOID & TID allocationSynchronisationLoad balancing

StorageObject dataTransaction dataPartition table

ApplicationZODBneo.client

DataControlAdmin

State archivalCommand proxy

Page 18: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

© 2015 Nexedi SA – Company Confidential

“Magic” out-of-core for NumPy

ZBigArray

1 2 3 4 5 6 7 8 9 10 11 12

5

9

6

10

7

11

1 2 3 4

8

12

PyData Paris 2015 – 16h45 Kirill Smelkov

Page 19: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

© 2015 Nexedi SA – Company Confidential

Add Elastic PaaS erp5.com

# Initialize datadata_size = 1000000server_count = 1000chunk_size = data_size / server_countdata = array(data_size)

# Process data in parallel on each server (Map Reduce, Batch, etc.)for server in server_count: data.activate().process(server*chunk_size, chunk_size)

PaaS

Page 20: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

© 2015 Nexedi SA – Company Confidential

And Multicloud Deployment slapos.org

MMC Rus

Page 21: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

© 2015 Nexedi SA – Company Confidential

Wendelin Platform 100% open source

NEO

SlapOS

Scikit Learn

ERP5

Multicloud Deployment

Elastic PaaS

Distributed Storage

Data Analytics

Multi Data Center

100%

Pyt

hon

Page 22: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

© 2015 Nexedi SA – Company Confidential

Wendelin Options 100% open source

Time sequence processingDataPad / JP Morgan

JIT compiler / type inferenceContinuum / DARPA

Scikit Learn

Pandas

Numba / Parakeet

NEO

100%

Pyt

hon Blaze Full out-of-core arrays

Continuum / DARPA

NLTK Natural Language TookitU. Texas / Chalmers

OpenCV-Python Video ProcessingIntel Russia / Willow / Itseez

Page 23: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

© 2015 Nexedi SA – Company Confidential

Data Ingestion: fluentd

● Based on MsgPack middleware

● Created by TreasureData(BDaaS pioneers)

● Used by Amazon

● Numerous plugins

● Scalable and resilient

● Bandwidth saver

Page 24: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

© 2015 Nexedi SA – Company Confidential

Wendelin UI

● HTML5 Render RenderJS

● Data vizualisation

● Offline support JIO

● Data access REST API

● Batch processing

REST GET

JSON + HATEOASJavascript Python

Page 25: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

© 2015 Nexedi SA – Company Confidential

Wendelin Distinctive Advantages

● Native out-of-core NumPy (scikit-learn, pydata)

● Native parallel processing

● Bare metal performance (GPU, FORTRAN)

● Transactions (ingestion, processing)

● NewSQL queries

● Built-in PaaS

● Lower deployment cost (10x less than...)

Page 26: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

© 2015 Nexedi SA – Company Confidential

Detailed Example

Page 27: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

© 2015 Nexedi SA – Company Confidential

Data Transportation fluentd

3 months benchmarkFrequent downtime (server, network)Very poor networking (ADSL, 3G)

fluentd(Buffer)

DPU

Fluentd

Central server

< 0.001% loss

Page 28: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

© 2015 Nexedi SA – Company Confidential

UI: HTML5 Components RenderJS

Page 29: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

© 2015 Nexedi SA – Company Confidential

Extend UI Components RenderJS

Page 30: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

© 2015 Nexedi SA – Company Confidential

UI : Responsive RenderJS

Page 31: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

© 2015 Nexedi SA – Company Confidential

UI: Offline / Other Backends JIO

Page 32: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

© 2015 Nexedi SA – Company Confidential

Data Science in Javascript vs. Python ?

Page 33: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

© 2015 Nexedi SA – Company Confidential

Data Sciences in Javascript ? phantomjs

● Small data on client side

● Small data on server side

● Medium data (> 1 GB) in JS

● Out-of-core data in JS

● PyData compiled in JS

● PyData in NaCl / PNaCl

Page 34: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

© 2015 Nexedi SA – Company Confidential

Storing large streams in NEO

Title, date

File (inhouse)

BtreeData0-8

BtreeNode0-4

BtreeNode4-8

BtreeNode2-4

BtreeNode4-6

BtreeNode6-8

BtreeNode0-2

0M-1M 1M-2M 2M-3M 3M-4M 4M-5M 5M-6M 6M-7M 7M-8M

Access: O(log(N) Overhead : 0.2%

Structure

Data

Page 35: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

© 2015 Nexedi SA – Company Confidential

UBM Monitoring Model?

Page 36: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

© 2015 Nexedi SA – Company Confidential

UBM Business Model

● Movement – ingestion of data

● Resource – type of data (ex. memory log)

● Node – data source, data owner

● Path – data source registration

● Item – sensor, data itself, license, data set

Page 37: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

© 2015 Nexedi SA – Company Confidential

UBM Business Model

Page 38: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

© 2015 Nexedi SA – Company Confidential

What UBM gets us for free

● Accounting, billing and payment

● User registration and management

● Rule based security model

● Customer relationship management

● Web Content Management

→ save 12+ months and > 200 K€ on any Big Data project

Page 39: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

© 2015 Nexedi SA – Company Confidential

Future Roadmap

Page 40: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

© 2015 Nexedi SA – Company Confidential

Roadmap

● Mainly accelerate learning curve– Universal packaging

– Ready to use examples

– Act as a backend to ipython notebook

– Port joblib to CMFActivity

● Yet, you can start using part of Wendelin now!– wendelin.core out-of-core for NumPy

– JIO abstract data access library

– RenderJS components

– UI sample application

– Open Source

www.wendelin.io

PyData Paris 2015 – 16h45 Kirill Smelkov

http://learn.renderjs.org

https://lab.nexedi.cn/Tyagov/wendelin/

Page 41: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

© 2015 Nexedi SA – Company Confidential

R&D Partners

● Wendelin-IA (FSN)– Nexedi

– Abilian

– 2nd Quadrant

– Paris 13

– IMT

– INRIA / ENS

– MMC Rus (Ru)

– X Corp

● Windelin (Eurostars)– Nexedi (FR)

– MariaDB (FI)

– Y Corp (DE)

www.wendelin.io

Page 42: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

© 2015 Nexedi SA – Company Confidential

Wendelin Big DataIndustrial Monitoring Platform

2014-04-03 – Paris

Page 43: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

1ERP5 for e-Governement – Lightning Protection Center

© 2015 Nexedi SA – Company Confidential

Wendelin Big DataIndustrial Monitoring Platform

2014-04-03 – Paris

Page 44: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

2ERP5 for e-Governement – Lightning Protection Center

© 2015 Nexedi SA – Company Confidential

Who are we?

● Jean-Paul Smets

● Nexedi CEO

● Author of ERP5

[email protected]

● Ivan Tyagov

● Senior Developer

● Wendelin project lead

[email protected]

Page 45: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

3ERP5 for e-Governement – Lightning Protection Center

© 2015 Nexedi SA – Company Confidential

Who is missing?

● Kirill Smelkov

● Senior Developer

● wendelin.core

● Sebastien Robin

● Project Director

● Author of POC

Page 46: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

4ERP5 for e-Governement – Lightning Protection Center

© 2015 Nexedi SA – Company Confidential

Agenda

● Where do we come from

● Wendelin Architecture

● Detailed Example

● Future Roadmap

Page 47: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

5ERP5 for e-Governement – Lightning Protection Center

© 2015 Nexedi SA – Company Confidential

Where do we come from?

The solution that was deployed at the Lightning Protection Center complies is based on open source software – with full access

to source code – and does not use software made by IBM, Oracle or EMC. It is thus a “No IOE” compliant solution, in line

with directives published by Chinese governments for certain markets.

Page 48: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

6ERP5 for e-Governement – Lightning Protection Center

© 2015 Nexedi SA – Company Confidential

Nexedi

● Possibly Largest OSS Publisher in Europe– ERP5: ERP, CRM, ECM, e-business framework

– SlapOS: distributed mesh cloud operation system

– NEO: distributed transactional NoSQL database

– Wendelin: out-of-core big data based on NumPy

– re6st: resilient IPv6 mesh overlay network

– RenderJS: javascript component system

– JIO: javascript virtual database and virtual filesystem

– cloudooo: multimedia conversion server

– Web Runner: web based Platform-as-a-Service (PaaS) and IDE

– OfficeJS: web office suite based on RenderJS and JIO

Page 49: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

7ERP5 for e-Governement – Lightning Protection Center

© 2015 Nexedi SA – Company Confidential

Page 50: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

8ERP5 for e-Governement – Lightning Protection Center

© 2015 Nexedi SA – Company Confidential

Page 51: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

9ERP5 for e-Governement – Lightning Protection Center

© 2015 Nexedi SA – Company Confidential

+

?

Application Convergence

Page 52: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

10ERP5 for e-Governement – Lightning Protection Center

© 2015 Nexedi SA – Company Confidential

Case 1: Wind Turbines

● Collect logs

● Collect records

● Predict failure

● Plan maintenance

● Reduce downtime

→ add X% profits

Page 53: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

11ERP5 for e-Governement – Lightning Protection Center

© 2015 Nexedi SA – Company Confidential

Case 2: Cars

● Collect logs

● Collect records

● Predict failure

● Plan maintenance

● Reduce downtime

→ increase loyalty

Page 54: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

12ERP5 for e-Governement – Lightning Protection Center

© 2015 Nexedi SA – Company Confidential

Case 3: Solar Energy

● Collect logs

● Collect records

● Predict degradation

● Plan maintenance

● Increase efficiency

→ add X% to profits

Page 55: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

13ERP5 for e-Governement – Lightning Protection Center

© 2015 Nexedi SA – Company Confidential

Wendelin Architecture

The solution that was deployed at the Lightning Protection Center complies is based on open source software – with full access

to source code – and does not use software made by IBM, Oracle or EMC. It is thus a “No IOE” compliant solution, in line

with directives published by Chinese governments for certain markets.

Page 56: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

14ERP5 for e-Governement – Lightning Protection Center

© 2015 Nexedi SA – Company Confidential

Standard Hardware no router / no SAN

– 2 x 10 Gbps– 2 x 6 core Xeon CPU– 512 GB RAM– 4 x 1 TB SSD– 1 x M2090 GPU

x 160

x 32

+

+

x 320

– 10 Gbps– Unmanaged

Page 57: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

15ERP5 for e-Governement – Lightning Protection Center

© 2015 Nexedi SA – Company Confidential

Wendelin Hypercube Datacenter

Page 58: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

16ERP5 for e-Governement – Lightning Protection Center

© 2015 Nexedi SA – Company Confidential

Take the Best Analytics scikit-learn.org

Page 59: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

17ERP5 for e-Governement – Lightning Protection Center

© 2015 Nexedi SA – Company Confidential

Add Distributed Storage neoppod.org

neoctlSate accessCommand control

MasterOID & TID allocationSynchronisationLoad balancing

StorageObject dataTransaction dataPartition table

ApplicationZODBneo.client

DataControlAdmin

State archivalCommand proxy

Page 60: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

18ERP5 for e-Governement – Lightning Protection Center

© 2015 Nexedi SA – Company Confidential

“Magic” out-of-core for NumPy

ZBigArray

1 2 3 4 5 6 7 8 9 10 11 12

5

9

6

10

7

11

1 2 3 4

8

12

PyData Paris 2015 – 16h45 Kirill Smelkov

Page 61: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

19ERP5 for e-Governement – Lightning Protection Center

© 2015 Nexedi SA – Company Confidential

Add Elastic PaaS erp5.com

# Initialize datadata_size = 1000000server_count = 1000chunk_size = data_size / server_countdata = array(data_size)

# Process data in parallel on each server (Map Reduce, Batch, etc.)for server in server_count: data.activate().process(server*chunk_size, chunk_size)

PaaS

Page 62: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

20ERP5 for e-Governement – Lightning Protection Center

© 2015 Nexedi SA – Company Confidential

And Multicloud Deployment slapos.org

MMC Rus

Page 63: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

21ERP5 for e-Governement – Lightning Protection Center

© 2015 Nexedi SA – Company Confidential

Wendelin Platform 100% open source

NEO

SlapOS

Scikit Learn

ERP5

Multicloud Deployment

Elastic PaaS

Distributed Storage

Data Analytics

Multi Data Center

100%

Pyt

hon

Page 64: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

22ERP5 for e-Governement – Lightning Protection Center

© 2015 Nexedi SA – Company Confidential

Wendelin Options 100% open source

Time sequence processingDataPad / JP Morgan

JIT compiler / type inferenceContinuum / DARPA

Scikit Learn

Pandas

Numba / Parakeet

NEO

100%

Pyt

hon Blaze Full out-of-core arrays

Continuum / DARPA

NLTK Natural Language TookitU. Texas / Chalmers

OpenCV-Python Video ProcessingIntel Russia / Willow / Itseez

Page 65: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

23ERP5 for e-Governement – Lightning Protection Center

© 2015 Nexedi SA – Company Confidential

Data Ingestion: fluentd

● Based on MsgPack middleware

● Created by TreasureData(BDaaS pioneers)

● Used by Amazon

● Numerous plugins

● Scalable and resilient

● Bandwidth saver

Page 66: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

24ERP5 for e-Governement – Lightning Protection Center

© 2015 Nexedi SA – Company Confidential

Wendelin UI

● HTML5 Render RenderJS

● Data vizualisation

● Offline support JIO

● Data access REST API

● Batch processing

REST GET

JSON + HATEOASJavascript Python

The experimental HTML5 UI of ERP5 uses a library called JIO to abstract the relation between the

browser and the server.

The browser sends REST requests over HTTP.

The server returns JSON data over HTTP with a self-discoverable format, something called HATEOAS.

The user interface is implemented as a javascript application that runs on the browser side. HTML is

generated on the browser side by Javascript code. Form data is prepared by Javascript code and sent as

JSON to the server. Many features of the application are still available even offline.

The role of the server in this architecture is only to provide access to the data and to validated the data

before updating records in the dabase, using global consistency rules.

Page 67: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

25ERP5 for e-Governement – Lightning Protection Center

© 2015 Nexedi SA – Company Confidential

Wendelin Distinctive Advantages

● Native out-of-core NumPy (scikit-learn, pydata)

● Native parallel processing

● Bare metal performance (GPU, FORTRAN)

● Transactions (ingestion, processing)

● NewSQL queries

● Built-in PaaS

● Lower deployment cost (10x less than...)

Page 68: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

26ERP5 for e-Governement – Lightning Protection Center

© 2015 Nexedi SA – Company Confidential

Detailed Example

The solution that was deployed at the Lightning Protection Center complies is based on open source software – with full access

to source code – and does not use software made by IBM, Oracle or EMC. It is thus a “No IOE” compliant solution, in line

with directives published by Chinese governments for certain markets.

Page 69: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

27ERP5 for e-Governement – Lightning Protection Center

© 2015 Nexedi SA – Company Confidential

Data Transportation fluentd

3 months benchmarkFrequent downtime (server, network)Very poor networking (ADSL, 3G)

fluentd(Buffer)

DPU

Fluentd

Central server

< 0.001% loss

Page 70: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

28ERP5 for e-Governement – Lightning Protection Center

© 2015 Nexedi SA – Company Confidential

UI: HTML5 Components RenderJS

Page 71: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

29ERP5 for e-Governement – Lightning Protection Center

© 2015 Nexedi SA – Company Confidential

Extend UI Components RenderJS

Page 72: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

30ERP5 for e-Governement – Lightning Protection Center

© 2015 Nexedi SA – Company Confidential

UI : Responsive RenderJS

Page 73: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

31ERP5 for e-Governement – Lightning Protection Center

© 2015 Nexedi SA – Company Confidential

UI: Offline / Other Backends JIO

Page 74: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

32ERP5 for e-Governement – Lightning Protection Center

© 2015 Nexedi SA – Company Confidential

Data Science in Javascript vs. Python ?

Page 75: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

33ERP5 for e-Governement – Lightning Protection Center

© 2015 Nexedi SA – Company Confidential

Data Sciences in Javascript ? phantomjs

● Small data on client side

● Small data on server side

● Medium data (> 1 GB) in JS

● Out-of-core data in JS

● PyData compiled in JS

● PyData in NaCl / PNaCl

Page 76: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

34ERP5 for e-Governement – Lightning Protection Center

© 2015 Nexedi SA – Company Confidential

Storing large streams in NEO

Title, date

File (inhouse)

BtreeData0-8

BtreeNode0-4

BtreeNode4-8

BtreeNode2-4

BtreeNode4-6

BtreeNode6-8

BtreeNode0-2

0M-1M 1M-2M 2M-3M 3M-4M 4M-5M 5M-6M 6M-7M 7M-8M

Access: O(log(N) Overhead : 0.2%

Structure

Data

Page 77: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

35ERP5 for e-Governement – Lightning Protection Center

© 2015 Nexedi SA – Company Confidential

UBM Monitoring Model?

Page 78: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

36ERP5 for e-Governement – Lightning Protection Center

© 2015 Nexedi SA – Company Confidential

UBM Business Model

● Movement – ingestion of data

● Resource – type of data (ex. memory log)

● Node – data source, data owner

● Path – data source registration

● Item – sensor, data itself, license, data set

Page 79: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

37ERP5 for e-Governement – Lightning Protection Center

© 2015 Nexedi SA – Company Confidential

UBM Business Model

Page 80: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

38ERP5 for e-Governement – Lightning Protection Center

© 2015 Nexedi SA – Company Confidential

What UBM gets us for free

● Accounting, billing and payment

● User registration and management

● Rule based security model

● Customer relationship management

● Web Content Management

→ save 12+ months and > 200 K€ on any Big Data project

Page 81: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

39ERP5 for e-Governement – Lightning Protection Center

© 2015 Nexedi SA – Company Confidential

Future Roadmap

The solution that was deployed at the Lightning Protection Center complies is based on open source software – with full access

to source code – and does not use software made by IBM, Oracle or EMC. It is thus a “No IOE” compliant solution, in line

with directives published by Chinese governments for certain markets.

Page 82: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

40ERP5 for e-Governement – Lightning Protection Center

© 2015 Nexedi SA – Company Confidential

Roadmap

● Mainly accelerate learning curve– Universal packaging

– Ready to use examples

– Act as a backend to ipython notebook

– Port joblib to CMFActivity

● Yet, you can start using part of Wendelin now!– wendelin.core out-of-core for NumPy

– JIO abstract data access library

– RenderJS components

– UI sample application

– Open Source

www.wendelin.io

PyData Paris 2015 – 16h45 Kirill Smelkov

http://learn.renderjs.org

https://lab.nexedi.cn/Tyagov/wendelin/

Page 83: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

41ERP5 for e-Governement – Lightning Protection Center

© 2015 Nexedi SA – Company Confidential

R&D Partners

● Wendelin-IA (FSN)– Nexedi

– Abilian

– 2nd Quadrant

– Paris 13

– IMT

– INRIA / ENS

– MMC Rus (Ru)

– X Corp

● Windelin (Eurostars)– Nexedi (FR)

– MariaDB (FI)

– Y Corp (DE)

www.wendelin.io

Page 84: PyData Paris 2015 - Track 4.1 Jean-Paul Smets et Ivan Tiagov

42ERP5 for e-Governement – Lightning Protection Center

© 2015 Nexedi SA – Company Confidential

Wendelin Big DataIndustrial Monitoring Platform

2014-04-03 – Paris