22
Go-ing Places Go in the travel industry

Going places

Embed Size (px)

Citation preview

Page 1: Going places

Go-ing PlacesGo in the travel industry

Page 2: Going places

Introduction

Paul Mooney

Host, insidethecpu.com

Architect, Ryanair Labs

Programming with Go for 1 year

Page 3: Going places

Schedule

Why

Where

How

Page 4: Going places

Disclaimer

I’m not a recruiter

Page 5: Going places

WhyReasons we chose Go

Page 6: Going places

Speed

Inter-process communication

Dependency analysis

Reduced dependency on C

Efficient mark-and-sweep garbage collection

Page 7: Going places

Beauty

Promotes idiomatic code

Structure and documentation are part-and-parcel

Parallelism is eas[y](ier)

Superb data-transfer and memory management

Page 8: Going places

Price

Linux VMs are cheaper than Windows

33% approx. saving per VM

Page 9: Going places

Goroutines vs. threads

Smaller memory footprint

Disconnected from OS threading mechanism

More scalable stack

Encapsulated preemption, synchronisation

Page 10: Going places

WhereWhere we run Go

Page 11: Going places

Payment system

50K+ daily transactions

Multiple facets of execution

Encapsulated complexity

Page 12: Going places

Payment card validationBIN-range lookup

Luhn check

Sensitive data-retrieval

External security

Internal security

Fraud-detection

Dynamic currency-conversion (DCC)

Page 13: Going places

Sensitive data retrieval

Page 14: Going places

Making a payment

Page 15: Going places

PCI compliance

Page 16: Going places

HowHow Go works

Page 17: Going places

Static types

Variables retain specified type

Problems identified at compile-time

Page 18: Going places

Memory management

Variables live on the stack or heap

Generally favour the local call stack

Heap reserved for long-life or large objects

Page 19: Going places

–You

“Just show me the damn code!”

Page 20: Going places

Final thoughts

Backbone of Ryanair finance

Reduced cost

Increased speed of operation

Standardised developement

Page 21: Going places

Shameless plug

Source code

https://github.com/daishisystems/fallback

https://github.com/daishisystems/month

ie.linkedin.com/in/daishisystems

@daishisystems

Page 22: Going places