SlideShare a Scribd company logo
1 of 153
Download to read offline
Fabio Simeoni (FAO)
Lucio Lelii (CNR)
Andrea Manzi (CERN)
SmartGears
invisible software
Monday, 14 October 13
2
Monday, 14 October 13
2
“a set of Java libraries that turn
Servlet-compliant containers and applications
into gCube resources, transparently.”
gCube Wiki
Monday, 14 October 13
3
turn software and containers
into gCube resources
Monday, 14 October 13
3
turn software and containers
into gCube resources
what does it mean ?
Monday, 14 October 13
4
Monday, 14 October 13
4
“Software-as-Resource”
Monday, 14 October 13
4
“Software-as-Resource”
software we can manage.
Monday, 14 October 13
5
Monday, 14 October 13
5
software we can discover
use without hardcoded knowledge
Monday, 14 October 13
5
software we can discover
use without hardcoded knowledge
monitor and control
take actions when not operational
Monday, 14 October 13
5
software we can discover
use without hardcoded knowledge
monitor and control
take actions when not operational
dedicate to user groups
change policies, assign roles
Monday, 14 October 13
6
Monday, 14 October 13
6
“Container-as-Resource”
gCube Hosting Nodes
Monday, 14 October 13
6
“Container-as-Resource”
same goals, same requirements
publication and discovery
lifecycle management
resource sharing
gCube Hosting Nodes
Monday, 14 October 13
7
Monday, 14 October 13
7
management tasks
compile and publish descriptions
track and change status
enforce policies
Monday, 14 October 13
7
management tasks
compile and publish descriptions
track and change status
enforce policies
human solutions
not practical, often impossible
Monday, 14 October 13
7
management tasks
compile and publish descriptions
track and change status
enforce policies
human solutions
not practical, often impossible
automated solutions
local enabling software, remotely controlled
Monday, 14 October 13
8
Monday, 14 October 13
8
status quo
the gCube Core Framework
Monday, 14 October 13
8
status quo
the gCube Core Framework
produces SaR
software built to be managed
Monday, 14 October 13
8
status quo
the gCube Core Framework
produces SaR
software built to be managed
specifically and exclusively for gCube.
Monday, 14 October 13
9
Monday, 14 October 13
9
a closed world
a place where to build gCube
Monday, 14 October 13
9
a closed world
a place where to build gCube
has been good
consistent, massive growth
Monday, 14 October 13
9
a closed world
a place where to build gCube
has been good
consistent, massive growth
now it’s bad.
Monday, 14 October 13
10
Monday, 14 October 13
10
can’t manage external software
not in gCube, not a SaR
Monday, 14 October 13
10
can’t manage external software
not in gCube, not a SaR
can’t reuse gCube software
in gCube, in gCube only
Monday, 14 October 13
10
can’t manage external software
not in gCube, not a SaR
little incentive to build SaR
can’t reuse gCube software
in gCube, in gCube only
: closed worlds have locks
Monday, 14 October 13
11
Monday, 14 October 13
11
one type of SaR
legacy JAX-RPC
no JAX-RS, JAX-WS, or other “hot” techs
Monday, 14 October 13
11
one type of SaR
legacy JAX-RPC
no JAX-RS, JAX-WS, or other “hot” techs
for one container
Globus/Axis
no web containers, no app servers
Monday, 14 October 13
11
one type of SaR
legacy JAX-RPC
no JAX-RS, JAX-WS, or other “hot” techs
for one container
Globus/Axis
no web containers, no app servers
little technical evolution for gCube
: closed worlds become stale
Monday, 14 October 13
12
Monday, 14 October 13
12
the age problem
long perceived
Monday, 14 October 13
12
the age problem
long perceived
misguided facelifts
myopic, prohibitively expensive
Monday, 14 October 13
13
Monday, 14 October 13
13
the visibility problem
top of the stack, in the middle of design
Monday, 14 October 13
13
the visibility problem
top of the stack, in the middle of design
creates locks
can’t work without them
Monday, 14 October 13
13
the visibility problem
top of the stack, in the middle of design
creates locks
can’t work without them
can’t easily replace them
locks rust over time
Monday, 14 October 13
14
Monday, 14 October 13
14
SmartGears
invisible software
Monday, 14 October 13
14
gCube resources, without locks.
SmartGears
invisible software
Monday, 14 October 13
15
Monday, 14 October 13
15
installs in any Servlet container
entirely specs-driven
Monday, 14 October 13
15
installs in any Servlet container
entirely specs-driven
wakes up when apps do
considers only apps that carry a SaR “badge”
Monday, 14 October 13
16
Monday, 14 October 13
16
a “corolla” of manager components
injects logic in app/request lifecycles
Monday, 14 October 13
16
a “corolla” of manager components
injects logic in app/request lifecycles
listening for remote instructions
extends application API
Monday, 14 October 13
16
a “corolla” of manager components
injects logic in app/request lifecycles
listening for remote instructions
extends application API
if it runs at least one SaR, or until it does
keeps books for the container
Monday, 14 October 13
17
Monday, 14 October 13
17
container
Monday, 14 October 13
17
container app
Monday, 14 October 13
17
container app SaR
Monday, 14 October 13
17
container app SaR SmartGears
Monday, 14 October 13
17
container app SaR SmartGears
install
Monday, 14 October 13
startup-ignore
17
container app SaR SmartGears
Monday, 14 October 13
startup-manage
17
container app SaR SmartGears
Monday, 14 October 13
api-extend
17
container app SaR SmartGears
Monday, 14 October 13
container-manage
17
container app SaR SmartGears
Monday, 14 October 13
17
container app SaR SmartGears
Monday, 14 October 13
18
Monday, 14 October 13
18
SmartGears like FWS
overlapping sets of “microlibs”
Monday, 14 October 13
18
SmartGears like FWS
overlapping sets of “microlibs”
dual roles
make resources vs. call resources
Monday, 14 October 13
18
SmartGears like FWS
overlapping sets of “microlibs”
common theme
quarantine legacy
dual roles
make resources vs. call resources
Monday, 14 October 13
18
SmartGears like FWS
overlapping sets of “microlibs”
common theme
quarantine legacy
visible stack vs. invisible runtime
different nature
dual roles
make resources vs. call resources
Monday, 14 October 13
19
Monday, 14 October 13
19
what, why, how, quick tour.
Monday, 14 October 13
20
Monday, 14 October 13
20
a few demands.
Monday, 14 October 13
20
a few demands.
Servlet 3
all the right hooks
Monday, 14 October 13
20
a few demands.
Servlet 3
all the right hooks
container descriptor
$GHN_HOME/container.xml
Monday, 14 October 13
20
a few demands.
Servlet 3
all the right hooks
container descriptor
$GHN_HOME/container.xml
application descriptor
WEB-INF/gcube-app.xml
Monday, 14 October 13
21
<container mode='online'>
<hostname>acme.org</hostname>
<port>8081</port>
<infrastructure>gcube</infrastructure>
<vo>devsec</vo>
<vo>devNext</vo>
<persistence>some/alternative/location</persistence>
<site>
<country>it</country>
<location>rome</location>
<latitude>41.9000</latitude>
<longitude>12.5000</longitude>
</site>
<property name='prop1' value='val1' />
<property name='prop2' value='val2' />
<publication-frequency>60</publication-frequency>
</container>
container.xml
Monday, 14 October 13
22
<application mode="online">
<name>lorem</name>
<group>ipsum</group>
<version>1.0</version>
<description>Lorem ipsum dolor sit amet...</description>
<persistence>/some/custom/location</persistence>
<exclude>/some/app/url</exclude>
<exclude>/some/other/custom/url</exclude>
</application>
gcube-app.xml
Monday, 14 October 13
23
Monday, 14 October 13
23
the tarball
smartgears-distribution.tar.gz
(Maven, Wiki)
Monday, 14 October 13
23
the tarball
smartgears-distribution.tar.gz
(Maven, Wiki)
install, upgrade, maintain
libraries, scripts, config, apps
Monday, 14 October 13
23
the tarball
smartgears-distribution.tar.gz
(Maven, Wiki)
install, upgrade, maintain
libraries, scripts, config, apps
follow admin guide.
Monday, 14 October 13
24
Monday, 14 October 13
24
“microlibs”
unobtrusive tooling
Monday, 14 October 13
24
“microlibs”
narrow focus, no popular deps
single-minded, stand-alone
unobtrusive tooling
Monday, 14 October 13
24
“microlibs”
narrow focus, no popular deps
single-minded, stand-alone
modular, made-to-measure assemblies
yet gregarious
unobtrusive tooling
Monday, 14 October 13
25
Monday, 14 October 13
25
common-smartgears
Monday, 14 October 13
25
common-smartgears
common-events
common-validator
common-scope
registry-publisher
common-gcore-resources
common-smartgears-app
common-configuration-scanner
common-scope-maps
discovery-client
ic-client
common-gcore-stubs
Monday, 14 October 13
26
Monday, 14 October 13
26
shared deployment
outside and visible to all apps
Monday, 14 October 13
26
shared deployment
shared container state
easy and lean app packaging
node consistency and upgrades
some advantages
outside and visible to all apps
Monday, 14 October 13
26
shared deployment
shared container state
easy and lean app packaging
node consistency and upgrades
some advantages
version-clashes harder to handle
much caution
outside and visible to all apps
Monday, 14 October 13
27
Monday, 14 October 13
09:50:17.031 [http-bio-8080-exec-2] INFO ContainerManager: starting container management
09:50:17.037 [http-bio-8080-exec-2] TRACE Provider: reading container configuration @ /Users/fabio/workspaces/indigo/smartgears-testparty/
smartgears-webapp/ghn-home/container.x$
09:50:17.108 [http-bio-8080-exec-2] TRACE Provider: setting persistence location for container @ /Users/fabio/workspaces/indigo/smartgears-
testparty/smartgears-webapp/ghn-home/$
09:50:17.130 [http-bio-8080-exec-2] TRACE ContainerManager: managing container lifecycle with [profile-management]
09:50:17.132 [http-bio-8080-exec-2] INFO ProfileManager: loading container profile @ /Users/fabio/workspaces/indigo/smartgears-testparty/
smartgears-webapp/ghn-home/state/ghn.x$
09:50:17.222 [http-bio-8080-exec-2] INFO ProfileBuilder: updating ghn profile
09:50:17.246 [http-bio-8080-exec-2] TRACE ProfileManager: sharing container profile
09:50:17.252 [http-bio-8080-exec-2] TRACE Lifecycle: container transitioned from started to active
09:50:17.254 [http-bio-8080-exec-2] INFO Bootstrap: starting management of application @ /test-app
09:50:17.255 [pool-1-thread-1] INFO ProfilePublisher: publishing container in scopes [/gcube, /gcube/devsec, /gcube/devNext]
09:50:17.256 [pool-1-thread-4] TRACE ProfileManager: storing container profile @ /Users/fabio/workspaces/indigo/smartgears-testparty/
smartgears-webapp/ghn-home/state/ghn.xml
09:50:17.266 [http-bio-8080-exec-2] TRACE ApplicationConfiguration: setting persistence location for test-app @ /Users/fabio/workspaces/indigo/
smartgears-testparty/smartgears-w$
09:50:17.271 [http-bio-8080-exec-2] TRACE Provider: test-app uses the default lifecycle as it does not include /WEB-INF/gcube-handlers.xml
09:50:17.286 [http-bio-8080-exec-2] TRACE Provider: test-app uses default extensions as it does not include /WEB-INF/gcube-extensions.xml
09:50:17.299 [http-bio-8080-exec-2] TRACE ApplicationManager: managing test-app lifecycle with [profile-management]
09:50:17.299 [http-bio-8080-exec-2] TRACE ApplicationManager: managing test-app requests with [request-validation]
27
logging
so simple, so hard
Monday, 14 October 13
28
Monday, 14 October 13
28
with container and app logs
no interference
Monday, 14 October 13
28
with container and app logs
no interference
the only externals
slf4j + logback
Monday, 14 October 13
28
with container and app logs
no interference
the only externals
slf4j + logback
when apps make same choice
difficult cases
Monday, 14 October 13
28
with container and app logs
no interference
the only externals
slf4j + logback
when apps make same choice
difficult cases
and yet we are ok.
Monday, 14 October 13
29
Monday, 14 October 13
29
servlets for remote management
API extensions
Monday, 14 October 13
29
servlets for remote management
API extensions
GET /
GET /profile
GET /configuration
GET /lifecycle
POST /lifecycle
GET /scopes
POST scopes
...<app-root>/gcube/resource...
Monday, 14 October 13
30
Monday, 14 October 13
30
Monday, 14 October 13
31
Monday, 14 October 13
31
from app to resource with a config file
gCube-agnostic apps
Monday, 14 October 13
31
the fabric of gCube
gCube-aware apps
from app to resource with a config file
gCube-agnostic apps
Monday, 14 October 13
31
the fabric of gCube
gCube-aware apps
inspect, subscribe, react
born to be resources
from app to resource with a config file
gCube-agnostic apps
Monday, 14 October 13
31
the fabric of gCube
gCube-aware apps
inspect, subscribe, react
born to be resources
SmartGears must become visible.
from app to resource with a config file
gCube-agnostic apps
Monday, 14 October 13
32
Monday, 14 October 13
32
via ServletContext
partial API exposure
Monday, 14 October 13
32
via ServletContext
partial API exposure
access to information and events
(Application|Container) Context
Monday, 14 October 13
32
via ServletContext
partial API exposure
access to information and events
(Application|Container) Context
interface ApplicationContext {
ApplicationConfiguration configuration();
T profile(Class<T> type);
ApplicationLifecycle lifecycle();
Hub events();
Persistence persistence();
ContainerContext container();
Properties properties();
}
interface ContainerContext {
ContainerConfiguration configuration();
T profile(Class<T> type);
ContainerLifecycle lifecycle();
Hub events();
Persistence persistence();
Properties properties();
}
Monday, 14 October 13
33
Monday, 14 October 13
33
easy access to ApplicationContext
common-smartgears-app
Monday, 14 October 13
33
easy access to ApplicationContext
common-smartgears-app
Servlet 3 @WebListener
adds startup listener to app
Monday, 14 October 13
33
easy access to ApplicationContext
common-smartgears-app
Servlet 3 @WebListener
adds startup listener to app
a ContextProvider
injects context in a static factory
Monday, 14 October 13
33
easy access to ApplicationContext
common-smartgears-app
ApplicationContext = ContextProvider.get()
Servlet 3 @WebListener
adds startup listener to app
a ContextProvider
injects context in a static factory
Monday, 14 October 13
34
Monday, 14 October 13
34
BOM-driven
Maven dependencies
Monday, 14 October 13
34
BOM-driven
Maven dependencies
<dependency>
<groupId>org.gcube.distribution</groupId>
<artifactId>maven-smartgears-bom</artifactId>
<version>LATEST</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.gcube.core</groupId>
<artifactId>common-smartgears-app</artifactId>
</dependency>
<dependency>
<groupId>org.gcube.core</groupId>
<artifactId>common-smartgears</artifactId>
</dependency>
Monday, 14 October 13
35
Monday, 14 October 13
35
beautifully private.
design internals
Monday, 14 October 13
35
beautifully private.
design internals
bootstrap, managers, lifecycle,
contexts, events, validation
handler/extension APIs
hollow kernel
Monday, 14 October 13
35
beautifully private.
design internals
bootstrap, managers, lifecycle,
contexts, events, validation
handler/extension APIs
hollow kernel
implementations are configured
defaults can be (en|dis)-abled, infinitely extensible
dynamically populated
Monday, 14 October 13
35
beautifully private.
design internals
bootstrap, managers, lifecycle,
contexts, events, validation
handler/extension APIs
hollow kernel
implementations are configured
defaults can be (en|dis)-abled, infinitely extensible
dynamically populated
embedded Tomcat
dedicated test framework
Monday, 14 October 13
36
Monday, 14 October 13
36
gCube calls to SmartGears apps
FWS alignment
Monday, 14 October 13
36
gCube calls to SmartGears apps
FWS alignment
abstract call interceptors
common-gcube-calls
Monday, 14 October 13
36
gCube calls to SmartGears apps
FWS alignment
abstract call interceptors
common-gcube-calls
bridge for JAX-WS stack
common-jaxws-calls
Monday, 14 October 13
36
gCube calls to SmartGears apps
FWS alignment
abstract call interceptors
common-gcube-calls
bridge for JAX-WS stack
common-jaxws-calls
only gCube-aware clients
CLs, portlets
with limitations
Monday, 14 October 13
37
common-gcore-clients common-fw-clients common-generic-clients
FeatherWeight StackgCore Stack
service service service
common--clients
common--gcube-calls
common--jaxws-calls
gCore Servlet
WP 11
WP 8
WP 8
Monday, 14 October 13
37
common-generic-clients
CL alignment
common-gcore-clients common-fw-clients common-generic-clients
FeatherWeight StackgCore Stack
service service service
common--clients
common--gcube-calls
common--jaxws-calls
gCore Servlet
WP 11
WP 8
WP 8
Monday, 14 October 13
38
Monday, 14 October 13
38
October 2013
SmartGears 1.0.0
Monday, 14 October 13
38
October 2013
SmartGears 1.0.0
co-released with 2 in FWS, 1 for CLs
6 new components
Monday, 14 October 13
38
October 2013
SmartGears 1.0.0
co-released with 2 in FWS, 1 for CLs
6 new components
TDS service
(JAXWS)
one early adopter
Monday, 14 October 13
39
Monday, 14 October 13
39
what comes next
Monday, 14 October 13
39
gCube catches up.
what comes next
Monday, 14 October 13
40
Monday, 14 October 13
40
adoptions
FAO and NKUA apps await
Monday, 14 October 13
40
adoptions
FAO and NKUA apps await
Web Hosting Manager
the new gHN Manager
Monday, 14 October 13
40
adoptions
FAO and NKUA apps await
Web Hosting Manager
the new gHN Manager
enabling alignment
gCore vs. SmartGears forks
Monday, 14 October 13
41
Monday, 14 October 13
41
gCube-agnostic clients
best-effort magic
Monday, 14 October 13
41
gCube-agnostic clients
best-effort magic
dynamic deployment
totally revisited
Monday, 14 October 13
41
gCube-agnostic clients
best-effort magic
new resource model
SmartGears as launch platform
dynamic deployment
totally revisited
Monday, 14 October 13
42
Monday, 14 October 13
42
exciting times.
Monday, 14 October 13
42
exciting times.
find more in dev guide.
Monday, 14 October 13
43
Monday, 14 October 13
43
to George K.
who was right all along.
Monday, 14 October 13

