SlideShare una empresa de Scribd logo
1 de 24
Descargar para leer sin conexión
10/15/2016 Ekanite
http://127.0.0.1:3999/gosf-ekanite/ekanite.slide#1 1/24
Ekanite
The syslog server with built-in search
Philip O'Toole
GoSF October 19th 2016
10/15/2016 Ekanite
http://127.0.0.1:3999/gosf-ekanite/ekanite.slide#1 2/24
About me
Director of Data Platform Engineering at Percolate.
Previously Director of Engineering and core developer with In uxDB.
Led the backend team that built Loggly's 2nd generation indexing and search platform.
Big fan of Go, databases, and distributed systems.
10/15/2016 Ekanite
http://127.0.0.1:3999/gosf-ekanite/ekanite.slide#1 3/24
About Ekanite
The goal of Ekanite is to do a couple of things, and do them well -- accept log messages over
the network, and make it easy to search the messages. What it lacks in feature, it makes up
for in focus.
You can nd the source code at github.com/ekanite/ekanite(https://github.com/ekanite/ekanite).
The current release is v1.1.1.
10/15/2016 Ekanite
http://127.0.0.1:3999/gosf-ekanite/ekanite.slide#1 4/24
Why?
10/15/2016 Ekanite
http://127.0.0.1:3999/gosf-ekanite/ekanite.slide#1 5/24
Why another log search system?
Built very large scale log search systems in the past.
It can be quite involved - networking, indexing, search, retention, sharding, and
performance.
Could it all be done in a single program?
Single binary Go program would make deployment really easy.
It would act as a detailed demonstration of building such a system.
New use case for bleve.
10/15/2016 Ekanite
http://127.0.0.1:3999/gosf-ekanite/ekanite.slide#1 6/24
What is bleve?
10/15/2016 Ekanite
http://127.0.0.1:3999/gosf-ekanite/ekanite.slide#1 7/24
bleve
bleve is an indexing and full-text search library for Go.
Supports text analysis and faceting.
Straightforward to use.
funcmain(){
//openanewindex...ignoringallerrors.
mapping:=bleve.NewIndexMapping()
index,err:=bleve.New("example.bleve",mapping)
//indexsomedata
err=index.Index(identifier,"hello,world!")
//searchforsometext
query:=bleve.NewMatchQuery("text")
search:=bleve.NewSearchRequest(query)
searchResults,err:=index.Search(search)
}
bleve is to Go what Lucene is to Java.
10/15/2016 Ekanite
http://127.0.0.1:3999/gosf-ekanite/ekanite.slide#1 8/24
The design of a log search system
10/15/2016 Ekanite
http://127.0.0.1:3999/gosf-ekanite/ekanite.slide#1 9/24
Ekanite architecture
The Ekanite engine receives log messages and routes to indexes.
The engine also receives queries, performs searches, and returns results.
10/15/2016 Ekanite
http://127.0.0.1:3999/gosf-ekanite/ekanite.slide#1 10/24
Indexing by time
And index is a logical concept, grouping physical bleve-based shards.
Indexing by time makes search quicker, and retention easier to enforce.
This diagram shows 3 particular hours, but time extends in both directions forever.
10/15/2016 Ekanite
http://127.0.0.1:3999/gosf-ekanite/ekanite.slide#1 11/24
Why do we batch? Why do we shard?
10/15/2016 Ekanite
http://127.0.0.1:3999/gosf-ekanite/ekanite.slide#1 12/24
Demo
10/15/2016 Ekanite
http://127.0.0.1:3999/gosf-ekanite/ekanite.slide#1 13/24
Go patterns in action
10/15/2016 Ekanite
http://127.0.0.1:3999/gosf-ekanite/ekanite.slide#1 14/24
Decoupling input and indexing
Input subsystem accepts a bu ered channel, to which it sends parsed log lines.
//input/collector.go
func(s*TCPCollector)handleConnection(connnet.Conn,cchan<-*Event){
.
.
//Loglineavailable?
ifmatch{
stats.Add("tcpEventsRx",1)
ifs.parser.Parse(bytes.NewBufferString(log).Bytes()){
c<-&Event{
Text: string(s.parser.Raw),
Parsed: s.parser.Result,
ReceptionTime:time.Now().UTC(),
Sequence: atomic.AddInt64(&sequenceNumber,1),
SourceIP: conn.RemoteAddr().String(),
}
}
}
.
.
}
10/15/2016 Ekanite
http://127.0.0.1:3999/gosf-ekanite/ekanite.slide#1 15/24
Parallel indexing
//engine.go
func(e*Engine)Index(events[]*Event)error{
.
.
//De-multiplexthebatchintosub-batches,onesub-batchforeachIndex.
subBatches:=make(map[*Index][]Document,0)
.
.
//Indexeachbatchinparallel.
forindex,subBatch:=rangesubBatches{
wg.Add(1)
gofunc(i*Index,b[]Document){
deferwg.Done()
i.Index(b)
}(index,subBatch)
}
wg.Wait()
.
.
}
10/15/2016 Ekanite
http://127.0.0.1:3999/gosf-ekanite/ekanite.slide#1 16/24
Parallel sharding
//index.go
//Indexindexesthesliceofdocumentsintheindex.Ittakescareofallshardrouting.
func(i*Index)Index(documents[]Document)error{
varwgsync.WaitGroup
shardBatches:=make(map[*Shard][]Document,0)
for_,d:=rangedocuments{
shard:=i.Shard(d.ID())
shardBatches[shard]=append(shardBatches[shard],d)
}
//Indexeachbatchinparallel.
forshard,batch:=rangeshardBatches{
wg.Add(1)
gofunc(s*Shard,b[]Document){
deferwg.Done()
s.Index(b)
}(shard,batch)
}
wg.Wait()
returnnil
}
10/15/2016 Ekanite
http://127.0.0.1:3999/gosf-ekanite/ekanite.slide#1 17/24
Results returned over a channel
//engine.go
//Searchperformsasearch.
func(e*Engine)Search(querystring)(<-chanstring,error){
e.mu.RLock()
defere.mu.RUnlock()
c:=make(chanstring,1)
gofunc(){
//Sequentiallysearcheachindex,startingwiththeearliestintime.
//Thiscouldbedoneinparallelbutmoresortingwouldberequired.
fori:=len(e.indexes)-1;i>=0;i--{
e.Logger.Printf("searchingindex%s",e.indexes[i].Path())
ids,_:=e.indexes[i].Search(query)
for_,id:=rangeids{
b,_:=e.indexes[i].Document(id)
c<-string(b)
}
}
close(c)
}()
returnc,nil
}
10/15/2016 Ekanite
http://127.0.0.1:3999/gosf-ekanite/ekanite.slide#1 18/24
Sorting hits by time
Ekanite performs time-based sorting in the application.
Earlier versions of bleve did not support sorting on custom elds.
Newer versions now do.
Complex sort method on DocIDs.
//Searchperformsasearchoftheindexusingthegivenquery.ReturnsIDsofdocuments
//whichsatisfyallqueries.ReturnsDocIDsinsortedorder,ascending.
func(i*Index)Search(qstring)(DocIDs,error){
query:=bleve.NewQueryStringQuery(q)
searchRequest:=bleve.NewSearchRequest(query)
searchRequest.Size=maxSearchHitSize
searchResults,_:=i.Alias.Search(searchRequest)
docIDs:=make(DocIDs,0,len(searchResults.Hits))
for_,d:=rangesearchResults.Hits{
docIDs=append(docIDs,DocID(d.ID))
}
sort.Sort(docIDs)
returndocIDs,nil
}
10/15/2016 Ekanite
http://127.0.0.1:3999/gosf-ekanite/ekanite.slide#1 19/24
Retention enforcement is straightforward
//engine.go
//runRetentionEnforcementperiodicallyrunsretentionenforcement.
func(e*Engine)runRetentionEnforcement(){
defere.wg.Done()
for{
select{
case<-e.done:
return
case<-time.After(RetentionCheckInterval):
stats.Add("retentionEnforcementRun",1)
e.enforceRetention()
}
}
}
Shards are deleted from disk and references removed from the engine.
10/15/2016 Ekanite
http://127.0.0.1:3999/gosf-ekanite/ekanite.slide#1 20/24
Next steps
Ekanite is software, and software is never nished.
Use storage engine other than BoltDB.
Performance improvements, both CPU and RAM.
Better query language support
Proper dependency management.
A fully-featured CLI.
10/15/2016 Ekanite
http://127.0.0.1:3999/gosf-ekanite/ekanite.slide#1 21/24
What Ekanite can do
With it you've got an easy-to-deploy and maintain log search system.
10/15/2016 Ekanite
http://127.0.0.1:3999/gosf-ekanite/ekanite.slide#1 22/24
References
www.philipotoole.com/designing-a-search-system-for-log-data-part-i(http://www.philipotoole.com/designing-a-
search-system-for-log-data-part-i)
github.com/ekanite/ekanite(https://github.com/ekanite/ekanite)
www.blevesearch.com(http://www.blevesearch.com)
github.com/blevesearch/bleve(https://github.com/blevesearch/bleve)
www.philipotoole.com/increasing-bleve-performance-sharding(http://www.philipotoole.com/increasing-bleve-
performance-sharding)
github.com/otoolep/bleve-bench(https://github.com/otoolep/bleve-bench)
github.com/ekanite/gosf-ekanite(https://github.com/ekanite/gosf-ekanite)
10/15/2016 Ekanite
http://127.0.0.1:3999/gosf-ekanite/ekanite.slide#1 23/24
Thank you
Philip O'Toole
GoSF October 19th 2016
http://www.philipotoole.com/(http://www.philipotoole.com/)
@general_order24(http://twitter.com/general_order24)
10/15/2016 Ekanite
http://127.0.0.1:3999/gosf-ekanite/ekanite.slide#1 24/24

Más contenido relacionado

Similar a Ekanite

Opencast and Sakai at UCT, LectureSight and Track4K
Opencast and Sakai at UCT, LectureSight and Track4KOpencast and Sakai at UCT, LectureSight and Track4K
Opencast and Sakai at UCT, LectureSight and Track4KStephen Marquard
 
soft-shake.ch - Optimizing iOS applications
soft-shake.ch - Optimizing iOS applicationssoft-shake.ch - Optimizing iOS applications
soft-shake.ch - Optimizing iOS applicationssoft-shake.ch
 
EclipseCon France 2018 report
EclipseCon France 2018 reportEclipseCon France 2018 report
EclipseCon France 2018 reportAkira Tanaka
 
dokumen.tips_oracle-10g-advanced-performance-tuning-kyle-hailey-kylelfgmailco...
dokumen.tips_oracle-10g-advanced-performance-tuning-kyle-hailey-kylelfgmailco...dokumen.tips_oracle-10g-advanced-performance-tuning-kyle-hailey-kylelfgmailco...
dokumen.tips_oracle-10g-advanced-performance-tuning-kyle-hailey-kylelfgmailco...cookie1969
 
Carrying Enterprise on a Little Camel
Carrying Enterprise on a Little CamelCarrying Enterprise on a Little Camel
Carrying Enterprise on a Little CamelDimitry Pletnikov
 
DECK36 - Log everything! and Realtime Datastream Analytics with Storm
DECK36 - Log everything! and Realtime Datastream Analytics with StormDECK36 - Log everything! and Realtime Datastream Analytics with Storm
DECK36 - Log everything! and Realtime Datastream Analytics with StormMike Lohmann
 
Juan Vazquez & Julián Vilas – Tú a Barcelona y yo a Tejas, a patadas con mi S...
Juan Vazquez & Julián Vilas – Tú a Barcelona y yo a Tejas, a patadas con mi S...Juan Vazquez & Julián Vilas – Tú a Barcelona y yo a Tejas, a patadas con mi S...
Juan Vazquez & Julián Vilas – Tú a Barcelona y yo a Tejas, a patadas con mi S...RootedCON
 
Best Practice in Accelerating Data Applications with Spark+Alluxio
Best Practice in Accelerating Data Applications with Spark+AlluxioBest Practice in Accelerating Data Applications with Spark+Alluxio
Best Practice in Accelerating Data Applications with Spark+AlluxioAlluxio, Inc.
 
Splunk metrics via telegraf
Splunk metrics via telegrafSplunk metrics via telegraf
Splunk metrics via telegrafAshvin Pandey
 
An AI-Powered Chatbot to Simplify Apache Spark Performance Management
An AI-Powered Chatbot to Simplify Apache Spark Performance ManagementAn AI-Powered Chatbot to Simplify Apache Spark Performance Management
An AI-Powered Chatbot to Simplify Apache Spark Performance ManagementDatabricks
 
What's new in Squeak 3.9
What's new in Squeak 3.9What's new in Squeak 3.9
What's new in Squeak 3.9Marcus Denker
 
Intro elasticsearch taswarbhatti
Intro elasticsearch taswarbhattiIntro elasticsearch taswarbhatti
Intro elasticsearch taswarbhattiTaswar Bhatti
 
Stor c gregynog colloquium
Stor c   gregynog colloquiumStor c   gregynog colloquium
Stor c gregynog colloquiumgregynog
 
Paving the way with Jakarta EE and apache TomEE at cloudconferenceday
Paving the way with Jakarta EE and apache TomEE at cloudconferencedayPaving the way with Jakarta EE and apache TomEE at cloudconferenceday
Paving the way with Jakarta EE and apache TomEE at cloudconferencedayCésar Hernández
 
Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0
Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0
Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0César Hernández
 
Getting Started with Apache Spark on Kubernetes
Getting Started with Apache Spark on KubernetesGetting Started with Apache Spark on Kubernetes
Getting Started with Apache Spark on KubernetesDatabricks
 
Introducing OpenText TeamSite 8.2
Introducing OpenText TeamSite 8.2Introducing OpenText TeamSite 8.2
Introducing OpenText TeamSite 8.2Denise Douglas
 
Laporan Praktikum Keamanan Siber - Tugas 4 -Kelas C - Kelompok 3.pdf
Laporan Praktikum Keamanan Siber - Tugas 4 -Kelas C - Kelompok 3.pdfLaporan Praktikum Keamanan Siber - Tugas 4 -Kelas C - Kelompok 3.pdf
Laporan Praktikum Keamanan Siber - Tugas 4 -Kelas C - Kelompok 3.pdfIGedeArieYogantaraSu
 
OCTO On-Site Off-Site Update on D8 Roadmap
OCTO On-Site Off-Site Update on D8 RoadmapOCTO On-Site Off-Site Update on D8 Roadmap
OCTO On-Site Off-Site Update on D8 RoadmapAngela Byron
 

Similar a Ekanite (20)

Opencast and Sakai at UCT, LectureSight and Track4K
Opencast and Sakai at UCT, LectureSight and Track4KOpencast and Sakai at UCT, LectureSight and Track4K
Opencast and Sakai at UCT, LectureSight and Track4K
 
soft-shake.ch - Optimizing iOS applications
soft-shake.ch - Optimizing iOS applicationssoft-shake.ch - Optimizing iOS applications
soft-shake.ch - Optimizing iOS applications
 
EclipseCon France 2018 report
EclipseCon France 2018 reportEclipseCon France 2018 report
EclipseCon France 2018 report
 
dokumen.tips_oracle-10g-advanced-performance-tuning-kyle-hailey-kylelfgmailco...
dokumen.tips_oracle-10g-advanced-performance-tuning-kyle-hailey-kylelfgmailco...dokumen.tips_oracle-10g-advanced-performance-tuning-kyle-hailey-kylelfgmailco...
dokumen.tips_oracle-10g-advanced-performance-tuning-kyle-hailey-kylelfgmailco...
 
JavaScript im Jahr 2016
JavaScript im Jahr 2016JavaScript im Jahr 2016
JavaScript im Jahr 2016
 
Carrying Enterprise on a Little Camel
Carrying Enterprise on a Little CamelCarrying Enterprise on a Little Camel
Carrying Enterprise on a Little Camel
 
DECK36 - Log everything! and Realtime Datastream Analytics with Storm
DECK36 - Log everything! and Realtime Datastream Analytics with StormDECK36 - Log everything! and Realtime Datastream Analytics with Storm
DECK36 - Log everything! and Realtime Datastream Analytics with Storm
 
Juan Vazquez & Julián Vilas – Tú a Barcelona y yo a Tejas, a patadas con mi S...
Juan Vazquez & Julián Vilas – Tú a Barcelona y yo a Tejas, a patadas con mi S...Juan Vazquez & Julián Vilas – Tú a Barcelona y yo a Tejas, a patadas con mi S...
Juan Vazquez & Julián Vilas – Tú a Barcelona y yo a Tejas, a patadas con mi S...
 
Best Practice in Accelerating Data Applications with Spark+Alluxio
Best Practice in Accelerating Data Applications with Spark+AlluxioBest Practice in Accelerating Data Applications with Spark+Alluxio
Best Practice in Accelerating Data Applications with Spark+Alluxio
 
Splunk metrics via telegraf
Splunk metrics via telegrafSplunk metrics via telegraf
Splunk metrics via telegraf
 
An AI-Powered Chatbot to Simplify Apache Spark Performance Management
An AI-Powered Chatbot to Simplify Apache Spark Performance ManagementAn AI-Powered Chatbot to Simplify Apache Spark Performance Management
An AI-Powered Chatbot to Simplify Apache Spark Performance Management
 
What's new in Squeak 3.9
What's new in Squeak 3.9What's new in Squeak 3.9
What's new in Squeak 3.9
 
Intro elasticsearch taswarbhatti
Intro elasticsearch taswarbhattiIntro elasticsearch taswarbhatti
Intro elasticsearch taswarbhatti
 
Stor c gregynog colloquium
Stor c   gregynog colloquiumStor c   gregynog colloquium
Stor c gregynog colloquium
 
Paving the way with Jakarta EE and apache TomEE at cloudconferenceday
Paving the way with Jakarta EE and apache TomEE at cloudconferencedayPaving the way with Jakarta EE and apache TomEE at cloudconferenceday
Paving the way with Jakarta EE and apache TomEE at cloudconferenceday
 
Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0
Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0
Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0
 
Getting Started with Apache Spark on Kubernetes
Getting Started with Apache Spark on KubernetesGetting Started with Apache Spark on Kubernetes
Getting Started with Apache Spark on Kubernetes
 
Introducing OpenText TeamSite 8.2
Introducing OpenText TeamSite 8.2Introducing OpenText TeamSite 8.2
Introducing OpenText TeamSite 8.2
 
Laporan Praktikum Keamanan Siber - Tugas 4 -Kelas C - Kelompok 3.pdf
Laporan Praktikum Keamanan Siber - Tugas 4 -Kelas C - Kelompok 3.pdfLaporan Praktikum Keamanan Siber - Tugas 4 -Kelas C - Kelompok 3.pdf
Laporan Praktikum Keamanan Siber - Tugas 4 -Kelas C - Kelompok 3.pdf
 
OCTO On-Site Off-Site Update on D8 Roadmap
OCTO On-Site Off-Site Update on D8 RoadmapOCTO On-Site Off-Site Update on D8 Roadmap
OCTO On-Site Off-Site Update on D8 Roadmap
 

Último

PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
How To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROHow To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROmotivationalword821
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...Akihiro Suda
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 

Último (20)

PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
How To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROHow To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTRO
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 

Ekanite