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


Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

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

  1. Open Source inGoogle Corporate Engineering Justin McWilliams
  2. Corporate ITWorkstations & WiFi Video Conferencing & TelecommunicationVPN & Remote Access Helpdesk / Tech Support Calendar & ProductivityServers & Networking Email Mobile Devices
  3. Google CorpEng Challenges
  4. 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.
  5. Why does CorpEng Open Source? Why does Google Open Source? Why does anyone Open Source?
  6. "Open" more than just "Source"
  7. 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, ...● Cant write in binary? ○ Java, Python, Ruby (on Rails), Go, etc.
  8. Whats interesting about these? Gin KeyczarAngularJS Guice ipaddr-pyClosure GSON oauth2clientFlexMock GWT pymox
  9. 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
  10. + = Simian
  11. Cauliflower Vest
  12. CorpEng Open Source SolutionsSimian Software mgmt for one of the largest Mac deployments in the worldCauliflower Vest Enterprise-class FileVault 2 recovery key escrow solutionGaneti Cluster-based virtualization management softwareCloudCourse LMS for enterprise course scheduling and management
  13. CorpEng OSS Releases / ContributionsGORD Platform agnostic RPC daemon for interaction with Microsoft SMS/SCCMCompliance Management Automated maintenance, analytics and reporting of compliance dataAppReduce* Enterprise software license tracking and employee transparency toolContributions to non-Google OSS: Firebug, FreeJ, Objectify, PyActiveResource, PyCups, Rails, ..., Debian, Ubuntu, ...
  14. CorpEng Open Source Release Process Akin to Android, not Chromium; develop internally then release large dumps, because....
  15. Links! Questions?CorpEng Open Source Projects ● Simian ○ Munki ● Cauliflower Vest ● Ganeti ● Compliance Management ● Make Open Easy Videos & Presentations: ● Google on Google, I/O ● Coding For Cloud, I/O ● Corp Apps on AppEngine, I/O ● Life@Google IT Teams