26
Awesomeness of Container Orchestras Data Crunching in a Company Builder Martin Held

"Awesomeness of Container Orchestras - Data Crunching in a Company Builder", Martin Held, Data Scientist at FinLeap

Embed Size (px)

Citation preview

Page 1: "Awesomeness of Container Orchestras - Data Crunching in a Company Builder", Martin Held, Data Scientist at FinLeap

Awesomeness of Container Orchestras Data Crunching in a Company Builder

Martin Held

Page 2: "Awesomeness of Container Orchestras - Data Crunching in a Company Builder", Martin Held, Data Scientist at FinLeap

What is FinLeap doing?

Page 3: "Awesomeness of Container Orchestras - Data Crunching in a Company Builder", Martin Held, Data Scientist at FinLeap

Tech Department’s Mission

Page 4: "Awesomeness of Container Orchestras - Data Crunching in a Company Builder", Martin Held, Data Scientist at FinLeap

Our journey

Page 5: "Awesomeness of Container Orchestras - Data Crunching in a Company Builder", Martin Held, Data Scientist at FinLeap

How we did it

WebUI Backend

Service A Service B

Monolithic Application (typically RoR)

SQL

Data

Page 6: "Awesomeness of Container Orchestras - Data Crunching in a Company Builder", Martin Held, Data Scientist at FinLeap

Some Learnings

• finding developers is hard, finding developers experienced in a specific tech stack is even harder

• integrating data science like functionality is not straightforward

• scaling the monolithic application can be challenging

Page 7: "Awesomeness of Container Orchestras - Data Crunching in a Company Builder", Martin Held, Data Scientist at FinLeap

How we do it these days

WebUI

SQL

AP

I Gat

eway

Msg

Bro

ker

Backend

Service A

Service B

we plan and implement containerised microservice architectures

Page 8: "Awesomeness of Container Orchestras - Data Crunching in a Company Builder", Martin Held, Data Scientist at FinLeap

This allows us

• multilingual applications • better utilisation of existing dev resources

• broader talent pool for recruitment

• plug-in data science solutions as service

• scaling • tech wise - ‘scale bottleneck services‘

• business wise - dedicated teams for different tasks

• reuse of services (authentication etc.)

Page 9: "Awesomeness of Container Orchestras - Data Crunching in a Company Builder", Martin Held, Data Scientist at FinLeap

Service A

How is life in a container?

Page 10: "Awesomeness of Container Orchestras - Data Crunching in a Company Builder", Martin Held, Data Scientist at FinLeap

A Docker ContainerContainer 1 Container 2 Container 3

- package applications with its dependencies

- more lightweight than virtual machines (shared the OS)

- run on any computer, any infrastructure, any cloud

Page 11: "Awesomeness of Container Orchestras - Data Crunching in a Company Builder", Martin Held, Data Scientist at FinLeap

Life in a (DataScientist) Container

FROM ubuntu:14.04

ENV PYTHONPATH /opt/caffe/python

# Add caffe binaries to path ENV PATH $PATH:/opt/caffe/.build_release/tools

# Get dependencies RUN apt-get update && apt-get install -y bc cmake curl gcc-4.6 g++-4.6 wget

# Use gcc 4.6 RUN update-alternatives --install /usr/bin/cc cc /usr/bin/gcc-4.6 30 && \

# Clone the Caffe repo RUN cd /opt && git clone https://github.com/BVLC/caffe.git

# Build Caffe core RUN cd /opt/caffe && cp Makefile.config.example Makefile.config && \

# Add ld-so.conf so it can find libcaffe.so ADD caffe-ld-so.conf /etc/ld.so.conf.d/

# Run ldconfig again (not sure if needed) RUN ldconfig

# Install python deps RUN cd /opt/caffe && \ cat python/requirements.txt | xargs -L 1 sudo pip install

Page 12: "Awesomeness of Container Orchestras - Data Crunching in a Company Builder", Martin Held, Data Scientist at FinLeap

Life in a (DataScientist) Container

