Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DevOps in Production

DevOps in Production

Software companies have 40-60% ratio engineers. Movie and cartoon production companies are around 5-10%. Still they need to maintain a wide range of DCC plugins and OS, multiple versions of in-house tools across multiple projects. The ratio (size of the build matrix/number of engineers) in production companies is way bigger than software companies. Because their business model is about pictures, not software.
To face such a ratio, production companies need to maximize the use of DevOps technologies. In this BOF we'd like to share production proof knowledge, tips and tricks to improve the delivery and robustness of technologies to production.

OLM Digital R&D

December 04, 2024
Tweet

More Decks by OLM Digital R&D

Other Decks in Programming

Transcript

  1. Today’s plan (60 minutes) • About you (5mn) • Plan

    (10mn) • Code (10mn) • Build and ABI (10mn) • Test (5mn) • Release/Deploy (5mn) • Operate/Monitor/Security (5mn) • About your journey (10mn)
  2. About you • Type of work ◦ Live action ◦

    CG ◦ 2D animation ▪ Japanese ▪ Others ◦ Games ◦ VR, AI, realtime • Persons ◦ Software engineer ◦ Pipeline ◦ Tech artists ◦ Manager ◦ Devops engineer ◦ Others?
  3. Plan • How many projects? • How to gather new

    tool requests? • How to gather feedback on existing tools? • How to estimate ◦ Decide to go ◦ Costs? Needs? ◦ Time, people • How you manage the backlog ◦ Text, spreadsheets, Word ◦ Ticket ▪ Trello ▪ Jira ▪ Github project ◦ Others? • Agile or Waterfall? Scrum, kanban, sprint… • What kind of manager? Senior dev? Specialist? • Specification ◦ Figma ◦ Wiki ◦ Slides, excel ◦ Specifications ▪ So many levels of abstraction • UI concepts • Functionality overviews ▪ UML diagrams ▪ C++ function signature + expected output • Reference sources ◦ Siggraph, eurographics, GDC?
  4. Code • What language? ◦ C/C++ ◦ Rust? • IDE

    ◦ Visual studio, code, emacs, vim • Source management ◦ Git ◦ Svn ◦ Mercury ◦ Others • Cloud ◦ Github ◦ Gitlab • Branching ◦ Trunk base ◦ Git flow • Pull request and code reviews • Open source • Version naming convention • Coding rules ◦ C++ core, google ▪ C++ modules ▪ Exceptions ▪ Auto, noexcept ◦ Python Pep ◦ Specifics? • Rule Enforcement? Clang? At push? • SIMD • Parallelization ◦ Tbb ◦ Openmp ◦ Stdlib • ABI ◦ New ◦ Old • Branchless • Debugger, profiling ◦ GPU? Vtune, valgrind, GDB ◦ Maya profiler…
  5. Build • How many dcc version? Tool version? How many

    OS? • Compile system ◦ Scons ◦ Cmake ◦ Makefile ◦ Ninja ◦ … • CI ◦ Jenkins, github, gitlab, perforce… • Build stdc++11 new and old? • Other ABI problems? • Use package manager ◦ Vpkg, conan, CPM, others?
  6. Test • Unit test framework ◦ Doctest ◦ Catch ◦

    Google Test • How to test in DCC? • How to test user interaction? UI ◦ Button click that crash app
  7. Release/Deploy • Application setup ◦ Rez? ◦ installer? ◦ In

    house? • Dev, test, production environment? • Project version description? Ad hoc?
  8. Operate/Monitor/Security • Clouds and logins ◦ SSH, VPN? ◦ OiDC,

    SAML… • Remote work ◦ Onsite or remote staff? ◦ Local or remote machine? • Server maintenance • License management • Render farm • Logging and metrics • Automatic feedback/stats ◦ Crash report ◦ How the tool is used? ◦ How often the tool is used? ◦ How fast is the rendering? ◦ Who uses the tool? ◦ Tool popularity and impact? ◦ Identify bottlenecks?
  9. About your journey • What you changed? • What you

    want to change? • How? • Why?