Friday 15 December 2017

Knight upgrade wyzwalany stary system handlowy


, -,,,,,,,,,,,,: -,,, .... . ,. Oprogramowanie zombie obwiniane za Knight Capital Trading Snafu Wysłane 15 sierpnia 2017 19:30 GMT Historia Bloomberg News wczoraj rzuciła nieco więcej informacji na temat tego, co spowodowało niekontrolowany handel elektroniczny przez rynek brokerski Knight Capital kilka tygodni temu. Wygląda na to, że uśpiony program starszego typu został w jakiś sposób nieodwracalnie reaktywowany. a następnie ingerował (lub przejął) w handel firmy w dniu 1 sierpnia, kiedy rozpoczął się nowy program handlu programami Knight. 1 Uruchomiony 1 sierpnia system uśpiony zaczął pomnażać akcje o tysiąc, rdquo Bloomberg został poinformowany przez dwa nienazwane źródła, które zostały poinformowane w tej sprawie. Hmm, martwe oprogramowanie staje się reanimowane, przejmuje system komputerowy, a następnie działa amok. Myślę, że gdzieś widziałem ten film. Ponadto, zgodnie ze źródłami, personel ldquoKnightrsquos przeszukiwał osiem zestawów oprogramowania, zanim zdecyduje, co się stało. rdquo Niemal wydaje się, że był tam cmentarz pełen martwego oprogramowania gotowego do reanimacji. Niestety, artykuł nie mówi nic więcej o tym, jak uśpione oprogramowanie przebudziło się i weszło w interakcje, gdy miało się rozpocząć transakcje, które miały zostać zainicjowane przez zainstalowany nowy program Knight. Nie wyjaśnia też, dlaczego Knight utrzymywałby w swoim środowisku wykonawczym zestawy oprogramowania. Wersquoll prawdopodobnie musi poczekać, aż SEC zakończy śledztwo, aby dowiedzieć się, co się właściwie wydarzyło, a także, przypuszczalnie, jakieś soczyste szczegóły dotyczące rozwoju oprogramowania Knighta i praktyk testowania systemu. Tymczasem tzw. LdquoKnight-mare glitch rdquo (m. In.) Zachęciły organy regulacyjne w Azji i Australii do ldquoclamp downrdquo na firmach handlowych o wysokiej częstotliwości, Financial Times poinformował w tym tygodniu. Regulatorzy przesłuchują propozycje, które wymagałyby od podmiotów gospodarczych posiadania kontroli nad ich systemami i sprawdzania ich corocznie, aby zapobiec zakłóceniom na rynku, o czym donosi gazeta. Organy regulacyjne potrzebują kontroli nad ryzykiem związanym z ryzykiem ilościowym i handlowym, aby zachować niezbyt liczne transakcje handlowe, a także obracać przełączniki ldquokill na wypadek, gdy kontrola ryzyka nie powiedzie się. W powiązanych wiadomościach FT poinformował również, że niedawny błąd na giełdzie w Tokio wynikał z złego lquoroutera w systemie handlu instrumentami pochodnymi Tdex. rdquo Z powodów, które nie zostały jeszcze wyjaśnione, nie udało się otworzyć zapasowego routera. w tym roku system kopii zapasowych TSE nie uruchomił się, gdy był potrzebny. Wczoraj rano rano w Departamencie Pojazdów Silnikowych w Californiarsquos (DMV) problemy routerowe również powodowały problemy. Według Associated Press. problem z routerem stanu Kalifornia spowodował, że komputery DMVrsquos zostały odłączone od sieci statersquos od około 0800 do południa czasu lokalnego, bez wątpienia rozczarowujące i złościjące wielu klientów. Według stacji telewizyjnej CBS Sacramento. Kalifornia DMV przeprosi swoich klientów za pośrednictwem Twittera 26 razy samemu od lutego ze względu na trudności techniczne. Stacja zbadała bez powodzenia przerwy DMV, które od roku 2007 systematycznie brał system z pewną regularnością. Zbiegiem okoliczności kilka innych agencji stanowych w Kalifornii wczoraj miało problemy związane z siecią komputerową, których stan obwinił się o niewyjaśniony problem z rekonfiguracją ldquoircuit, . Ten niepowiązany problem, raporty AP, został również poprawiony do wczorajszego dnia. Wreszcie, Manganese Bronze, firma, która czyni londyńczyków znaną czarną taksówką, ogłosiła w tym tygodniu, że ldquoit opóźnia publikację niezbadanych półrocznych wyników za sześć miesięcy zakończonych 30 czerwca 2017 r. Ze względu na konieczność ponownego przedstawienia wyników finansowych za lata poprzedzające błędów rachunkowych, które wyszły na jaw. rdquo Błędy mogą jednak prawdopodobnie być oznaczone błędami komputerowymi, a nie rachunkowymi. Zgodnie z oświadczeniem firmy, w sierpniu 2017 r. Został wdrożony nowy zintegrowany system rachunkowości informatyczny, który pomagał zarządzać światowym łańcuchem dostaw produktów companysquos ldquocomplex, rdquo brakowało niektórych kluczowych transakcji w okresie przecięcia: ldquoDue do kombinacji błędów systemowych i proceduralnych wiele transakcji dotyczących 2017 r. i 2017 r. oraz niektóre salda pozostałości z poprzedniego systemu nie zostały prawidłowo przetworzone za pośrednictwem nowego systemu informatycznego. Ten problem doprowadził do zawyżonego zestawienia stanów magazynowych i zobowiązań podporządkowanych w sprawozdaniu finansowym za poprzedni rok. rdquo W efekcie firma zaniżona przez 3 miliony złotych stratami historycznymi. Brąz Brąz Mangan był pod silną presją konkurencyjną, lub słowami, ldquoTrading w pierwszych siedmiu miesiącach był trudny i nadal jest trudny z Grupą kontynuując handel ze stratą. rdquo Chociaż spodziewa się, że sytuacja się poprawi, obecna silna konkurencja ze strony Mercedes-Benz (która obecnie zapewnia prawie jedną trzecią floty samochodowej w Londynie), a spodziewana nowa konkurencja nissaników na nowe taksówki niskoemisyjne może nie przynieść dobrej kondycji finansowej. FT poinformował, że akcje Manganese Bronze spadły o 34 procent w wiadomościach o przekształceniu wyników, a teraz ma tylko wartość rynkową około 5 milionów funtów. Dowiedz się więcejA Knights Tale Phil Factor Tyle lekcji można wyciągnąć z historii Knight Capital, tracąc prawie pół miliarda dolarów w wyniku nieprawidłowego wdrożenia. Knight Group Kapitałowa (KCG N) była amerykańską globalną firmą świadczącą usługi finansowe, zajmującą się produkcją rynkową, elektroniczną realizacją oraz sprzedażą i obrotem instytucjonalnym. Zgodnie z niedawnym zamówieniem (File No.3.15570) przeciwko Knight Capital przez amerykańską Komisję Papierów Wartościowych i Giełd Commissionacirc Knight od wielu lat wykorzystuje oprogramowanie, które rozbiło przychodzące zamówienia 8220parent8221 na mniejsze zamówienia 8220child8221, które następnie zostały przekazane do różnych giełd lub punktów obrotu do wykonania. Funkcja śledzenia 8216 skumulowanej liczby8217 liczyła liczbę zleceń 8216child8217 i zatrzymała proces, gdy całkowita liczba zleceń podrzędnych była zgodna z 8216parent8217, a więc zlecenie nadrzędne zostało zakończone. W mgle czasu dodano do niej kod, który został sprawdzony, jeśli ustawiono konkretną flagę. Został nazwany 8216power peg8217 i wydaje się, że miał podobny projekt i cel, ale, jak się domyślano, podzieliłby tę samą funkcję śledzenia. Ten kod został porzucony w 2003 roku, ale nigdy nie został usunięty. W 2005 roku funkcja śledzenia została przeniesiona do wcześniejszego punktu w procesie głównym. Wydawało się, że z tego konta wynika, że ​​z tego momentu została ustawiona flaga, stara 8216Power Peg8217 została wykonana, podobnie jak Godzilla, która pęka z lodu, co sprawia, że ​​rozkazy dzieci bez limitu bez funkcji śledzenia. To nie było8217t, prawdopodobnie dlatego, że oprogramowanie, które ustawiło flagę, zostało usunięte. W 2017 r., Prawie dziesięć lat po 8216Power Peg8217 została porzucona, Knight przygotował nowy moduł do swojego oprogramowania, aby sprostać zbliżającym się programowi płynności detalicznej (RLP) dla nowojorskiej giełdy papierów wartościowych. Do tego czasu flaga pozostała niewykorzystana, a ktoś dokonał fatalnej decyzji, aby ją ponownie użyć i zastąpić stary kod 8216power peg8217 nowym nowym kodem RLP. Gdyby dwie akcje zostały wykonane razem w jednym, zautomatyzowanym wdrożeniu, a nowe testowane wdrożenie - wszystko byłoby dobrze. To nie było 8217t. 8220Początek 27 lipca 2017 r. Knight rozmieścił nowy kod RLP w SMARS etapami, umieszczając go na ograniczonej liczbie serwerów w SMARS w kolejnych dniach. Podczas wdrażania nowego kodu jeden z techników Knight8217s nie skopiował nowego kodu do jednego z ośmiu serwerów komputerowych SMARS. Knight nie miał drugiego technika, który oceniłby to wdrożenie i nikt w Knight nie zdał sobie sprawy, że kod Power Peg nie został usunięty z ósmego serwera, ani nie dodano nowego kodu RLP. Knight nie miał pisemnych procedur wymagających takiego przeglądu.8221 (par 15) 8220 Od 1 sierpnia Knight otrzymywał zamówienia od pośredników-dealerów, których klienci byli uprawnieni do uczestnictwa w RLP. Siedem serwerów, które otrzymały nowy kod, poprawnie przetwarzało te zamówienia. Jednak zamówienia wysłane z flagą repurposed na ósmy serwer spowodowały, że wadliwy kod Power Peg nadal jest obecny na tym serwerze. W rezultacie ten serwer rozpoczął wysyłanie podrzędnych zamówień do niektórych centrów handlowych w celu wykonania. Ze względu na to, że została przeniesiona funkcja kumulatywnej ilości, serwer ten ciągle wysyłał rozkazy dziecięce, w sekwencji szybkiej, dla każdego przychodzącego polecenia nadrzędnego bez względu na liczbę akcji, które Knight otrzymał od centrów handlowych. Chociaż jedna z części systemu zarządzania zamówienia Knight8217s uznała, że ​​wypełnione zostały zlecenia macierzyste, informacje te nie zostały przekazane SMARS.8221 (par. 16) SMARS kierował miliony zamówień na rynek w ciągu 45 minut i uzyskał ponad 4 miliony egzekucje w 154 akcje za ponad 397 milionów akcji. Do czasu, gdy Knight przestał wysyłać zamówienia, Knight przejął pozycję długą netto na 80 akcji o wartości około 3,5 miliarda dolarów i pozycję krótką netto w 74 akcjach około 3,15 miliarda. Akcje Knight8217s spadły o ponad 20 procent po tym, jak podmioty gospodarcze zaobserwowały skrajne skoki wielkości w wielu akcjach, w tym akcje preferowane Wells Fargo (JWF) i półprzewodnikową spółkę Spansion (CODE). Obydwa zapasy, które widząc ok. 100 000 transakcji dziennie, zmarły przed późnym rankiem ponad 4 miliony razy. Ostatecznie, Knight stracił ponad 460 milionów z tego dzikiego 45 minut handlu. Oczywiście, jestem zainteresowany tym wszystkim, ponieważ kiedyś pisywałem systemy transakcyjne dla City of London. Oczywiście, US SEC jest w znacznie lepszej pozycji niż ktokolwiek z nas, aby wyleczyć błędy działu IT Knight8217, a raport ten sprawia bolesną lekturę. Pomogłem jednak zauważyć, że nawet z niezapomnianymi błędami cały czas, że silny proces zautomatyzowanego rozmieszczania, który był 8216 all-or-nothing8217 i testowany z zupy do orzechów, uniemożliwiłby katastrofę. Raport brzmi jak grecka tragedia. Przez całą drogę chce się krzyczeć 8216 Nie w ten sposób8217 i 8216Aargh Don8217to to zrobić8217. Gdy tragedia się rozwija, publiczność płacze nad graczami, uwięzionymi przez okrutny los. Wszystkie opracowania i wdrożenie aplikacji wymaga głębokiej obrony. Wszystko sporo odchodzi od czasu do czasu, ale jeśli istnieje kultura programowania defensywnego w całym, konsekwencje są zwykle możliwe do zapuszczenia. W przypadku systemów finansowych systemy te są wymagane przez ustawę i ignorowane tylko przez głupiego. Błędy Knight8217s nie zostały popełnione przez jednego nieszczęsnego administratora systemu, ale były postępującymi błędami w kulturze IT trwającej co najmniej dziesięć lat. Można to przeliterować, ale myślę, że są oczywiste. Można mieć tylko nadzieję, że przemysł przeanalizuje to, co wydarzyło się szczegółowo, uczy się na błędach i wyciąga właściwe wnioski. Subskrybuj więcej artykułów Dwutygodniowe biuletyny pomagają wyostrzyć twoje umiejętności i wyprzedzić Cię, dzięki artykułom, książkom i opinii, aby być na bieżąco. Powiązane artykuły Rozmawiałem na konferencji w zeszłym roku na temat DevOps, konfiguracji jako kodu i ciągłej dostawy i wykorzystałem następującą historię, aby zademonstrować wagę, która sprawia, że ​​wdrożenia są w pełni zautomatyzowane i powtarzalne w ramach inicjatywy DevOpsContinuous Delivery. Od tej konferencji wielu ludzi prosiło mnie o udostępnienie tej historii za pośrednictwem mojego bloga. Ta historia jest prawdą, tak naprawdę się stało. To jest moje opowieści oparte na tym, co przeczytałem (nie byłem w to zaangażowany). Oto historia, w jaki sposób firma z prawie 400 milionami aktywów zbankrutowała w ciągu 45 minut z powodu niewłaściwego wdrożenia. Background Knight Capital Group jest amerykańską globalną firmą świadczącą usługi finansowe angażującą się w tworzenie rynku. wykonanie elektroniczne oraz sprzedaż instytucjonalna i handel. W 2017 r. Knight był największym sprzedawcą amerykańskich akcji z udziałem w rynku wynoszącym około 17 na każdym NYSE i NASDAQ. Knights Electronic Trading Group (ETG) zarządzał dziennym obrotem o wartości ponad 3,3 miliarda transakcji dziennie, handlując ponad 21 miliardów dolarów dziennie. To nie żart W dniu 31 lipca 2017 r. Knight miał około 365 milionów w gotówce i ekwiwalentach. NYSE planuje uruchomić w dniu 1 sierpnia 2017 r. Nowy program dotyczący płynności detalicznej (program mający na celu poprawę cen dla inwestorów detalicznych poprzez pośredników handlu detalicznego, np. Knight). W ramach przygotowań do tego wydarzenia firma Knight zaktualizowała zautomatyzowany, szybki, algorytmiczny router, który wysyła zamówienia na rynek w celu wykonania, znanym jako SMARS. Jedną z podstawowych funkcji SMARS jest otrzymywanie zleceń od innych elementów platformy transakcyjnej Knights (zamówienia rodziców), a następnie wysyłanie jednego lub więcej zamówień podrzędnych do realizacji. Innymi słowy, firma SMARS otrzymywałaby duże zamówienia z platformy transakcyjnej i dzieliła je na wiele mniejszych zamówień w celu znalezienia nabywcy odpowiadającego liczbie akcji. Im większa jest kolejność nadrzędna, tym więcej generowanych jest potomków. Aktualizacja SMARS miała zastąpić stary, nieużywany kod zwany funkcją Power Peg, którą Knight nie użył w ciągu 8 lat (dlaczego kod, który nie żył od 8 lat, jest nadal obecny w bazie kodu jest tajemnicą, ale to oznacza nie chodzi o to punkt). Kod, który został zaktualizowany ponownie zastosował starą flagę, która została użyta do aktywacji funkcji Gałki. Kod został gruntownie przetestowany i udowodniono, że działa poprawnie i niezawodnie. Co mogłoby pójść nie tak Co mogłoby się nie udać między 27 lipca 2017 r. A 31 lipca 2017 r. Knight ręcznie wdrożył nowe oprogramowanie na ograniczonej liczbie serwerów na dzień osiem (8) serwerów. To właśnie oświadczenie SEC mówi o ręcznym procesie wdrażania (BTW, jeśli istnieje zgłoszenie SEC na temat twojego wdrożenia, coś może pójść okropnie źle). Jednak podczas wdrażania nowego kodu jeden z techników Knights nie skopiował nowego kodu na jeden z ośmiu serwerów komputerowych SMARS. Knight nie miał drugiego technika, który oceniłby to wdrożenie i nikt w Knight nie zdał sobie sprawy, że kod Power Peg nie został usunięty z ósmego serwera, ani nie dodano nowego kodu RLP. Rycerz nie pisał procedur wymagających takiego przeglądu. SEC Filing wydanie nr 70694 16 października 2017 r. O godzinie 9:30 czasu wschodniego w dniu 1 sierpnia 2017 r. Otwarte rynki i Knight zaczął przetwarzać zamówienia od maklera-dealerów w imieniu swoich klientów na nowy program Liquidity Retail. Siedem (7) serwerów, które miały poprawne wdrożenie SMARS, zaczęło poprawnie przetwarzać te zamówienia. Rozkazy wysłane na ósmy serwer uruchomiły flagę przeznaczoną do ponownego użycia i przywróciły z martwych stary kod Power Peg. Atak Zombie Killer Code Ważne jest, aby zrozumieć, co zamierzał zrobić martwy kod Power Peg. Funkcjonalność ta miała na celu zliczanie akcji boughtsold w stosunku do zlecenia rodzicielskiego, ponieważ realizowano zamówienia dla dzieci. Power Peg poleciłby systemowi przestać routingować zlecenia dla dzieci po zrealizowaniu zlecenia macierzystego. Zasadniczo Power Peg śledzi rozkazy dla dzieci i zatrzyma ich po zakończeniu zamówienia nadrzędnego. W 2005 r. Knight przeniósł tę funkcję skumulowanego śledzenia na wcześniejszy etap wykonywania kodu (usuwając w ten sposób śledzenie liczby z funkcji Power Peg). Kiedy flaga Power Peg na ósmym serwerze została aktywowana, funkcja Power Peg zaczęła routować zamówienia podrzędne w celu wykonania, ale nie była w stanie śledzić liczby akcji względem zlecenia nadrzędnego, jak w nieskończonej pętli. 45 minut piekła Wyobraź sobie, co by się stało, gdybyś miał system zdolny do wysyłania zautomatyzowanych, szybkich zamówień na rynek bez śledzenia, aby sprawdzić, czy wykonano wystarczającą liczbę zamówień. Tak, to było tak źle. Kiedy rynek otworzył się o 9:30, ludzie szybko wiedzieli, że coś jest nie tak. O 9:31 dla wielu ludzi na Wall Street stało się jasne, że dzieje się coś poważnego. Rynek był zalewany nietypowymi zleceniami dla regularnych obrotów na niektórych akcjach. O 9:32 wielu ludzi na Wall Street zastanawiało się, dlaczego się nie zatrzymało. To była wieczność w szybkich warunkach handlowych. Dlaczego nikt nie uderzył w kill-switch, niezależnie od tego, jaki system robił to? Jak się okazało, nie było przełącznika kill. Podczas pierwszych 45-minutowych transakcji handlowych egzekucje rycerskie stanowiły ponad 50 wolumenu obrotu, napędzając niektóre akcje powyżej 10 ich wartości. W rezultacie inne zapasy zmniejszyły swoją wartość w odpowiedzi na błędne transakcje. Co gorsza, system Knights rozpoczął wysyłanie zautomatyzowanych wiadomości e-mail wcześniej tego dnia, już o 8:01 (kiedy SMARS przetwarzał zamówienia kwalifikujące się do handlu przed rynkiem). Wiadomoś ci e-mail odnoszĘ ... się do SMARS i zidentyfikowali błĘ ... d, gdy wyłączona jest blokada zasilania. W godzinach od 8:01 do 9:30 wysłano 97 wiadomości e-mail do personelu Knighta. Oczywiście te e-maile nie zostały zaprojektowane jako alarmy systemowe i dlatego nikt nie spojrzał na nich od razu. Ups. Podczas 45-minutowego piekła, jakiego doświadczył Knight, podjęli kilka kroków, aby spróbować zatrzymać błędne transakcje. Nie było żadnego przełącznika zabijania (i żadnych udokumentowanych procedur reagowania), więc próbowali zdiagnozować problem w środowisku transakcyjnym na żywo, gdzie co minutę handlowano 8 milionami akcji. Ponieważ nie byli w stanie stwierdzić, co spowodowało błędne zlecenia, z którymi się zareagowały, odinstalowywując nowy kod z serwerów, które został poprawnie zainstalowany. Innymi słowy, usunęli działający kod i zostawili złamany kod. To tylko rozszerzyło problemy powodujące, że dodatkowe zlecenia macierzyste aktywowały kod Power Peg na wszystkich serwerach, a nie tylko ten, który nie został wdrożony poprawnie. W końcu udało im się zatrzymać system po 45 minutach handlu. W ciągu pierwszych 45 minut otwarty został kod Power Peg, który otrzymał i przetwarzał 212 zleceń macierzystych. W rezultacie firma SMARS wysłała na rynek miliony zamówień dziecięcych, co przyniosło 4 miliony transakcji na 154 akcje za ponad 397 milionów akcji. Dla was, kupców giełdowych oznaczało to, że Knight przejął około 3,5 miliarda długich pozycji netto w 80 akcjach i 3,15 miliarda pozycji krótkich netto w 74 akcjach. W kategoriach lat sześćdziesiątych XX wieku firma Knight Capital Group zrealizowała w ciągu 45 minut stratę w wysokości 460 milionów. Pamiętaj, że Knight ma tylko 365 milionów w gotówce i ekwiwalentach. W 45 minut Knight stał się największym inwestorem w amerykańskie akcje i głównym animatorem rynku na NYSE i NASDAQ, by zbankrutować. Mieli 48 godzin na zgromadzenie kapitału niezbędnego do pokrycia strat (co udało im się osiągnąć dzięki 400 milionom inwestycji od około pół tuzina inwestorów). Ostatecznie Knight Capital Group przejął Getco LLC (grudzień 2017 r.), A połączona firma nazywa się obecnie KCG Holdings. Lekcja na naukę Wydarzenia z 1 sierpnia 2017 r. Powinny być lekcją dla wszystkich zespołów ds. Rozwoju i operacji. Nie wystarczy zbudować świetne oprogramowanie i przetestować go, musisz również zapewnić, że jest on dostarczany na rynek prawidłowo, aby Twoi klienci mogli uzyskać wartość, którą dostarczasz (a więc nie zbankrutujesz firmy). Inżynierowie, którzy wdrożyli SMARS, nie tylko winią tutaj proces, w który został założony Knight, nie był odpowiedni do ryzyka, na jakie zostały narażone. Dodatkowo ich proces (lub jego brak) był z natury skłonny do błędu. Za każdym razem, gdy proces wdrażania opiera się na czytaniu ludzi i postępowaniu zgodnie z instrukcjami, narażasz się na ryzyko. Ludzie popełniają błędy. Błędy mogą być zawarte w instrukcjach, interpretacji instrukcji lub w wykonywaniu instrukcji. Wdrożenia muszą być zautomatyzowane i powtarzalne oraz możliwie wolne od potencjalnych błędów ludzkich. Gdyby Knight zaimplementował automatyczny system wdrażania wraz z konfiguracją, wdrożeniem i automatyzacją testów, błąd, który spowodowałby uniknięcie Knightmare. Stosuje się tu kilka zasad dotyczących Ciągłej Dostawy (nawet jeśli nie wdrażasz pełnego procesu Ciągłej Dostawy): Uwalnianie oprogramowania powinno być powtarzalnym, niezawodnym procesem. Zautomatyzuj wszystko, co jest rozsądne. Scenariusz: Załóżmy, że mieli bardzo dobre DevOps. Wszystkie serwery będą zsynchronizowane. Ale 8211 zakładają, że nowy kod miał błąd. Wszystkie serwery są zsynchronizowane, ale mają ten sam błędny kod. Co jeśli dwie wersje kodu, tj. Ostatnie 2 wdrożenia miały ten błąd. Więc kiedy zdadzą sobie sprawę, że coś jest nie tak, to oni cofają kod, błąd nadal trwa8230 Minęły cenne minuty. Być może 20 minut zamiast 45 minut w Twoim artykule. Tak więc w skrócie 8211 ich wyłącznik usuwania skutków awarii jest wdrożeniem wycofywania kodu w środowisku na żywo. To nadal byłoby wadliwe. To, co oni potrzebują, to duży czerwony przełącznik (prawie dosłownie, gdzieś w desce rozdzielczej), aby natychmiast zatrzymać się. Gdzie jest reguła biznesowa, która mówi: 8220first nie szkodzić8221. VJ, gdyby wdrożenie do wszystkich serwerów działało, byłyby w porządku. Ale w tym przypadku 7 z 8 dla jednego podsystemu zostało poprawnie wdrożonych. Ze względu na złe zachowanie wycofywali pozostałych 7, uważając, że nowy kod w tym podsystemie był problemem. To pomnożyło problem do momentu ostatecznego przełączenia zabijania. Katastrofy są prawie zawsze złożone. W tym przypadku były to złe praktyki kodowania, a także wątpliwe praktyki inspekcji kodu testowego, a także błąd podczas wdrażania, a także cofnięcie się przy pełnej szczegółowości podsystemu, a nie całego systemu. Jeśli rozwiążesz którykolwiek z tych problemów, nie dostaniesz katastrofy. Jedną z rzeczy, które widzimy w firmach, które nie dostrzegają prawdziwego znaczenia i wpływu swoich systemów informatycznych, jest to, że nie zapewniają budżetu na aktualizacje starszego kodu. Na przykład: I8217ve widział sytuacje, w których IT nie ma budżetu. Musi usprawiedliwiać wszystko, co robi, kosztem biznesu. Co oznacza ciągłe szukanie nowych projektów. Firma rzadko widzi konieczność aktualizacji starego oprogramowania, które obecnie działa, więc odmawiają zapłaty za to. Rezultatem jest stały nowy kod, opracowany przez najtańszych programistów, bez inwestowania w technologie, które ostatecznie poprawiają wydajność i zmniejszają ryzyko. Dlaczego? Ponieważ są one postrzegane jako problemy 8220IT8221, a nie w odniesieniu do jakiegokolwiek projektu, nad którym pracują informatycy, więc nikt nie zapłaci za to. Wielkim przeczytaniem tej praktyki jest projekt The Phoenix Project autorstwa Gene'a Kim, Kevina Behr i George'a Spafforda. Dziękuję za zastosowanie mózgu do hype. Prawdopodobnie należy zapytać, dlaczego zaangażowani technicy doszli do winy, ale nie uzyskali prawa do samodzielnego zabicia przełącznika. Och, racja, że ​​tak i Ty umieściłeś OpsSRE na swoim miejscu. 8220R8221 jest odpowiedzialny za przynętę na przynętę. Napisałem trochę o tym wydarzeniu i chciałbym ostrzec każdego, kto użyłby raportu SEC jako czegoś innego niż to, czego SEC potrzebuje. kitchensoap20171029counterfactuals-rycerz-stolica Czytanie fascynujące. Pracowałem w dużym domu aukcyjnym owoców i warzyw, gdy tylko zainstalowano nową wersję oprogramowania, która nie przyniosła rezultatu, co doprowadziło do dużych strat dla handlowców (choć nie tak dużych jak te). To także było przypadkiem niewłaściwego wdrożenia i braku upadku. Lekcją, na którą się dowiedzieliśmy, są domeny, w których komputer nie powinien podejmować żadnych decyzji bez potwierdzania przez człowieka. Co z ludźmi, którzy stracili pracę, bo oops był błąd? Co z innymi firmami, które mogą dostać się do trubble z powodu nagłej zmiany wartości akcji Automation 8220 wysokiego poziomu decyzji 8221 ma być obsłużony starannie8230 Nicei i edukacyjnych postu Btw. Korzystanie z frameworka Cynefin zapewnia lepszą charakterystykę tego błędu 8216DevOps8217 Wydaje się, że ten post został napisany z perspektywy DevOps. Sugerowane rozwiązania są zgodne z perspektywą DevOps 8211, aby zbadać proces uwalniania, zautomatyzować więcej i stworzyć przełącznik zabijania z możliwością wycofania. Ktoś może przeczytać post i położyć zbyt duży nacisk na technika rycerza, który nie skopiował starego kodu na jeden z ośmiu serwerów. Ktoś może uprościć związek przyczynowo-skutkowy. Ktoś może unikać nowych reguł do 8216przemierzenia tego od kiedykolwiek się powtarzać.8217 Potężniejsze podejście może zainwestować w: 8211 Zwiększenie różnorodności w celu analizy sytuacji i syntezy lepszych opcji 8211 Poprawa komunikacji między specjalnościami 8211 Poprawa koordynacji niejawnej między specjalnościami 8211 Rekrutuj osoby z więcej wiedza specjalistyczna do pisania i przeglądu kodu Głównym czynnikiem, który ograniczał zdolność zespołu od dziewięciu lat przed istotnym zdarzeniem niepowodzenia, był nieprawidłowy system. W ramach Cynefin ograniczenie tej niepowodzenia do problemu DevOps powoduje powiązanie systemu z domeną 8220Obvious8221, w której istnieją proste związki przyczynowo-skutkowe, które są rozpoznawane przez 8216professionals.8217 Niepowodzenie nie powinno wiązać się z domeną Cynefin 8220Complicated8221, gdzie znacząca analiza przez 8216specialists8217 uniemożliwiłoby niepowodzenie. System powinien być powiązany z Cynefin 8220Complex8221 domena 8211 złożony system adaptacyjny. System jest dyspozycyjny. Te same warunki początkowe nie powodują tej samej awarii (z wyjątkiem przypadków). Aby uzyskać więcej informacji o Cynefin, odwiedź en. wikipedia. orgwikiCynefin i CognitiveEdge. Doceniam twoje uwypuklenie milczących czynników w takiej katastrofie. Podobnie jak autor, ja także pracuję w operacjach i łatwo wpaść w te same stare schematy myślowe dotyczące przyczyn i rozwiązań. Szczególnie cieszysz się z punktu widzenia różnorodności (co wiąże się ze wszystkimi formami: poziomami doświadczenia, pochodzeniem kulturalnym i edukacyjnym, umiejętnościami, wiekiem itp.), Jak sądzę, że jest to silny czynnik sukcesu DevOps. Mając różne perspektywy, zarówno w zespole, jak i bez niego, spojrzenie na projekt ma silny, możliwy do wykazania potencjał i może pomóc w ograniczeniu niedopatrzeń, takich jak ten poruszony w tym artykule. gt dlaczego kod, który był martwy przez 8 lat był nadal obecny w bazie kodu jest tajemnicą, ale nie jest to kwestia Przeciwnie, to jest dokładnie punkt. Kod z nieużywanymi, a więc niesprawdzonymi możliwościami konfiguracyjnymi to katastrofa, która czeka, by się wydarzyć. To dlatego I8217m bardzo sceptycznie odnosi się do podejść opartych na flagach cech. Konfiguracja jest tak samo częścią twojego programu jak kod, a zmiany konfiguracji powinny przejść przez to samo żądanie ciągnienia 8211, przegląd kodu, wydanie, wdrożyć do przemieszczania 8211 jak każdą inną zmianę. Jeśli proces wydawania jest zbyt ciężki i musisz szybko zmieniać ustawienia w produkcie, rozwiązać proces wydawania. Było zbyt wiele błędów, aby przypisać epicką niepowodzenie tylko DevOps (choć w pełni zgadzam się, że automatyzacja i testowanie są jedynym sposobem): 8211 Brak pracy zespołowej i list kontrolnych podczas robienia aktualizacji na serwerach produkcyjnych. Wszelkie aktualizacje dotyczące produkcji powinny wymagać wzajemnego nadzorowania się zespołu i sprawdzania listy kontrolnej. 8211 8 lat niewykorzystanego starego kodu w produkcji. To mówi wiele o braku zrozumienia na temat ryzyka zwisania kodu 8220 nieużywanego kodu8221. 8211 Niewystarczające rejestrowanie kodu i niewystarczające monitorowanie dzienników w czasie rzeczywistym, korelacja i analiza. To spowodowałoby wczesne zgłoszenie wystarczającej liczby wskazówek dla inżynierów i opsów. 8211 Bez przełączania awaryjnego na hot-hot do klastra z poprzednią wersją. To spowodowałoby zatrzymanie wszystkich problemów po 1 lub 2 minutach. (Jeśli chodzi o czerwony przycisk, który wspomniany artykuł dotyczy) Jeśli już od dawna zajmujesz się architekturą oprogramowania, systemami i przedsiębiorstwami, wiesz, że katastrofa dzieje się, wiesz, że niektóre błędy są złapane tylko w dzikie, a nie podczas symulacji, tak jak ty wiedzą maszyny zejdą. Musisz przygotować się na najgorszy przypadek w obu scenariuszach. Prawo Murphy8217s jest tak prawdziwe w naszym świecie I8217 istniało w tak zwanej przestrzeni 8220DevOps8221 przez prawie 20 lat, ponad połowa tego w świecie finansowym. Knight był zarówno sprzedawcą, jak i konkurentem firmy, dla której obecnie pracuję. Może pomóc automatyzacja wdrażania. Może. Ale niewiele firm może sobie pozwolić na dokładnie duplikaty środowisk, a to głównie spowodowane różnicami środowiskowymi. Nawet automatyczne sprawdzenie poprawności wdrożenia mogło nie pomóc w tym przypadku, gdyby automatyzacja nie wiedziała o różnicy w środowisku. Automatyzacja jest tak dobra, jak wiedza osób ją konfigurujących. Jeśli ręczna instalacja nie była świadoma starego systemu, to istnieje duża szansa, że ​​automat nie będzie mógł go sprawdzić. Automatyzacja wycofywania jest tak dobra, jak podejmowanie decyzji, czy wykonać odwrót. A jeśli automatyzacja zaczęła się w starym systemie, to również nie ma gwarancji, że przełączanie współczesnego systemu z powrotem spowoduje zatrzymanie starego systemu 8211, co mogło doprowadzić do tego samego problemu nawet po automatycznym wycofaniu współczesnego systemu. Co prowadzi mnie do ostatniego punktu: Automatyzacja jest wymogiem w dużych, nowoczesnych środowiskach. Ale nadmierna zależność od tego może doprowadzić do tego, że ludzie działający w systemie nie wiedzą co robi. Automatyzacja jest najbardziej przydatna do sprawdzania poprawności, ponieważ sprawdzanie poprawności jest wykonywane prawidłowo, jest nudne i łatwe do skapywania po ręcznym wykonaniu. Nawet przy automatycznym zautomatyzowaniu punktów przerwania lub krokach skierowanych do ludzi pomaga zapewnić, że osoby działające w systemie znają system i jak działa, co znacznie poprawia ich zdolność do rozwiązywania problemów, diagnozowania problemów i podejmowania odpowiednich wskazówek co do jakich kroków podjąć zatrzymać lub złagodzić problem. Automatyzacja jest narzędziem, ale jest tylko jednym narzędziem i nadal wymaga od rzemieślnika odpowiedniego jej władania. Ekspertyza jest tym, co sprawia, i utrzymuje świetne systemy. Odsyłam to na Garrett S. Y. Hampton i skomentowałem: Incredible. DevOps zawsze ogląda, dokumentuje i przegląda twoje wdrożenia

No comments:

Post a Comment