![Page 1: Using and Building Open Source in Google Corporate Engineering - Justin McWilliams](https://reader034.vdocuments.net/reader034/viewer/2022051817/54868dc6b4af9f730d8b523e/html5/thumbnails/1.jpg)
Open Source inGoogle Corporate Engineering
Justin McWilliams
![Page 2: Using and Building Open Source in Google Corporate Engineering - Justin McWilliams](https://reader034.vdocuments.net/reader034/viewer/2022051817/54868dc6b4af9f730d8b523e/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022051817/54868dc6b4af9f730d8b523e/html5/thumbnails/3.jpg)
Google CorpEng Challenges
![Page 4: Using and Building Open Source in Google Corporate Engineering - Justin McWilliams](https://reader034.vdocuments.net/reader034/viewer/2022051817/54868dc6b4af9f730d8b523e/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022051817/54868dc6b4af9f730d8b523e/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022051817/54868dc6b4af9f730d8b523e/html5/thumbnails/6.jpg)
"Open" more than just "Source"
![Page 7: Using and Building Open Source in Google Corporate Engineering - Justin McWilliams](https://reader034.vdocuments.net/reader034/viewer/2022051817/54868dc6b4af9f730d8b523e/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022051817/54868dc6b4af9f730d8b523e/html5/thumbnails/8.jpg)
What's interesting about these?
AngularJSClosureFlexMock
GinGuiceGSONGWT
Keyczaripaddr-pyoauth2clientpymox
![Page 9: Using and Building Open Source in Google Corporate Engineering - Justin McWilliams](https://reader034.vdocuments.net/reader034/viewer/2022051817/54868dc6b4af9f730d8b523e/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022051817/54868dc6b4af9f730d8b523e/html5/thumbnails/10.jpg)
![Page 11: Using and Building Open Source in Google Corporate Engineering - Justin McWilliams](https://reader034.vdocuments.net/reader034/viewer/2022051817/54868dc6b4af9f730d8b523e/html5/thumbnails/11.jpg)
+ =
Simian
![Page 12: Using and Building Open Source in Google Corporate Engineering - Justin McWilliams](https://reader034.vdocuments.net/reader034/viewer/2022051817/54868dc6b4af9f730d8b523e/html5/thumbnails/12.jpg)
Cauliflower Vest
![Page 13: Using and Building Open Source in Google Corporate Engineering - Justin McWilliams](https://reader034.vdocuments.net/reader034/viewer/2022051817/54868dc6b4af9f730d8b523e/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022051817/54868dc6b4af9f730d8b523e/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022051817/54868dc6b4af9f730d8b523e/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022051817/54868dc6b4af9f730d8b523e/html5/thumbnails/16.jpg)
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