More Related Content

What's hot

Streamline your development environment with docker
Streamline your development environment with dockerStreamline your development environment with docker
Streamline your development environment with dockerGiacomo Bagnoli
 
Working with multiple git repositories
Working with multiple git repositoriesWorking with multiple git repositories
Working with multiple git repositoriesJulien Pivotto
 
PuppetConf 2014 Killer R10K Workflow With Notes
PuppetConf 2014 Killer R10K Workflow With NotesPuppetConf 2014 Killer R10K Workflow With Notes
PuppetConf 2014 Killer R10K Workflow With NotesPhil Zimmerman
 
Rh developers fat jar smackdown
Rh developers   fat jar smackdownRh developers   fat jar smackdown
Rh developers fat jar smackdownRed Hat Developers
 
slides.pdf
slides.pdfslides.pdf
slides.pdfvidsvagi
 
Nas 也可以揀土豆
Nas 也可以揀土豆Nas 也可以揀土豆
Nas 也可以揀土豆KAI CHU CHUNG
 
PuppetConf 2016: Running Puppet Software in Docker Containers – Gareth Rushgr...
PuppetConf 2016: Running Puppet Software in Docker Containers – Gareth Rushgr...PuppetConf 2016: Running Puppet Software in Docker Containers – Gareth Rushgr...
PuppetConf 2016: Running Puppet Software in Docker Containers – Gareth Rushgr...Puppet
 
