Using and Building Open Source in Google Corporate Engineering - Justin McWilliams
Upcoming SlideShare
Loading in...5

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





Total Views
Views on SlideShare
Embed Views



3 Embeds 29 14 13 2



Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

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

  • Open Source inGoogle Corporate Engineering Justin McWilliams
  • Corporate ITWorkstations & WiFi Video Conferencing & TelecommunicationVPN & Remote Access Helpdesk / Tech Support Calendar & ProductivityServers & Networking Email Mobile Devices
  • Google CorpEng Challenges
  • 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.
  • Why does CorpEng Open Source? Why does Google Open Source? Why does anyone Open Source?
  • "Open" more than just "Source"
  • 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.
  • Whats interesting about these? Gin KeyczarAngularJS Guice ipaddr-pyClosure GSON oauth2clientFlexMock GWT pymox
  • 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
  • + = Simian
  • Cauliflower Vest
  • 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
  • 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, ...
  • CorpEng Open Source Release Process Akin to Android, not Chromium; develop internally then release large dumps, because....
  • 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