Erlang The Driver behind WhatsApp s Success. Torben Hoffmann CTO, Erlang Solutions

Size: px
Start display at page:

Download "Erlang The Driver behind WhatsApp s Success. Torben Hoffmann CTO, Erlang Solutions torben.hoffmann@erlang-solutions.com @LeHoff"

Transcription

1 Erlang The Driver behind WhatsApp s Success Torben Hoffmann CTO, Erlang Solutions

2 Background

3 Background Erlanger since 2006

4 Background Erlanger since 2006 Happyness

5 Background Erlanger since 2006 Happyness Mission critical gateway for Tetra

6 Background Erlanger since 2006 Happyness Mission critical gateway for Tetra Hard work

7 Background Erlanger since 2006 Happyness Mission critical gateway for Tetra Hard work Major learnings

8 Background Erlanger since 2006 Happyness Mission critical gateway for Tetra Hard work Major learnings

9 Why this talk?

10 Why this talk? Explain the tech foundation for WhatsApp s succes

11 Why this talk? Explain the tech foundation for WhatsApp s succes Understand the design decisions that makes Erlang unique

12 Why this talk? Explain the tech foundation for WhatsApp s succes Understand the design decisions that makes Erlang unique Show how Erlang s features delivers business value

13 Why this talk? Explain the tech foundation for WhatsApp s succes Understand the design decisions that makes Erlang unique Show how Erlang s features delivers business value Spread the Erlang love

14 Religious Connection Er Lang Shen - Chinese God w/! a 3rd truth seeing eye Erlang Temple in Zunhua source: source:

15 Dealing with disbelievers Source: source: cb /villains/images/e/ef/saruman.jpg source:

16 Dealing with disbelievers Source: source: cb /villains/images/e/ef/saruman.jpg source:

17 Dealing with disbelievers Source: source: source: cb /villains/images/e/ef/saruman.jpg source:

18

19 Founded in 1999 soon after Erlang was released as open source

20 Founded in 1999 soon after Erlang was released as open source Experts at building bespoke scalable, high availability, high performance systems

21 Founded in 1999 soon after Erlang was released as open source Experts at building bespoke scalable, high availability, high performance systems Only company of its kind totally focused on Erlang and Erlang community

22 Founded in 1999 soon after Erlang was released as open source Experts at building bespoke scalable, high availability, high performance systems Only company of its kind totally focused on Erlang and Erlang community Over 300 clients.

23 Founded in 1999 soon after Erlang was released as open source Experts at building bespoke scalable, high availability, high performance systems Only company of its kind totally focused on Erlang and Erlang community Over 300 clients. Headquartered in London, U.K.

24 Founded in 1999 soon after Erlang was released as open source Experts at building bespoke scalable, high availability, high performance systems Only company of its kind totally focused on Erlang and Erlang community Over 300 clients. Headquartered in London, U.K. Offices: Stockholm, Krakow, Copenhagen, Aarhus, Budapest, Seattle and Zurich

25 Founded in 1999 soon after Erlang was released as open source Experts at building bespoke scalable, high availability, high performance systems Only company of its kind totally focused on Erlang and Erlang community Over 300 clients. Headquartered in London, U.K. Offices: Stockholm, Krakow, Copenhagen, Aarhus, Budapest, Seattle and Zurich Organically growing and continually investing in R & D

26 Founded in 1999 soon after Erlang was released as open source Experts at building bespoke scalable, high availability, high performance systems Only company of its kind totally focused on Erlang and Erlang community Over 300 clients. Headquartered in London, U.K. Offices: Stockholm, Krakow, Copenhagen, Aarhus, Budapest, Seattle and Zurich Organically growing and continually investing in R & D

27 Core focus

28 Speed to market Core focus

29 Core focus Speed to market Low lifetime cost

30 Core focus Speed to market Low lifetime cost Extreme reliability

31 Core focus Speed to market Low lifetime cost Extreme reliability True scalability

32 Core focus Speed to market Low lifetime cost Extreme reliability True scalability

33 University Relations

34 Some Customers

35 Some Customers 19,000,000,000 reasons to use Erlang

36 WhatsApp Real-time Messaging Text and Pictures Group chat

37 WhatsApp Numbers

38 WhatsApp Numbers 10 Erlang engineers

39 WhatsApp Numbers 10 Erlang engineers ~500M monthly users

40 WhatsApp Numbers 10 Erlang engineers ~500M monthly users 19B msg/day in / 40B msg/day out

41 WhatsApp Numbers 10 Erlang engineers ~500M monthly users 19B msg/day in / 40B msg/day out 147M concurrent connections

42 WhatsApp Numbers 10 Erlang engineers ~500M monthly users 19B msg/day in / 40B msg/day out 147M concurrent connections peak: 324K msg/s in / 712K msg/s out

43 WhatsApp Numbers 10 Erlang engineers ~500M monthly users 19B msg/day in / 40B msg/day out 147M concurrent connections peak: 324K msg/s in / 712K msg/s out

44 WhatsApp Hardware ~550 servers 2x2690v2 Ivy Bridge 10-core (40 threads total) GB RAM SSD >11,000 cores

45 WhatsApp Software FreeBSD 9.2 Erlang R16B01 (with patches)

46 Other Users of Erlang

47 Bet365

48 Bet365 Resarch team Re-did a Java system in Erlang as a POC

49 Bet365 Resarch team Re-did a Java system in Erlang as a POC Results: 5x connected users in load test 4x rate of data change Better utilisation of CPU resources

50 Bet365 Resarch team Re-did a Java system in Erlang as a POC Results: 5x connected users in load test 4x rate of data change Better utilisation of CPU resources How to convince the developers to switch?

51 Bet365 showed that Erlang

52 Bet365 showed that Erlang makes programming fun

53 Bet365 showed that Erlang makes programming fun scales and is reliable

54 Bet365 showed that Erlang makes programming fun scales and is reliable has enough depth to be interesting

55 Bet365 showed that Erlang makes programming fun scales and is reliable has enough depth to be interesting solves difficult problems with simple code

56 Bet365 showed that Erlang makes programming fun scales and is reliable has enough depth to be interesting solves difficult problems with simple code Results:

57 Bet365 showed that Erlang makes programming fun scales and is reliable has enough depth to be interesting solves difficult problems with simple code Results: production teams quickly started to appreciate the benefits of Erlang

58 Bet365 showed that Erlang makes programming fun scales and is reliable has enough depth to be interesting solves difficult problems with simple code Results: production teams quickly started to appreciate the benefits of Erlang did not want to go back to Java

59 Bet365 showed that Erlang makes programming fun scales and is reliable has enough depth to be interesting solves difficult problems with simple code Results: production teams quickly started to appreciate the benefits of Erlang did not want to go back to Java

60 Riak from Basho Distributed NoSQL database Dynamo inspired key/value store Erlang & C/C++ Powers Rovio, Danish Health Services and many more

61 Erlang History

62 There are two ways of constructing a software design:

63 There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies

64 There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies.

65 There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies. - C.A.R. Hoare

66 Erlang s Original Requirements

67 Erlang s Original Requirements Large scale concurrency

68 Erlang s Original Requirements Large scale concurrency Soft real-time

69 Erlang s Original Requirements Large scale concurrency Soft real-time Distributed systems

70 Erlang s Original Requirements Large scale concurrency Soft real-time Distributed systems Hardware interaction

71 Erlang s Original Requirements Large scale concurrency Soft real-time Distributed systems Hardware interaction Very large software systems

72 Erlang s Original Requirements Large scale concurrency Soft real-time Distributed systems Hardware interaction Very large software systems Complex functionality

73 Erlang s Original Requirements Large scale concurrency Soft real-time Distributed systems Hardware interaction Very large software systems Complex functionality Continuous operation for many years

74 Erlang s Original Requirements Large scale concurrency Soft real-time Distributed systems Hardware interaction Very large software systems Complex functionality Continuous operation for many years Software maintenance on-the-fly

75 Erlang s Original Requirements Large scale concurrency Soft real-time Distributed systems Hardware interaction Very large software systems Complex functionality Continuous operation for many years Software maintenance on-the-fly High quality and reliability

76 Erlang s Original Requirements Large scale concurrency Soft real-time Distributed systems Hardware interaction Very large software systems Complex functionality Continuous operation for many years Software maintenance on-the-fly High quality and reliability Fault tolerance Bjarne Däcker s Licentiate Thesis:

77 wanted

78 wanted productivity

79 wanted productivity no down-time