OpenStack Swift on virtualbox
OpenStack Swift on virtualboxOpenStack Swift on virtualbox
OpenStack Swift on virtualboxAtul Jha
 
Docker italia fatti un container tutto tuo
Docker italia fatti un container tutto tuoDocker italia fatti un container tutto tuo
Docker italia fatti un container tutto tuoGiulio De Donato
 
Asynchronous Systems with Fn Flow
Asynchronous Systems with Fn FlowAsynchronous Systems with Fn Flow
Asynchronous Systems with Fn FlowJosé Paumard
 
node.js - Eventful JavaScript on the Server
node.js - Eventful JavaScript on the Servernode.js - Eventful JavaScript on the Server
node.js - Eventful JavaScript on the ServerDavid Ruiz
 
Serverless - introduction et perspectives concrètes
Serverless - introduction et perspectives concrètesServerless - introduction et perspectives concrètes
Serverless - introduction et perspectives concrètesBertrand Delacretaz
 

What's hot (15)

Vitaly ̈_Vi ̈ Shukela - Dive
Vitaly  ̈_Vi ̈ Shukela - DiveVitaly  ̈_Vi ̈ Shukela - Dive
Vitaly ̈_Vi ̈ Shukela - Dive
 
Streamline your development environment with docker
Streamline your development environment with dockerStreamline your development environment with docker
Streamline your development environment with docker
 
