using and building open source in google corporate engineering - justin mcwilliams

16
Open Source in Google Corporate Engineering Justin McWilliams

Upload: oscon-byrum

Post on 05-Dec-2014

3.142 views

Category:

Technology


0 download

DESCRIPTION

http://www.oscon.com/oscon2012/public/schedule/detail/23968

TRANSCRIPT

Page 1: Using and Building Open Source in Google Corporate Engineering - Justin McWilliams

Open Source inGoogle Corporate Engineering

Justin McWilliams

Page 2: Using and Building Open Source in Google Corporate Engineering - Justin McWilliams

Corporate ITWorkstations & WiFi

Video Conferencing &Telecommunication

VPN & Remote Access Helpdesk / Tech Support

Servers & Networking

Calendar & Productivity

Mobile Devices Email

Page 3: Using and Building Open Source in Google Corporate Engineering - Justin McWilliams

Google CorpEng Challenges

Page 4: Using and Building Open Source in Google Corporate Engineering - Justin McWilliams

CorpEng not only runs, but develops most solutions!

● Video conferencing, complete with fleet management● Mac OS X software deployment client and server● Full disk encryption recovery key escrow solution● Binary whitelist approval workflow system● Employee performance review and promotion system● Interview scheduling, feedback, and hiring decision solution● Financial and expense reporting tools● Compensation review/display● International payroll calculation● Much, much more

Most of the above are built on Google App Engine, and some are open sourced.

Page 5: Using and Building Open Source in Google Corporate Engineering - Justin McWilliams

Why does CorpEng Open Source?

Why does Google Open Source?

Why does anyone Open Source?

Page 6: Using and Building Open Source in Google Corporate Engineering - Justin McWilliams

"Open" more than just "Source"

Page 7: Using and Building Open Source in Google Corporate Engineering - Justin McWilliams

OSS widely used within CorpEng● Need a high-performance, distributed in-memory object caching system?

○ Memcached

● Java date and time classes causing pain?○ JodaTime

● Want a library or framework to help with testing?○ Mockito, EasyMock, Machinist, UnitRecord, FlexMock, pymox

● Developing a web application?○ Django, GWT, Spring, Struts, Closure, jQuery, AngularJS, ...

● Can't write in binary?○ Java, Python, Ruby (on Rails), Go, etc.

Page 8: Using and Building Open Source in Google Corporate Engineering - Justin McWilliams

What's interesting about these?

AngularJSClosureFlexMock

GinGuiceGSONGWT

Keyczaripaddr-pyoauth2clientpymox

Page 9: Using and Building Open Source in Google Corporate Engineering - Justin McWilliams

Example OSS use within CorpEng● AutoTest

○ Automated testing and releasing of our customized Ubuntu distribution

● CodeMirror (JavaScript)○ Used to build an internal application dev tool for a browser-based IDE

■ Not Google Collide, which also uses CodeMirror

● FreeSWITCH○ Used to build our custom call center telephony routing system

● Munki & Puppet○ Mac OS X systems administration tools

Page 10: Using and Building Open Source in Google Corporate Engineering - Justin McWilliams
Page 11: Using and Building Open Source in Google Corporate Engineering - Justin McWilliams

+ =

Simian

Page 12: Using and Building Open Source in Google Corporate Engineering - Justin McWilliams

Cauliflower Vest

Page 13: Using and Building Open Source in Google Corporate Engineering - Justin McWilliams

CorpEng Open Source Solutions

Simian Software mgmt for one of the largest Mac deployments in the world

Cauliflower Vest Enterprise-class FileVault 2 recovery key escrow solution

Ganeti Cluster-based virtualization management software

CloudCourse LMS for enterprise course scheduling and management

Page 14: Using and Building Open Source in Google Corporate Engineering - Justin McWilliams

CorpEng OSS Releases / ContributionsGORD Platform agnostic RPC daemon for interaction with Microsoft SMS/SCCM

Compliance Management Automated maintenance, analytics and reporting of compliance data

AppReduce* Enterprise software license tracking and employee transparency tool

Contributions to non-Google OSS: Firebug, FreeJ, Objectify, PyActiveResource, PyCups, Rails, ..., Debian, Ubuntu, ...

Page 15: Using and Building Open Source in Google Corporate Engineering - Justin McWilliams

CorpEng Open Source Release ProcessAkin to Android, not Chromium; develop internally then release large dumps, because....

Page 16: Using and Building Open Source in Google Corporate Engineering - Justin McWilliams

Links! Questions?CorpEng Open Source Projects

● Simian http://code.google.com/p/simian○ Munki http://code.google.com/p/munki

● Cauliflower Vest http://code.google.com/p/cauliflowervest● Ganeti http://code.google.com/p/ganeti● Compliance Management http://code.google.com/p/compliance-management

Misc● Make Open Easy http://code.google.com/p/make-open-easy

CorpEng Videos & Presentations:● Google on Google, I/O http://goo.gl/ovJ2D● Coding For Cloud, I/O http://goo.gl/nt6Ox● Corp Apps on AppEngine, I/O http://goo.gl/m1XzN● Life@Google IT Teams http://goo.gl/7cYSf