a case study in using erlang and ruby at rackspace - erlang factory
TRANSCRIPT
A Case Study in UsingErlang and Rubyat Rackspace
PolyglotParallelism
1Thursday, April 19, 12
2Thursday, April 19, 12
FoundationDevelopmentAndAutomationTeam
3Thursday, April 19, 12
F D A A T
4Thursday, April 19, 12
WhatWeDo
5Thursday, April 19, 12
Through automation,Adapt and collaborate
Deliver Software
6Thursday, April 19, 12
Basics
BackupUpdateNew Configs
7Thursday, April 19, 12
Advanced
API backing MyRackspace FWMAPI backing NTaaSAPI for VLAN assignments
8Thursday, April 19, 12
9Thursday, April 19, 12
TheEnvironment
10Thursday, April 19, 12
50,000NetworkDevices
11Thursday, April 19, 12
Firewalls
Cisco ASACisco PixJuniper SRX
12Thursday, April 19, 12
Load
Cisco CSSF5 BigIPBrocade ADX
Balancers
RedHill WebMuxCisco ACE
13Thursday, April 19, 12
Switches
Cisco Catalyst 4948
Cisco Catalyst 2950Cisco Catalyst 2960
14Thursday, April 19, 12
8 Datacenters3 Continents
Asia
North AmericaEurope
15Thursday, April 19, 12
TheChallenges
16Thursday, April 19, 12
Performance
17Thursday, April 19, 12
Transparency
18Thursday, April 19, 12
MultipleDeviceTypes
19Thursday, April 19, 12
ManagementInterfaces
20Thursday, April 19, 12
WhereWeStarted
21Thursday, April 19, 12
MultipleRailsApplications
22Thursday, April 19, 12
MySQL
23Thursday, April 19, 12
VendorDeviceManagers
24Thursday, April 19, 12
3rdPartySolutions
25Thursday, April 19, 12
WhereWeAreToday
26Thursday, April 19, 12
Rails
MongoDB
Erlang
ReST API
Other Clients
NetworkDevices
27Thursday, April 19, 12
Results
Device interactions are fast & reliableFull TransparencyBetter foundation for growth
28Thursday, April 19, 12
29Thursday, April 19, 12
30Thursday, April 19, 12
31Thursday, April 19, 12
Details
32Thursday, April 19, 12
CommandLineAutomation
33Thursday, April 19, 12
Agent
SSH TelnetHTTP
34Thursday, April 19, 12
RubyScripts
35Thursday, April 19, 12
module Hello def say_hello "Hello, World!" endend
GenScript.expose(:hello, Hello)
36Thursday, April 19, 12
{ok, Pid} = gen_script:start(hello, {ruby, “hello.rb”}).
<<"Hello, World!">> =gen_script:call(Pid, hello, [])).
gen_script:stop(Pid).
37Thursday, April 19, 12
BatchJobs
38Thursday, April 19, 12
Runner
CallbackModuleWorkers
39Thursday, April 19, 12
Runner Worker CallbackModule
start
ready
process processready
.
.
.stop
item
40Thursday, April 19, 12
What’sNext
41Thursday, April 19, 12
Rails
MongoDB
Erlang
ReST API
Other Clients
NetworkDevices
42Thursday, April 19, 12
HowWeGotHere
43Thursday, April 19, 12
Objections
Erlang is weirdYou can’t find Erlang programmersIf you use Erlang you will fail
44Thursday, April 19, 12
OpenSource
45Thursday, April 19, 12
Questions
46Thursday, April 19, 12
Twitter: @philtoland
GitHub: github.com/toland
Blog: philtoland.com
47Thursday, April 19, 12