Working with multiple git repositories
Working with multiple git repositoriesWorking with multiple git repositories
Working with multiple git repositories
 
PuppetConf 2014 Killer R10K Workflow With Notes
PuppetConf 2014 Killer R10K Workflow With NotesPuppetConf 2014 Killer R10K Workflow With Notes
PuppetConf 2014 Killer R10K Workflow With Notes
 
Rh developers fat jar smackdown
Rh developers   fat jar smackdownRh developers   fat jar smackdown
Rh developers fat jar smackdown
 
Git: be social
Git: be socialGit: be social
Git: be social
 
slides.pdf
slides.pdfslides.pdf
slides.pdf
 
Introduction to Kalabox
Introduction to KalaboxIntroduction to Kalabox
Introduction to Kalabox
 
Nas 也可以揀土豆
Nas 也可以揀土豆Nas 也可以揀土豆
Nas 也可以揀土豆
 
PuppetConf 2016: Running Puppet Software in Docker Containers – Gareth Rushgr...
PuppetConf 2016: Running Puppet Software in Docker Containers – Gareth Rushgr...PuppetConf 2016: Running Puppet Software in Docker Containers – Gareth Rushgr...
PuppetConf 2016: Running Puppet Software in Docker Containers – Gareth Rushgr...
 
OpenStack Swift on virtualbox
OpenStack Swift on virtualboxOpenStack Swift on virtualbox
OpenStack Swift on virtualbox
 
