Kilka suchych faktów na początek
Dzięki uprzejmości Łódzkiego
Juga oraz odrobinie szczęścia podczas losowania, miałem możliwość uczestniczenia w świetnej konferencji
DevOpsDays Warsaw 2016, która była organizowana przez firmę Proidea i tak samo jak inna duża warszawska konferencja
4Developers, miała miejsce w hotelu Gromada blisko Lotniska Chopina.
Na konferencji była jedna ścieżka, co dosyć mocno ułatwiało wybór. Prezentacje trwały po 30 minut, ale jedna godzina pierwszego dnia była poświęcon na tzw.
Ignite talks, na który każdy mógł się zgłosić z 5 minutową prezentacją. Ponadto, na koniec każdego dnia przewidziane były
open space'y, czyli dyskusje w mniejszych gronach na interesujące tematy.
Dzień pierwszy
Oczywiście zaczęło się od rejestracji, która poszła bardzo szybko i sprawnie (dużo szybciej niż na wspomnianej wcześniej 4Developers), więc na ceremonii otwarcia mieliśmy pełną salę. Szybka ankieta wśród uczestników wykazała, że procentowy udział
devów i
opsów był parktycznie 50 na 50%. Zaskoczeniem była jednak bardzo duża liczba ludzi z tak zwanego
enterprise'a, względem ludzi ze startupów lub małych firm.
Talk #1: From Monoliths Trough Cloud Native to Software Supply Chains
Świetna prezentacja pokazująca jak kontenery zmieniły świat. Nie nasz, programistyczny, ale ten przemysłowy. Jak kontenery, dzięki łatwości transportu, pozwoliły przenieść fabryki dalej od brzegu morskiego i przyczyniły się do utworzenia łańcucha dostawców, którzy nie musieli znajdować się w jednym miejscu. Pozwoliło to też na specjalizacje poszczególnych firm. Było to o tyle ciekawe, że powoli będziemy dochodzili do takich samych specjalizacji: każdy będzie mógł dostarczać swoje, specjalizowane kontenery i duże firmy (jak Google, Facebook, Twitter) nie będą musiały budować całego stosu usług tylko będą korzystali z usług innych dostawców.
Talk #2: A Journey Towards SRE @ Ocado
Prezentacja otwierająca oczy na bardzo ciekawy fakt -
operation zajmuje więcej czasu niż
development. W miarę rozwoju systemów, zespół
operation powinien być powiększany. Ale czy tak sie dzieje naprawdę? Inna bardzo ważna prawda, o której zapominamy, to fakt, że najważniejszy
feature każdego systemu to:
It works, co odnosi się do nowych, ale przede wszystkim do istniejących już funkcji systemu.
Talk #3: The OutSystems R&D Continuous Delivery Journey
Moim zdaniem jedna z najlepszych prezentacji na tej konferencji. Opowiadała o długiej drodze jaką przeszła portugalska firma, z której przybył prelegent. Z małego zespołu z ciekawym produktem i brakiem testów, udało im się zbudować
Continuous Delivery w miarę przybywania nowych funkcji, integracji i ludzi. Po maksymalnie godzinie byli gotowi do przekazania artefaktów na produkcję.
Jak zmienić kulturę swojej firmy w stonę kultury
Devops? Okazuje się, że w każdej firmie są obecne różne kultury: hierarchiczna, klanowa, adhokracyjna oraz zorientowana na market. Najpierw musimy zrozumieć, jaką kombinację kulturową prezentuje nasza firma oraz w którą stronę chcemy iść. Co ciekawe z wielu analiz wynika, że firmy chcą dążyć do kultury adhortacyjnej i jest to właśnie transformacja DevOpsowa.
Ciekawostka: pierwszy raz widziałem na prezentacji link do
Linkedin prelegenta.
Talk #5: The Song of JBoss and Chef
Była to ciekawa prezentacja, jak za pomocą narzędzia
Chef zarządzać swoim klastrem
JBossów. Nie było to proste, bo wymagało korzystania tylko z
CLI JBossa (a dostawcy najbardziej lubią przesyłać instrukcje w formacie
screenshotów...). Dzięki determinacji zespołu możliwe było powiększenie klastra o dwa dodatkowe węzły w jedną godzinę.
Talk #6: Building a Resilient Log Aggregation Pipeline Using Elasticsearch and Kafka
Świetna prezentacja, choć tempo jej prowadzenia było bardzo duże, by w 30 minut przekazać tak wielką ilość informacji i dobrych rad. Jeśli zarządzasz klastrem
Elasticsearch to ta prezentacja jest właśnie dla Ciebie. Jeśli chcesz się dowiedzieć jak podzielić swój klaster, jak skonfigurować poszczególne węzły, by były zoptymalizowane pod kątem swojej funkcji, jak przydzielić do nich zasoby, to musisz to zobaczyć. Było tutaj też trochę informacji na temat konfiguracji
Kafki jako scentralizowanego buffora, konfiguracji dostawcy logów oraz systemu operacyjnego dla takiego stosu technologicznego.
Talk #7: Contive – Container Networking Done Right with Cisco ACI Fabric
Najsłabsza moim zdaniem prezentacja, prowadzona przez dwóch prelegentów. Pierwszy z nich opowiedział o narzędziu
Mantl opartego na
Mesosie, a drugi prelegent skupił się na zaletach narzędzia
Contive od
Cisco.
Ignite talks
Miało być maksymalnie 10 prelegentów - było ich 5. Dobra rada dla organizatorów: zapisujcie nie tylko tytuły prezentacji, ale i zgłaszających je, bo potem prelegenci się nie zjawiają:)
Ignite talk #1: How to manage on calls rotation effortlessly
Bardzo ciekawa prezentacja o powiązaniu
DataDog,
PagerDuty, aplikacji na
Heroku oraz
Twilio do obsługi i przekierowania połączeń. Była ona szczególnie interesująca dla mnie, bo właśnie taką aplikację potrzebujemy wdrożyć.
Ignite talk #2: Invitation to TestWarez conference
Zaproszenie na konferencje
TestWarez 2017 - tak po prostu:)
Ignite talk #3: DevOps mind of security & Ignite talk 4: Testing infrastructure
Szybka prezentacja, jakie mamy zasady (
ssh wystawione na innym niż 22 porcie, zasady tworzenia haseł) oraz jaki jest wpływ czynników ludzkich (szczególnie skleroza i lenistwo) na bezpieczeństwo systemów. Jak sobie z tym radzić i czego pilnować? Mamy zestaw reguł opisany w
STIGs - Security Technical Implementation Guides i powinniśmy z nich korzystać, a nawet automatycznie je sprawdzać za pomocą np.
Ansible (Ignite talk #4).
Ignite talk #5: Puppet vs Chef vs Ansible vs Bash
Mamy dużo dostępnych narzędzi do automatyzacji - prelegent w ekspresowym tempie wyjaśnił, jakie są zalety i wady każdego z nich. Najważniejsze:
bash przegrywa, bo nie ma możliwości łatwego rollbacku, ale dla obrazów dockerowych jest najlepszy
puppet skompiluje wszystko na masterze - ale właśnie master jest potrzebny
chef - możesz spodziewać się błędów w runtime
ansible - najlepszy do fire & forget
Open spaces
Open spaces zaczęły się od propozycji - zebranych zostało około 13, a następnie każdy za pomocą formularza Google głosował na interesujące go tematy. Wybranych zostało 8 tematów. Dla mnie najciekawsze tego dnia były
Continuous delivery pipelines (najciekawsze cześć dyskusji dotyczyła zagadnienia testowania
pipeline'ów) oraz
F**k ups - worst experience (aż włos się jeżył na głowie).
Dzień drugi
Pierwsze dwie prezentacje przeszły mi koło nosa, ponieważ korki w Warszawie postanowiły zorganizować mi dwugodzinną podróż na miejsce prezentacji. Tak zwane:
dogodne miejsce konferencji blisko lotniska nie zawsze znaczy, że będzie łatwo się na nią dostać...
Talk #1 & Talk #2
W autobusie...
Talk #3: Nobody Puts Java in a Container
Dlaczego nie uruchamiać aplikacji Javowych na
dockerze? Nigdy o tym nie myślimy. Prelegent przez większość czasu opowiadał o tym jak działa
docker, o co chodzi z
namespaces i
cgroups, a dopiero ostatnie 5 minut traktowało o samej Javie. Tylko, że bez tak długiego wstępu trudniej byłoby zrozumieć dlaczego nie uruchamiać JVMów na
dockerze. Problemem jest to, że mimo iż
docker pozwala na ograniczenie dostępnej pamięci lub ilości procesorów, JVM w wersji 8 nic sobie z tego nie robi i uruchamia się widząc wszystkie zasoby maszyny pod spodem. Dlatego czasem wybór wirtualizacji jest lepszy od konteneryzacji, bo daje większą izolację.
Talk #4: Learning From Configuration Management
Prezentacja opowiadająca o problemach z jakimi spotykamy się przy automatyzacji, które też paradoksalnie są często wymieniane jako plusy, np. niezmienna architektura, centralizacja, ukryte zależności systemów operacyjnych. Aktualnie narzędzia te przypominają instrumentacje (zarządzanie z boku), a my potrzebujemy choreografii, czyli dynamicznego reagowania na zainstniałe sytuacje. Rozwiązaniem tutaj ma być narzędzie
Habitat od
Chef.
Talk #5: Managing Server Secrets at Scale
Konkretny problem i wspaniałe rozwiązanie do niego: mamy setki albo tysiące serwerów, każdy serwer potrzebuje kilku kluczy: kluczy
ssh, klucz do szyfrowania dysku, serwera zarządzania konfiguracją, tokenów do aplikacji itp. Gdzie przechowywać takie klucze? Przecież nie będziemy ręcznie ich przepisywać z płaskich plików z naszych komputerów. Przy wielkich data center to jest niewykonalne. Z pomocą przychodzi nam tu
UEFI i możliwość zapisywania zmiennych w specjalnej przestrzeni w
BIOSie. Jest ona łatwo dostępna, ale też bardzo mała, dlatego nie zapiszemy tam wszystkich kluczy. Jednak wystarczy zapisać jeden klucz, a z niego w deterministyczny sposób wygenerować inne podczas uruchamiania systemu. Do tego właśnie służy narzędzie
gokey.
Talk #6: How We Phased out Motivational System: About Motivation in DevOps Culture
Problem motywowania ludzi nie jest nam obcy. Wszyscy odkrywają, że pieniądze to nie wszystko. Wycieranie pieniędzmi łez spowodowanych przez smutne zadania i atmosferę w pracy często nie wystarczą. Prezentacja powinna być obejrzana szczególnie przez firmy, które chcą sprawić, by ludziom pracowało się lepiej. Mam szczęście pracować w firmie, która większość z przedstawionych tu rzeczy używa w praktyce, dlatego mogę gorąco polecić ten sposób prowadzenia firmy.
Talk #7: Monitoring and Log Management for Docker Swarm and Kubernetes
Dobre porównanie możliwości zarządzania logami, gdy mamy
Kubernetesa lub
Docker Swarma. Poza logami ważne jest też zbieranie metryk. Istotne jest to, że są to mechanizmy wbudowane w
dockera. Dla naszych aplikacji musimy sami radzić sobie z agregacją logów i metryk.
Talk #8: The Pipeline: a Shift from Classic UI-based Job Configuration Tool to a Domain-specific Language
Od historii
Jenkinsa (i
Hudsona) do
pipeline'ów w
Jenkinsie 2.0. Niestety uważam, że co do samego tematu
pipeline oraz
DSL, dużo szybciej można byłoby pozyskać więdzę z
tutoriali dostępnych w internecie...
Talk #9: Patching 100 OpenStack Compute Nodes with Zero-day Patch within 16 Hours
Prelegent skupił się na
patchowaniu libvirta używanego w
OpenStacku. Jeśli chcesz się dowiedzieć jak w 16 godzin wgrać łatkę do całej masy maszyn wirtualnych i zrestartować je, ale tak by klienci tego nie odczuli, to ta prezentacja jest właśnie dla Ciebie. Hint: wyłącz
Tunneling :)
Open spaces
Ponownie przeszliśmy przez proces zgłaszania i wyboru tematów do dyskusji. Tym razem dla mnie najciekawszy temat
Automatic log anomaly detection. Wnioski: jeśli jesteś dużą firmą, to albo już masz narzędzie do takiej analizy, albo stać Cię na enterprise'ową wersję oprogramowania. Jeśli jesteś małą firmą, to niestety piszesz coś własnego lub bierzesz narzędzie, które ktoś już oddał jako
open source. Tylko, że jeśli coś staje się w tym przypadku dostępne, tzn. to są już dużo lepsze narzędzia.
Problemy
Konferencja nie ustrzegła się błędów i problemów. Przede wszystkim trudności przysparzało podłączanie komputerów przed prezentacjami. To zawsze zajmuje dużo czasu i zawsze coś pójdzie nie tak...
Kilka słów na koniec
Konferencję mogę z czystym sumieniem polecić wszystkim zainteresowanym tematyką
DevOps lub administrowania systemami informatycznymi. Sponsorzy dopisali, a prelegenci byli w większości dobrze przygotowani. Polecam też obejrzenie
nagrań z konferencji, które ku mojemu zdziwieniu, zaczęły się pojawiać już w trakcie drugiego dnia konferencji.
Idąc na konferencję zastanawiałem się, co jest największym problemem w świecie
DevOpsów... Myślałem, że jest to wojna
Kubernetes vs.
Docker Swarm. Okazuje się, że problemem tym jest wdrażanie odpowiedniej kultury w firmach oraz zarządzanie logami. To było całkiem ciekawe odkrycie.