80 wanted productivity no down-time something that always works

81 wanted

82 wanted money

83 wanted money money

84 wanted money money money

85 wanted money money money it s a rich man s world!

86 wanted money money money it s a rich man s world!

87 General vs Domain Specific Telecom

88 General vs Domain Specific Telecom C++/Java

89 General vs Domain Specific Telecom C++/Java

90 General vs Domain Specific Telecom C++/Java Erlang

91 General vs Domain Specific Telecom C++/Java Erlang

92 General vs Domain Specific Telecom C++/Java Erlang Smaller gap = money!

93 The Sweet Spot GUI Middleware Coordination Control Drivers

94 If the glove fits... needs/fit drivers coordination GUI

95 If the glove fits... needs/fit Telecom drivers coordination GUI

96 If the glove fits... needs/fit Telecom C drivers coordination GUI

97 If the glove fits... needs/fit Telecom C Erlang drivers coordination GUI

98 If our basic tool, the language in which we design and code our programs, is also complicated, the language itself becomes part of the problem rather than part of its solution.! - C.A.R. Hoare

99 Good Erlang Domains

100 Good Erlang Domains Low latency over throughput

101 Good Erlang Domains Low latency over throughput Stateful (in contrast to being stateless)

102 Good Erlang Domains Low latency over throughput Stateful (in contrast to being stateless) Massively concurrent

103 Good Erlang Domains Low latency over throughput Stateful (in contrast to being stateless) Massively concurrent Distributed

104 Good Erlang Domains Low latency over throughput Stateful (in contrast to being stateless) Massively concurrent Distributed Fault tolerant

105 Good Erlang Domains Low latency over throughput Stateful (in contrast to being stateless) Massively concurrent Distributed Fault tolerant Uses OTP

106 Good Erlang Domains Low latency over throughput Stateful (in contrast to being stateless) Massively concurrent Distributed Fault tolerant Uses OTP Non-stop operation

107 Good Erlang Domains Low latency over throughput Stateful (in contrast to being stateless) Massively concurrent Distributed Fault tolerant Uses OTP Non-stop operation Under load, Erlang programs usually performs as well as programs in other languages, often way better. Jesper Louis Andersen

108 Other Erlang Domains

109 Messaging - XMPP et al Other Erlang Domains

110 Messaging - XMPP et al Other Erlang Domains ejabberd, MongooseIM

111 Messaging - XMPP et al ejabberd, MongooseIM Webservers Other Erlang Domains

112 Other Erlang Domains Messaging - XMPP et al ejabberd, MongooseIM Webservers Yaws, Chicago Boss, Cowboy

113 Other Erlang Domains Messaging - XMPP et al ejabberd, MongooseIM Webservers Yaws, Chicago Boss, Cowboy Payment switches & soft switches

114 Other Erlang Domains Messaging - XMPP et al ejabberd, MongooseIM Webservers Yaws, Chicago Boss, Cowboy Payment switches & soft switches Vocalink, OpenFlow/LINC

115 Other Erlang Domains Messaging - XMPP et al ejabberd, MongooseIM Webservers Yaws, Chicago Boss, Cowboy Payment switches & soft switches Vocalink, OpenFlow/LINC Distributed Databases

116 Other Erlang Domains Messaging - XMPP et al ejabberd, MongooseIM Webservers Yaws, Chicago Boss, Cowboy Payment switches & soft switches Vocalink, OpenFlow/LINC Distributed Databases Riak, CouchDB, Scalaris

117 Other Erlang Domains Messaging - XMPP et al ejabberd, MongooseIM Webservers Yaws, Chicago Boss, Cowboy Payment switches & soft switches Vocalink, OpenFlow/LINC Distributed Databases Riak, CouchDB, Scalaris Queueing systems

118 Other Erlang Domains Messaging - XMPP et al ejabberd, MongooseIM Webservers Yaws, Chicago Boss, Cowboy Payment switches & soft switches Vocalink, OpenFlow/LINC Distributed Databases Riak, CouchDB, Scalaris Queueing systems RabbitMQ (AMQP)

119 The glove fits! Low latency Stateful Massively concurrent Distributed Fault tolerant Messaging Webservers Soft switches Distributed DBs Queueing systems

120 The Golden Trinity Of Erlang

121 To Share Or Not To Share

122 To Share Or Not To Share Memory

123 To Share Or Not To Share Memory P1

124 To Share Or Not To Share Memory P1 P2

125 To Share Or Not To Share Memory Corrupt P2

126 To Share Or Not To Share Memory Corrupt

127 To Share Or Not To Share Memory Corrupt Memory

128 To Share Or Not To Share Memory Corrupt Memory P1

129 To Share Or Not To Share Memory Corrupt Memory Memory P1

130 To Share Or Not To Share Memory Corrupt Memory Memory P1 P2

131 To Share Or Not To Share Memory Corrupt Corrupt Memory P2

132 To Share Or Not To Share Memory Corrupt Memory P2

133 Message Passing P1 M P2 P1 sends M to P2.

134 Message Passing P1 M P2 P1 sends M to P2. Every process has a mailbox

135 Message Passing P1 M P2 P1 sends M to P2. Every process has a mailbox Messages are received: receive {tag, Value} -> Value; N when is_integer(n) -> N + 42 end

136 Failures Anything that can go wrong, will go wrong Murphy

137 Failures Anything that can go wrong, Programming errors will go wrong Murphy

138 Failures Anything that can go wrong, Programming errors will go wrong Disk failures Murphy

139 Failures Anything that can go wrong, Programming errors will go wrong Disk failures Murphy Network failures

140 Failures Anything that can go wrong, Programming errors will go wrong Disk failures Murphy Network failures Most programming paradigmes are fault in-tolerant

141 Failures Anything that can go wrong, Programming errors will go wrong Disk failures Murphy Network failures Most programming paradigmes are fault in-tolerant must deal with all errors or die

142 Failures Anything that can go wrong, Programming errors will go wrong Disk failures Murphy Network failures Most programming paradigmes are fault in-tolerant must deal with all errors or die

143 Failures Anything that can go wrong, Programming errors will go wrong Disk failures Murphy Network failures Most programming paradigmes are fault in-tolerant must deal with all errors or die Erlang is fault tolerant by design

144 Failures Anything that can go wrong, Programming errors will go wrong Disk failures Murphy Network failures Most programming paradigmes are fault in-tolerant must deal with all errors or die Erlang is fault tolerant by design failures are embraced and managed

145 Failures Anything that can go wrong, Programming errors will go wrong Disk failures Murphy Network failures Most programming paradigmes are fault in-tolerant must deal with all errors or die Erlang is fault tolerant by design failures are embraced and managed source: should-we-be-worried-about-this-brooklyn-measles-outbreak source:

146 Let It Fail convert(monday) -> 1;! convert(tuesday) -> 2;! convert(wednesday) -> 3;! convert(thursday) -> 4;! convert(friday) -> 5;! convert(saturday) -> 6;! convert(sunday) -> 7!;! convert(_) ->! {error, unknown_day}.!

147 Let It Fail convert(monday) -> 1;! convert(tuesday) -> 2;! convert(wednesday) -> 3;! convert(thursday) -> 4;! convert(friday) -> 5;! convert(saturday) -> 6;! convert(sunday) -> 7!.!!

148 Let It Fail convert(monday) -> 1;! convert(tuesday) -> 2;! convert(wednesday) -> 3;! convert(thursday) -> 4;! convert(friday) -> 5;! convert(saturday) -> 6;! convert(sunday) -> 7!.!! Erlang encourages offensive programming

149 Handling Failure P1 P2 P1 monitors P2. P1 P2 P1 and P2 are linked.

150 Intentional Programming a style of programming where the reader of a program can easily see what the programmer intended by their code. [1] [1]

151 Intentional Dictionary data retrieval - dict:fetch(key, Dict) = Val EXIT the programmer knows a specific key should be in the dictionary and it is an error if it is not. search - dict:find(key, Dict) = {ok, Val} error. it is unknown if the key is there or not and both cases must be dealt with. test - dict:is_key(key, Dict) = Boolean knowing if a key is present is enough.

152 Benefits of let-it-fail Data Mobility component breakdown Source: h*p:// JanHenryNystrom/produc;vity- gains- in- erlang

153 Benefits of let-it-fail Data Mobility component breakdown Source: h*p:// JanHenryNystrom/produc;vity- gains- in- erlang code that solves the problem

154 Benefits of let-it-fail Data Mobility component breakdown Source: h*p:// JanHenryNystrom/produc;vity- gains- in- erlang code that solves the problem