Docker italia fatti un container tutto tuo
Docker italia fatti un container tutto tuoDocker italia fatti un container tutto tuo
Docker italia fatti un container tutto tuo
 
Asynchronous Systems with Fn Flow
Asynchronous Systems with Fn FlowAsynchronous Systems with Fn Flow
Asynchronous Systems with Fn Flow
 
node.js - Eventful JavaScript on the Server
node.js - Eventful JavaScript on the Servernode.js - Eventful JavaScript on the Server
node.js - Eventful JavaScript on the Server
 
Serverless - introduction et perspectives concrètes
Serverless - introduction et perspectives concrètesServerless - introduction et perspectives concrètes
Serverless - introduction et perspectives concrètes
 

Similar to Smartgears

Cassandra Meetup: Real-time Analytics using Cassandra, Spark and Shark at Ooyala
Cassandra Meetup: Real-time Analytics using Cassandra, Spark and Shark at OoyalaCassandra Meetup: Real-time Analytics using Cassandra, Spark and Shark at Ooyala
Cassandra Meetup: Real-time Analytics using Cassandra, Spark and Shark at OoyalaDataStax Academy
 
FUTURESTACK13: What’s New and Upcoming with New Relic from Patrick Lightbody,...
FUTURESTACK13: What’s New and Upcoming with New Relic from Patrick Lightbody,...FUTURESTACK13: What’s New and Upcoming with New Relic from Patrick Lightbody,...
FUTURESTACK13: What’s New and Upcoming with New Relic from Patrick Lightbody,...New Relic
 
