Problem
Firma KLER działa nieprzerwanie od 50 lat, dostarczając swoim klientom perfekcyjnie wykonane meble, dekoracje i akcesoria. Zamiłowanie do tradycyjnego rzemiosła i wysokiej jakości sprawiło, że na przestrzeni lat KLER stał się wiodącym producentem ekskluzywnych mebli dla rynków środkowo-wschodnioeuropejskich. Obecnie firma dostarcza swoje produkty globalnie, a znaczna część sprzedaży odbywa się za pośrednictwem utworzonego w 2015 r. sklepu internetowego.
KLER nieustannie się rozwija, swoje najnowsze kolekcje prezentuje na renomowanych targach branżowych takich jak np. największe na świecie Salone Internazionale del Mobile w Mediolanie. Założyciele KLER, wiedzą, że tylko nieustanny rozwój prowadzi do sukcesu, aby sprostać nieustannie rosnącym oczekiwaniom klientów i ruchowi w swoim sklepie internetowym, KLER wraz z ekspertami Chaos Gears postanowił zbudować wydajną infrastrukturę opartą na chmurze.
Wysokie wymagania klientów w zakresie jakości i designu mebli w praktyce przyczyniły się do globalnego wzrostu sprzedaży luksusowych mebli KLER. Wraz z ekspansją na nowe rynki, KLER dąży do zapewnienia wszystkim klientom najwyższej jakości obsługi, co — w zakresie sprzedaży e-commerce — nierozłącznie obejmuje oparcie tego zakresu usług na elastycznej, skalowalnej i bezpiecznej infrastrukturze.
Konieczność spełniania najwyższych standardów — w szczególności, kiedy mowa o towarach luksusowych — jest dla KLER rzeczą oczywistą. Jednak zdolność dostarczenia wysokiej jakości produktów wraz z zapewnieniem równie wysokiej jakości doświadczeń zakupowych i obsługi klienta w internecie wymaga rozwiązania całej gamy problemów unikalnych dla tego kanału sprzedaży.
Aby problemy te z teoretycznych nie zamieniły się nigdy w praktyczne i klienci KLER zawsze mogli dokonywać bezproblemowych zakupów, a firma jednocześnie pozostała liderem innowacji, KLER wybrał platformę AWS - najbardziej zaufanego dostawcę usług chmurowych.
Doświadczenie zespołu Chaos Gears w zakresie praktycznego wdrożenia best practices DevOps przyczyniło się do tego, że firma postawiła właśnie na Chaos Gears jako swojego partnera na drodze do optymalnego wykorzystania możliwości oferowanych przez migrację do chmury AWS.
Rozwiązanie
Wraz z zespołem KLER dokonaliśmy analizy status quo infrastruktury, wyodrębniliśmy kluczowe uchybienia i priorytetowe usprawnienia, a następnie opracowaliśmy plan naprawczy i przystąpiliśmy do jego realizacji.
Naszym celem stała się separacja istniejącej infrastruktury w dwa niezależne od siebie, wysoce dostępne środowiska — development i produkcję — których wzajemną integrację zapewniać miał w pełni zautomatyzowany pipeline CI/CD. Tak fundamentalna dla właściwego przebiegu procesów struktura z jednej strony przyczynia się do wzrostu prędkości rozwoju i wdrażania oprogramowania przez zespoły techniczne KLER, którym zapewnia m.in. większą pewność pracy i swobodę eksperymentowania przy wprowadzaniu innowacji. Z drugiej, jednocześnie, jest kluczowa dla zapewnienia niezawodności komponentów systemu, a tym samym dla całości platformy KLER jako takiej. Wreszcie, w sensie biznesowym, ta ścisła korelacja pewności i niezawodności w praktyce przekłada się na znaczące skrócenie time-to-market dla klienta.
Gdy nasze zadania i cele były już klarowne, zespół Chaos Gears - w składzie: Cloud Architect, 2 inżynierów DevOps, inżynier odpowiedzialny za przeprowadzenie audytu AWS Well-Architected Review (WAR) oraz Project Manager - przystąpił do ich realizacji we współpracy z inżynierami firmy zewnętrznej.
Uniwersalne rozwiązania to mit
Bazując na naszym doświadczeniu, nasz wstępny plan modernizacji infrastruktury oparliśmy na dekompozycji monolitycznej architektury, na jaką natrafiliśmy, przynajmniej częściowo w funkcje serverless zarządzane automatycznie poprzez AWS Fargate funkcjonujące na AWS ECS. Taka architektura umożliwiłaby przeniesienie odpowiedzialności za optymalne zarządzanie zasobami w całości na oferowane przez AWS, gotowe rozwiązania.
Brak konieczności konfrontowania się z problematyką izolacji zasobów i ich skalowania — jako że m.in. za to odpowiedzialny byłby AWS Fargate, płynnie i automatycznie reagujący na faktyczne zapotrzebowanie na konkretne komponenty — drastycznie zmniejszyłby ciężar zw. z bieżącą administracją infrastruktury i pozwolił KLER w większym stopniu skupić się na swojej kluczowej działalności — zaspokojeniu potrzeb własnych klientów, zamiast troszczyć się o konieczną do tego infrastrukturę.
Wszystko w dziedzinie informatyki jest jednak formą kompromisu — i nie istnieje takie rozwiązanie, które idealnie spełniałoby potrzeby wszystkich. W tym przypadku, mimo iż korzyści, jakie oferowałaby architektura serverless, były namacalne dla wszystkich interesariuszy, jej faktyczne wdrożenie okazało się trudne szczególnie pod względem wydajności — głównie ze względu na strukturę i stan istniejącego oprogramowania wykorzystywanego przez firmę, których dekompozycja w elastyczne, niezależne od siebie mikrousługi operujące w modelu serverless okazała się problematyczna.
Refaktoryzacja całego oprogramowania klienta także nie była rozwiązaniem pragmatycznym biznesowo — ale na szczęście ani jedno, ani drugie nie było konieczne do osiągnięcia celów, których osiągnięcie zostało nam powierzone. W sytuacjach tego typu rozległość i kompleksowość usług oferowanych przez chmurę AWS — i idąca z tym w parze elastyczność dla jej użytkowników — okazuje się nieoceniona. I jak każdy przedsiębiorca wie doskonale, wszelkie plany muszą być na tyle elastyczne, by można było je dostosować do wszystkich okoliczności.
Tym samym ostatecznie jedynie nieznacznie zredukowaliśmy założenia naszego pierwotnego, optymistycznego scenariusza realizacji i zamiast w oparciu o AWS Fargate, zrealizowaliśmy plan bardziej tradycyjną architekturą kontenerową bezpośrednio za pomocą instancji EC2 zarządzanych przez AWS ECS.
W zakresie naszej odpowiedzialności pozostało zagadnienie zasadniczej konfiguracji zasobów, ale i to objęło istotną modernizację dotychczasowych procesów klienta dzięki zastosowywaniu podejścia infrastructure-as-code. Terraform umożliwił nam organizację i opisanie infrastrukturalnych potrzeb KLER, co naszemu partnerowi z kolei pozwala dostosowywać je na bieżąco w scentralizowany, spójny, wersjonowany i, co najistotniejsze, zautomatyzowany sposób.
Rozwiązanie, jakie dostarczaliśmy, automatycznie skaluje ilość eksploatowanych zasobów w oparciu o faktyczne zapotrzebowanie na moc obliczeniową i z łatwością przystosowuje się tak do silnych, krótkookresowych wahań, jak i do długoterminowego rozwoju firmy. Jednocześnie rozwiązanie to nie jest ściśle zależne od chmury AWS — klient zyskał możliwość udostępnienia swoich usług w modelu multi-cloud, jeśli tylko zechce.
Oba środowiska — produkcja i development — zarządzane są u podstaw przez AWS ECS, który jest odpowiedzialny z jednej strony za horyzontalne skalowanie usług względem realnego zapotrzebowania, a z drugiej za zapewnienie tym usługom wysokiej dostępności, kluczowej dla naszego partnera.
Te solidne fundamenty wzmocniliśmy następnie użyciem Load Balancera, by wspomóc optymalne wykorzystanie zasobów klienta, a w zakresie przechowywania danych roboczych skorzystaliśmy z Amazon EFS, który umożliwia ich łatwe udostępnienie wszystkim usługom od nich zależnych jednocześnie — w razie potrzeby także poza granice regionu geograficznego. Ta usługa także skaluje się automatycznie względem popytu, co dodatkowo redukuje konieczność prognozowania potencjalnie nieprzewidywalnego zapotrzebowania. Wreszcie, dane produkcyjne podlegają obligatoryjnym i zautomatyzowanym kopiom zapasowym, zapewniając element trwałości i bezpieczeństwa danych wcześniej podlegający podatnej na błędy ludzkie pracy manualnej.
Bezpieczeństwo i compliance to fundamenty, a nie przybudówka
Przy wszystkich wdrożeniach, przy których pracujemy, dążymy do spełnienia najsurowszych wymogów w zakresie bezpieczeństwa i zgodności. Choć zasadniczo KLER nie funkcjonuje w ściśle regulowanej branży i nie zakładał takiej czynności w ramach współpracy z Chaos Gears, nasz zespół — w oparciu o nasze doświadczenie — zasugerował przeprowadzenie audytu Well-Architected istniejącej architektury i oprogramowania, aby zidentyfikować potencjalnie problemy, które nie ujawniły się na etapie naszych wstępnych spotkań.
Audyt ten przeprowadziliśmy w początkowym okresie realizacji, równolegle do naszych prac nad nową infrastrukturą, i dostarczyliśmy szczegółowy raport ukazujący szereg dodatkowych zagadnień istotnych zarówno dla bieżącego wdrożenia, jak i długookresowego sukcesu naszego partnera. Te obserwacje następnie stały się podstawą przeprowadzenia przez nas fazy Modernize, kształtując dodatkowe zadania konieczne do wykonania po uprzedniej migracji do nowej infrastruktury.
Jako że nasza praca opiera się na najlepszych praktykach branżowych, część z tych problemów byliśmy w stanie przewidzieć i im zapobiec, zanim zostały zidentyfikowane w audycie.
Dla przykładu, AWS Systems Manager jest integralną częścią naszego zestawu narzędzi i jedną z podstawowych usług, które wykorzystujemy w infrastrukturach naszych partnerów w chmurze AWS. Naturalnie więc i tym razem, gdy konfigurowaliśmy nowe środowiska i pipeline CI/CD, polegaliśmy na oferowanym przez tę usługę Parameter Store do bezpiecznego przechowywania kluczowych danych — w tym poufnych sekretów i parametrów konfiguracji systemu. Usługi w obu środowiskach są dzięki temu automatycznie skonfigurowane w oparciu o tak scentralizowane i zabezpieczone źródło.
Jako best practice jest to w naszym DNA — i tym samym rozwiązanie problemu wdrożyliśmy w istocie, zanim w ramach równolegle odbywającego się audytu nasi inżynierowie wykryli uchybienia w zakresie bezpieczeństwa przechowywania wrażliwych danych w dotychczasowym oprogramowaniu naszego partnera.
Usługi takie, jak Parameter Store czy HashiCorp Vault, są doskonałym rozwiązaniem części problemów, które wówczas odkryliśmy. Gdy chodzi jednak o bezpieczeństwo i compliance, wartość prewencji problemu drastycznie przyćmiewa możliwość remediacji, gdy problem ujawni się samoczynnie.Nasze wieloletnie doświadczenie pozwala nam na wysunięcie tezy, że bardzo wielu problemom można zapobiec także bez specjalnych — nierzadko kosztownych i problematycznych organizacyjnie — audytów, poprzez powierzenie odpowiedzialności za wdrożenia specjalistom stosującym się rutynowo do ugruntowanych best practices, tak jak inżynierowie Chaos Gears.
Wspólnie z inżynierami Chaos Gears osiągnęliśmy założone cele. Teraz KLER posiada nowoczesną infrastrukturę chmurową w AWS, która spełnia nasze rygorystyczne wymagania dotyczące skalowalności, dostępności i niezawodności.
Inżynierowie DevOps z Chaos Gears dostarczyli dokładnie to, czego potrzebowaliśmy. A Chaos Gears okazał się niezawodnym partnerem - cały proces dzięki skutecznemu rozwiązywaniu problemów i szybkiemu reagowaniu przebiegał bez zakłóceń.
- Marek Kołodziej, Website & Analytics Manager w KLER.
Rezultaty
Udało nam się osiągnąć wszystkie cele, których realizacja została nam powierzona. Mimo iż implementacja naszego najbardziej optymistycznego planu okazała się niemożliwa na tym etapie, nasz zespół oddał KLER do dyspozycji skalowalną, wysoce dostępną, niezawodną i trwałą infrastrukturę, która funkcjonuje jako przyszłościowy fundament pod dalszy rozwój cyfrowych usług naszego partnera.
Automatyzacja skalowania, load balancingu i zarządzania zasobami znacząco odciążyły pracowników firmy, jednocześnie optymalizując alokację zasobów — względem rzeczywistego popytu i zdolną do automatycznego dostosowywania się do dużych, chwilowych wahań.
Zespoły techniczne KLER są w znacznie mniejszym stopniu obciążone różnicami konfiguracyjnymi i wreszcie mają do dyspozycji solidne środowisko dedykowane rozwojowi i testowaniu oprogramowania. Przemyślany od podstaw pipeline CI/CD łączący je ze środowiskiem produkcyjnym pozwala im z większą swobodą i pewnością eksperymentować z innowacjami, bez ryzyka uszczerbku dla usług równolegle udostępnianych klientom firmy.
Zautomatyzowane procesy zastąpiły wiele czynności manualnych, które uprzednio niejednokrotnie zajmowały wiele godzin, a architektura będąca do dyspozycji naszego partnera znacząco rozszerzyła zakres czynności możliwych do dalszej automatyzacji.Cieszymy się, że dzięki naszej współpracy KLER może z większą swobodą i pewnością niż kiedykolwiek wcześniej skupić się na swoich kluczowych kompetencjach i realizować własne cele biznesowe patrząc w przyszłość, zamiast kroczyć niepewnie, polegając na rozwiązaniach przestarzałych lub nieadekwatnych do swoich potrzeb.Jak ten przypadek uwydatnia, nie wystarczy wyłącznie migracja własnej infrastruktury do publicznej chmury obliczeniowej, by rzeczywiście uzyskać wszystkie korzyści, które powszechnie są kojarzone z takim krokiem. Bez właściwych praktyk i odpowiedniej mieszanki doświadczenia oraz eksperckiej wiedzy — lub po prostu partnera takiego, jak Chaos Gears — taka przeprowadzka może poskutkować wyłącznie konsternacją co do przyczyn tego, dlaczego obiecywane przez chmurę korzyści nie ziściły się w praktyce.
Nasz partner nie jest już pozostawiony sam sobie, bez dokumentacji jego własnej infrastruktury. My z kolei, dostarczyliśmy w ramach tej współpracy kluczowe składniki potrzebne współcześnie do prowadzenia skutecznej działalności online. Obecnie kontynuujemy naszą współpracę, oferując bieżące wsparcie operacyjne, aby klienci KLER mogli dokonywać zamówień za pomocą niezawodnej platformy, która działa 24 godziny na dobę przez 7 dni w tygodniu.