155 Benefits of let-it-fail Data Mobility component breakdown Source: h*p:// JanHenryNystrom/produc;vity- gains- in- erlang code that solves the problem

156 Benefits of let-it-fail Data Mobility component breakdown Source: h*p:// JanHenryNystrom/produc;vity- gains- in- erlang code that solves the problem

157 Benefits of let-it-fail Data Mobility component breakdown Source: h*p:// JanHenryNystrom/produc;vity- gains- in- erlang code that solves the problem

158 Benefits of let-it-fail Data Mobility component breakdown Source: h*p:// JanHenryNystrom/produc;vity- gains- in- erlang code that solves the problem

159 Benefits of let-it-fail Data Mobility component breakdown Source: h*p:// JanHenryNystrom/produc;vity- gains- in- erlang code that solves the problem 3x

160 Productivity with Motorola Goal: Development of a mission-critical telecom gateway for TETRA To be developed from scratch using Erlang and some drivers in C The gateway translates between proprietary protocols and the ISI standard Developed using a two six man team over four year A total of 72 staff months used on the work

161 Productivity with Motorola Function point analysis Language agnostic measurement of problem size input input input output output output input Internal storage

162 Show me the money! Function Point Analysis of the size of the problem Conservative estimation of the number of inputs, outputs and internal storage Includes design, box test, system test, project management efforts

163 Isolate Errors

164 PROPAGATING EXIT SIGNALS PidA PidB PidC

165 PROPAGATING EXIT SIGNALS PidA PidB PidC

166 PROPAGATING EXIT SIGNALS {'EXIT', PidA, Reason} PidB PidC

167 PROPAGATING EXIT SIGNALS PidB PidC

168 PROPAGATING EXIT SIGNALS {'EXIT', PidB, Reason} PidC

169 PROPAGATING EXIT SIGNALS

170 TRAPPING AN EXIT SIGNAL PidA PidB PidC

171 TRAPPING AN EXIT SIGNAL PidA PidB PidC

172 TRAPPING AN EXIT SIGNAL {'EXIT', PidA, Reason} PidB PidC

173 TRAPPING AN EXIT SIGNAL PidB PidC

174 Supervision Trees supervisor supervisor worker worker worker worker worker The OTP library is built on this principle Erlang Solutions Ltd. 45

175 The OTP Supervisor Specifies a default restart strategy supervisor one_for_one one_for_all rest_for_one simple_one_for_one worker worker worker Child spec for how a child is restarted permanent transient temporary Erlang Solutions Ltd. 46

176 Supervisors

177 Simple Manager/Worker Pattern

178 Realities of software development???? Source:

179 Realities of software development Product Owner Source:

180 Business benefits of supervisors

181 Business benefits of supervisors Only one process dies

182 Business benefits of supervisors Only one process dies isolation gives continuous service

183 Business benefits of supervisors Only one process dies isolation gives continuous service Everything is logged

184 Business benefits of supervisors Only one process dies isolation gives continuous service Everything is logged you know what is wrong

185 Business benefits of supervisors Only one process dies isolation gives continuous service Everything is logged you know what is wrong Corner cases can be fixed at leisure

186 Business benefits of supervisors Only one process dies isolation gives continuous service Everything is logged you know what is wrong Corner cases can be fixed at leisure Product owner in charge!

187 Business benefits of supervisors Only one process dies isolation gives continuous service Everything is logged you know what is wrong Corner cases can be fixed at leisure Product owner in charge! Not the software!

188 Business benefits of supervisors Only one process dies isolation gives continuous service Everything is logged you know what is wrong Corner cases can be fixed at leisure Product owner in charge! Not the software! Software architecture that supports iterative development

189 Preparing for battle Source:

190 When do I get my ROI? Speed Proto-typing Development Live

191 When do I get my ROI? Speed Some Cool Technology Proto-typing Development Live

192 When do I get my ROI? Speed Erlang Some Cool Technology Proto-typing Development Live

193 When do I get my ROI? Speed Proto-typing Development Live

194 When do I get my ROI? Speed Erlang Proto-typing Development Live

195 When do I get my ROI? Speed Erlang Some Cool Technology Proto-typing Development Live

196 Erlang/OTP

197 Middleware

198 Design Patterns Middleware

199 Middleware Design Patterns Fault Tolerance

200 Middleware Design Patterns Fault Tolerance Distribution

201 Middleware Design Patterns Fault Tolerance Distribution Upgrades

202 Middleware Design Patterns Fault Tolerance Distribution Upgrades Packaging

203 Middleware Design Patterns Fault Tolerance Distribution Upgrades Packaging

204 OTP Tools

205 Development OTP Tools

206 OTP Tools Development Test Frameworks

207 OTP Tools Development Test Frameworks Release & Deployment

208 OTP Tools Development Test Frameworks Release & Deployment Debugging & Monitoring

209 OTP Benefits

210 Less Code OTP Benefits

211 OTP Benefits Less Code Less Bugs

212 OTP Benefits Less Code Less Bugs More Solid Code

213 OTP Benefits Less Code Less Bugs More Solid Code More Tested Code More Free Time

214 Behaviours GENERIC BEHAVIOUR MODULE Server process SPECIFIC CALLBACK MODULE

215 OTP Behaviours

216 OTP Behaviours Servers

217 OTP Behaviours Servers Finite State Machines

218 OTP Behaviours Servers Finite State Machines Event Handlers

219 OTP Behaviours Servers Finite State Machines Event Handlers Supervisors

220 OTP Behaviours Servers Finite State Machines Event Handlers Supervisors Applications

221 Nasty Things Handled by OTP

222 Nasty Things Handled by OTP Who are you gonna call?

223 Client Server

224 {request, Pid, Message} Client Server call(name, Message) ->! Name! {request, self(), Message},! receive! {reply, Reply} -> Reply! end.

225 {request, Pid, Message} Client {reply, Reply} Server call(name, Message) ->! Name! {request, self(), Message},! receive! {reply, Reply} -> Reply! end. reply(pid, Reply) ->! Pid! {reply, Reply}.

226 {request, Pid, Message} Client {reply, Reply} Server

227 {request, Pid, Message} Client {reply, Reply} Server Server 2

228 {request, Pid, Message} Client {reply, Reply} Server {reply, Reply} Server 2

229 {request, Pid, Message} Client {reply, Reply} Server {reply, Reply} Server 2 call(name, Msg) ->! Ref = make_ref(),! Name! {request, {Ref, self()}, Msg},! receive {reply, Ref, Reply} -> Reply end.!! reply({ref, Pid}, Reply) ->! Pid! {reply, Ref, Reply}.

230 {request, {Ref, self()}, Message} Client {reply, Ref, Reply} Server {reply, Reply} Server 2 call(name, Msg) ->! Ref = make_ref(),! Name! {request, {Ref, self()}, Msg},! receive {reply, Ref, Reply} -> Reply end.!! reply({ref, Pid}, Reply) ->! Pid! {reply, Ref, Reply}.

231 {request, {Ref, self()}, Message} Client {reply, Ref, Reply} Server {reply,???, Reply} Server 2 call(name, Msg) ->! Ref = make_ref(),! Name! {request, {Ref, self()}, Msg},! receive {reply, Ref, Reply} -> Reply end.!! reply({ref, Pid}, Reply) ->! Pid! {reply, Ref, Reply}.

232 PidA PidB

233 {request, {Ref, PidA}, Msg} PidA PidB

234 PidA

235 PidA call(name, Msg) ->! Ref = erlang:monitor(process, Name),! Name! {request, {Ref, self()}, Msg},! receive!! {reply, Ref, Reply} ->!! erlang:demonitor(ref),!! Reply;!! {'DOWN', Ref, process, _Name, _Reason} ->!! {error, no_proc}! end.

236 PidA PidB

237 {request, {Ref, PidA}, Msg} PidA PidB

238 PidA {reply, Ref, Reply} PidB

239 PidA {'DOWN', Ref, process, PidB, Reason}

240 {'DOWN', Ref, process, PidB, Reason} PidA call(name, Msg) ->! Ref = erlang:monitor(process, Name),! Name! {request, {Ref, self()}, Msg},! receive!! {reply, Ref, Reply} ->!! erlang:demonitor(ref, [flush]),!! Reply;!! {'DOWN', Ref, process, _Name, _Reason} ->!! {error, no_proc}! end.

241 Dealing with deadlocks

242 Dealing with deadlocks 7 years of coding Erlang