GroongaアプリケーションをDockerコンテナ化して配布する
GroongaアプリケーションをDockerコンテナ化して配布するGroongaアプリケーションをDockerコンテナ化して配布する
GroongaアプリケーションをDockerコンテナ化して配布するongaeshi
 
Building a Startup Stack with AngularJS
Building a Startup Stack with AngularJSBuilding a Startup Stack with AngularJS
Building a Startup Stack with AngularJSFITC
 
Rails Sojourn: One Man's Journey - Wicked Good Ruby Conference 2013
Rails Sojourn: One Man's Journey - Wicked Good Ruby Conference 2013Rails Sojourn: One Man's Journey - Wicked Good Ruby Conference 2013
Rails Sojourn: One Man's Journey - Wicked Good Ruby Conference 2013Mike Desjardins
 
Macruby - RubyConf Presentation 2010
Macruby - RubyConf Presentation 2010Macruby - RubyConf Presentation 2010
Macruby - RubyConf Presentation 2010Matt Aimonetti
 
Recommender Systems with Ruby (adding machine learning, statistics, etc)
Recommender Systems with Ruby (adding machine learning, statistics, etc)Recommender Systems with Ruby (adding machine learning, statistics, etc)
Recommender Systems with Ruby (adding machine learning, statistics, etc)Marcel Caraciolo
 
Become Master of Your Own Universe - DIBI 2013
Become Master of Your Own Universe - DIBI 2013Become Master of Your Own Universe - DIBI 2013
Become Master of Your Own Universe - DIBI 2013Phil Sturgeon
 
Unleashing the Rails Asset Pipeline
Unleashing the Rails Asset PipelineUnleashing the Rails Asset Pipeline
Unleashing the Rails Asset PipelineKenneth Kalmer
 
