PuppetConf 2015, Portland, Oregon - 10 lat z puppetem

Puppet

PuppetConf 2015, Portland, Oregon – 10 lat z puppetem, pasja i energia na kolejne 10 lat

20/10/2015
Podziel się

W zeszły piątek zakończyła się tegoroczna edycja konferencji PuppetConf. Po wizycie w dolinie krzemowej spotkanie wraca do miasta, w którym powstał Puppet, do Portland, zajmując na kilka dni całe Oregon Convention Center. I dobrze, bo wydarzenie w liczbach pokazuje jak gorącym tematem obecnie jest automatyzacja i zarządzanie ciągle zmieniającą się infrastrukturą (często wykorzystującą wirtualizację i konteneryzację) odporne na awarie i błędy.

PuppetConf w liczbach:

  • 3 Dni
  • 110 Prelegentów
  • 1900+ Uczestników
  • 120 Pracowników Puppet Labs
  • 75+ Wykładów
  • 3 Programy szkoleń

Uczestnicy, to w dużej mierze pracownicy amerykańskich firm odpowiedzialni za projektowanie i utrzymywanie infrastruktury, a więc wszyscy mówią wspólnym językiem poruszając zawsze aktualne tematy, takie jak skalowalność rozwiązań, przykłady stosowania zasobów obliczeniowych (cloud) czy dobre praktyki programistyczne przy kodowaniu infrastruktury (TDD). Spotkać można jednak gości z Europy i Azji (głównie Chiny, Indie i Japonia).

Pierwszy, nieco nieoficjalny dzień konferencji to środa. Spotkanie rozpoczyna zlot osób odpowiedzialnych za tworzenie społeczności puppeta: koderów modułów, narzędzi, pluginów czy osób pomagających odpowiadać na pytania (ask.puppetlabs.com) oraz zgłaszających i naprawiających błędy. Okazuje się, że oficjalną premierę ma narzędzie retrospec, automatyzujące tworzenie testów na podstawie plików manifestów. Corey (autor) ma nadzieję, że dzięki temu więcej osób przekona się do testów, dzięki czemu jakość powstającego kodu będzie systematycznie się poprawiać, a cała społeczność, która już przekonała się do zalet pracy w modelu CI/CD może odetchnąć, nie musząc już tworzyć samodzielnie gotowców dla rspec. Powstaje też poręczna strona (puppet.community/plugins) zawierająca najważniejsze i najlepsze narzędzia i pluginy stworzone przez społeczność użytkowników puppeta.

PuppetConf 2015

Contributor summit to także okazja dla pracowników Puppet Labs, aby podziękować za zaangażowanie społeczności. Wszyscy biorą udział w głosowaniu na MVP roku (Most Valued Puppeteer), którym zostaje Mark Sutter, autor modułu Powershell DSC dla systemu Windows. Wśród wyróżnionych, są osoby już rozpoznawane jako aktywni uczestnicy, m.in. z Europy: Felix Frank (Server Op z Berlina, odpowiedzialny za ulepszenia we wbudowanych typach, jak cron czy resources), Erik Dalén (pracujący w Sztokholmie dla Spotify, twórca bezserwerowej przeglądarki faktów i raportów – Puppet Explorer) i Brice Figureau (mieszkający w Paryżu i zarządzający infrastrukturą w Days of Wonder za pomocą puppeta od wersji 0.24 i rozwiązujący od tego czasu niezliczoną ilość bugów).

Kolejna, europejska edycja contributor summit już 1-2 Lutego podczas Cfgmgmtcamp w belgijskim Gent (Gandawa) – zaraz po konferencji FOSDEM.

PuppetConf 2015

Czwartek i piątek to już dni konferencji. Otwierający keynote należy do Luke’a Kaniesa, twórcy puppeta i CEO Puppet Labs. Dziesięciolecie firmy i czterechsetny zatrudniony pracownik, to okazja do szerszego spojrzenia na horyzont zmian, których aktywnymi uczestnikami byli twórcy i użytkownicy puppeta, ukuwając przez ten czas metodykę IaaC. Ten wątek będzie się powtarzał przez całą konferencję, bo jest zauważany przez wiele osób: powstałe warstwy abstrakcji pozwalają nam skutecznie rozwiązywać coraz to bardziej skomplikowane problemy. Należy się spodziewać, że kolejne 10 lat przyniesie nam nowe, dużo bardziej skomplikowane narzędzia, aktywnie korzystające z istniejącej infrastruktury. To jednak wymaga, abyśmy przestali mówić “admini, operatorzy”, a zaczęli przesuwać kompetencje osób odpowiedzialnych za zarządzanie infrastruktury do “inżynierów systemowych, programistów DevOps” wyposażając zespoły w odpowiednie warunki rozwoju oraz zestaw narzędzi.