243 Dealing with deadlocks 7 years of coding Erlang Time spent on deadlock issues.

244 Dealing with deadlocks 7 years of coding Erlang Time spent on deadlock issues. 1 hour (due to lack of experience with OTP)

245 Selling Others on Erlang

246 In Theory... You conquer the TALC group by group in one smooth motion Erlang Solutions Ltd. 66

247 In Theory... You conquer the TALC group by group in one smooth motion Erlang Solutions Ltd. 66

248 In Theory... You conquer the TALC group by group in one smooth motion Erlang Solutions Ltd. 66

249 In Theory... You conquer the TALC group by group in one smooth motion Erlang Solutions Ltd. 66

250 In Theory... You conquer the TALC group by group in one smooth motion Erlang Solutions Ltd. 66

251 In Theory... You conquer the TALC group by group in one smooth motion Erlang Solutions Ltd. 66

252 In Theory... You conquer the TALC group by group in one smooth motion but it s just an illusion :-( Erlang Solutions Ltd. 66

253 Cracks and a Chasm Erlang Solutions Ltd. 67

254 Cracks and a Chasm Technology enthusiasts Erlang Solutions Ltd. 67

255 Cracks and a Chasm Visionaries Technology enthusiasts Erlang Solutions Ltd. 67

256 Cracks and a Chasm Pragmatists Visionaries Technology enthusiasts Erlang Solutions Ltd. 67

257 Cracks and a Chasm Pragmatists Conservatives Visionaries Technology enthusiasts Erlang Solutions Ltd. 67

258 Cracks and a Chasm Pragmatists Conservatives Technology enthusiasts Visionaries Laggards Erlang Solutions Ltd. 67

259 Cracks and a Chasm Crack Pragmatists Conservatives Technology enthusiasts Visionaries Laggards Erlang Solutions Ltd. 67

260 Cracks and a Chasm Crack Crack Pragmatists Conservatives Technology enthusiasts Visionaries Laggards Erlang Solutions Ltd. 67

261 Cracks and a Chasm Chasm Crack Crack Pragmatists Conservatives Technology enthusiasts Visionaries Laggards Erlang Solutions Ltd. 67

262 The Chasm

263 The Chasm From Visionaries to Pragmatists

264 The Chasm From Visionaries to Pragmatists Visionaries buy a change agent to get a radical discontinuity

265 The Chasm From Visionaries to Pragmatists Visionaries buy a change agent to get a radical discontinuity Pragmatists want a productivity improvement for existing operations

266 The Chasm From Visionaries to Pragmatists Visionaries buy a change agent to get a radical discontinuity Pragmatists want a productivity improvement for existing operations Pragmatists want evolution, not revolution

267 The Chasm From Visionaries to Pragmatists Visionaries buy a change agent to get a radical discontinuity Pragmatists want a productivity improvement for existing operations Pragmatists want evolution, not revolution Pragmatists wants references

268 Visionaries vs Pragmatists Visionaries have four characteristics that alienate Pragmatists: Erlang Solutions Ltd. 69

269 Visionaries vs Pragmatists Visionaries have four characteristics that alienate Pragmatists: Lack of respect for their colleagues experiences Erlang Solutions Ltd. 69

270 Visionaries vs Pragmatists Visionaries have four characteristics that alienate Pragmatists: Lack of respect for their colleagues experiences Takes greater interest in technology than in their industry Erlang Solutions Ltd. 69

271 Visionaries vs Pragmatists Visionaries have four characteristics that alienate Pragmatists: Lack of respect for their colleagues experiences Takes greater interest in technology than in their industry Fail to recognise the importance of existing product infrastructure Erlang Solutions Ltd. 69

272 Visionaries vs Pragmatists Visionaries have four characteristics that alienate Pragmatists: Lack of respect for their colleagues experiences Takes greater interest in technology than in their industry Fail to recognise the importance of existing product infrastructure Overall disruptiveness Erlang Solutions Ltd. 69

273 Whole Product Planning Simplified for chasm crossing Training & Support Standards & Procedures Generic Product Additional Software Additional Hardware Anything else to achieve your compelling reason to buy Installation & Debugging System Integration Erlang Solutions Ltd. 70

274 Whole Product Planning Simplified for chasm crossing Training & Support Standards & Procedures Generic Product Additional Software Additional Hardware Anything else to achieve your compelling reason to buy = marketing promise to win the sale Installation & Debugging System Integration Erlang Solutions Ltd. 70

275 Erlang Whole Product 1/2 Generic product: Erlang compiler and runtime Additional software: rich library shipped with each release many open source libraries Training & support: ESL provides many courses ErlangCamp also provides training Erlang Solutions Ltd. 71

276 Erlang Whole Product 2/2 System integration: mostly case-by-case few public success stories Installation & Debugging: Adequate functionalities for installing applications Wombat: ESL tool for Operations and Maintenance Good debugging tools, but not well publicised Erlang Solutions Ltd. 72

277 The EuroVision Link Or why Java is used more than Erlang source: source: source: v=1&c=iwsasset&k=2&d=x7wjla88cweo9hktrlanxrtyxdj3bsapheprrdcrbmiaeiszj73mxej82t5ovccz

278 The EuroVision Link Or why Java is used more than Erlang Lots of wrapping source: source: source: v=1&c=iwsasset&k=2&d=x7wjla88cweo9hktrlanxrtyxdj3bsapheprrdcrbmiaeiszj73mxej82t5ovccz

279 The EuroVision Link Or why Java is used more than Erlang Lots of wrapping The real McCoy source: source: source: v=1&c=iwsasset&k=2&d=x7wjla88cweo9hktrlanxrtyxdj3bsapheprrdcrbmiaeiszj73mxej82t5ovccz

280 Source:

281 Learning Erlang

282 Learning Erlang ESL training courses

283 Learning Erlang ESL training courses Learn You Some Erlang

284 Learning Erlang ESL training courses Learn You Some Erlang Use the erlang-questions mailing list

285 Learning Erlang ESL training courses Learn You Some Erlang Use the erlang-questions mailing list Do it hands-on

286 Learning Erlang ESL training courses Learn You Some Erlang Use the erlang-questions mailing list Do it hands-on Give it time to sink in!!!

287 Elixir

288 Elixir Built on top of the Erlang VM

289 Elixir Built on top of the Erlang VM More Ruby-like syntax

290 Elixir Built on top of the Erlang VM More Ruby-like syntax Hygienic macros - easy to do DSLs

291 Elixir Built on top of the Erlang VM More Ruby-like syntax Hygienic macros - easy to do DSLs But you still have to learn the Erlang programming model

292 Key building blocks

293 Key building blocks Share nothing processes

294 Key building blocks Share nothing processes Message passing

295 Key building blocks Share nothing processes Message passing Fail fast approach

296 Key building blocks Share nothing processes Message passing Fail fast approach Link/monitor concept

297 Key building blocks Share nothing processes Message passing Fail fast approach Link/monitor concept You can deal with failures in a sensible manner because you have a language for them.

298 Cruising with Erlang

299 Cruising with Erlang Understand the failure model

300 Cruising with Erlang Understand the failure model Embrace failure!

301 Cruising with Erlang Understand the failure model Embrace failure! Use supervision patterns to deliver business value

302 Cruising with Erlang Understand the failure model Embrace failure! Use supervision patterns to deliver business value Stay in charge!

303 Cruising with Erlang Understand the failure model Embrace failure! Use supervision patterns to deliver business value Stay in charge!

Erlang and the Chasm. A tour of the interac5on between engineering and marke5ng. Torben Hoffmann

Erlang and the Chasm. A tour of the interac5on between engineering and marke5ng. Torben Hoffmann Erlang and the Chasm A tour of the interac5on between engineering and marke5ng Torben Hoffmann Product & Research Manager Erlang Solu5ons Ltd @LeHoff Session code: #3799 1 Have you ever... 2 Have you ever...

More information

Building highly available systems in Erlang. Joe Armstrong

Building highly available systems in Erlang. Joe Armstrong Building highly available systems in Erlang Joe Armstrong How can we get 10 nines reliability? Why Erlang? Erlang was designed to program fault-tolerant systems Overview n Types of HA systems n Architecture/Algorithms

More information

Erlang in Production. I wish I'd known that when I started Or This is nothing like the brochure :-(

Erlang in Production. I wish I'd known that when I started Or This is nothing like the brochure :-( Erlang in Production I wish I'd known that when I started Or This is nothing like the brochure :-( Who the Hell are you? ShoreTel Sky http://shoretelsky.com Enterprise Grade VoIP Elevator Pitch Our Systems

More information

Microservices and Erlang/OTP. Christoph Iserlohn

Microservices and Erlang/OTP. Christoph Iserlohn Microservices and Erlang/OTP Christoph Iserlohn About me Senior Consultant @ innoq MacPorts Team member Agenda > Microservices > Erlang / OTP > How they fit together Microservices Attempt of definition

More information

membase.org: The Simple, Fast, Elastic NoSQL Database NorthScale Matt Ingenthron OSCON 2010

membase.org: The Simple, Fast, Elastic NoSQL Database NorthScale Matt Ingenthron OSCON 2010 membase.org: The Simple, Fast, Elastic NoSQL Database NorthScale Matt Ingenthron OSCON 2010 Membase is an Open Source distributed, key-value database management system optimized for storing data behind

More information

Erlang in E-Commerce and Banking

Erlang in E-Commerce and Banking Erlang in E-Commerce and Banking or Painless Payment Processing by Erik Stenman CTO, Kreditor Europe AB Creative Payment Solutions The business model: Kreditor Bring trust to Internet shopping. Bring old

More information

Radware ADC-VX Solution. The Agility of Virtual; The Predictability of Physical

Radware ADC-VX Solution. The Agility of Virtual; The Predictability of Physical Radware ADC-VX Solution The Agility of Virtual; The Predictability of Physical Table of Contents General... 3 Virtualization and consolidation trends in the data centers... 3 How virtualization and consolidation

More information

Radware ADC-VX Solution. The Agility of Virtual; The Predictability of Physical

Radware ADC-VX Solution. The Agility of Virtual; The Predictability of Physical Radware ADC-VX Solution The Agility of Virtual; The Predictability of Physical Table of Contents General... 3 Virtualization and consolidation trends in the data centers... 3 How virtualization and consolidation

More information

Alcatel-Lucent IMS Application Server

Alcatel-Lucent IMS Application Server September Alain Grignac, Gérard Tixier Application BD/ CTO Office History 1999/2000/2001 Java middleware initiated as basis for a high-performances WAP Gateway. First commercial deployments 2002/2003/2004

More information

The WLCG Messaging Service and its Future

The WLCG Messaging Service and its Future The WLCG Messaging Service and its Future Lionel Cons, Massimo Paladin CERN - IT Department, 1211 Geneva 23, Switzerland E-mail: Lionel.Cons@cern.ch, Massimo.Paladin@cern.ch Abstract. Enterprise messaging

More information

epages Flex Technical White Paper e-commerce. now plug & play. epages.com

epages Flex Technical White Paper e-commerce. now plug & play. epages.com epages Flex Technical White Paper epages.com e-commerce. now plug & play. The information contained in this document is subject to change without notice at any time. This document and all of its parts

More information

Erlang a platform for developing distributed software systems

Erlang a platform for developing distributed software systems Erlang a platform for developing distributed software systems Lars-Åke Fredlund 1 / 55 Problems of distributed systems Distributed programming is hard Challenges for concurrency: process coordination and

More information

OpenSAF A Standardized HA Solution

OpenSAF A Standardized HA Solution OpenSAF A Standardized HA Solution LinuxCON Edinburgh, UK 2013-10-21 Anders Widell Ericsson AB Outline What are OpenSAF and SA Forum? What is Service Availability? Simple Use Case: Web server The OpenSAF

More information

What to base your Brand Portal on: SharePoint, custom build it or buy Brandworkz offthe shelf

What to base your Brand Portal on: SharePoint, custom build it or buy Brandworkz offthe shelf What to base your Brand Portal on: SharePoint, custom build it or buy Brandworkz offthe shelf From time to time we hear variations on the following from potential clients: We already have Microsoft SharePoint

More information

What can DDS do for You? Learn how dynamic publish-subscribe messaging can improve the flexibility and scalability of your applications.

What can DDS do for You? Learn how dynamic publish-subscribe messaging can improve the flexibility and scalability of your applications. What can DDS do for You? Learn how dynamic publish-subscribe messaging can improve the flexibility and scalability of your applications. 2 Contents: Abstract 3 What does DDS do 3 The Strengths of DDS 4

More information

The Top 10 Advantages of a Windows Based PBX

The Top 10 Advantages of a Windows Based PBX Whitepaper The Top 10 Advantages of a Windows Based PBX Why Your Next Phone System Should be Software Based This whitepaper outlines the top 10 advantages of choosing a Windows based PBX as your next phone

More information

Virtualization of the MS Exchange Server Environment

Virtualization of the MS Exchange Server Environment MS Exchange Server Acceleration Maximizing Users in a Virtualized Environment with Flash-Powered Consolidation Allon Cohen, PhD OCZ Technology Group Introduction Microsoft (MS) Exchange Server is one of

More information

The top 10 advantages of a Windows based PBX

The top 10 advantages of a Windows based PBX Whitepaper The top 10 advantages of a Windows based PBX Why your next Phone System should be software based This whitepaper outlines the top 10 advantages of choosing a Windows based PBX as your next phone

More information

Understanding Hardware Transactional Memory

Understanding Hardware Transactional Memory Understanding Hardware Transactional Memory Gil Tene, CTO & co-founder, Azul Systems @giltene 2015 Azul Systems, Inc. Agenda Brief introduction What is Hardware Transactional Memory (HTM)? Cache coherence

More information

Masters in Information Technology

Masters in Information Technology Computer - Information Technology MSc & MPhil - 2015/6 - July 2015 Masters in Information Technology Programme Requirements Taught Element, and PG Diploma in Information Technology: 120 credits: IS5101

More information

Messaging with Erlang and Jabber

Messaging with Erlang and Jabber Messaging with Erlang and Jabber Erlang User Conference '04 21st. October 2004 Mickaël Rémond www.erlang-projects.org What are XMPP and Jabber? XMPP stands for extensible

More information

An Oracle White Paper July 2011. Oracle Primavera Contract Management, Business Intelligence Publisher Edition-Sizing Guide

An Oracle White Paper July 2011. Oracle Primavera Contract Management, Business Intelligence Publisher Edition-Sizing Guide Oracle Primavera Contract Management, Business Intelligence Publisher Edition-Sizing Guide An Oracle White Paper July 2011 1 Disclaimer The following is intended to outline our general product direction.

More information

White Paper: Build vs. Buy: Mass Management Tools for Your Workstations Rev 0-12/8/03

White Paper: Build vs. Buy: Mass Management Tools for Your Workstations Rev 0-12/8/03 White Paper: Build vs. Buy: Mass Management Tools for Your Workstations Rev 0-12/8/03 Written by Philip Lieberman (phil@lanicu.com) Lieberman & Associates http://www.lanicu.com Abstract This whitepaper

More information

Cisco UCS and Fusion- io take Big Data workloads to extreme performance in a small footprint: A case study with Oracle NoSQL database

Cisco UCS and Fusion- io take Big Data workloads to extreme performance in a small footprint: A case study with Oracle NoSQL database Cisco UCS and Fusion- io take Big Data workloads to extreme performance in a small footprint: A case study with Oracle NoSQL database Built up on Cisco s big data common platform architecture (CPA), a

More information

Server Virtualization with VMWare

Server Virtualization with VMWare Server Virtualization with VMware Information Technology Server Virtualization with VMWare A look at server virtualization, what it is and why it should be considered. By Alex Dewar, Head of IT & IM Solutions,

More information

Technology Change Management

Technology Change Management The PROJECT PERFECT White Paper Collection Introduction Technology Change Management Sandeep Mehta This article takes an objective look at Technology Change Management (TCM). It covers a number of topics

More information

Georgiana Macariu, Dana Petcu, CiprianCraciun, Silviu Panica, Marian Neagul eaustria Research Institute Timisoara, Romania

Georgiana Macariu, Dana Petcu, CiprianCraciun, Silviu Panica, Marian Neagul eaustria Research Institute Timisoara, Romania Open source API and platform for heterogeneous Cloud computing environments Georgiana Macariu, Dana Petcu, CiprianCraciun, Silviu Panica, Marian Neagul eaustria Research Institute Timisoara, Romania Problem

More information

Best Practices for Monitoring Databases on VMware. Dean Richards Senior DBA, Confio Software

Best Practices for Monitoring Databases on VMware. Dean Richards Senior DBA, Confio Software Best Practices for Monitoring Databases on VMware Dean Richards Senior DBA, Confio Software 1 Who Am I? 20+ Years in Oracle & SQL Server DBA and Developer Worked for Oracle Consulting Specialize in Performance

More information

High-Performance Batch Processing Framework

High-Performance Batch Processing Framework High-Performance Batch Processing Framework It is hard to find a mid to large sized business today that does not have at least a batch job or process that runs independent of the web application running

More information

NoSQL replacement for SQLite (for Beatstream) Antti-Jussi Kovalainen Seminar OHJ-1860: NoSQL databases

NoSQL replacement for SQLite (for Beatstream) Antti-Jussi Kovalainen Seminar OHJ-1860: NoSQL databases NoSQL replacement for SQLite (for Beatstream) Antti-Jussi Kovalainen Seminar OHJ-1860: NoSQL databases Background Inspiration: postgresapp.com demo.beatstream.fi (modern desktop browsers without

More information

An Oracle White Paper November 2010. Oracle Real Application Clusters One Node: The Always On Single-Instance Database

An Oracle White Paper November 2010. Oracle Real Application Clusters One Node: The Always On Single-Instance Database An Oracle White Paper November 2010 Oracle Real Application Clusters One Node: The Always On Single-Instance Database Executive Summary... 1 Oracle Real Application Clusters One Node Overview... 1 Always

More information

BENCHMARKING CLOUD DATABASES CASE STUDY on HBASE, HADOOP and CASSANDRA USING YCSB

BENCHMARKING CLOUD DATABASES CASE STUDY on HBASE, HADOOP and CASSANDRA USING YCSB BENCHMARKING CLOUD DATABASES CASE STUDY on HBASE, HADOOP and CASSANDRA USING YCSB Planet Size Data!? Gartner s 10 key IT trends for 2012 unstructured data will grow some 80% over the course of the next

More information

Distribution One Server Requirements

Distribution One Server Requirements Distribution One Server Requirements Introduction Welcome to the Hardware Configuration Guide. The goal of this guide is to provide a practical approach to sizing your Distribution One application and

More information

EUCIP IT Administrator - Module 2 Operating Systems Syllabus Version 3.0

EUCIP IT Administrator - Module 2 Operating Systems Syllabus Version 3.0 EUCIP IT Administrator - Module 2 Operating Systems Syllabus Version 3.0 Copyright 2011 ECDL Foundation All rights reserved. No part of this publication may be reproduced in any form except as permitted

More information

Resource Management and Containment for Active Services

Resource Management and Containment for Active Services Resource Management and Containment for Active Services M. Ranganathan, Doug Montgomery, Kevin Mills Advanced Networking Technologies Division National Inst. Of Standards and Technology Gaithersburg, MD

More information

This paper defines as "Classical"

This paper defines as Classical Principles of Transactional Approach in the Classical Web-based Systems and the Cloud Computing Systems - Comparative Analysis Vanya Lazarova * Summary: This article presents a comparative analysis of

More information

The Service Availability Forum Specification for High Availability Middleware

The Service Availability Forum Specification for High Availability Middleware The Availability Forum Specification for High Availability Middleware Timo Jokiaho, Fred Herrmann, Dave Penkler, Manfred Reitenspiess, Louise Moser Availability Forum Timo.Jokiaho@nokia.com, Frederic.Herrmann@sun.com,

More information

EWeb: Highly Scalable Client Transparent Fault Tolerant System for Cloud based Web Applications

EWeb: Highly Scalable Client Transparent Fault Tolerant System for Cloud based Web Applications ECE6102 Dependable Distribute Systems, Fall2010 EWeb: Highly Scalable Client Transparent Fault Tolerant System for Cloud based Web Applications Deepal Jayasinghe, Hyojun Kim, Mohammad M. Hossain, Ali Payani

More information

Akuda Labs. Leverages Peak Hosting s Operations-as-a-Service Managed Hosting Solution to Process Big Data Analytics 500 Faster without Big Costs

Akuda Labs. Leverages Peak Hosting s Operations-as-a-Service Managed Hosting Solution to Process Big Data Analytics 500 Faster without Big Costs Akuda Labs Leverages Peak Hosting s Operations-as-a-Service Managed Hosting Solution to Process Big Data Analytics 500 Faster without Big Costs INDUSTRY: BIG DATA ANALYTICS This case study provides a high-level

More information

IBM Platform Computing Cloud Service Ready to use Platform LSF & Symphony clusters in the SoftLayer cloud

IBM Platform Computing Cloud Service Ready to use Platform LSF & Symphony clusters in the SoftLayer cloud IBM Platform Computing Cloud Service Ready to use Platform LSF & Symphony clusters in the SoftLayer cloud February 25, 2014 1 Agenda v Mapping clients needs to cloud technologies v Addressing your pain

More information

Inside Track Research Note. In association with. Enterprise Storage Architectures. Is it only about scale up or scale out?

Inside Track Research Note. In association with. Enterprise Storage Architectures. Is it only about scale up or scale out? Research Note In association with Enterprise Storage Architectures Is it only about scale up or scale out? August 2015 About this The insights presented in this document are derived from independent research

More information

Exploring Oracle E-Business Suite Load Balancing Options. Venkat Perumal IT Convergence

Exploring Oracle E-Business Suite Load Balancing Options. Venkat Perumal IT Convergence Exploring Oracle E-Business Suite Load Balancing Options Venkat Perumal IT Convergence Objectives Overview of 11i load balancing techniques Load balancing architecture Scenarios to implement Load Balancing

More information

Multi-Channel Clustered Web Application Servers

Multi-Channel Clustered Web Application Servers THE AMERICAN UNIVERSITY IN CAIRO SCHOOL OF SCIENCES AND ENGINEERING Multi-Channel Clustered Web Application Servers A Masters Thesis Department of Computer Science and Engineering Status Report Seminar

More information

Masters in Human Computer Interaction

Masters in Human Computer Interaction Masters in Human Computer Interaction Programme Requirements Taught Element, and PG Diploma in Human Computer Interaction: 120 credits: IS5101 CS5001 CS5040 CS5041 CS5042 or CS5044 up to 30 credits from

More information

High Frequency Trading and NoSQL. Peter Lawrey CEO, Principal Consultant Higher Frequency Trading

High Frequency Trading and NoSQL. Peter Lawrey CEO, Principal Consultant Higher Frequency Trading High Frequency Trading and NoSQL Peter Lawrey CEO, Principal Consultant Higher Frequency Trading Agenda Who are we? Brief introduction to OpenHFT. What does a typical trading system look like What requirements

More information

Chapter 6, The Operating System Machine Level

Chapter 6, The Operating System Machine Level Chapter 6, The Operating System Machine Level 6.1 Virtual Memory 6.2 Virtual I/O Instructions 6.3 Virtual Instructions For Parallel Processing 6.4 Example Operating Systems 6.5 Summary Virtual Memory General

More information

Chapter 9 Software Evolution

Chapter 9 Software Evolution Chapter 9 Software Evolution Summary 1 Topics covered Evolution processes Change processes for software systems Program evolution dynamics Understanding software evolution Software maintenance Making changes

More information

Above the Clouds: Introducing Akka

Above the Clouds: Introducing Akka Above the Clouds: Introducing Akka Jonas Bonér CTO Typesafe Email: jonas@typesafe.com Twitter: @jboner The problem It is way too hard to build: 1. correct highly concurrent systems 2. truly scalable systems

More information

Lessons learned How we use Erlang to analyze millions of messages per day

Lessons learned How we use Erlang to analyze millions of messages per day Erlang Factory Lite Paris Lessons learned How we use Erlang to analyze millions of messages per day A few words about us What we do with Erlang A few words about us Semiocast processes social media conversations

More information

Cloudy Middleware MARK LITTLE <MLITTLE@REDHAT.COM> TOBIAS KUNZE <TKUNZE@REDHAT.COM>

Cloudy Middleware MARK LITTLE <MLITTLE@REDHAT.COM> TOBIAS KUNZE <TKUNZE@REDHAT.COM> Cloudy Middleware MARK LITTLE TOBIAS KUNZE About Mark Little Sr Director of Engineering, Red Hat Tobias Kunze PaaS Architect, Red Hat CTO/Co-founder of Makara 2

More information

Masters in Computing and Information Technology

Masters in Computing and Information Technology Masters in Computing and Information Technology Programme Requirements Taught Element, and PG Diploma in Computing and Information Technology: 120 credits: IS5101 CS5001 or CS5002 CS5003 up to 30 credits

More information

Masters in Networks and Distributed Systems

Masters in Networks and Distributed Systems Masters in Networks and Distributed Systems Programme Requirements Taught Element, and PG Diploma in Networks and Distributed Systems: 120 credits: IS5101 CS5001 CS5021 CS4103 or CS5023 in total, up to

More information

Architecting For Failure Why Cloud Architecture is Different! Michael Stiefel www.reliablesoftware.com development@reliablesoftware.

Architecting For Failure Why Cloud Architecture is Different! Michael Stiefel www.reliablesoftware.com development@reliablesoftware. Architecting For Failure Why Cloud Architecture is Different! Michael Stiefel www.reliablesoftware.com development@reliablesoftware.com Outsource Infrastructure? Traditional Web Application Web Site Virtual

More information

A standards-based approach to application integration

A standards-based approach to application integration A standards-based approach to application integration An introduction to IBM s WebSphere ESB product Jim MacNair Senior Consulting IT Specialist Macnair@us.ibm.com Copyright IBM Corporation 2005. All rights

More information

Celebrus Apex Programme

Celebrus Apex Programme Celebrus Apex Programme Introduction This document outlines the benefits of becoming a Celebrus Apex Partner, explains how the programme is structured and how to become a part of it. Why become a Celebrus

More information

Oracle to SQL Server 2005 Migration

Oracle to SQL Server 2005 Migration Oracle to SQL Server 2005 Migration Methodology and Practice Presented By: Barry Young Copyright 2006 by Proactive Performance Solutions, Inc. Agenda Introduction Migration: Oracle to SQL Server Methodology:

More information

Applications to Computational Financial and GPU Computing. May 16th. Dr. Daniel Egloff +41 44 520 01 17 +41 79 430 03 61

Applications to Computational Financial and GPU Computing. May 16th. Dr. Daniel Egloff +41 44 520 01 17 +41 79 430 03 61 F# Applications to Computational Financial and GPU Computing May 16th Dr. Daniel Egloff +41 44 520 01 17 +41 79 430 03 61 Today! Why care about F#? Just another fashion?! Three success stories! How Alea.cuBase

More information

Software Engineering. So(ware Evolu1on

Software Engineering. So(ware Evolu1on Software Engineering So(ware Evolu1on 1 Software change Software change is inevitable New requirements emerge when the software is used; The business environment changes; Errors must be repaired; New computers

More information

Chapter 7: Distributed Systems: Warehouse-Scale Computing. Fall 2011 Jussi Kangasharju

Chapter 7: Distributed Systems: Warehouse-Scale Computing. Fall 2011 Jussi Kangasharju Chapter 7: Distributed Systems: Warehouse-Scale Computing Fall 2011 Jussi Kangasharju Chapter Outline Warehouse-scale computing overview Workloads and software infrastructure Failures and repairs Note:

More information

Scaling to Millions of Simultaneous Connections

Scaling to Millions of Simultaneous Connections Scaling to Millions of Simultaneous Connections Rick Reed WhatsApp Erlang Factory SF March 30, 2012 1 About... Joined WhatsApp in 2011 New to Erlang Background in performance of C-based systems on FreeBSD

More information

Basics in Energy Information (& Communication) Systems Virtualization / Virtual Machines

Basics in Energy Information (& Communication) Systems Virtualization / Virtual Machines Basics in Energy Information (& Communication) Systems Virtualization / Virtual Machines Dr. Johann Pohany, Virtualization Virtualization deals with extending or replacing an existing interface so as to

More information

Real Time Programming: Concepts

Real Time Programming: Concepts Real Time Programming: Concepts Radek Pelánek Plan at first we will study basic concepts related to real time programming then we will have a look at specific programming languages and study how they realize

More information

Business Application Services Testing

Business Application Services Testing Business Application Services Testing Curriculum Structure Course name Duration(days) Express 2 Testing Concept and methodologies 3 Introduction to Performance Testing 3 Web Testing 2 QTP 5 SQL 5 Load

More information

An Architecture Vision

An Architecture Vision An Architecture Vision Universal Cloud Communications Stack Cloud Telecom. Software that turns communications into a service. 1 Software Architecture That Matters Universal Cloud Communications Stack (UCCS),

More information

zen Platform technical white paper

zen Platform technical white paper zen Platform technical white paper The zen Platform as Strategic Business Platform The increasing use of application servers as standard paradigm for the development of business critical applications meant

More information

Streaming Big Data Performance Benchmark for Real-time Log Analytics in an Industry Environment

Streaming Big Data Performance Benchmark for Real-time Log Analytics in an Industry Environment Streaming Big Data Performance Benchmark for Real-time Log Analytics in an Industry Environment SQLstream s-server The Streaming Big Data Engine for Machine Data Intelligence 2 SQLstream proves 15x faster

More information

Server Virtualization in Manufacturing

Server Virtualization in Manufacturing W H I T E P A P E R Server Virtualization in Manufacturing Do s and Don ts for Business- and Mission-critical Manufacturing Systems Uptime. All the time. 1 Abstract While the benefits of server virtualization

More information

WHITE PAPER. How To Compare Virtual Devices (NFV) vs Hardware Devices: Testing VNF Performance

WHITE PAPER. How To Compare Virtual Devices (NFV) vs Hardware Devices: Testing VNF Performance WHITE PAPER How To Compare Virtual Devices (NFV) vs Hardware Devices: Testing VNF Performance www.ixiacom.com 915-3132-01 Rev. B, June 2014 2 Table of Contents Network Functions Virtualization (NFV): An

More information

Inside the Erlang VM

Inside the Erlang VM Rev A Inside the Erlang VM with focus on SMP Prepared by Kenneth Lundin, Ericsson AB Presentation held at Erlang User Conference, Stockholm, November 13, 2008 1 Introduction The history of support for

More information

Cache Database: Introduction to a New Generation Database

Cache Database: Introduction to a New Generation Database Cache Database: Introduction to a New Generation Database Amrita Bhatnagar Department of Computer Science and Engineering, Birla Institute of Technology, A 7, Sector 1, Noida 201301 UP amritapsaxena@gmail.com

More information

The K 2 System: Lisp at the Core of the ISP Business

The K 2 System: Lisp at the Core of the ISP Business The K 2 System: Lisp at the Core of the ISP Business Espen J. Vestre Nextra AS 1 Introduction The Nextra Group, a subsidiary of Telenor (the norwegian Telecom), is Norway s largest ISP, with over 400.000

More information

Example of Standard API

Example of Standard API 16 Example of Standard API System Call Implementation Typically, a number associated with each system call System call interface maintains a table indexed according to these numbers The system call interface

More information

Eloquence Training What s new in Eloquence B.08.00

Eloquence Training What s new in Eloquence B.08.00 Eloquence Training What s new in Eloquence B.08.00 2010 Marxmeier Software AG Rev:100727 Overview Released December 2008 Supported until November 2013 Supports 32-bit and 64-bit platforms HP-UX Itanium

More information

COMMODITIZING THE DATACENTER. Exploring the Impacts of the Shift to Virtualization and Cloud Computing

COMMODITIZING THE DATACENTER. Exploring the Impacts of the Shift to Virtualization and Cloud Computing COMMODITIZING THE DATACENTER Exploring the Impacts of the Shift to Virtualization and Cloud Computing 3/5/2015 AGENDA Changing Environments What Is The Datacenter Why Do We Use Them Adapting To A Changing

More information

Whitepaper. The Top 10 Advantages of 3CX Phone System. Why your next phone system should be software based and by 3CX

Whitepaper. The Top 10 Advantages of 3CX Phone System. Why your next phone system should be software based and by 3CX Whitepaper The Top 10 Advantages of 3CX Phone System Why your next phone system should be software based and by 3CX This whitepaper outlines the top 10 advantages of choosing 3CX Phone System, a Windows

More information

SERVICE SCHEDULE PULSANT ENTERPRISE CLOUD SERVICES

SERVICE SCHEDULE PULSANT ENTERPRISE CLOUD SERVICES SERVICE SCHEDULE PULSANT ENTERPRISE CLOUD SERVICES This is a Service Schedule as defined in the Conditions. Where the Services set out in this Service Schedule form part of the Services to be supplied

More information

THE BASIC SERVER IN ERLANG

THE BASIC SERVER IN ERLANG THE BASIC SERVER IN ERLANG The first common pattern I'll describe is one we've already used. When writing the event server, we had what could be called a client-server model. The event server would calls

More information

socketio Documentation

socketio Documentation socketio Documentation Release 0.1 Miguel Grinberg January 17, 2016 Contents 1 What is Socket.IO? 3 2 Getting Started 5 3 Rooms 7 4 Responses 9 5 Callbacks 11 6 Namespaces 13 7 Using a Message Queue 15

More information

Streaming Big Data Performance Benchmark. for

Streaming Big Data Performance Benchmark. for Streaming Big Data Performance Benchmark for 2 The V of Big Data Velocity means both how fast data is being produced and how fast the data must be processed to meet demand. Gartner Static Big Data is a

More information

AKIPS Network Monitor Installation, Configuration & Upgrade Guide Version 15. AKIPS Pty Ltd

AKIPS Network Monitor Installation, Configuration & Upgrade Guide Version 15. AKIPS Pty Ltd AKIPS Network Monitor Installation, Configuration & Upgrade Guide Version 15 AKIPS Pty Ltd November 12, 2015 1 Copyright Copyright 2015 AKIPS Holdings Pty Ltd. All rights reserved worldwide. No part of

More information

Cloud Operating Systems for Servers

Cloud Operating Systems for Servers Cloud Operating Systems for Servers Mike Day Distinguished Engineer, Virtualization and Linux August 20, 2014 mdday@us.ibm.com 1 What Makes a Good Cloud Operating System?! Consumes Few Resources! Fast

More information

LOAD BALANCING TECHNIQUES FOR RELEASE 11i AND RELEASE 12 E-BUSINESS ENVIRONMENTS

LOAD BALANCING TECHNIQUES FOR RELEASE 11i AND RELEASE 12 E-BUSINESS ENVIRONMENTS LOAD BALANCING TECHNIQUES FOR RELEASE 11i AND RELEASE 12 E-BUSINESS ENVIRONMENTS Venkat Perumal IT Convergence Introduction Any application server based on a certain CPU, memory and other configurations

More information

BIG DATA IN THE CLOUD : CHALLENGES AND OPPORTUNITIES MARY- JANE SULE & PROF. MAOZHEN LI BRUNEL UNIVERSITY, LONDON

BIG DATA IN THE CLOUD : CHALLENGES AND OPPORTUNITIES MARY- JANE SULE & PROF. MAOZHEN LI BRUNEL UNIVERSITY, LONDON BIG DATA IN THE CLOUD : CHALLENGES AND OPPORTUNITIES MARY- JANE SULE & PROF. MAOZHEN LI BRUNEL UNIVERSITY, LONDON Overview * Introduction * Multiple faces of Big Data * Challenges of Big Data * Cloud Computing

More information

CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson

CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson CS 3530 Operating Systems L02 OS Intro Part 1 Dr. Ken Hoganson Chapter 1 Basic Concepts of Operating Systems Computer Systems A computer system consists of two basic types of components: Hardware components,

More information

Operating System Organization. Purpose of an OS

Operating System Organization. Purpose of an OS Slide 3-1 Operating System Organization Purpose of an OS Slide 3-2 es Coordinate Use of the Abstractions he Abstractions Create the Abstractions 1 OS Requirements Slide 3-3 Provide resource abstractions

More information

AKIPS Network Monitor Installation, Configuration & Upgrade Guide Version 16. AKIPS Pty Ltd

AKIPS Network Monitor Installation, Configuration & Upgrade Guide Version 16. AKIPS Pty Ltd AKIPS Network Monitor Installation, Configuration & Upgrade Guide Version 16 AKIPS Pty Ltd July 5, 2016 1 Copyright Copyright 2015 AKIPS Holdings Pty Ltd. All rights reserved worldwide. No part of this

More information

StreamServe Persuasion SP5 Microsoft SQL Server

StreamServe Persuasion SP5 Microsoft SQL Server StreamServe Persuasion SP5 Microsoft SQL Server Database Guidelines Rev A StreamServe Persuasion SP5 Microsoft SQL Server Database Guidelines Rev A 2001-2011 STREAMSERVE, INC. ALL RIGHTS RESERVED United

More information

- An Essential Building Block for Stable and Reliable Compute Clusters

- An Essential Building Block for Stable and Reliable Compute Clusters Ferdinand Geier ParTec Cluster Competence Center GmbH, V. 1.4, March 2005 Cluster Middleware - An Essential Building Block for Stable and Reliable Compute Clusters Contents: Compute Clusters a Real Alternative

More information

CLOUD DEVELOPMENT BEST PRACTICES & SUPPORT APPLICATIONS

CLOUD DEVELOPMENT BEST PRACTICES & SUPPORT APPLICATIONS whitepaper CLOUD DEVELOPMENT BEST PRACTICES & SUPPORT APPLICATIONS - Cloud Development Best Practices and Support Applications CLOUD DEVELOPMENT BEST PRACTICES 1 Cloud-based solutions are increasingly

More information

Last time. Data Center as a Computer. Today. Data Center Construction (and management)

Last time. Data Center as a Computer. Today. Data Center Construction (and management) Last time Data Center Construction (and management) Johan Tordsson Department of Computing Science 1. Common (Web) application architectures N-tier applications Load Balancers Application Servers Databases

More information

WHITE PAPER. Data Center Fabrics. Why the Right Choice is so Important to Your Business

WHITE PAPER. Data Center Fabrics. Why the Right Choice is so Important to Your Business WHITE PAPER Data Center Fabrics Why the Right Choice is so Important to Your Business Introduction Data center fabrics are emerging as the preferred architecture for next-generation virtualized data centers,

More information

Spotify services. The whole is greater than the sum of the parts. Niklas Gustavsson. måndag 4 mars 13

Spotify services. The whole is greater than the sum of the parts. Niklas Gustavsson. måndag 4 mars 13 Spotify services The whole is greater than the sum of the parts Niklas Gustavsson Me Distributed systems geek Spotify since 2011 ngn@spotify.com @protocol7 Last year Architectural overview Lots of questions!

More information

Build Your Own Performance Test Lab in the Cloud. Leslie Segal Testware Associate, Inc. leslie.segal@testwareinc.com

Build Your Own Performance Test Lab in the Cloud. Leslie Segal Testware Associate, Inc. leslie.segal@testwareinc.com Build Your Own Performance Test Lab in the Cloud Leslie Segal Testware Associate, Inc. leslie.segal@testwareinc.com Problem(s) I was trying to Solve Need more VUs Don t have Tool Times up reschedule test

More information

Masters in Advanced Computer Science

Masters in Advanced Computer Science Masters in Advanced Computer Science Programme Requirements Taught Element, and PG Diploma in Advanced Computer Science: 120 credits: IS5101 CS5001 up to 30 credits from CS4100 - CS4450, subject to appropriate

More information

How To Choose Between A Relational Database Service From Aws.Com

How To Choose Between A Relational Database Service From Aws.Com The following text is partly taken from the Oracle book Middleware and Cloud Computing It is available from Amazon: http://www.amazon.com/dp/0980798000 Cloud Databases and Oracle When designing your cloud

More information

Virtual Server Hosting Service Definition. SD021 v1.8 Issue Date 20 December 10

Virtual Server Hosting Service Definition. SD021 v1.8 Issue Date 20 December 10 Virtual Server Hosting Service Definition SD021 v1.8 Issue Date 20 December 10 10 Service Overview Virtual Server Hosting is InTechnology s hosted managed service for virtual servers. Our virtualisation

More information

Network Management and Monitoring Software

Network Management and Monitoring Software Page 1 of 7 Network Management and Monitoring Software Many products on the market today provide analytical information to those who are responsible for the management of networked systems or what the

More information

Part V Applications. What is cloud computing? SaaS has been around for awhile. Cloud Computing: General concepts

Part V Applications. What is cloud computing? SaaS has been around for awhile. Cloud Computing: General concepts Part V Applications Cloud Computing: General concepts Copyright K.Goseva 2010 CS 736 Software Performance Engineering Slide 1 What is cloud computing? SaaS: Software as a Service Cloud: Datacenters hardware

More information

IT Architecture Review. ISACA Conference Fall 2003

IT Architecture Review. ISACA Conference Fall 2003 IT Architecture Review ISACA Conference Fall 2003 Table of Contents Introduction Business Drivers Overview of Tiered Architecture IT Architecture Review Why review IT architecture How to conduct IT architecture

More information

Using Linux Clusters as VoD Servers

Using Linux Clusters as VoD Servers HAC LUCE Using Linux Clusters as VoD Servers Víctor M. Guĺıas Fernández gulias@lfcia.org Computer Science Department University of A Corunha funded by: Outline Background: The Borg Cluster Video on Demand.

More information