a case study in using erlang and ruby at rackspace - erlang factory

47
A Case Study in Using Erlang and Ruby at Rackspace P olyglot Parallelism 1 Thursday, April 19, 12

Upload: others

Post on 12-Sep-2021

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

A Case Study in UsingErlang and Rubyat Rackspace

PolyglotParallelism

1Thursday, April 19, 12

Page 2: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

2Thursday, April 19, 12

Page 3: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

FoundationDevelopmentAndAutomationTeam

3Thursday, April 19, 12

Page 4: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

F D A A T

4Thursday, April 19, 12

Page 5: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

WhatWeDo

5Thursday, April 19, 12

Page 6: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

Through automation,Adapt and collaborate

Deliver Software

6Thursday, April 19, 12

Page 7: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

Basics

BackupUpdateNew Configs

7Thursday, April 19, 12

Page 8: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

Advanced

API backing MyRackspace FWMAPI backing NTaaSAPI for VLAN assignments

8Thursday, April 19, 12

Page 9: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

9Thursday, April 19, 12

Page 10: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

TheEnvironment

10Thursday, April 19, 12

Page 11: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

50,000NetworkDevices

11Thursday, April 19, 12

Page 12: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

Firewalls

Cisco ASACisco PixJuniper SRX

12Thursday, April 19, 12

Page 13: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

Load

Cisco CSSF5 BigIPBrocade ADX

Balancers

RedHill WebMuxCisco ACE

13Thursday, April 19, 12

Page 14: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

Switches

Cisco Catalyst 4948

Cisco Catalyst 2950Cisco Catalyst 2960

14Thursday, April 19, 12

Page 15: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

8 Datacenters3 Continents

Asia

North AmericaEurope

15Thursday, April 19, 12

Page 16: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

TheChallenges

16Thursday, April 19, 12

Page 17: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

Performance

17Thursday, April 19, 12

Page 18: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

Transparency

18Thursday, April 19, 12

Page 19: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

MultipleDeviceTypes

19Thursday, April 19, 12

Page 20: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

ManagementInterfaces

20Thursday, April 19, 12

Page 21: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

WhereWeStarted

21Thursday, April 19, 12

Page 22: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

MultipleRailsApplications

22Thursday, April 19, 12

Page 23: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

MySQL

23Thursday, April 19, 12

Page 24: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

VendorDeviceManagers

24Thursday, April 19, 12

Page 25: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

3rdPartySolutions

25Thursday, April 19, 12

Page 26: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

WhereWeAreToday

26Thursday, April 19, 12

Page 27: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

Rails

MongoDB

Erlang

ReST API

Other Clients

NetworkDevices

27Thursday, April 19, 12

Page 28: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

Results

Device interactions are fast & reliableFull TransparencyBetter foundation for growth

28Thursday, April 19, 12

Page 29: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

29Thursday, April 19, 12

Page 30: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

30Thursday, April 19, 12

Page 31: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

31Thursday, April 19, 12

Page 32: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

Details

32Thursday, April 19, 12

Page 33: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

CommandLineAutomation

33Thursday, April 19, 12

Page 34: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

Agent

SSH TelnetHTTP

34Thursday, April 19, 12

Page 35: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

RubyScripts

35Thursday, April 19, 12

Page 36: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

module Hello def say_hello "Hello, World!" endend

GenScript.expose(:hello, Hello)

36Thursday, April 19, 12

Page 37: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

{ok, Pid} = gen_script:start(hello, {ruby, “hello.rb”}).

<<"Hello, World!">> =gen_script:call(Pid, hello, [])).

gen_script:stop(Pid).

37Thursday, April 19, 12

Page 38: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

BatchJobs

38Thursday, April 19, 12

Page 39: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

Runner

CallbackModuleWorkers

39Thursday, April 19, 12

Page 40: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

Runner Worker CallbackModule

start

ready

process processready

.

.

.stop

item

40Thursday, April 19, 12

Page 41: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

What’sNext

41Thursday, April 19, 12

Page 42: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

Rails

MongoDB

Erlang

ReST API

Other Clients

NetworkDevices

42Thursday, April 19, 12

Page 43: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

HowWeGotHere

43Thursday, April 19, 12

Page 44: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

Objections

Erlang is weirdYou can’t find Erlang programmersIf you use Erlang you will fail

44Thursday, April 19, 12

Page 45: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

OpenSource

45Thursday, April 19, 12

Page 46: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

Questions

46Thursday, April 19, 12

Page 47: A Case Study in Using Erlang and Ruby at Rackspace - Erlang Factory

Twitter: @philtoland

GitHub: github.com/toland

Blog: philtoland.com

47Thursday, April 19, 12