Duże wrażenie na uczestnikach robi również pokaz PoC kompilatora katalogów napisany przez Petera Huene, który 10000 syntetycznych zasobów zdefiniował w czasie 1.7 sekundy (klasyczny kompilator w ruby potrzebował do tego 75 sekund).

Jednak prawdziwymi gwiazdami o których przez kolejne godziny mówili dosłownie wszyscy były ogłoszone nowe, właśnie powstające funkcjonalności: Puppet Application Orchestration i Direct Puppet.

Puppet Application Orchestration to świetna wiadomość dla wszystkich tych, którzy wdrażają skomplikowane warstwowe aplikacje webowe. Na przykładzie rzeczywistej recepty wdrażania Puppet Forgezostało pokazane, jak język Puppet DSL służyć może do opisu procedury wieloelementowego wdrożenia. Podobnie jak na pojedynczym serwerze puppet może modelować zależności pomiędzy zasobami, tak PAO daje możliwość definiowania kolejności wykonania wdrożenia. System zadba, aby wszystkie zależności zostały spełnione, np. najpierw wyłączy backend z Load Balancerów, aby następnie dokonać migracji bazy danych, aktualizacji list kontrolnych, a następnie podnieść wersję i zrestartować samą aplikację i zależne od niej serwery API i włączyć ponownie całość na Load Balancerach. API systemu pozwala na tworzenie dashboardów i raportów z wdrożeń, a także integrację ze skanerami bezpieczeństwa (np. wykonując skanowanie portów po każdym wdrożeniu produkcyjnym, aby ustrzec się problemu z otwartymi dodatkowymi usługami, które zostały omyłkowo pozostawione w cyklu wytwarzania). Orchiestrator jest już praktycznie gotowy i będzie dostępny wyłącznie w komercyjnej wersji Puppet Enterprise 2015.3.

PuppetConf 2015

Direct Puppet to z kolei zapowiedź długo wyczekiwanej funkcjonalności cache’owania katalogów. Modyfikuje on zapytanie agenta, tak aby ten mógł zwrócić klucz (code_id) pobranego wcześniej katalogu. Na tej podstawie serwer może sprawdzić, czy od tego czasu zostały wprowadzone zmiany w manifestach i w przypadku ich braku poinstruować agenta, aby użył lokalnej kopii katalogu, gdyż jest nadal aktualna. Ta funkcja będzie dostępna również w wydaniu Open Source, jednak komercyjna edycja będzie wzbogacona o Code Manager – bazujące na r10k rozwiązanie pozwalające na transakcyjną replikację środowisk pomiędzy serwerami puppet oraz możliwość serwowania dowolnej historycznej wersji plików, które mogą być żądane przez agentów posiadających lokalną wersję katalogu. Projekt ten jest w trakcie tworzenia i można się spodziewać, że zostanie wydany do końca bieżącego roku.

Direct Puppet

Ciekawe prezentacje należały również do Komal Mangtani (dyrektor technologii w Uber) na temat kultury korporacyjnej wspierającej ideę DevOps. Na przykładzie “Paypal mafia”, a więc inżynierów oryginalnie pracujących dla giganta internetowych płatności, którzy następnie przyczynili się do sukcesu kolejnych otwieranych przez nich firm otrzymaliśmy kompletne studium wspierającej innowacje kultury i wiele lekcji pozwalających ustrzec się błędów i niedostępności (zasada cache’owania warstwowego, post mortems pozbawione obwiniania autorów oprogramowania czy biznesowo zorientowany punkt widzenia na techniczny produkt).

“Słyszałem, że w kuluarach mówi się, że Puppet się nie skaluje. Jestem tu tutaj, żeby powiedzieć wam, że to nieprawda!” – od takiej mocnej tezy rozpoczął Martin Jackson (Walmart). A miał ku temu powody – firma zakończyła właśnie wdrożenie puppeta w rozproszonej infrastrukturze, w sklepach na wszystkich kontynentach połączonych często bardzo niestabilnymi łączami internetowymi. Dowiedzieliśmy się jak w ciągu 6 tygodni (przed świętami Bożego Narodzenia!) zespół techniczny zdołał opuppetować 6000 serwerów, a docelowo – po migracji do nowego Puppet Server dołączyć kolejne niemal 50 tysięcy (!). “Skoro tu jestem i wam o tym mówię, zapewne domyślacie się, że nam się udało” – skonkludował.

