SlideShare une entreprise Scribd logo
1  sur  16
Télécharger pour lire hors ligne
https://github.com/nuclio/nuclio
Serverless for Real-Time Events and Data Processing
iguazio © 2016
2
Event
Listeners
Function Processors
Runtime
Function
Workers
Data
Bindings
Control, Logging, Monitoring, Security, ..
HTTP, stream
, msg Q, DB, ..
Pluggable
Data Services
Pluggable
Event Sources
Dealer BuilderController image
repo
Platform: Kubernetes, Cloud Provider, Device (IoT) .. Local or remote
nuclio - Comprehensive, Open, Portable, & Super Fast “serverless”
• Real-time processing, low CPU overhead and maximum parallelism
• Simple debugging, regression, and multi-versioned CI/CD pipeline
• Pluggable data/event sources with common APIs
• Portable across low-power devices, laptops, on-prem and public cloud
External
Monitoring
& Logging
Nuctl (CLI)
Playground
UI
https://github.com/nuclio/nuclio
iguazio © 2016
3
Function Processor
Event
Listeners
Fetch/Serve
events Language Runtime Engine
Function
Workers
Data
Bindings
Connect
& Cache
Control Framework: Portal, Logging, Monitoring, Security, …
Event Sources (Pluggable):
• Sync: HTTP
• Async: RabbitMQ, MQTT, NATS
• Stream: Kafka, Kinesis, v3io
• Polling: DB/file changes
Interface to platform resources through pluggable APIs Data Bindings (Pluggable):
• File & Obj: volumes, S3, v3io
• DB: DynamoDB, v3io
• Stream : Kafka, Kinesis, v3io
• Message: RabbitMQ
Develop, Test, Run ANYWHEREAny source and workload
Simple, fast, secure,
portable data integration
nuclio processor – Fast, Modular & Extensible
400K events/sec per process (100x faster than leading implementations)
Super fast, Zero-copy access
to events and data
Multiple async workers for
maximum parallelism with
minimum CPU overhead
Events and data
abstractions enable
re-use and portability
iguazio © 2016
4
Perf results, single process, using basic function
https://github.com/v3io/http_blaster
Tested using:
Native
Prometheus
integration
iguazio © 2016
5
Nuclio invocation modes
Function
Instance
invoker
Message
Function
Instance
invoker
Function
Instance
invoker
Exchange
Message Queue
(e.g. RabbitMQ)
HTTP
API GW
Function
Instance
invoker
Function
Instance
invoker
Function
Instance
invoker
Req
Function
Instance
invoker
Function
Instance
invoker
Function
Instance
invokerPartition 1
Messages
Synchronous Req/Rep
Message Stream
Async Message Queue
Kafka,
Kinesis, …
Function
Instance
invoker
Function
Instance
invoker
Function
Instance
invoker
Job
Job (Master/Worker)
Priority
Queue
Master
(dealer)
Dealer
Partition 2
Partition 3
Partition 4
iguazio © 2016
6
Dealer
Processor
Function
Workers
Partitioned data or
Stream shards
Job Spec:
- functions (selector)
- Task num/list
- Max tasks per processor
- Min/Max processors
- ..
- Job Metadata
Function
Workers
Job X (w 5 tasks)Job Y (w 4 tasks)
POD Up/Down events
Deployment scale changes
Auto-scale based on
CPU load or Q delay
Allocate or Re-distribute tasks to
processors (1 task per worker)
Nuclio
controller
Nuclio Dealer
• Enable real-time stream processing, batch and
interactive jobs on auto-scaling Serverless functions
• By dynamically allocating tasks to workers and
handling task lifecycle, checkpoint and completion
Every job or stream is
partitioned to N smaller Tasks
Processor
iguazio © 2016
7
nuclio features & Performance make Serverless broadly applicable
• Enrich
• Aggregate
• Predict
INTERACTIVE UI &
REAL-TIME DASHBOARDS
ACTIONS
UNSTRUCTURED
EVENTS & DATA
EXTERNAL SOURCES
CHANGE
DATA CAPTURE (CDC)
OPERATIONAL DATA
CONTAINERIZED ML
& ANALYTICS TOOLS
Complex event
Processing (CEP)
POLICY BASED
SYNC & BACKUP
DATA SERVICES
DATA INGESTION, PREP
& REAL-TIME DECISIONS
Higher-Productivity | Faster insights | No infrastructure hassle | Lower TCO
iguazio © 2016
8
Real example: Event Driven Analytics for Connected Cars
Geo Data
Weather/Road info
Vehicles Data
State
Changed?
Identify
Violation?
Drivers
Violations
Stream
State
Changes
Geo
Aggregate
Map
Process
Alerts
Process
Violations
External Sources
import
service
Enriched
Events
Parallel
Enrichment
ML Processing
Complex Events + Data processed in real-time without the infrastructure hassle
real-time, auto-Scaling
serverless functions
Model Update
Stats
Update
* See code in the
UI/Playground slide
iguazio © 2016
9
nuclio
Function Spec
Support Kubernetes CRD:
Functions can be created &
deleted using kubectl
tags/labels used for search and
event sources (Label Selectors)
Control Min/Max Replicas
for controlled auto-scale
Pass text or secret
environment variables
(k8s convention)
Flex resource allocation,
GPUs are coming
Pluggable Data Sources
Various src code options*: inline code, path
(local/http/git), or local/remote pre-built image
namespaced
*Advanced build instructions &
dependencies are in the build.yaml file
iguazio © 2016
10
Nuclio common event model
Simplify and generalize
client implementation
Enable zero copy and zero
ser/des when possible
iguazio © 2016
11
Context.logger Interface
One log interface, multiple implementations (screen, file, stream, http, ..), extensible
Support both structured &
unstructured logging
Support nested/hierarchical logs
iguazio © 2016
12
Default Context.DataBinding API (sync & async ver), can be overwritten
Service Major APIs Main Request Params
Object
e.g. S3, Minio, v3io
ListObjects
GetObject
PutObject
DeleteObject
Bucket, Prefix, MaxKeys
Bucket, Key, Range
Bucket, Key ,Metadata, Body
Bucket, Key
NoSQL
e.g. DynamoDB,
Cassandra, v3io
GetItem
GetItems
PutItem
UpdateItem
DeleteItem
Table, Key ,Projection
Table, ConditionExpression, ProjectionExpression, Limit
Table, Key, ProjectionExpression, item
Table, Key, UpdateExpression, ConditionExpression
Table, Key, ConditionExpression
Stream
e.g. Kinesis, Kafka,
v3io
GetRecords
PutRecords
Seek
Stream, ShardId, Location, Limit
Stream, Records
Stream, ShardId, SeekType, SeekTime, StartingSequence, Timestamp
File
Open
Read
Write
Path, Mode, flags
Handle, offset, size
Handle, offset, size, data
iguazio © 2016
13
Nuclio Playground (run as isolated k8s deployment)
iguazio © 2016
14
CLI (run command example)
$ nuctl run --help
Build, deploy and run a function
Usage:
nuctl run function-name [flags]
Flags:
--data string Comma separated list of data bindings (in json)
--data-bindings string JSON encoded data bindings for the function
--desc string Function description
-d, --disabled Start function disabled (don't run yet)
-e, --env string Environment variables (name1=val1,name2=val2..)
--events string Comma separated list of event sources (in json)
-f, --file string Function Spec File
-h, --help help for run
-i, --image string Docker image name, will use function name if not specified
-l, --labels string Additional function labels (lbl1=val1,lbl2=val2..)
--max-replica int32 Maximum number of function replicas
--min-replica int32 Minimum number of function replicas
--no-pull Don't pull base images - use local versions
--nuclio-src-dir string Local directory with nuclio sources (avoid cloning)
--nuclio-src-url string nuclio sources url for git clone (default "https://github.com/nuclio/nuclio.git")
-o, --output string Build output type - docker|binary (default "docker")
-p, --path string Function source code path
--port int32 Public HTTP port (node port)
--publish Publish the function
-r, --registry string URL of container registry (env: NUCTL_REGISTRY)
--run-registry string The registry URL to pull the image from, if differs from -r (env: NUCTL_RUN_REGISTRY)
--runtime string Runtime – golang, python, ..
-s, --scale string Function scaling (auto|number) (default "1")
--version string Docker image version (default "latest")
Global Flags:
-k, --kubeconfig string Path to Kubernetes config (admin.conf) (default ~/.kube/config")
-n, --namespace string Kubernetes namespace (default "default")
-v, --verbose verbose output
See more in: https://github.com/nuclio/nuclio/blob/master/docs/nuctl/nuctl.md
iguazio © 2016
15
Data Bindings
$ nuctl run <name> <source> [options]
Enabling Simplest and Continuous Dev & Ops (CI/ CD)
One Click to test, deploy, upgrade or rollback code
RunsANYWHERE, Self-healing and Auto-Scaling
LOCAL or CLOUD
iguazio © 2016
16
ORCHESTRATION SERVERLESS PROCESSING ML & AI FRAMEWORKS DATA SERVICES APIS
HYBRID DEPLOYMENT
NoSQLAPI Stream API Object API File API
Security Queries & Functions Unified Data Data Lifecycle
On-Premises Hosted Cloud Edge
Event Driven Code
• Used in iguazio platform
• Developed for the real world
• Now completely re-written to:
• Support the broader open
source & CNCF eco-system
• Incorporate learnings from G1
• Future proof architecture
• Address new use cases
 Low latency 100GbETCP or RDMA Data Fabric (V3IO) 
UNIFIED &
AUTOMATED
MANAGEMENT
https://github.com/nuclio/nuclio

Contenu connexe

Tendances

Monitoring with Prometheus
Monitoring with PrometheusMonitoring with Prometheus
Monitoring with PrometheusShiao-An Yuan
 
20180503 kube con eu kubernetes metrics deep dive
20180503 kube con eu   kubernetes metrics deep dive20180503 kube con eu   kubernetes metrics deep dive
20180503 kube con eu kubernetes metrics deep diveBob Cotton
 
Opencensus with prometheus and kubernetes
Opencensus with prometheus and kubernetesOpencensus with prometheus and kubernetes
Opencensus with prometheus and kubernetesJinwoong Kim
 
Kubernetes Monitoring with InfluxDB 2.0 and Flux by Gianluca Arbezzano, Site ...
Kubernetes Monitoring with InfluxDB 2.0 and Flux by Gianluca Arbezzano, Site ...Kubernetes Monitoring with InfluxDB 2.0 and Flux by Gianluca Arbezzano, Site ...
Kubernetes Monitoring with InfluxDB 2.0 and Flux by Gianluca Arbezzano, Site ...InfluxData
 
Terraforming the Kubernetes Land
Terraforming the Kubernetes LandTerraforming the Kubernetes Land
Terraforming the Kubernetes LandRadek Simko
 
Norikra: SQL Stream Processing In Ruby
Norikra: SQL Stream Processing In RubyNorikra: SQL Stream Processing In Ruby
Norikra: SQL Stream Processing In RubySATOSHI TAGOMORI
 
InfluxDB IOx Tech Talks: Intro to the InfluxDB IOx Read Buffer - A Read-Optim...
InfluxDB IOx Tech Talks: Intro to the InfluxDB IOx Read Buffer - A Read-Optim...InfluxDB IOx Tech Talks: Intro to the InfluxDB IOx Read Buffer - A Read-Optim...
InfluxDB IOx Tech Talks: Intro to the InfluxDB IOx Read Buffer - A Read-Optim...InfluxData
 
ELK: Moose-ively scaling your log system
ELK: Moose-ively scaling your log systemELK: Moose-ively scaling your log system
ELK: Moose-ively scaling your log systemAvleen Vig
 
PSUG #52 Dataflow and simplified reactive programming with Akka-streams
PSUG #52 Dataflow and simplified reactive programming with Akka-streamsPSUG #52 Dataflow and simplified reactive programming with Akka-streams
PSUG #52 Dataflow and simplified reactive programming with Akka-streamsStephane Manciot
 
[OpenInfra Days Korea 2018] (Track 3) - CephFS with OpenStack Manila based on...
[OpenInfra Days Korea 2018] (Track 3) - CephFS with OpenStack Manila based on...[OpenInfra Days Korea 2018] (Track 3) - CephFS with OpenStack Manila based on...
[OpenInfra Days Korea 2018] (Track 3) - CephFS with OpenStack Manila based on...OpenStack Korea Community
 
Infrastructure as Code in Google Cloud
Infrastructure as Code in Google CloudInfrastructure as Code in Google Cloud
Infrastructure as Code in Google CloudRadek Simko
 
NetflixOSS Open House Lightning talks
NetflixOSS Open House Lightning talksNetflixOSS Open House Lightning talks
NetflixOSS Open House Lightning talksRuslan Meshenberg
 
Time series denver an introduction to prometheus
Time series denver   an introduction to prometheusTime series denver   an introduction to prometheus
Time series denver an introduction to prometheusBob Cotton
 
Kubernetes Basis: Pods, Deployments, and Services
Kubernetes Basis: Pods, Deployments, and ServicesKubernetes Basis: Pods, Deployments, and Services
Kubernetes Basis: Pods, Deployments, and ServicesJian-Kai Wang
 
HadoopCon 2016 - 用 Jupyter Notebook Hold 住一個上線 Spark Machine Learning 專案實戰
HadoopCon 2016  - 用 Jupyter Notebook Hold 住一個上線 Spark  Machine Learning 專案實戰HadoopCon 2016  - 用 Jupyter Notebook Hold 住一個上線 Spark  Machine Learning 專案實戰
HadoopCon 2016 - 用 Jupyter Notebook Hold 住一個上線 Spark Machine Learning 專案實戰Wayne Chen
 
Kubernetes Walk Through from Technical View
Kubernetes Walk Through from Technical ViewKubernetes Walk Through from Technical View
Kubernetes Walk Through from Technical ViewLei (Harry) Zhang
 
RESTful API – How to Consume, Extract, Store and Visualize Data with InfluxDB...
RESTful API – How to Consume, Extract, Store and Visualize Data with InfluxDB...RESTful API – How to Consume, Extract, Store and Visualize Data with InfluxDB...
RESTful API – How to Consume, Extract, Store and Visualize Data with InfluxDB...InfluxData
 
Norikra: Stream Processing with SQL
Norikra: Stream Processing with SQLNorikra: Stream Processing with SQL
Norikra: Stream Processing with SQLSATOSHI TAGOMORI
 
Central LogFile Storage. ELK stack Elasticsearch, Logstash and Kibana.
Central LogFile Storage. ELK stack Elasticsearch, Logstash and Kibana.Central LogFile Storage. ELK stack Elasticsearch, Logstash and Kibana.
Central LogFile Storage. ELK stack Elasticsearch, Logstash and Kibana.Airat Khisamov
 

Tendances (20)

Monitoring with Prometheus
Monitoring with PrometheusMonitoring with Prometheus
Monitoring with Prometheus
 
20180503 kube con eu kubernetes metrics deep dive
20180503 kube con eu   kubernetes metrics deep dive20180503 kube con eu   kubernetes metrics deep dive
20180503 kube con eu kubernetes metrics deep dive
 
Opencensus with prometheus and kubernetes
Opencensus with prometheus and kubernetesOpencensus with prometheus and kubernetes
Opencensus with prometheus and kubernetes
 
Kubernetes Monitoring with InfluxDB 2.0 and Flux by Gianluca Arbezzano, Site ...
Kubernetes Monitoring with InfluxDB 2.0 and Flux by Gianluca Arbezzano, Site ...Kubernetes Monitoring with InfluxDB 2.0 and Flux by Gianluca Arbezzano, Site ...
Kubernetes Monitoring with InfluxDB 2.0 and Flux by Gianluca Arbezzano, Site ...
 
Terraforming the Kubernetes Land
Terraforming the Kubernetes LandTerraforming the Kubernetes Land
Terraforming the Kubernetes Land
 
Norikra: SQL Stream Processing In Ruby
Norikra: SQL Stream Processing In RubyNorikra: SQL Stream Processing In Ruby
Norikra: SQL Stream Processing In Ruby
 
Docker Monitoring Webinar
Docker Monitoring  WebinarDocker Monitoring  Webinar
Docker Monitoring Webinar
 
InfluxDB IOx Tech Talks: Intro to the InfluxDB IOx Read Buffer - A Read-Optim...
InfluxDB IOx Tech Talks: Intro to the InfluxDB IOx Read Buffer - A Read-Optim...InfluxDB IOx Tech Talks: Intro to the InfluxDB IOx Read Buffer - A Read-Optim...
InfluxDB IOx Tech Talks: Intro to the InfluxDB IOx Read Buffer - A Read-Optim...
 
ELK: Moose-ively scaling your log system
ELK: Moose-ively scaling your log systemELK: Moose-ively scaling your log system
ELK: Moose-ively scaling your log system
 
PSUG #52 Dataflow and simplified reactive programming with Akka-streams
PSUG #52 Dataflow and simplified reactive programming with Akka-streamsPSUG #52 Dataflow and simplified reactive programming with Akka-streams
PSUG #52 Dataflow and simplified reactive programming with Akka-streams
 
[OpenInfra Days Korea 2018] (Track 3) - CephFS with OpenStack Manila based on...
[OpenInfra Days Korea 2018] (Track 3) - CephFS with OpenStack Manila based on...[OpenInfra Days Korea 2018] (Track 3) - CephFS with OpenStack Manila based on...
[OpenInfra Days Korea 2018] (Track 3) - CephFS with OpenStack Manila based on...
 
Infrastructure as Code in Google Cloud
Infrastructure as Code in Google CloudInfrastructure as Code in Google Cloud
Infrastructure as Code in Google Cloud
 
NetflixOSS Open House Lightning talks
NetflixOSS Open House Lightning talksNetflixOSS Open House Lightning talks
NetflixOSS Open House Lightning talks
 
Time series denver an introduction to prometheus
Time series denver   an introduction to prometheusTime series denver   an introduction to prometheus
Time series denver an introduction to prometheus
 
Kubernetes Basis: Pods, Deployments, and Services
Kubernetes Basis: Pods, Deployments, and ServicesKubernetes Basis: Pods, Deployments, and Services
Kubernetes Basis: Pods, Deployments, and Services
 
HadoopCon 2016 - 用 Jupyter Notebook Hold 住一個上線 Spark Machine Learning 專案實戰
HadoopCon 2016  - 用 Jupyter Notebook Hold 住一個上線 Spark  Machine Learning 專案實戰HadoopCon 2016  - 用 Jupyter Notebook Hold 住一個上線 Spark  Machine Learning 專案實戰
HadoopCon 2016 - 用 Jupyter Notebook Hold 住一個上線 Spark Machine Learning 專案實戰
 
Kubernetes Walk Through from Technical View
Kubernetes Walk Through from Technical ViewKubernetes Walk Through from Technical View
Kubernetes Walk Through from Technical View
 
RESTful API – How to Consume, Extract, Store and Visualize Data with InfluxDB...
RESTful API – How to Consume, Extract, Store and Visualize Data with InfluxDB...RESTful API – How to Consume, Extract, Store and Visualize Data with InfluxDB...
RESTful API – How to Consume, Extract, Store and Visualize Data with InfluxDB...
 
Norikra: Stream Processing with SQL
Norikra: Stream Processing with SQLNorikra: Stream Processing with SQL
Norikra: Stream Processing with SQL
 
Central LogFile Storage. ELK stack Elasticsearch, Logstash and Kibana.
Central LogFile Storage. ELK stack Elasticsearch, Logstash and Kibana.Central LogFile Storage. ELK stack Elasticsearch, Logstash and Kibana.
Central LogFile Storage. ELK stack Elasticsearch, Logstash and Kibana.
 

Similaire à iguazio - nuclio overview to CNCF (Sep 25th 2017)

Running High-Speed Serverless with nuclio
Running High-Speed Serverless with nuclioRunning High-Speed Serverless with nuclio
Running High-Speed Serverless with nuclioiguazio
 
Automated Application Management with SaltStack
Automated Application Management with SaltStackAutomated Application Management with SaltStack
Automated Application Management with SaltStackinovex GmbH
 
Kubernetes for the PHP developer
Kubernetes for the PHP developerKubernetes for the PHP developer
Kubernetes for the PHP developerPaul Czarkowski
 
Exploring the Final Frontier of Data Center Orchestration: Network Elements -...
Exploring the Final Frontier of Data Center Orchestration: Network Elements -...Exploring the Final Frontier of Data Center Orchestration: Network Elements -...
Exploring the Final Frontier of Data Center Orchestration: Network Elements -...Puppet
 
Python Streaming Pipelines on Flink - Beam Meetup at Lyft 2019
Python Streaming Pipelines on Flink - Beam Meetup at Lyft 2019Python Streaming Pipelines on Flink - Beam Meetup at Lyft 2019
Python Streaming Pipelines on Flink - Beam Meetup at Lyft 2019Thomas Weise
 
StrongLoop Overview
StrongLoop OverviewStrongLoop Overview
StrongLoop OverviewShubhra Kar
 
FIWARE Wednesday Webinars - Short Term History within Smart Systems
FIWARE Wednesday Webinars - Short Term History within Smart SystemsFIWARE Wednesday Webinars - Short Term History within Smart Systems
FIWARE Wednesday Webinars - Short Term History within Smart SystemsFIWARE
 
Spark (Structured) Streaming vs. Kafka Streams
Spark (Structured) Streaming vs. Kafka StreamsSpark (Structured) Streaming vs. Kafka Streams
Spark (Structured) Streaming vs. Kafka StreamsGuido Schmutz
 
LAMP Stack (Reloaded) - Infrastructure as Code with Terraform & Packer
LAMP Stack (Reloaded) - Infrastructure as Code with Terraform & PackerLAMP Stack (Reloaded) - Infrastructure as Code with Terraform & Packer
LAMP Stack (Reloaded) - Infrastructure as Code with Terraform & PackerJan-Christoph Küster
 
Making cloud native platform by kubernetes
Making cloud native platform by kubernetesMaking cloud native platform by kubernetes
Making cloud native platform by kubernetes어형 이
 
Saltstack - Orchestration & Application Deployment
Saltstack - Orchestration & Application DeploymentSaltstack - Orchestration & Application Deployment
Saltstack - Orchestration & Application Deploymentinovex GmbH
 
A DevOps guide to Kubernetes
A DevOps guide to KubernetesA DevOps guide to Kubernetes
A DevOps guide to KubernetesPaul Czarkowski
 
Apache Samza 1.0 - What's New, What's Next
Apache Samza 1.0 - What's New, What's NextApache Samza 1.0 - What's New, What's Next
Apache Samza 1.0 - What's New, What's NextPrateek Maheshwari
 
Spark (Structured) Streaming vs. Kafka Streams - two stream processing platfo...
Spark (Structured) Streaming vs. Kafka Streams - two stream processing platfo...Spark (Structured) Streaming vs. Kafka Streams - two stream processing platfo...
Spark (Structured) Streaming vs. Kafka Streams - two stream processing platfo...Guido Schmutz
 
Introduction to Apache NiFi 1.11.4
Introduction to Apache NiFi 1.11.4Introduction to Apache NiFi 1.11.4
Introduction to Apache NiFi 1.11.4Timothy Spann
 
Scaling Security on 100s of Millions of Mobile Devices Using Apache Kafka® an...
Scaling Security on 100s of Millions of Mobile Devices Using Apache Kafka® an...Scaling Security on 100s of Millions of Mobile Devices Using Apache Kafka® an...
Scaling Security on 100s of Millions of Mobile Devices Using Apache Kafka® an...confluent
 
Erik Skytthe - Monitoring Mesos, Docker, Containers with Zabbix | ZabConf2016
Erik Skytthe - Monitoring Mesos, Docker, Containers with Zabbix | ZabConf2016Erik Skytthe - Monitoring Mesos, Docker, Containers with Zabbix | ZabConf2016
Erik Skytthe - Monitoring Mesos, Docker, Containers with Zabbix | ZabConf2016Zabbix
 
Pulsar summit asia 2021 apache pulsar with mqtt for edge computing
Pulsar summit asia 2021   apache pulsar with mqtt for edge computingPulsar summit asia 2021   apache pulsar with mqtt for edge computing
Pulsar summit asia 2021 apache pulsar with mqtt for edge computingTimothy Spann
 
Designing Event-Driven Applications with Apache NiFi, Apache Flink, Apache Sp...
Designing Event-Driven Applications with Apache NiFi, Apache Flink, Apache Sp...Designing Event-Driven Applications with Apache NiFi, Apache Flink, Apache Sp...
Designing Event-Driven Applications with Apache NiFi, Apache Flink, Apache Sp...Timothy Spann
 

Similaire à iguazio - nuclio overview to CNCF (Sep 25th 2017) (20)

Running High-Speed Serverless with nuclio
Running High-Speed Serverless with nuclioRunning High-Speed Serverless with nuclio
Running High-Speed Serverless with nuclio
 
Automated Application Management with SaltStack
Automated Application Management with SaltStackAutomated Application Management with SaltStack
Automated Application Management with SaltStack
 
Kubernetes for the PHP developer
Kubernetes for the PHP developerKubernetes for the PHP developer
Kubernetes for the PHP developer
 
Exploring the Final Frontier of Data Center Orchestration: Network Elements -...
Exploring the Final Frontier of Data Center Orchestration: Network Elements -...Exploring the Final Frontier of Data Center Orchestration: Network Elements -...
Exploring the Final Frontier of Data Center Orchestration: Network Elements -...
 
Python Streaming Pipelines on Flink - Beam Meetup at Lyft 2019
Python Streaming Pipelines on Flink - Beam Meetup at Lyft 2019Python Streaming Pipelines on Flink - Beam Meetup at Lyft 2019
Python Streaming Pipelines on Flink - Beam Meetup at Lyft 2019
 
StrongLoop Overview
StrongLoop OverviewStrongLoop Overview
StrongLoop Overview
 
FIWARE Wednesday Webinars - Short Term History within Smart Systems
FIWARE Wednesday Webinars - Short Term History within Smart SystemsFIWARE Wednesday Webinars - Short Term History within Smart Systems
FIWARE Wednesday Webinars - Short Term History within Smart Systems
 
Spark (Structured) Streaming vs. Kafka Streams
Spark (Structured) Streaming vs. Kafka StreamsSpark (Structured) Streaming vs. Kafka Streams
Spark (Structured) Streaming vs. Kafka Streams
 
LAMP Stack (Reloaded) - Infrastructure as Code with Terraform & Packer
LAMP Stack (Reloaded) - Infrastructure as Code with Terraform & PackerLAMP Stack (Reloaded) - Infrastructure as Code with Terraform & Packer
LAMP Stack (Reloaded) - Infrastructure as Code with Terraform & Packer
 
Making cloud native platform by kubernetes
Making cloud native platform by kubernetesMaking cloud native platform by kubernetes
Making cloud native platform by kubernetes
 
Saltstack - Orchestration & Application Deployment
Saltstack - Orchestration & Application DeploymentSaltstack - Orchestration & Application Deployment
Saltstack - Orchestration & Application Deployment
 
A DevOps guide to Kubernetes
A DevOps guide to KubernetesA DevOps guide to Kubernetes
A DevOps guide to Kubernetes
 
Apache Samza 1.0 - What's New, What's Next
Apache Samza 1.0 - What's New, What's NextApache Samza 1.0 - What's New, What's Next
Apache Samza 1.0 - What's New, What's Next
 
Spark (Structured) Streaming vs. Kafka Streams - two stream processing platfo...
Spark (Structured) Streaming vs. Kafka Streams - two stream processing platfo...Spark (Structured) Streaming vs. Kafka Streams - two stream processing platfo...
Spark (Structured) Streaming vs. Kafka Streams - two stream processing platfo...
 
Introduction to Apache NiFi 1.11.4
Introduction to Apache NiFi 1.11.4Introduction to Apache NiFi 1.11.4
Introduction to Apache NiFi 1.11.4
 
Scaling Security on 100s of Millions of Mobile Devices Using Apache Kafka® an...
Scaling Security on 100s of Millions of Mobile Devices Using Apache Kafka® an...Scaling Security on 100s of Millions of Mobile Devices Using Apache Kafka® an...
Scaling Security on 100s of Millions of Mobile Devices Using Apache Kafka® an...
 
Erik Skytthe - Monitoring Mesos, Docker, Containers with Zabbix | ZabConf2016
Erik Skytthe - Monitoring Mesos, Docker, Containers with Zabbix | ZabConf2016Erik Skytthe - Monitoring Mesos, Docker, Containers with Zabbix | ZabConf2016
Erik Skytthe - Monitoring Mesos, Docker, Containers with Zabbix | ZabConf2016
 
Pulsar summit asia 2021 apache pulsar with mqtt for edge computing
Pulsar summit asia 2021   apache pulsar with mqtt for edge computingPulsar summit asia 2021   apache pulsar with mqtt for edge computing
Pulsar summit asia 2021 apache pulsar with mqtt for edge computing
 
Vert.x devoxx london 2013
Vert.x devoxx london 2013Vert.x devoxx london 2013
Vert.x devoxx london 2013
 
Designing Event-Driven Applications with Apache NiFi, Apache Flink, Apache Sp...
Designing Event-Driven Applications with Apache NiFi, Apache Flink, Apache Sp...Designing Event-Driven Applications with Apache NiFi, Apache Flink, Apache Sp...
Designing Event-Driven Applications with Apache NiFi, Apache Flink, Apache Sp...
 

Dernier

Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 

Dernier (20)

Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 

iguazio - nuclio overview to CNCF (Sep 25th 2017)

  • 2. iguazio © 2016 2 Event Listeners Function Processors Runtime Function Workers Data Bindings Control, Logging, Monitoring, Security, .. HTTP, stream , msg Q, DB, .. Pluggable Data Services Pluggable Event Sources Dealer BuilderController image repo Platform: Kubernetes, Cloud Provider, Device (IoT) .. Local or remote nuclio - Comprehensive, Open, Portable, & Super Fast “serverless” • Real-time processing, low CPU overhead and maximum parallelism • Simple debugging, regression, and multi-versioned CI/CD pipeline • Pluggable data/event sources with common APIs • Portable across low-power devices, laptops, on-prem and public cloud External Monitoring & Logging Nuctl (CLI) Playground UI https://github.com/nuclio/nuclio
  • 3. iguazio © 2016 3 Function Processor Event Listeners Fetch/Serve events Language Runtime Engine Function Workers Data Bindings Connect & Cache Control Framework: Portal, Logging, Monitoring, Security, … Event Sources (Pluggable): • Sync: HTTP • Async: RabbitMQ, MQTT, NATS • Stream: Kafka, Kinesis, v3io • Polling: DB/file changes Interface to platform resources through pluggable APIs Data Bindings (Pluggable): • File & Obj: volumes, S3, v3io • DB: DynamoDB, v3io • Stream : Kafka, Kinesis, v3io • Message: RabbitMQ Develop, Test, Run ANYWHEREAny source and workload Simple, fast, secure, portable data integration nuclio processor – Fast, Modular & Extensible 400K events/sec per process (100x faster than leading implementations) Super fast, Zero-copy access to events and data Multiple async workers for maximum parallelism with minimum CPU overhead Events and data abstractions enable re-use and portability
  • 4. iguazio © 2016 4 Perf results, single process, using basic function https://github.com/v3io/http_blaster Tested using: Native Prometheus integration
  • 5. iguazio © 2016 5 Nuclio invocation modes Function Instance invoker Message Function Instance invoker Function Instance invoker Exchange Message Queue (e.g. RabbitMQ) HTTP API GW Function Instance invoker Function Instance invoker Function Instance invoker Req Function Instance invoker Function Instance invoker Function Instance invokerPartition 1 Messages Synchronous Req/Rep Message Stream Async Message Queue Kafka, Kinesis, … Function Instance invoker Function Instance invoker Function Instance invoker Job Job (Master/Worker) Priority Queue Master (dealer) Dealer Partition 2 Partition 3 Partition 4
  • 6. iguazio © 2016 6 Dealer Processor Function Workers Partitioned data or Stream shards Job Spec: - functions (selector) - Task num/list - Max tasks per processor - Min/Max processors - .. - Job Metadata Function Workers Job X (w 5 tasks)Job Y (w 4 tasks) POD Up/Down events Deployment scale changes Auto-scale based on CPU load or Q delay Allocate or Re-distribute tasks to processors (1 task per worker) Nuclio controller Nuclio Dealer • Enable real-time stream processing, batch and interactive jobs on auto-scaling Serverless functions • By dynamically allocating tasks to workers and handling task lifecycle, checkpoint and completion Every job or stream is partitioned to N smaller Tasks Processor
  • 7. iguazio © 2016 7 nuclio features & Performance make Serverless broadly applicable • Enrich • Aggregate • Predict INTERACTIVE UI & REAL-TIME DASHBOARDS ACTIONS UNSTRUCTURED EVENTS & DATA EXTERNAL SOURCES CHANGE DATA CAPTURE (CDC) OPERATIONAL DATA CONTAINERIZED ML & ANALYTICS TOOLS Complex event Processing (CEP) POLICY BASED SYNC & BACKUP DATA SERVICES DATA INGESTION, PREP & REAL-TIME DECISIONS Higher-Productivity | Faster insights | No infrastructure hassle | Lower TCO
  • 8. iguazio © 2016 8 Real example: Event Driven Analytics for Connected Cars Geo Data Weather/Road info Vehicles Data State Changed? Identify Violation? Drivers Violations Stream State Changes Geo Aggregate Map Process Alerts Process Violations External Sources import service Enriched Events Parallel Enrichment ML Processing Complex Events + Data processed in real-time without the infrastructure hassle real-time, auto-Scaling serverless functions Model Update Stats Update * See code in the UI/Playground slide
  • 9. iguazio © 2016 9 nuclio Function Spec Support Kubernetes CRD: Functions can be created & deleted using kubectl tags/labels used for search and event sources (Label Selectors) Control Min/Max Replicas for controlled auto-scale Pass text or secret environment variables (k8s convention) Flex resource allocation, GPUs are coming Pluggable Data Sources Various src code options*: inline code, path (local/http/git), or local/remote pre-built image namespaced *Advanced build instructions & dependencies are in the build.yaml file
  • 10. iguazio © 2016 10 Nuclio common event model Simplify and generalize client implementation Enable zero copy and zero ser/des when possible
  • 11. iguazio © 2016 11 Context.logger Interface One log interface, multiple implementations (screen, file, stream, http, ..), extensible Support both structured & unstructured logging Support nested/hierarchical logs
  • 12. iguazio © 2016 12 Default Context.DataBinding API (sync & async ver), can be overwritten Service Major APIs Main Request Params Object e.g. S3, Minio, v3io ListObjects GetObject PutObject DeleteObject Bucket, Prefix, MaxKeys Bucket, Key, Range Bucket, Key ,Metadata, Body Bucket, Key NoSQL e.g. DynamoDB, Cassandra, v3io GetItem GetItems PutItem UpdateItem DeleteItem Table, Key ,Projection Table, ConditionExpression, ProjectionExpression, Limit Table, Key, ProjectionExpression, item Table, Key, UpdateExpression, ConditionExpression Table, Key, ConditionExpression Stream e.g. Kinesis, Kafka, v3io GetRecords PutRecords Seek Stream, ShardId, Location, Limit Stream, Records Stream, ShardId, SeekType, SeekTime, StartingSequence, Timestamp File Open Read Write Path, Mode, flags Handle, offset, size Handle, offset, size, data
  • 13. iguazio © 2016 13 Nuclio Playground (run as isolated k8s deployment)
  • 14. iguazio © 2016 14 CLI (run command example) $ nuctl run --help Build, deploy and run a function Usage: nuctl run function-name [flags] Flags: --data string Comma separated list of data bindings (in json) --data-bindings string JSON encoded data bindings for the function --desc string Function description -d, --disabled Start function disabled (don't run yet) -e, --env string Environment variables (name1=val1,name2=val2..) --events string Comma separated list of event sources (in json) -f, --file string Function Spec File -h, --help help for run -i, --image string Docker image name, will use function name if not specified -l, --labels string Additional function labels (lbl1=val1,lbl2=val2..) --max-replica int32 Maximum number of function replicas --min-replica int32 Minimum number of function replicas --no-pull Don't pull base images - use local versions --nuclio-src-dir string Local directory with nuclio sources (avoid cloning) --nuclio-src-url string nuclio sources url for git clone (default "https://github.com/nuclio/nuclio.git") -o, --output string Build output type - docker|binary (default "docker") -p, --path string Function source code path --port int32 Public HTTP port (node port) --publish Publish the function -r, --registry string URL of container registry (env: NUCTL_REGISTRY) --run-registry string The registry URL to pull the image from, if differs from -r (env: NUCTL_RUN_REGISTRY) --runtime string Runtime – golang, python, .. -s, --scale string Function scaling (auto|number) (default "1") --version string Docker image version (default "latest") Global Flags: -k, --kubeconfig string Path to Kubernetes config (admin.conf) (default ~/.kube/config") -n, --namespace string Kubernetes namespace (default "default") -v, --verbose verbose output See more in: https://github.com/nuclio/nuclio/blob/master/docs/nuctl/nuctl.md
  • 15. iguazio © 2016 15 Data Bindings $ nuctl run <name> <source> [options] Enabling Simplest and Continuous Dev & Ops (CI/ CD) One Click to test, deploy, upgrade or rollback code RunsANYWHERE, Self-healing and Auto-Scaling LOCAL or CLOUD
  • 16. iguazio © 2016 16 ORCHESTRATION SERVERLESS PROCESSING ML & AI FRAMEWORKS DATA SERVICES APIS HYBRID DEPLOYMENT NoSQLAPI Stream API Object API File API Security Queries & Functions Unified Data Data Lifecycle On-Premises Hosted Cloud Edge Event Driven Code • Used in iguazio platform • Developed for the real world • Now completely re-written to: • Support the broader open source & CNCF eco-system • Incorporate learnings from G1 • Future proof architecture • Address new use cases  Low latency 100GbETCP or RDMA Data Fabric (V3IO)  UNIFIED & AUTOMATED MANAGEMENT https://github.com/nuclio/nuclio