bvlc_reference_caffenet.caffemodel RUN wget -O models/deploy.prototxt https://raw.githubusercontent.com/BVLC/caffe/master/models/bvlc_reference_caffenet/deploy.prototxt

Page 13: "Awesomeness of Container Orchestras - Data Crunching in a Company Builder", Martin Held, Data Scientist at FinLeap

Life in a (DataScientist) Container

USE ubuntu base Image

Install Os dependencies (g++, python, git, fortran, curl, etc )

Clone Caffe repo (open source Deep Learning Lib)

Build Caffe Core

Install Python Dependencies

Build Caffe Python bindings

Add Model and Source Code

Specify Execution Command

+

+

+

Page 14: "Awesomeness of Container Orchestras - Data Crunching in a Company Builder", Martin Held, Data Scientist at FinLeap

Life in a (DataScientist) Container

Image Recognition Al

fish, aquarium, child

Page 15: "Awesomeness of Container Orchestras - Data Crunching in a Company Builder", Martin Held, Data Scientist at FinLeap

Orchestration

Page 16: "Awesomeness of Container Orchestras - Data Crunching in a Company Builder", Martin Held, Data Scientist at FinLeap

The Orchestra

Scheduling place and start container on host(s) offering required resources

Service Discovery + Registration allow containers to communicate with each other and the rest of the world

Implement Resilience e.g. auto restart containers in case of failure

Page 17: "Awesomeness of Container Orchestras - Data Crunching in a Company Builder", Martin Held, Data Scientist at FinLeap

An example

Page 18: "Awesomeness of Container Orchestras - Data Crunching in a Company Builder", Martin Held, Data Scientist at FinLeap

Reverse Image Search

Query Image

Page 19: "Awesomeness of Container Orchestras - Data Crunching in a Company Builder", Martin Held, Data Scientist at FinLeap

Reverse Image Search

Message Broker

Page 20: "Awesomeness of Container Orchestras - Data Crunching in a Company Builder", Martin Held, Data Scientist at FinLeap

Reverse Image Search

Crawler

Product Pictures Metadata

Product Picture

Raw Metadata

Message Broker

Page 21: "Awesomeness of Container Orchestras - Data Crunching in a Company Builder", Martin Held, Data Scientist at FinLeap

Reverse Image Search

Crawler

Product Pictures Metadata

Product Picture

Raw Metadata

Message Broker

Feature Extractor

Picture Features

Page 22: "Awesomeness of Container Orchestras - Data Crunching in a Company Builder", Martin Held, Data Scientist at FinLeap

Reverse Image Search

Crawler

Product Pictures Metadata

Product Picture

Raw Metadata

Message Broker

Feature Extractor

Picture Features

Metadata Parser

Raw Metadata

Structured Metadata

Page 23: "Awesomeness of Container Orchestras - Data Crunching in a Company Builder", Martin Held, Data Scientist at FinLeap

Reverse Image Search

Crawler

Product Pictures Metadata

Product Picture

Raw Metadata

Message Broker

Feature Extractor

Picture Features

Metadata Parser

Raw Metadata

Structured Metadata

StorageSink

Store

Picture Features,

Structured Data

Page 24: "Awesomeness of Container Orchestras - Data Crunching in a Company Builder", Martin Held, Data Scientist at FinLeap

Reverse Image Search

Crawler

Product Pictures Metadata

Product Picture

Raw Metadata

Message Broker

Feature Extractor

Picture Features

Metadata Parser

Raw Metadata

Structured Metadata

StorageSink

Store

Picture Features,

Structured Data NearestNeighbor

Search API

Query Picture

Similar Pictures

Query Features

Similar Pictures

Page 25: "Awesomeness of Container Orchestras - Data Crunching in a Company Builder", Martin Held, Data Scientist at FinLeap

to take home

containers are great tool to package code with all its dependencies and make it usable by others

allow us develop scalable plug-in ready data science solutions

complex scalable and resilient architectures for the masses

Page 26: "Awesomeness of Container Orchestras - Data Crunching in a Company Builder", Martin Held, Data Scientist at FinLeap

Thank you for your attention!

www.linkedin.com/in/martin-held

@