Uwielbiany na Twitterze @sadserver opowiedział z kolei depresyjną historię o tym “dlaczego wszystko musi być najgorsze” zabierając nas w zabawną podróż przez horyzont pełen niekompatybilnych aplikacji, niedziałających integracji i pudrujących problemy kolejnych warstwach abstrakcji. Finalnie okazało się jednak że nie wszystko musi być najgorsze – wszystko bowiem zależy od developerów, którzy mają odwagę i “jaja” po to by rozwiązywać problemy, łatać błędy i tworzyć nowe innowacyjne systemy. To tylko od nas zależy to, czy IT będzie się rozwijać. Warto jednak zacząć dzień od lektury przezabawnego twiterrowego minibloga, aby dowiedzieć się, że nie tylko my borykamy się z opisanymi problemami. Robi to praktycznie cała informatyczna planeta.

Prócz wykładów do dyspozycji uczestników jest sala wystawowa, gdzie można porozmawiać z partnerami firmy Puppet Labs. Otwarte jest m.in. stoisko Red Hat, gdzie załoga opisuje nowoogłoszoną integrację Red Hat Satellite z Puppet Enterprise, dzięki której możliwe jest wykorzystanie elastycznego workflow bazującego na repozytoriach git i r10k, rozbudowanej i alternatywnej dla wbudowanej w Satellite (a bazującej na Foremanie) klasyfikacji serwerów i przypisywania atrybutów klas za pomocą Puppet Enterprise Console i zwrotnej publikacji raportów i faktów do Satellite z obustronnym uwierzytelnianiem bazującym na certyfikatach puppeta i Katello.

Największą część sali (prócz tej przeznaczonej na wyśmienity Portlandzki catering oraz zapewniany przez głównych sponsorów open bar) zajmuje stoisko Puppet Test Pilots. Do tego programu można (i warto) dołączyć online, bo daje dostęp do nowych, jeszcze nieopublikowanych funkcji i możliwość, przez wyrażenie eksperckich opinii, kształtowania kierunku rozwoju najważniejszych projektów. Dodatkowo jednak w czasie konferencji można było brać udział w badaniu na żywo, gdzie za pomocą laptopów z podłączonym oprogramowaniem eyetracker testowane były najnowsze elementy interfejsów GUI i CLI, takie jak orchiestracja, klasyfikacja, grafy zasobów czy przeglądarka zdarzeń. W zamian za pół godziny poświęconego czasu ochotnicy otrzymywali unikalne gadżety: specjalnie na tę okazje zaprojektowane longsleeves, intrygujące świecące naklejki i tak potrzebne w stolicy amerykańskiego piwa rzemieślniczego koozies w oficjalnych barwach: purpurowej i pomarańczowej.

PuppetConf 2015

Prócz tego całą długą ścianę sali zapełniają boksy ekspozycyjne składające się z laptopów i wielkich ekranów, gdzie odbywają się demonstracje nowych technologii oraz design-jamy (np. dotyczący zakresu i założeń funkcjonalnych projektowanego właśnie języka PQL – PuppetDB Query Language, mającego odpowiadać na powszechną krytykę względem API tego komponentu – szybkiego i wygodnego w parsowaniu przez komputer, ale kompletnie nieczytelnego dla ludzi). Pracownicy Puppet Labs są rozchwytywani i chętnie pokazują, jak za pomocą puppeta zarządzać serwerami Windows, jak integrować mechanizmy wirtualizacji, jak zarządzać kontenerami Docker, jak z pomocą Puppet Enterprise zarządzać urządzeniami sieciowymi Cisco i Juniper, wreszcie jak automatycznie deployować pełne stosy aplikacji przy użyciu premierowego Puppet Application Orchestration.

PuppetConf 2015

Korytarz przy wejściu zajmują specjalne strefy relaksu, gdzie nakazuje się uczestnikom zachowanie ciszy oraz ogromna tablica ofert pracy skierowanych wprost do inżynierów mających doświadczenie we wdrożeniach puppetowych.

PuppetConf 2015

