SlideShare a Scribd company logo
Providing scalability for 
Pirates, Lizards and 
Zombies. 
August 2014 
Amanda& 
Pla)orm&for&distributed&services
Who am I 
Software developer at MPC 
! 
Python since 2009 
! 
Loves services 
! 
Obsessed by monitoring 
! 
@JozefVanE on twitter
Who is MPC 
We create Visual Effects 
! 
»Advertising 
»Feature films
We create Visual Effects 
! 
»Across 8 sites 
»Fully integrated cross 
site pipeline
What are visual effects? 
Visual effects involve the integration of live-action footage 
and generated imagery to create environments which look 
realistic, but would be dangerous, expensive, impractical, or 
simply impossible to capture on film. 
(source wikipedia)
What are visual effects?
What are visual effects?
What are visual effects?
What are visual effects?
Production workflow.
Production considerations 
» Management 
» Assets, Production, Users 
» Various sources 
» Used by: 
» In house tools 
» 3rd party applications 
» Multiple environments 
» Users 
» Artists 
» Developers
MPC’s approach - Amanda 
» Service based architecture 
» Platform as a service 
» Multi protocol, transport and concurrency 
» Ecosystem to write a service for developers of any level 
» 1st generation 2007 
» 2nd generation 2012-2013
Some statistics. 
! 
» Godzilla 
» 450 years if rendered on a single machine
Some statistics. 
! 
» Godzilla 
» 450 years if rendered on a single machine 
» Or, 15 years after Henry 8th died
Some statistics. 
! 
» Godzilla 
» 650 TB of data
Some statistics. 
! 
» Godzilla 
» 650 TB of data 
» Or, 41000 mobile phones with 16GB drives.
Some statistics. 
! 
» Godzilla 
» 250.000 Amanda req/min.
Some statistics. 
! 
» Godzilla 
» 250.000 Amanda req/min. 
» Or, 4 times Germany VS Brazil tweets
Amanda - building the platform
Amanda - building the platform
Amanda - building the platform 
Services 
class MakeMovieService(object):! 
! 
@public! 
def greet_director(self, director_name):! 
return "hello %s" % (director_name,)!
Amanda - building the platform 
We have a service, but lets make it do something useful
Amanda - building the platform 
Infrastructures 
class MakeMovieService(object):! 
storage = Dependency(“storage")! 
def _check_data_on_disk(self, files):! 
""" Check data is available! 
"""! 
return self.storage.check_exists(files)!
Amanda - building the platform 
Infrastructures 
class MakeMovieService(object):! 
storage = Dependency(“storage")! 
def _check_data_on_disk(self, files):! 
""" Check data is available! 
"""! 
return self.storage.check_exists(files)! 
def _get_shot(self, shot):! 
""" Get shot data! 
"""! 
query = "<insert db query>"! 
return self._db.execute(query, (shot,))! 
!
Amanda - building the platform 
Infrastructures 
class MakeMovieService(object):! 
storage = Dependency(“storage")! 
def _check_data_on_disk(self, files):! 
""" Check data is available! 
"""! 
return self.storage.check_exists(files)! 
def _get_shot(self, shot):! 
""" Get shot data! 
"""! 
query = "<insert db query>"! 
return self._db.execute(query, (shot,))! 
! 
@public! 
def make_movie_magic(self, shotInfo):! 
""" Do some magic! 
"""! 
shot = self._get_shot(shotInfo)! 
if not self._check_data_on_disk(shot["files"]):! 
self._log.error(‘files not found')! 
raise DataNotAvailable()! 
self._do_magic(shot["files"], self._config.production.jobsite())
Amanda - building the platform 
Ok now it is doing something but that is one user, 
one service and not very useful at scale…
Amanda - building the platform
Amanda - building the platform 
Service providers 
services = ServiceProvider(! 
make_movies=MakeMovieService,! 
storage=StorageService! 
config=ConfigService! 
logging=LoggingService! 
__infrastructure__={! 
"_db": DbInfrastructure,! 
"_config": ConfigInfrastructure,! 
"_xmesh": XmeshInfrastructure,! 
"_log": LoggingInfrastructure! 
}! 
)! 
services.make_movies.make_movie_magic("shot1")! 
services.logging.change_logging_level("make_movies", "debug")!
Amanda - building the platform
Amanda - building the platform 
Proxies 
class Proxy(object):! 
! 
def __getattr__(self, method):! 
def method_stand_in(*args, **kwargs):! 
return self._transport.publish(self._service, method, *args, **kwargs)! 
return method_stand_in! 
! 
services = ServiceProvider(! 
make_movies=Proxy("make_movies", transport)! 
)! 
services.make_movies.do_movie_magic(“shot1”)! 
!
Amanda - building the platform
Amanda - building the platform 
Ok, at this point we can scale a bit but what about 
concurrency/parallel processing?
Amanda - building the platform
Amanda - building the platform
Amanda - building the platform
Amanda - building the platform 
This gives us all the building blocks to assemble a 
distributed system with the possibility to use the 
best technologies for the given tasks
Amanda - assembling & maintaining the platform
Amanda - assembling & maintaining the platform 
Setting up for a cross language pipeline.
Amanda - assembling & maintaining the platform
Amanda - assembling & maintaining the platform
Amanda - assembling & maintaining the platform 
Setting up for a cross language, fault tolerant 
pipeline.
Amanda - assembling & maintaining the platform 
Setting up for cross language, fault tolerant, 
monitorable pipeline.
Amanda - assembling & maintaining the platform 
request: userAdmin, getUserIdByUserName, [u'jozef'], {} 
request id: 1393351037.307669-userAdmin-staffdirectory-3500, 
by jozef from staffdirectory 
exception: <type 'NoneType'>, None 
handled by: amanda-host-1_28368-GeventConcurrencyPool_worker_37 
stats: 
sent on Tue Feb 25 17:57:17 2014 
received on Tue Feb 25 17:57:17 2014 
frontend->backend delivery took 0.003s` 
internal queuing took 0.0000015s 
request execution took 0.005s 
total time: 0.011s
Amanda - assembling & maintaining the platform 
internal 
queuing: 
0.0000015s 
frontend->backend: 0.003s 
total time: 0.011s 
request 
execution: 
0.005s
Amanda - assembling & maintaining the platform 
» Maintenance. 
» Salt 
» Extended with an Amanda module. 
» Salt client wrapped inside a service so we can access it from anywhere not 
just the master node. 
» Predefined, repeatable configuration.
Amanda 
» Adaptable 
» Extendable 
» Configurable 
» Best of breeds
Amanda 
» Looking ahead 
» Containerisation 
» Auto scaling 
» Open sourcing possibilities
In Production 
Montréal
We’re Now Hiring! 
! 
Opportunities across all our Studios and across all 
disciplines 
! 
Check out www.moving-picture.com for vacancies 
! 
Or email recruitment@moving-picture.com
Amanda 
Thank you, any questions? 
Jozef van Eenbergen - twitter: @JozefVanE

More Related Content

What's hot

スマートフォンサイトの作成術 - 大川洋一
スマートフォンサイトの作成術 - 大川洋一スマートフォンサイトの作成術 - 大川洋一
スマートフォンサイトの作成術 - 大川洋一
okyawa
 
iPhone Appleless Apps
iPhone Appleless AppsiPhone Appleless Apps
iPhone Appleless Apps
Remy Sharp
 
Developing High Performance Web Apps - CodeMash 2011
Developing High Performance Web Apps - CodeMash 2011Developing High Performance Web Apps - CodeMash 2011
Developing High Performance Web Apps - CodeMash 2011
Timothy Fisher
 
Testing web application with Python
Testing web application with PythonTesting web application with Python
Testing web application with Python
Jachym Cepicky
 
Automated release management with team city & octopusdeploy - NDC 2013
Automated release management with team city & octopusdeploy - NDC 2013Automated release management with team city & octopusdeploy - NDC 2013
Automated release management with team city & octopusdeploy - NDC 2013Kristoffer Deinoff
 
Turn your spaghetti code into ravioli with JavaScript modules
Turn your spaghetti code into ravioli with JavaScript modulesTurn your spaghetti code into ravioli with JavaScript modules
Turn your spaghetti code into ravioli with JavaScript modules
jerryorr
 
jQuery (DrupalCamp Toronto)
jQuery (DrupalCamp Toronto)jQuery (DrupalCamp Toronto)
jQuery (DrupalCamp Toronto)
jeresig
 
Introduction to WebGL and WebVR
Introduction to WebGL and WebVRIntroduction to WebGL and WebVR
Introduction to WebGL and WebVR
Daosheng Mu
 
From Hacker to Programmer (w/ Webpack, Babel and React)
From Hacker to Programmer (w/ Webpack, Babel and React)From Hacker to Programmer (w/ Webpack, Babel and React)
From Hacker to Programmer (w/ Webpack, Babel and React)
Joseph Chiang
 
Introducing Assetic: Asset Management for PHP 5.3
Introducing Assetic: Asset Management for PHP 5.3Introducing Assetic: Asset Management for PHP 5.3
Introducing Assetic: Asset Management for PHP 5.3
Kris Wallsmith
 
Firefox OS Web APIs, taking it to the next level
Firefox OS Web APIs, taking it to the next levelFirefox OS Web APIs, taking it to the next level
Firefox OS Web APIs, taking it to the next level
Frédéric Harper
 
A-Frame: VR for Web Developers
A-Frame: VR for Web DevelopersA-Frame: VR for Web Developers
A-Frame: VR for Web Developers
Kevin Ngo
 
Aztex indian's greatest hit's.http
Aztex indian's greatest hit's.httpAztex indian's greatest hit's.http
Aztex indian's greatest hit's.http
muradwysingermc23
 
Refresh Austin - Intro to Dexy
Refresh Austin - Intro to DexyRefresh Austin - Intro to Dexy
Refresh Austin - Intro to Dexy
ananelson
 
Extreme Web Performance for Mobile Devices - Velocity NY
Extreme Web Performance for Mobile Devices - Velocity NYExtreme Web Performance for Mobile Devices - Velocity NY
Extreme Web Performance for Mobile Devices - Velocity NY
Maximiliano Firtman
 
从YUI2到YUI3看前端的演变
从YUI2到YUI3看前端的演变从YUI2到YUI3看前端的演变
从YUI2到YUI3看前端的演变
Kejun Zhang
 
Plone api
Plone apiPlone api
Plone api
Nejc Zupan
 
Vuejs testing
Vuejs testingVuejs testing
Vuejs testing
Greg TAPPERO
 
前端测试之淘宝实践
前端测试之淘宝实践前端测试之淘宝实践
前端测试之淘宝实践chencheng 云谦
 

What's hot (19)

スマートフォンサイトの作成術 - 大川洋一
スマートフォンサイトの作成術 - 大川洋一スマートフォンサイトの作成術 - 大川洋一
スマートフォンサイトの作成術 - 大川洋一
 
iPhone Appleless Apps
iPhone Appleless AppsiPhone Appleless Apps
iPhone Appleless Apps
 
Developing High Performance Web Apps - CodeMash 2011
Developing High Performance Web Apps - CodeMash 2011Developing High Performance Web Apps - CodeMash 2011
Developing High Performance Web Apps - CodeMash 2011
 
Testing web application with Python
Testing web application with PythonTesting web application with Python
Testing web application with Python
 
Automated release management with team city & octopusdeploy - NDC 2013
Automated release management with team city & octopusdeploy - NDC 2013Automated release management with team city & octopusdeploy - NDC 2013
Automated release management with team city & octopusdeploy - NDC 2013
 
Turn your spaghetti code into ravioli with JavaScript modules
Turn your spaghetti code into ravioli with JavaScript modulesTurn your spaghetti code into ravioli with JavaScript modules
Turn your spaghetti code into ravioli with JavaScript modules
 
jQuery (DrupalCamp Toronto)
jQuery (DrupalCamp Toronto)jQuery (DrupalCamp Toronto)
jQuery (DrupalCamp Toronto)
 
Introduction to WebGL and WebVR
Introduction to WebGL and WebVRIntroduction to WebGL and WebVR
Introduction to WebGL and WebVR
 
From Hacker to Programmer (w/ Webpack, Babel and React)
From Hacker to Programmer (w/ Webpack, Babel and React)From Hacker to Programmer (w/ Webpack, Babel and React)
From Hacker to Programmer (w/ Webpack, Babel and React)
 
Introducing Assetic: Asset Management for PHP 5.3
Introducing Assetic: Asset Management for PHP 5.3Introducing Assetic: Asset Management for PHP 5.3
Introducing Assetic: Asset Management for PHP 5.3
 
Firefox OS Web APIs, taking it to the next level
Firefox OS Web APIs, taking it to the next levelFirefox OS Web APIs, taking it to the next level
Firefox OS Web APIs, taking it to the next level
 
A-Frame: VR for Web Developers
A-Frame: VR for Web DevelopersA-Frame: VR for Web Developers
A-Frame: VR for Web Developers
 
Aztex indian's greatest hit's.http
Aztex indian's greatest hit's.httpAztex indian's greatest hit's.http
Aztex indian's greatest hit's.http
 
Refresh Austin - Intro to Dexy
Refresh Austin - Intro to DexyRefresh Austin - Intro to Dexy
Refresh Austin - Intro to Dexy
 
Extreme Web Performance for Mobile Devices - Velocity NY
Extreme Web Performance for Mobile Devices - Velocity NYExtreme Web Performance for Mobile Devices - Velocity NY
Extreme Web Performance for Mobile Devices - Velocity NY
 
从YUI2到YUI3看前端的演变
从YUI2到YUI3看前端的演变从YUI2到YUI3看前端的演变
从YUI2到YUI3看前端的演变
 
Plone api
Plone apiPlone api
Plone api
 
Vuejs testing
Vuejs testingVuejs testing
Vuejs testing
 
前端测试之淘宝实践
前端测试之淘宝实践前端测试之淘宝实践
前端测试之淘宝实践
 

Viewers also liked

Alexandria M. Todd's Portfolio
Alexandria M. Todd's PortfolioAlexandria M. Todd's Portfolio
Alexandria M. Todd's Portfolio
Alexandria Todd
 
Resurssien viisas käyttö Jyväskylä 7.4.2016 Pirkko Melville
Resurssien viisas käyttö Jyväskylä 7.4.2016  Pirkko MelvilleResurssien viisas käyttö Jyväskylä 7.4.2016  Pirkko Melville
Resurssien viisas käyttö Jyväskylä 7.4.2016 Pirkko Melville
Pirkko Melville
 
test_prototype_IL_p55_2013_dec
test_prototype_IL_p55_2013_dectest_prototype_IL_p55_2013_dec
test_prototype_IL_p55_2013_dec
lesmiserables95
 
DevOps Cardiff - Monitoring Automation for DevOps
DevOps Cardiff - Monitoring Automation for DevOpsDevOps Cardiff - Monitoring Automation for DevOps
DevOps Cardiff - Monitoring Automation for DevOps
Outlyer
 
Resoconto mbmf
Resoconto mbmfResoconto mbmf
Resoconto mbmf
andyRN
 
From Duplo to Lego - Glen Ford
From Duplo to Lego - Glen FordFrom Duplo to Lego - Glen Ford
From Duplo to Lego - Glen Ford
Outlyer
 
Gareth Rushgrove (Puppet) - Ubiquity at #DOXLON
Gareth Rushgrove (Puppet) - Ubiquity at #DOXLONGareth Rushgrove (Puppet) - Ubiquity at #DOXLON
Gareth Rushgrove (Puppet) - Ubiquity at #DOXLON
Outlyer
 
How to implement Micro-Services - Marc Cluet
How to implement Micro-Services - Marc CluetHow to implement Micro-Services - Marc Cluet
How to implement Micro-Services - Marc Cluet
Outlyer
 
Bf restaurant
Bf restaurantBf restaurant
Bf restaurant
Đăng Khoa Cao
 
ასკანის საჯარო სკოლა
ასკანის საჯარო სკოლაასკანის საჯარო სკოლა
ასკანის საჯარო სკოლაkighuradzekoba
 
Neil Saunders (Beamly) - Securing your AWS Infrastructure with Hashicorp Vault
Neil Saunders (Beamly) - Securing your AWS Infrastructure with Hashicorp Vault Neil Saunders (Beamly) - Securing your AWS Infrastructure with Hashicorp Vault
Neil Saunders (Beamly) - Securing your AWS Infrastructure with Hashicorp Vault
Outlyer
 
Kinh Do INTERNET MARKETING
Kinh Do INTERNET MARKETINGKinh Do INTERNET MARKETING
Kinh Do INTERNET MARKETING
Đăng Khoa Cao
 
#DOXLON October 2016 - Mesos Deployment at Schibsted
#DOXLON October 2016 - Mesos Deployment at Schibsted#DOXLON October 2016 - Mesos Deployment at Schibsted
#DOXLON October 2016 - Mesos Deployment at Schibsted
Outlyer
 
Soal kelas 6 smtr 1
Soal kelas 6 smtr 1Soal kelas 6 smtr 1
Soal kelas 6 smtr 1
Dedi Subiyadi
 
Ford motor company
Ford motor companyFord motor company
Ford motor company
Đăng Khoa Cao
 

Viewers also liked (15)

Alexandria M. Todd's Portfolio
Alexandria M. Todd's PortfolioAlexandria M. Todd's Portfolio
Alexandria M. Todd's Portfolio
 
Resurssien viisas käyttö Jyväskylä 7.4.2016 Pirkko Melville
Resurssien viisas käyttö Jyväskylä 7.4.2016  Pirkko MelvilleResurssien viisas käyttö Jyväskylä 7.4.2016  Pirkko Melville
Resurssien viisas käyttö Jyväskylä 7.4.2016 Pirkko Melville
 
test_prototype_IL_p55_2013_dec
test_prototype_IL_p55_2013_dectest_prototype_IL_p55_2013_dec
test_prototype_IL_p55_2013_dec
 
DevOps Cardiff - Monitoring Automation for DevOps
DevOps Cardiff - Monitoring Automation for DevOpsDevOps Cardiff - Monitoring Automation for DevOps
DevOps Cardiff - Monitoring Automation for DevOps
 
Resoconto mbmf
Resoconto mbmfResoconto mbmf
Resoconto mbmf
 
From Duplo to Lego - Glen Ford
From Duplo to Lego - Glen FordFrom Duplo to Lego - Glen Ford
From Duplo to Lego - Glen Ford
 
Gareth Rushgrove (Puppet) - Ubiquity at #DOXLON
Gareth Rushgrove (Puppet) - Ubiquity at #DOXLONGareth Rushgrove (Puppet) - Ubiquity at #DOXLON
Gareth Rushgrove (Puppet) - Ubiquity at #DOXLON
 
How to implement Micro-Services - Marc Cluet
How to implement Micro-Services - Marc CluetHow to implement Micro-Services - Marc Cluet
How to implement Micro-Services - Marc Cluet
 
Bf restaurant
Bf restaurantBf restaurant
Bf restaurant
 
ასკანის საჯარო სკოლა
ასკანის საჯარო სკოლაასკანის საჯარო სკოლა
ასკანის საჯარო სკოლა
 
Neil Saunders (Beamly) - Securing your AWS Infrastructure with Hashicorp Vault
Neil Saunders (Beamly) - Securing your AWS Infrastructure with Hashicorp Vault Neil Saunders (Beamly) - Securing your AWS Infrastructure with Hashicorp Vault
Neil Saunders (Beamly) - Securing your AWS Infrastructure with Hashicorp Vault
 
Kinh Do INTERNET MARKETING
Kinh Do INTERNET MARKETINGKinh Do INTERNET MARKETING
Kinh Do INTERNET MARKETING
 
#DOXLON October 2016 - Mesos Deployment at Schibsted
#DOXLON October 2016 - Mesos Deployment at Schibsted#DOXLON October 2016 - Mesos Deployment at Schibsted
#DOXLON October 2016 - Mesos Deployment at Schibsted
 
Soal kelas 6 smtr 1
Soal kelas 6 smtr 1Soal kelas 6 smtr 1
Soal kelas 6 smtr 1
 
Ford motor company
Ford motor companyFord motor company
Ford motor company
 

Similar to Jozef Ve Providing Scalability for Pirates, Lizards and Zombies at #DOXLON

APIs, now and in the future
APIs, now and in the futureAPIs, now and in the future
APIs, now and in the future
Chris Mills
 
Web versus Native: round 1!
Web versus Native: round 1!Web versus Native: round 1!
Web versus Native: round 1!
Chris Mills
 
Advanced #6 clean architecture
Advanced #6  clean architectureAdvanced #6  clean architecture
Advanced #6 clean architecture
Vitali Pekelis
 
Empowering the “Mobile Web” with Chris Mills
Empowering the “Mobile Web” with Chris MillsEmpowering the “Mobile Web” with Chris Mills
Empowering the “Mobile Web” with Chris Mills
FITC
 
Empowering the Mobile Web - Mills
Empowering the Mobile Web - MillsEmpowering the Mobile Web - Mills
Empowering the Mobile Web - Mills
Codemotion
 
Empowering the "mobile web"
Empowering the "mobile web"Empowering the "mobile web"
Empowering the "mobile web"Chris Mills
 
Continuous Integration and Deployment Best Practices on AWS
 Continuous Integration and Deployment Best Practices on AWS  Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWS
Amazon Web Services
 
(BDT402) Performance Profiling in Production: Analyzing Web Requests at Scale...
(BDT402) Performance Profiling in Production: Analyzing Web Requests at Scale...(BDT402) Performance Profiling in Production: Analyzing Web Requests at Scale...
(BDT402) Performance Profiling in Production: Analyzing Web Requests at Scale...
Amazon Web Services
 
Continuous Deployment: The Dirty Details
Continuous Deployment: The Dirty DetailsContinuous Deployment: The Dirty Details
Continuous Deployment: The Dirty Details
Mike Brittain
 
Grokking Engineering - Data Analytics Infrastructure at Viki - Huy Nguyen
Grokking Engineering - Data Analytics Infrastructure at Viki - Huy NguyenGrokking Engineering - Data Analytics Infrastructure at Viki - Huy Nguyen
Grokking Engineering - Data Analytics Infrastructure at Viki - Huy Nguyen
Huy Nguyen
 
Intro To webOS
Intro To webOSIntro To webOS
Intro To webOS
fpatton
 
APIs for modern web apps
APIs for modern web appsAPIs for modern web apps
APIs for modern web apps
Chris Mills
 
Serverless in production, an experience report
Serverless in production, an experience reportServerless in production, an experience report
Serverless in production, an experience report
Yan Cui
 
System insight without Interference
System insight without InterferenceSystem insight without Interference
System insight without Interference
Tony Tam
 
Serverless in production, an experience report (London DevOps)
Serverless in production, an experience report (London DevOps)Serverless in production, an experience report (London DevOps)
Serverless in production, an experience report (London DevOps)
Yan Cui
 
Serverless in production, an experience report (FullStack 2018)
Serverless in production, an experience report (FullStack 2018)Serverless in production, an experience report (FullStack 2018)
Serverless in production, an experience report (FullStack 2018)
Yan Cui
 
Going Node At Netflix
Going Node At NetflixGoing Node At Netflix
Going Node At Netflix
Ryan Anklam
 
Cloud patterns applied
Cloud patterns appliedCloud patterns applied
Cloud patterns applied
Lars Fronius
 
Practical Cloud & Workflow Orchestration
Practical Cloud & Workflow OrchestrationPractical Cloud & Workflow Orchestration
Practical Cloud & Workflow Orchestration
Chris Dagdigian
 
Serverless in Production, an experience report (AWS UG South Wales)
Serverless in Production, an experience report (AWS UG South Wales)Serverless in Production, an experience report (AWS UG South Wales)
Serverless in Production, an experience report (AWS UG South Wales)
Yan Cui
 

Similar to Jozef Ve Providing Scalability for Pirates, Lizards and Zombies at #DOXLON (20)

APIs, now and in the future
APIs, now and in the futureAPIs, now and in the future
APIs, now and in the future
 
Web versus Native: round 1!
Web versus Native: round 1!Web versus Native: round 1!
Web versus Native: round 1!
 
Advanced #6 clean architecture
Advanced #6  clean architectureAdvanced #6  clean architecture
Advanced #6 clean architecture
 
Empowering the “Mobile Web” with Chris Mills
Empowering the “Mobile Web” with Chris MillsEmpowering the “Mobile Web” with Chris Mills
Empowering the “Mobile Web” with Chris Mills
 
Empowering the Mobile Web - Mills
Empowering the Mobile Web - MillsEmpowering the Mobile Web - Mills
Empowering the Mobile Web - Mills
 
Empowering the "mobile web"
Empowering the "mobile web"Empowering the "mobile web"
Empowering the "mobile web"
 
Continuous Integration and Deployment Best Practices on AWS
 Continuous Integration and Deployment Best Practices on AWS  Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWS
 
(BDT402) Performance Profiling in Production: Analyzing Web Requests at Scale...
(BDT402) Performance Profiling in Production: Analyzing Web Requests at Scale...(BDT402) Performance Profiling in Production: Analyzing Web Requests at Scale...
(BDT402) Performance Profiling in Production: Analyzing Web Requests at Scale...
 
Continuous Deployment: The Dirty Details
Continuous Deployment: The Dirty DetailsContinuous Deployment: The Dirty Details
Continuous Deployment: The Dirty Details
 
Grokking Engineering - Data Analytics Infrastructure at Viki - Huy Nguyen
Grokking Engineering - Data Analytics Infrastructure at Viki - Huy NguyenGrokking Engineering - Data Analytics Infrastructure at Viki - Huy Nguyen
Grokking Engineering - Data Analytics Infrastructure at Viki - Huy Nguyen
 
Intro To webOS
Intro To webOSIntro To webOS
Intro To webOS
 
APIs for modern web apps
APIs for modern web appsAPIs for modern web apps
APIs for modern web apps
 
Serverless in production, an experience report
Serverless in production, an experience reportServerless in production, an experience report
Serverless in production, an experience report
 
System insight without Interference
System insight without InterferenceSystem insight without Interference
System insight without Interference
 
Serverless in production, an experience report (London DevOps)
Serverless in production, an experience report (London DevOps)Serverless in production, an experience report (London DevOps)
Serverless in production, an experience report (London DevOps)
 
Serverless in production, an experience report (FullStack 2018)
Serverless in production, an experience report (FullStack 2018)Serverless in production, an experience report (FullStack 2018)
Serverless in production, an experience report (FullStack 2018)
 
Going Node At Netflix
Going Node At NetflixGoing Node At Netflix
Going Node At Netflix
 
Cloud patterns applied
Cloud patterns appliedCloud patterns applied
Cloud patterns applied
 
Practical Cloud & Workflow Orchestration
Practical Cloud & Workflow OrchestrationPractical Cloud & Workflow Orchestration
Practical Cloud & Workflow Orchestration
 
Serverless in Production, an experience report (AWS UG South Wales)
Serverless in Production, an experience report (AWS UG South Wales)Serverless in Production, an experience report (AWS UG South Wales)
Serverless in Production, an experience report (AWS UG South Wales)
 

More from Outlyer

Murat Karslioglu, VP Solutions @ OpenEBS - Containerized storage for containe...
Murat Karslioglu, VP Solutions @ OpenEBS - Containerized storage for containe...Murat Karslioglu, VP Solutions @ OpenEBS - Containerized storage for containe...
Murat Karslioglu, VP Solutions @ OpenEBS - Containerized storage for containe...
Outlyer
 
How & When to Feature Flag
How & When to Feature FlagHow & When to Feature Flag
How & When to Feature Flag
Outlyer
 
Why You Need to Stop Using "The" Staging Server
Why You Need to Stop Using "The" Staging ServerWhy You Need to Stop Using "The" Staging Server
Why You Need to Stop Using "The" Staging Server
Outlyer
 
How GitHub combined with CI empowers rapid product delivery at Credit Karma
How GitHub combined with CI empowers rapid product delivery at Credit Karma How GitHub combined with CI empowers rapid product delivery at Credit Karma
How GitHub combined with CI empowers rapid product delivery at Credit Karma
Outlyer
 
Packaging Services with Nix
Packaging Services with NixPackaging Services with Nix
Packaging Services with Nix
Outlyer
 
Minimum Viable Docker: our journey towards orchestration
Minimum Viable Docker: our journey towards orchestrationMinimum Viable Docker: our journey towards orchestration
Minimum Viable Docker: our journey towards orchestration
Outlyer
 
Ops is dead. long live ops.
Ops is dead. long live ops.Ops is dead. long live ops.
Ops is dead. long live ops.
Outlyer
 
The service mesh: resilient communication for microservice applications
The service mesh: resilient communication for microservice applicationsThe service mesh: resilient communication for microservice applications
The service mesh: resilient communication for microservice applications
Outlyer
 
Microservices: Why We Did It (and should you?)
Microservices: Why We Did It (and should you?) Microservices: Why We Did It (and should you?)
Microservices: Why We Did It (and should you?)
Outlyer
 
Renan Dias: Using Alexa to deploy applications to Kubernetes
Renan Dias: Using Alexa to deploy applications to KubernetesRenan Dias: Using Alexa to deploy applications to Kubernetes
Renan Dias: Using Alexa to deploy applications to Kubernetes
Outlyer
 
Alex Dias: how to build a docker monitoring solution
Alex Dias: how to build a docker monitoring solution Alex Dias: how to build a docker monitoring solution
Alex Dias: how to build a docker monitoring solution
Outlyer
 
How to build a container monitoring solution - David Gildeh, CEO and Co-Found...
How to build a container monitoring solution - David Gildeh, CEO and Co-Found...How to build a container monitoring solution - David Gildeh, CEO and Co-Found...
How to build a container monitoring solution - David Gildeh, CEO and Co-Found...
Outlyer
 
Heresy in the church of - Corey Quinn, Principal at The Quinn Advisory Group
Heresy in the church of - Corey Quinn, Principal at The Quinn Advisory Group Heresy in the church of - Corey Quinn, Principal at The Quinn Advisory Group
Heresy in the church of - Corey Quinn, Principal at The Quinn Advisory Group
Outlyer
 
Anatomy of a real-life incident -Alex Solomon, CTO and Co-Founder of PagerDuty
Anatomy of a real-life incident -Alex Solomon, CTO and Co-Founder of PagerDutyAnatomy of a real-life incident -Alex Solomon, CTO and Co-Founder of PagerDuty
Anatomy of a real-life incident -Alex Solomon, CTO and Co-Founder of PagerDuty
Outlyer
 
A Holistic View of Operational Capabilities—Roy Rapoport, Insight Engineering...
A Holistic View of Operational Capabilities—Roy Rapoport, Insight Engineering...A Holistic View of Operational Capabilities—Roy Rapoport, Insight Engineering...
A Holistic View of Operational Capabilities—Roy Rapoport, Insight Engineering...
Outlyer
 
The Network Knows—Avi Freedman, CEO & Co-Founder of Kentik
The Network Knows—Avi Freedman, CEO & Co-Founder of Kentik The Network Knows—Avi Freedman, CEO & Co-Founder of Kentik
The Network Knows—Avi Freedman, CEO & Co-Founder of Kentik
Outlyer
 
Building a production-ready, fully-scalable Docker Swarm using Terraform & Pa...
Building a production-ready, fully-scalable Docker Swarm using Terraform & Pa...Building a production-ready, fully-scalable Docker Swarm using Terraform & Pa...
Building a production-ready, fully-scalable Docker Swarm using Terraform & Pa...
Outlyer
 
Zero Downtime Postgres Upgrades
Zero Downtime Postgres UpgradesZero Downtime Postgres Upgrades
Zero Downtime Postgres Upgrades
Outlyer
 
DOXLON November 2016: Facebook Engineering on cgroupv2
DOXLON November 2016: Facebook Engineering on cgroupv2DOXLON November 2016: Facebook Engineering on cgroupv2
DOXLON November 2016: Facebook Engineering on cgroupv2
Outlyer
 
DOXLON November 2016 - ELK Stack and Beats
DOXLON November 2016 - ELK Stack and Beats DOXLON November 2016 - ELK Stack and Beats
DOXLON November 2016 - ELK Stack and Beats
Outlyer
 

More from Outlyer (20)

Murat Karslioglu, VP Solutions @ OpenEBS - Containerized storage for containe...
Murat Karslioglu, VP Solutions @ OpenEBS - Containerized storage for containe...Murat Karslioglu, VP Solutions @ OpenEBS - Containerized storage for containe...
Murat Karslioglu, VP Solutions @ OpenEBS - Containerized storage for containe...
 
How & When to Feature Flag
How & When to Feature FlagHow & When to Feature Flag
How & When to Feature Flag
 
Why You Need to Stop Using "The" Staging Server
Why You Need to Stop Using "The" Staging ServerWhy You Need to Stop Using "The" Staging Server
Why You Need to Stop Using "The" Staging Server
 
How GitHub combined with CI empowers rapid product delivery at Credit Karma
How GitHub combined with CI empowers rapid product delivery at Credit Karma How GitHub combined with CI empowers rapid product delivery at Credit Karma
How GitHub combined with CI empowers rapid product delivery at Credit Karma
 
Packaging Services with Nix
Packaging Services with NixPackaging Services with Nix
Packaging Services with Nix
 
Minimum Viable Docker: our journey towards orchestration
Minimum Viable Docker: our journey towards orchestrationMinimum Viable Docker: our journey towards orchestration
Minimum Viable Docker: our journey towards orchestration
 
Ops is dead. long live ops.
Ops is dead. long live ops.Ops is dead. long live ops.
Ops is dead. long live ops.
 
The service mesh: resilient communication for microservice applications
The service mesh: resilient communication for microservice applicationsThe service mesh: resilient communication for microservice applications
The service mesh: resilient communication for microservice applications
 
Microservices: Why We Did It (and should you?)
Microservices: Why We Did It (and should you?) Microservices: Why We Did It (and should you?)
Microservices: Why We Did It (and should you?)
 
Renan Dias: Using Alexa to deploy applications to Kubernetes
Renan Dias: Using Alexa to deploy applications to KubernetesRenan Dias: Using Alexa to deploy applications to Kubernetes
Renan Dias: Using Alexa to deploy applications to Kubernetes
 
Alex Dias: how to build a docker monitoring solution
Alex Dias: how to build a docker monitoring solution Alex Dias: how to build a docker monitoring solution
Alex Dias: how to build a docker monitoring solution
 
How to build a container monitoring solution - David Gildeh, CEO and Co-Found...
How to build a container monitoring solution - David Gildeh, CEO and Co-Found...How to build a container monitoring solution - David Gildeh, CEO and Co-Found...
How to build a container monitoring solution - David Gildeh, CEO and Co-Found...
 
Heresy in the church of - Corey Quinn, Principal at The Quinn Advisory Group
Heresy in the church of - Corey Quinn, Principal at The Quinn Advisory Group Heresy in the church of - Corey Quinn, Principal at The Quinn Advisory Group
Heresy in the church of - Corey Quinn, Principal at The Quinn Advisory Group
 
Anatomy of a real-life incident -Alex Solomon, CTO and Co-Founder of PagerDuty
Anatomy of a real-life incident -Alex Solomon, CTO and Co-Founder of PagerDutyAnatomy of a real-life incident -Alex Solomon, CTO and Co-Founder of PagerDuty
Anatomy of a real-life incident -Alex Solomon, CTO and Co-Founder of PagerDuty
 
A Holistic View of Operational Capabilities—Roy Rapoport, Insight Engineering...
A Holistic View of Operational Capabilities—Roy Rapoport, Insight Engineering...A Holistic View of Operational Capabilities—Roy Rapoport, Insight Engineering...
A Holistic View of Operational Capabilities—Roy Rapoport, Insight Engineering...
 
The Network Knows—Avi Freedman, CEO & Co-Founder of Kentik
The Network Knows—Avi Freedman, CEO & Co-Founder of Kentik The Network Knows—Avi Freedman, CEO & Co-Founder of Kentik
The Network Knows—Avi Freedman, CEO & Co-Founder of Kentik
 
Building a production-ready, fully-scalable Docker Swarm using Terraform & Pa...
Building a production-ready, fully-scalable Docker Swarm using Terraform & Pa...Building a production-ready, fully-scalable Docker Swarm using Terraform & Pa...
Building a production-ready, fully-scalable Docker Swarm using Terraform & Pa...
 
Zero Downtime Postgres Upgrades
Zero Downtime Postgres UpgradesZero Downtime Postgres Upgrades
Zero Downtime Postgres Upgrades
 
DOXLON November 2016: Facebook Engineering on cgroupv2
DOXLON November 2016: Facebook Engineering on cgroupv2DOXLON November 2016: Facebook Engineering on cgroupv2
DOXLON November 2016: Facebook Engineering on cgroupv2
 
DOXLON November 2016 - ELK Stack and Beats
DOXLON November 2016 - ELK Stack and Beats DOXLON November 2016 - ELK Stack and Beats
DOXLON November 2016 - ELK Stack and Beats
 

Recently uploaded

How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
Abida Shariff
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 

Recently uploaded (20)

How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 

Jozef Ve Providing Scalability for Pirates, Lizards and Zombies at #DOXLON

  • 1. Providing scalability for Pirates, Lizards and Zombies. August 2014 Amanda& Pla)orm&for&distributed&services
  • 2. Who am I Software developer at MPC ! Python since 2009 ! Loves services ! Obsessed by monitoring ! @JozefVanE on twitter
  • 3. Who is MPC We create Visual Effects ! »Advertising »Feature films
  • 4. We create Visual Effects ! »Across 8 sites »Fully integrated cross site pipeline
  • 5. What are visual effects? Visual effects involve the integration of live-action footage and generated imagery to create environments which look realistic, but would be dangerous, expensive, impractical, or simply impossible to capture on film. (source wikipedia)
  • 6. What are visual effects?
  • 7. What are visual effects?
  • 8. What are visual effects?
  • 9. What are visual effects?
  • 11. Production considerations » Management » Assets, Production, Users » Various sources » Used by: » In house tools » 3rd party applications » Multiple environments » Users » Artists » Developers
  • 12. MPC’s approach - Amanda » Service based architecture » Platform as a service » Multi protocol, transport and concurrency » Ecosystem to write a service for developers of any level » 1st generation 2007 » 2nd generation 2012-2013
  • 13. Some statistics. ! » Godzilla » 450 years if rendered on a single machine
  • 14. Some statistics. ! » Godzilla » 450 years if rendered on a single machine » Or, 15 years after Henry 8th died
  • 15. Some statistics. ! » Godzilla » 650 TB of data
  • 16. Some statistics. ! » Godzilla » 650 TB of data » Or, 41000 mobile phones with 16GB drives.
  • 17. Some statistics. ! » Godzilla » 250.000 Amanda req/min.
  • 18. Some statistics. ! » Godzilla » 250.000 Amanda req/min. » Or, 4 times Germany VS Brazil tweets
  • 19. Amanda - building the platform
  • 20. Amanda - building the platform
  • 21. Amanda - building the platform Services class MakeMovieService(object):! ! @public! def greet_director(self, director_name):! return "hello %s" % (director_name,)!
  • 22. Amanda - building the platform We have a service, but lets make it do something useful
  • 23. Amanda - building the platform Infrastructures class MakeMovieService(object):! storage = Dependency(“storage")! def _check_data_on_disk(self, files):! """ Check data is available! """! return self.storage.check_exists(files)!
  • 24. Amanda - building the platform Infrastructures class MakeMovieService(object):! storage = Dependency(“storage")! def _check_data_on_disk(self, files):! """ Check data is available! """! return self.storage.check_exists(files)! def _get_shot(self, shot):! """ Get shot data! """! query = "<insert db query>"! return self._db.execute(query, (shot,))! !
  • 25. Amanda - building the platform Infrastructures class MakeMovieService(object):! storage = Dependency(“storage")! def _check_data_on_disk(self, files):! """ Check data is available! """! return self.storage.check_exists(files)! def _get_shot(self, shot):! """ Get shot data! """! query = "<insert db query>"! return self._db.execute(query, (shot,))! ! @public! def make_movie_magic(self, shotInfo):! """ Do some magic! """! shot = self._get_shot(shotInfo)! if not self._check_data_on_disk(shot["files"]):! self._log.error(‘files not found')! raise DataNotAvailable()! self._do_magic(shot["files"], self._config.production.jobsite())
  • 26. Amanda - building the platform Ok now it is doing something but that is one user, one service and not very useful at scale…
  • 27. Amanda - building the platform
  • 28. Amanda - building the platform Service providers services = ServiceProvider(! make_movies=MakeMovieService,! storage=StorageService! config=ConfigService! logging=LoggingService! __infrastructure__={! "_db": DbInfrastructure,! "_config": ConfigInfrastructure,! "_xmesh": XmeshInfrastructure,! "_log": LoggingInfrastructure! }! )! services.make_movies.make_movie_magic("shot1")! services.logging.change_logging_level("make_movies", "debug")!
  • 29. Amanda - building the platform
  • 30. Amanda - building the platform Proxies class Proxy(object):! ! def __getattr__(self, method):! def method_stand_in(*args, **kwargs):! return self._transport.publish(self._service, method, *args, **kwargs)! return method_stand_in! ! services = ServiceProvider(! make_movies=Proxy("make_movies", transport)! )! services.make_movies.do_movie_magic(“shot1”)! !
  • 31. Amanda - building the platform
  • 32. Amanda - building the platform Ok, at this point we can scale a bit but what about concurrency/parallel processing?
  • 33. Amanda - building the platform
  • 34. Amanda - building the platform
  • 35. Amanda - building the platform
  • 36. Amanda - building the platform This gives us all the building blocks to assemble a distributed system with the possibility to use the best technologies for the given tasks
  • 37. Amanda - assembling & maintaining the platform
  • 38. Amanda - assembling & maintaining the platform Setting up for a cross language pipeline.
  • 39. Amanda - assembling & maintaining the platform
  • 40. Amanda - assembling & maintaining the platform
  • 41. Amanda - assembling & maintaining the platform Setting up for a cross language, fault tolerant pipeline.
  • 42. Amanda - assembling & maintaining the platform Setting up for cross language, fault tolerant, monitorable pipeline.
  • 43. Amanda - assembling & maintaining the platform request: userAdmin, getUserIdByUserName, [u'jozef'], {} request id: 1393351037.307669-userAdmin-staffdirectory-3500, by jozef from staffdirectory exception: <type 'NoneType'>, None handled by: amanda-host-1_28368-GeventConcurrencyPool_worker_37 stats: sent on Tue Feb 25 17:57:17 2014 received on Tue Feb 25 17:57:17 2014 frontend->backend delivery took 0.003s` internal queuing took 0.0000015s request execution took 0.005s total time: 0.011s
  • 44. Amanda - assembling & maintaining the platform internal queuing: 0.0000015s frontend->backend: 0.003s total time: 0.011s request execution: 0.005s
  • 45. Amanda - assembling & maintaining the platform » Maintenance. » Salt » Extended with an Amanda module. » Salt client wrapped inside a service so we can access it from anywhere not just the master node. » Predefined, repeatable configuration.
  • 46. Amanda » Adaptable » Extendable » Configurable » Best of breeds
  • 47. Amanda » Looking ahead » Containerisation » Auto scaling » Open sourcing possibilities
  • 49. We’re Now Hiring! ! Opportunities across all our Studios and across all disciplines ! Check out www.moving-picture.com for vacancies ! Or email recruitment@moving-picture.com
  • 50. Amanda Thank you, any questions? Jozef van Eenbergen - twitter: @JozefVanE