Kilka lat temu mieliśmy ciekawy problem. Jesteśmy w pełni zdalną firmą z całym naszym oprogramowaniem w chmurze. Mieliśmy też zestaw aplikacji Spring Boot działających na kontenerach z Infrastructure as Code. Potrzebowaliśmy jednak elastyczności biznesowej. Globalny rynek pracy porusza się szybko i zawsze istnieje zapotrzebowanie na nowe produkty. Musieliśmy znaleźć sposób na utrzymanie pozycji lidera w branży.​​ 

Jesteśmy firmą technologiczną z odważną strategią​​ 

W 2022 stworzyliśmy ADR (Architecture Decision Record), który mówił: "serverless-first and containers-as-needed." I wywołał debatę w prawie 40 zespołach inżynieryjnych.​​ 

Wyjaśnijmy najpierw trochę terminologii​​ 

Serverless-first to nie tylko funkcje jako usługa. To także grupa usług zarządzanych od dostawców usług w chmurze, które:​​  

  • Niższe koszty operacyjne dzięki rezygnacji z zarządzania infrastrukturą​​ 
  • Skalowanie według potrzeb, w tym skalowanie do zera, aby były w pełni elastyczne.​​ 
  • Elastyczne ceny (płacą Państwo tylko za to, czego używają)​​  

W G-P, serverless-first odnosi się do naszego wykorzystania AWS Lambda, EventBridge, Step Functions, Fargate, SQS, SNS, interfejs programowania aplikacji Gateway, S3, DynamoDB i innych.​​ 

Serverless-first oznacza, że kiedy wybieramy rozwiązanie Compute, Storage, Messaging lub podobne, chcielibyśmy, aby zespoły zaczynały od opcji bezserwerowej. Ważna uwaga: jeśli usługa bezserwerowa nie spełnia potrzeb, zespoły powinny wrócić do cięższej usługi - takiej, która wymaga większych inwestycji operacyjnych.​​ 

„Containers-as-needed” wyjaśnia, że „servless-first” nie oznacza „wyłącznie bezserwerowo”. Czasem potrzebujemy kontenerów (np. w celu zainstalowania oprogramowania COTS) — i to jest w porządku.​​ 

Strategia technologiczna, której priorytetem są klienci​​ 

Działamy w szybkim tempie, aby sprostać potrzebom naszych klientów i użytkowników. Usługi takie jak Lambda, S3 i DynamoBD są niezwykle odporne i szybkie. Odciążając niezróżnicowane, ciężkie zadania, możemy poświęcić więcej czasu na tworzenie funkcji dla użytkowników, zamiast pracować nad ogólną konfiguracją infrastruktury.​​ 

Kluczową zasadą w G-P jest: "Państwo budujecie, Państwo uruchamiacie." Nasze zespoły są właścicielami swojego oprogramowania. Nie przerzucamy więc oprogramowania przez ścianę do zespołu DevOps.​​  

Korzyści płynące z "serverless-first"​​ 

Serverless jest z natury sterowany zdarzeniami.​​ 

Nasza architektura jest w pełni sterowana zdarzeniami. Korzystając z EDA (Event-Driven Architecture), możemy skalować zarówno naszą organizację, jak i nasze oprogramowanie. Serverless zmusza nas do utrzymywania małego promienia rażenia i komunikowania się w pełni natywny dla chmury sposób poprzez WYDARZENIA.​​ 

Ograniczenia umożliwiające​​ 

Jako platforma Globalna zatrudniania traktujemy zgodność z przepisami poważnie. Nasza infrastruktura chmurowa jest dobrze zaprojektowana, a my korzystamy ze strategii wielokontowej, która rozdziela obciążenia i automatyzuje zgodność z wymaganiami chmury. Rozwiązania bezserwerowe pomagają nam egzekwować wysokie standardy poprzez kontrolowanie sposobu udostępniania zasobów chmury.​​ 

Odciążenie od pracy​​ 

