SHOW A · maya-2023.1 + tools-v2.10SHOW B · maya-2024.2 + tools-v2.14MASZYN · wspólna pula
Rozdział 17 / Narzędzia

Zarządzanie środowiskiem: dlaczego każdy ma dokładnie te same wersje

„U mnie działa" nie może istnieć w studiu, gdzie ten sam show renderuje się na tysiącu maszyn naraz — po to istnieją menedżery pakietów pipeline'u.

TL;DR

Rozdziały 9 i 12 zostawiły otwarte pytanie: skoro kod pipeline'u bywa „przypięty" tagiem do konkretnego showu, a config OCIO musi być identyczny na każdej maszynie, to co fizycznie to egzekwuje? Odpowiedź to menedżer środowiska — warstwa, która stoi bliżej systemu operacyjnego niż jakikolwiek pojedynczy DCC, i bez której żadna z tych obietnic nie dałaby się dotrzymać w praktyce.

Etap: Dlaczego globalna instalacja nie działa

Dwa show'y, sprzeczne wymagania, ta sama pula maszyn

Duże studio niemal nigdy nie pracuje nad jedną produkcją naraz. Show A jest tydzień przed oddaniem materiału i musi zostać na dokładnie tej wersji Mayi i tagu narzędzi, na której wszystko zostało przetestowane i zatwierdzone — żadnej aktualizacji, żadnego ryzyka. Show B dopiero się rozkręca i chce najnowszej wersji tych samych narzędzi, z nową funkcją, której A nawet nie potrzebuje. Oba show'y korzystają z tej samej puli stacji roboczych i tej samej farmy renderowej (Rozdział 19). Gdyby jedynym sposobem instalacji oprogramowania było zainstalowanie jednej, globalnej wersji na każdej maszynie, te dwa wymagania byłyby ze sobą fizycznie sprzeczne.

Etap: Pakiet i kontekst

Środowisko budowane na życzenie, nie zainstalowane raz na stałe

Menedżer pakietów — w VFX najpopularniejszy jest Rez — rozwiązuje ten problem, traktując każdą wersję każdego narzędzia jako osobny, samodzielny pakiet z jawnie zadeklarowanymi zależnościami od innych pakietów. Zamiast instalować jedną wersję Mayi na stałe, system trzyma obok siebie wiele wersji naraz, nietknięte, i buduje kontekst — konkretne, odizolowane środowisko (zmienne systemowe, ścieżki, załadowane wtyczki) — dopiero w momencie, gdy ktoś go zażąda. Artysta pracujący nad showem A dostaje środowisko z Mayą 2023.1 i tagiem narzędzi v2.10; artysta showu B, siedzący dosłownie przy sąsiednim biurku na identycznym sprzęcie, dostaje Mayę 2024.2 i tag v2.14 — bez konfliktu, bo oba środowiska istnieją tylko w momencie żądania, każde odizolowane od drugiego.

Rez.resolveDwa żądania, dwa środowiska
Żądanie: show A Żądanie: show B Menedżer pakietów rozwiązuje kontekst maya-2023.1 + tools-v2.10 maya-2024.2 + tools-v2.14
Dwa odizolowane środowiska, ta sama fizyczna maszyna — konflikt, który globalna instalacja by uniemożliwiła.
Etap: Wspólny dostawca, nie osobna technologia

Domyka pętlę z Rozdziałów 9 i 12

Tag przypięty do showu z Rozdziału 9 to w praktyce po prostu wpis w żądaniu kontekstu: „ten show chce pipeline-tools w wersji dokładnie takiej, jaką oznacza ten tag". Zmienna OCIO wskazująca na właściwy config z Rozdziału 12 to ustawienie, które menedżer pakietów wpisuje do środowiska automatycznie, razem z resztą zmiennych, przy każdym uruchomieniu. Menedżer środowiska nie jest więc czwartym, osobnym mechanizmem obok tamtych dwóch — jest fizyczną warstwą, która czyni je egzekwowalnymi, zamiast pozostać dobrymi intencjami zapisanymi w dokumentacji. Głębszy wgląd w to, jak dokładnie Rez rozwiązuje sprzeczne zależności, znajdziesz w Dodatku I.

Słowniczek
Pakiet (package)
Samodzielna, wersjonowana jednostka oprogramowania z jawnie zadeklarowanymi zależnościami.
Kontekst (context)
Konkretne, odizolowane środowisko zbudowane na życzenie z rozwiązanego zestawu pakietów.
Rez
Najpopularniejszy w VFX menedżer pakietów i środowisk, rozwiązujący zależności per show.
Pinning (przypinanie)
Jawne związanie showu z konkretną, niezmienną wersją narzędzia lub configu.