Why and How to integrate Hadoop and NoSQL?
Why and How to integrate Hadoop and NoSQL?Why and How to integrate Hadoop and NoSQL?
Why and How to integrate Hadoop and NoSQL?Tugdual Grall
 
Building a platform with Django, Docker and Salt | Djangocon lightning talk
Building a platform with Django, Docker and Salt | Djangocon lightning talkBuilding a platform with Django, Docker and Salt | Djangocon lightning talk
Building a platform with Django, Docker and Salt | Djangocon lightning talkdotCloud
 
Building a Platform with Django, Docker and Salt
Building a Platform with Django, Docker and SaltBuilding a Platform with Django, Docker and Salt
Building a Platform with Django, Docker and SaltDocker, Inc.
 
Prototyping in the cloud
Prototyping in the cloudPrototyping in the cloud
Prototyping in the cloudKirsten Hunter
 
Cloud expo-east-2015
Cloud expo-east-2015Cloud expo-east-2015
Cloud expo-east-2015argvader
 
Microservices and functional programming
Microservices and functional programmingMicroservices and functional programming
Microservices and functional programmingMichael Neale
 
[B6]heroku postgres-hgmnz
[B6]heroku postgres-hgmnz[B6]heroku postgres-hgmnz
[B6]heroku postgres-hgmnzNAVER D2
 
Game Changing Dependency Management
Game Changing Dependency ManagementGame Changing Dependency Management
Game Changing Dependency ManagementJeremy Kendall
 
Lessons I Learned While Scaling to 5000 Puppet Agents
Lessons I Learned While Scaling to 5000 Puppet AgentsLessons I Learned While Scaling to 5000 Puppet Agents
Lessons I Learned While Scaling to 5000 Puppet AgentsPuppet
 

Similar to Smartgears (20)

Cassandra Meetup: Real-time Analytics using Cassandra, Spark and Shark at Ooyala
Cassandra Meetup: Real-time Analytics using Cassandra, Spark and Shark at OoyalaCassandra Meetup: Real-time Analytics using Cassandra, Spark and Shark at Ooyala
Cassandra Meetup: Real-time Analytics using Cassandra, Spark and Shark at Ooyala
 
Infrastructure as Code with Chef / Puppet
Infrastructure as Code with Chef / PuppetInfrastructure as Code with Chef / Puppet
Infrastructure as Code with Chef / Puppet
 
FUTURESTACK13: What’s New and Upcoming with New Relic from Patrick Lightbody,...
FUTURESTACK13: What’s New and Upcoming with New Relic from Patrick Lightbody,...FUTURESTACK13: What’s New and Upcoming with New Relic from Patrick Lightbody,...
FUTURESTACK13: What’s New and Upcoming with New Relic from Patrick Lightbody,...
 
GroongaアプリケーションをDockerコンテナ化して配布する
GroongaアプリケーションをDockerコンテナ化して配布するGroongaアプリケーションをDockerコンテナ化して配布する
GroongaアプリケーションをDockerコンテナ化して配布する
 
Building a Startup Stack with AngularJS
Building a Startup Stack with AngularJSBuilding a Startup Stack with AngularJS
Building a Startup Stack with AngularJS
 
Rails Sojourn: One Man's Journey - Wicked Good Ruby Conference 2013
Rails Sojourn: One Man's Journey - Wicked Good Ruby Conference 2013Rails Sojourn: One Man's Journey - Wicked Good Ruby Conference 2013
Rails Sojourn: One Man's Journey - Wicked Good Ruby Conference 2013
 
Macruby - RubyConf Presentation 2010
Macruby - RubyConf Presentation 2010Macruby - RubyConf Presentation 2010
Macruby - RubyConf Presentation 2010
 
Recommender Systems with Ruby (adding machine learning, statistics, etc)
Recommender Systems with Ruby (adding machine learning, statistics, etc)Recommender Systems with Ruby (adding machine learning, statistics, etc)
Recommender Systems with Ruby (adding machine learning, statistics, etc)
 
Become Master of Your Own Universe - DIBI 2013
Become Master of Your Own Universe - DIBI 2013Become Master of Your Own Universe - DIBI 2013
Become Master of Your Own Universe - DIBI 2013
 
Unleashing the Rails Asset Pipeline
Unleashing the Rails Asset PipelineUnleashing the Rails Asset Pipeline
Unleashing the Rails Asset Pipeline
 