Nasz dostawca usług w chmurze zarządza naszymi usługami bezserwerowymi. Pojedynczy zestaw bloków konstrukcyjnych - zintegrowanych, zabezpieczonych, dostrojonych, włączonych i utrzymywanych przez AWS - pozwala nam skupić się na wyższym poziomie łańcucha wartości dla klientów.​​ 

Dobrze zaprojektowane obciążenia​​ 

Każde tworzone przez nas obciążenie jest weryfikowane za pomocą AWS Well-Architected Framework. Koncentrujemy się na skali, bezpieczeństwie, niezawodności i optymalizacji kosztów, aby zapewnić, że nie tylko spełniamy, ale także przekraczamy nasze umowy SLA (Service Level Agreement). Umożliwia to naszym zespołom inżynieryjnym dalszą ewolucję środowisk chmurowych.​​  

O naszych zespołach​​ 

Nasza strategia technologiczna jest ambitna, co czyni ją wymagającą. Wielu inżynierów nie pracowało w architekturze bezserwerowej (lub rozproszonej). Przejście na architekturę bezserwerową nie jest łatwe, a my szukamy inżynierów, którzy czują się komfortowo ucząc się, myśląc na dużą skalę i poruszając się w szybkim tempie.​​ 

Niektórzy inżynierowie nie są pewni co do terminu serverless (tak, wiemy, że istnieją serwery), ponieważ podejście to jest czymś więcej niż tylko pisaniem kodu w funkcjach. Nasza strategia wymaga holistycznego podejścia do klasycznych zasad natywnych dla chmury.​​ 

Wynik​​ 

W ciągu dwóch lat poczyniliśmy niezwykłe postępy. Modernizacja niesie ze sobą wiele korzyści (zobacz nasz artykuł o coroczny dodatek do wynagrodzenia / znanej wartości biznesowej modernizacji chmury). Dokładniej rzecz biorąc, zaobserwowaliśmy następujące rzeczy:​​ 

1. Szybkość: Sposób, w jaki podzieliliśmy nasz system, pozwala zespołom i produktom na niezależną innowacyjność i ewolucję. Ma to ogromny wpływ na elastyczność biznesu.​​ 

2. Zgodność: Używamy coroczny dodatek do wynagrodzenia Well-Architected Framework do przeglądu wszystkich obciążeń. Ponieważ korzystamy z wielu coroczny dodatek do wynagrodzenia Managed Services, możemy polegać na ich doskonałości operacyjnej i zaczynać od wysokiej jakości.​​ 

3. Myślenie systemowe: Musieliśmy ujednolicić wiele naszych procesów, abyśmy mogli wnioskować o systemie, niezawodności i wartości biznesowej. Nie marnujemy czasu na pracę nad podzespołami o niskiej wartości.​​ 

4. Innowacja: Serwerless oznacza, że wszystko jest interfejs programowania aplikacji. To wymuszone ograniczenie wymaga podejścia interfejs programowania aplikacji-first. Kiedy myślimy o sobie jako o platformie, możemy osiągnąć nowy poziom innowacji, łatwo łącząc systemy za pomocą API, na przykład podłączając G-P Gia™ do nowej bazy wiedzy.​​ 

5. Własność: coroczny dodatek do wynagrodzenia jest właścicielem naszej infrastruktury, ale my jesteśmy właścicielami naszej domeny biznesowej. Koncepcja „servless first” i projektowanie zorientowane na domenę zmusiły nas do skupienia się na problemie biznesowym. To utrzymuje własność możliwości czystą.​​ 

Serverless-first nie zawsze jest szybsze, ale jest bardziej korzystne. Wolimy optymalizować pod kątem szybkości systemu niż szybkości poszczególnych deweloperów. Serverless-first polega mniej na korzystaniu z funkcji, a bardziej na myśleniu: "Kod to odpowiedzialność. System jest atutem." Im mniej kodu musimy napisać, tym więcej możemy rozważyć i kształtować system biznesowy, który budujemy.​​ 

W miarę jak będziemy dzielić się naszą historią, stanie się oczywiste, z jaką prędkością pracujemy, co jest bezpośrednim rezultatem serverless-first. Proszę być na bieżąco.​​