Slide 1

Slide 1 text

April 2, 2014 Python for the Enterprise Language Features and why it’s a great investment for developers and businesses ! ! ! Great Wide Open 2014 - Atlanta, GA

Slide 2

Slide 2 text

April 2, 2014 whoami Lynn Root ! Partner Engineer @ Spotify PyLadies of San Francisco Founder Board Member of the Python Software Foundation

Slide 3

Slide 3 text

Spotify

Slide 4

Slide 4 text

Python

Slide 5

Slide 5 text

Awesome

Slide 6

Slide 6 text

Awesome About Spotify & Python Why Python and How we use it Looking forward

Slide 7

Slide 7 text

Spotify

Slide 8

Slide 8 text

April 2, 2014 About Spotify • Available in 55 countries • Over 6 million subscribers • Over 24 million monthly active users • Over 20 million songs • Paid over $1 billion to rights holders to date

Slide 9

Slide 9 text

April 2, 2014 About Spotify • 4.5 TB of compressed data from users per day • 400 GB of data from services per day • 64 TB of data generated in Hadoop each day • 590 node Hadoop cluster • 7,500 Hadoop jobs per day

Slide 10

Slide 10 text

Python

Slide 11

Slide 11 text

April 2, 2014 About Python • 23 years old, latest releases: 2.7.6 and 3.4.0 • Dynamic type system & auto-memory management • Scripting, web dev, networking, scientific computing, database management, 2/3D animation, natural language processing, infosec, artificial intelligence (what else is there?)

Slide 12

Slide 12 text

April 2, 2014 About Python • Scope defined by whitespace • Readability preferred over minor optimization • Cross-platform • Multiple implementations: CPython, PyPy, Jython, IronPython

Slide 13

Slide 13 text

April 2, 2014 These are some of my favorite things • List & generator comprehensions • SimpleHTTPServer, csv, profile, timeit, pdb • IPython notebook • Scapy, requests, Flask, NetworkX, Twisted

Slide 14

Slide 14 text

April 2, 2014 Who uses Python? • Google • Red Hat • Dropbox • Rackspace • Twitter • Facebook • Raspberry Pi • NASA • CERN • ITA • Yahoo! • Walt Disney • IBM • Reddit • YouTube

Slide 15

Slide 15 text

Awesome

Slide 16

Slide 16 text

We chose Python because… • Standard Library & Third-party packages • Community • Fast where it counts

Slide 17

Slide 17 text

April 2, 2014 Libraries & Packages • Python’s stdlib is very comprehensive • MIME, HTTP, SMTP, FTP • Interprocess Communication & Networking • Data persistence, archiving, file I/O • Unit testing, Doc testing, Logging, and CLI parsing • PyPI - over 38,000 packages • pip install $packagename • Networking like gevent, Twisted • Web Frameworks like Django, Flask, Pyramid • Test Frameworks & Doc tools, like pytest and read the docs and sphinx

Slide 18

Slide 18 text

April 2, 2014 Community • Rich ecosystem of third-party packages • Documentation is king • “Zen” of Python widely adopted

Slide 19

Slide 19 text

April 2, 2014 Fast where it counts • Code reviews are fast • Writing less code • Startup time is instant • Quicker overall development cycle • We’re not CPU-bound, more I/O bound

Slide 20

Slide 20 text

April 2, 2014 Where Spotify uses Python • User system: account creation and login • Social system • Payments system • All analytics jobs • Daemon & request handler • Build scripts • Internal PyPI

Slide 21

Slide 21 text

April 2, 2014 What Spotify uses • Django, Pyramid, Flask • Gevent, Twisted, Celery • requests • SQLAlchemy • lxml • Kazoo

Slide 22

Slide 22 text

How we’ve given back • Luigi & Snakebite • dh-virtualenv • gevent patches • Community diversity

Slide 23

Slide 23 text

April 2, 2014 Issues Spotify has faced with Python • A lot of home-grown solutions • No good HTTP client - every library is missing something • memcache client doesn’t work well with our gevent setup • Debian packaging for everything.

Slide 24

Slide 24 text

April 2, 2014 Issues Python face • The Great Debate: Python 2 versus 3 • The GIL • Python on Windows

Slide 25

Slide 25 text

April 2, 2014 Looking Forward • Moving to Ubuntu - revisit Python 3 • Java’s popularity internally is growing since difficult to hire Python developers • Wanting to incorporate more Python into our desktop client

Slide 26

Slide 26 text

April 2, 2014 Thanks! Lynn Root [email protected] @roguelynn | rogue.ly