Kolejna edycja PuppetConf odbędzie się za rok w kalifornijskim San Diego. Już za kilka tygodni będzie można przenieść się jednak wirtualnie z powrotem do Portland, za sprawą profesjonalnie wykonanych nagrań prezentacji (keynote Kaniesa jest już dostępny na Youtube). Jest to okazja tak dla nieobecnych na żywo w USA jak i uczestników – bowiem niemożliwością było zobaczenie większej ilości z prowadzonych równolegle w 8 lub 10 salach prezentacji, zwłaszcza, że wiele ciekawych rzeczy działo się również w kuluarach.

Zasłyszane w kuluarach PuppetConf 2015:

  • OWASP publikuje 3 wersję dokumentu audytowego dla aplikacji webowych – ASVS (Application Security Verification Standard). Dokument zawiera nową sekcję (A19) dotyczącą konieczności wykonywania zmian za pomocą systemów Configuration Management.
  • Puppet wprowadza analizę ryzyka (FMEA) dla zmian wprowadzanych w najważniejszych aplikacjach. Dzięki temu zmniejsza szansę na wystąpienie poważnych problemów po aktualizacji komponentów i zwiększa zaufanie do frameworka, zwłaszcza dla kluczowych klientów, jak bank Wells Fargo.
  • Puppet Labs w październiku 2015 zatrudnia czterechsetnego pracownika i jest jednym z najważniejszych i najbardziej innowacyjnych firm działających w stanie Oregon.
  • Alessandro Franceschi oraz Martin Alfke (znani m.in. z rewelacyjnych modułów pod marką example42) uruchamiają kampanię crowdfundingową Indiegogo pt. “The DevOps guide to Puppet, Universe and Everything” – wieloelementowy materiał edukacyjny powstały w oparciu o wieloletnią pracę w duchu Devops i przy użyciu Puppeta. Projekt można wspierać datkami do 7 grudnia.
  • Puppet Labs udostępnia partnerom portal sprzedażowy, który umożliwia zapoznanie się z materiałami, w tym porównaniami i głównymi cechami konkurencyjnymi bez natłoku informacji technicznych.
  • Książka “Extending Puppet” Alessandro Franceschi z okazji konferencji jest oferowana z 50% rabatem (kod: EPUP50). Pozycja jest polecana dla wszystkich, którzy mają już doświadczenie z puppetem, jednak chcieliby udoskonalić swój warsztat. Wymagana jest podstawowa znajomość Ruby.
  • 21 października 2015 to data ustawiona w klasycznym filmie sci-fi “Powrót do przyszłości”. To był też motyw przewodni keynote Nate Loomies z Wells Fargo. Wśród innych nawiązań mieliśmy Tron (Eric Sorenson, wszystkiego najlepszego z okazji 40 urodzin!) czy Marsjanina (Komal Mangtani z Uber). Motyw graficzny konferencji nawiązywał do space age i podboju kosmosu w latach sześćdziesiątych, zaś pierwszy dzień konferencji wieńczy zaś pokaz filmu fantasy “Dark Crystal” z 1982 w kinie IMAX. Jak widać geeki nie stronią od fantastyki.
  • Bezpieczeństwo było gorącym tematem obecnym podczas konferencji. Opisywano między innymi Jenkinsa (jako usługę Remote Code Execution as a Service), integrację głównych komponentów puppeta (w tym Puppet Application Orchestration) z narzędziami audytorskimi czy narzędzia do bezpiecznego tworzenia i przechowywania haseł (np. Hashicorp Vault).
  • Opublikowana specyfikacja języka Puppet DSL pozwala na tworzenie niezależnych implementacji, jak ta powstała w C++ jako PoC wykorzystany podczas drugiego dnia konferencji.
  • Kolejne wersje PuppetDB będą zawierać wsparcie dla replikacji active/active (na razie tylko pomiędzy 2 węzłami, jednak docelowo multi-master – funkcja oferowana tylko dla Puppet Enterprise) oraz język PQL pozwalający formułować zapytania w sposób czytelny dla operatorów – PoC był prezentowany w czasie konferencji.
  • PagerDuty od nowego roku będzie oferować pakiet zawierający nieograniczoną liczbę SMS dla klientów z Europy.
  • Red Hat Satellite integruje się z Puppet Enterprise, dzięki czemu klienci Red Hat mogą korzystać z szybkiego serwera puppet-server w java/clojure oraz oficjalnego workflow puppetowego w oparciu o git i r10k, bez konieczności publikacji pakietów tgz w systemie content life-cycle Satellite (Katello).
  • Popularnością wśród uczestników cieszyły się konferencyjne gadżety, w tym wydrukowana wersja tablicy okresowej narzędzi DevOps.
Zobacz również

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

    Skontaktuj się z nami