Why and How to integrate Hadoop and NoSQL?
Why and How to integrate Hadoop and NoSQL?Why and How to integrate Hadoop and NoSQL?
Why and How to integrate Hadoop and NoSQL?
 
Building a platform with Django, Docker and Salt | Djangocon lightning talk
Building a platform with Django, Docker and Salt | Djangocon lightning talkBuilding a platform with Django, Docker and Salt | Djangocon lightning talk
Building a platform with Django, Docker and Salt | Djangocon lightning talk
 
Building a Platform with Django, Docker and Salt
Building a Platform with Django, Docker and SaltBuilding a Platform with Django, Docker and Salt
Building a Platform with Django, Docker and Salt
 
Prototyping in the cloud
Prototyping in the cloudPrototyping in the cloud
Prototyping in the cloud
 
Cloud expo-east-2015
Cloud expo-east-2015Cloud expo-east-2015
Cloud expo-east-2015
 
Microservices and functional programming
Microservices and functional programmingMicroservices and functional programming
Microservices and functional programming
 
[B6]heroku postgres-hgmnz
[B6]heroku postgres-hgmnz[B6]heroku postgres-hgmnz
[B6]heroku postgres-hgmnz
 
Game Changing Dependency Management
Game Changing Dependency ManagementGame Changing Dependency Management
Game Changing Dependency Management
 
Lessons I Learned While Scaling to 5000 Puppet Agents
Lessons I Learned While Scaling to 5000 Puppet AgentsLessons I Learned While Scaling to 5000 Puppet Agents
Lessons I Learned While Scaling to 5000 Puppet Agents
 
Cors michael
Cors michaelCors michael
Cors michael
 

More from Fabio Simeoni

Featherweight Clients (Athens, 2012)
Featherweight Clients (Athens, 2012)Featherweight Clients (Athens, 2012)
Featherweight Clients (Athens, 2012)Fabio Simeoni
 
Technical Report: My Container
Technical Report: My ContainerTechnical Report: My Container
Technical Report: My ContainerFabio Simeoni
 
My Container (Sophia, 2011)
My Container (Sophia, 2011)My Container (Sophia, 2011)
My Container (Sophia, 2011)Fabio Simeoni
 
Client Libraries (Rodhes, 2011)
Client Libraries (Rodhes, 2011)Client Libraries (Rodhes, 2011)
Client Libraries (Rodhes, 2011)Fabio Simeoni
 
The Virtual Repository
The Virtual RepositoryThe Virtual Repository
The Virtual RepositoryFabio Simeoni
 
the-hitchhiker-s-guide-to-testing
the-hitchhiker-s-guide-to-testingthe-hitchhiker-s-guide-to-testing
the-hitchhiker-s-guide-to-testingFabio Simeoni
 
a-strategy-for-continuous-delivery
a-strategy-for-continuous-deliverya-strategy-for-continuous-delivery
a-strategy-for-continuous-deliveryFabio Simeoni
 

More from Fabio Simeoni (10)

Featherweight Clients (Athens, 2012)
Featherweight Clients (Athens, 2012)Featherweight Clients (Athens, 2012)
Featherweight Clients (Athens, 2012)
 
Technical Report: My Container
Technical Report: My ContainerTechnical Report: My Container
Technical Report: My Container
 
My Container (Sophia, 2011)
My Container (Sophia, 2011)My Container (Sophia, 2011)
My Container (Sophia, 2011)
 
Project Apash
Project ApashProject Apash
Project Apash
 
Client Libraries (Rodhes, 2011)
Client Libraries (Rodhes, 2011)Client Libraries (Rodhes, 2011)
Client Libraries (Rodhes, 2011)
 
The Virtual Repository
The Virtual RepositoryThe Virtual Repository
The Virtual Repository
 
Hello Cotrix
Hello CotrixHello Cotrix
Hello Cotrix
 
the-hitchhiker-s-guide-to-testing
the-hitchhiker-s-guide-to-testingthe-hitchhiker-s-guide-to-testing
the-hitchhiker-s-guide-to-testing
 
a-strategy-for-continuous-delivery
a-strategy-for-continuous-deliverya-strategy-for-continuous-delivery
a-strategy-for-continuous-delivery
 
Grade@cnr
Grade@cnrGrade@cnr
Grade@cnr
 

Recently uploaded

A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Intelisync
 

Recently uploaded (20)

A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)
 

Smartgears