Kilka lat temu mieliśmy ciekawy problem. Jesteśmy w pełni zdalną firmą z całym naszym oprogramowaniem w chmurze. I mieliśmy pakiet aplikacji Spring Boot działających na kontenerach z Infrastrukturą jako kodem. Potrzebowaliśmy jednak elastyczności biznesowej.
Światowy rynek pracy szybko się rozwija i zawsze pojawia się popyt 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 r. stworzyliśmy ADR (Architecture Decision Record), który mówił: „najpierw bezserwerowy, a w razie potrzeby kontenery”. I wywołał debatę w prawie 40 zespołach inżynieryjnych.
Najpierw wyjaśnijmy terminologię
Serverless-first to nie tylko funkcje jako usługa. Jest to również grupa usług zarządzanych od dostawców usług w chmurze, które:
-
Niższe koszty operacyjne dzięki niezarządzaniu infrastrukturą
-
W razie potrzeby skaluj, w tym skaluj do zera, aby były w pełni elastyczne
-
Elastyczne ceny (płacisz tylko za to, czego używasz)
W G-P, serverless-first odnosi się do korzystania przez nas z AWS Lambda, EventBridge, Step Functions, Fargate, SQS, SNS, API Gateway, S3, DynamoDB i innych.
Serverless-first oznacza, że gdy wybieramy rozwiązanie do obliczeń, przechowywania, przesyłania wiadomości lub podobne, chcielibyśmy, aby zespoły zaczęły od opcji bezserwerowej. Ważna uwaga: Jeśli usługa bezserwerowa nie spełnia wymagań, zespoły powinny wrócić do cięższej usługi – takiej, która wymaga większych inwestycji operacyjnych.
„Pojemniki potrzebne” wyjaśnia, że „najpierw bezserwerowe” nie oznacza tylko bezserwerowego. Są chwile, kiedy potrzebujemy kontenerów (np. instalowanie oprogramowania COTS ) – i to jest w porządku.
Strategia technologiczna, która nadaje priorytet klientom
Działamy w zwinnym tempie, aby zaspokoić potrzeby naszych klientów i użytkowników. Usługi takie jak Lambda, S3 i DynamoBD są niezwykle odporne i szybkie. Poprzez odciążenie niezróżnicowanego podnośnika możemy poświęcić więcej czasu na budowanie funkcji dla użytkowników, zamiast pracować nad ogólną konfiguracją infrastruktury.
Kluczową zasadą w G-P jest: „Ty ją budujesz, ty ją prowadzisz”. Nasze zespoły posiadają własne oprogramowanie. Nie tylko rzucamy oprogramowanie na ścianę zespołowi DevOps.
Korzyści z „serverless-first”
Serverless jest z natury oparty na zdarzeniach.
Nasza architektura jest w pełni oparta na wydarzeniach. Korzystając z EDA (Event-Driven Architecture), możemy skalować zarówno naszą organizację, jak i nasze oprogramowanie. Serverless wymusza na nas zachowanie niewielkiego promienia wybuchu i komunikację w sposób w pełni natywny dla chmury za pośrednictwem zdarzeń.
Włączanie ograniczeń
Jako global employment platform traktujemy kwestię zgodności z przepisami poważnie. Nasza infrastruktura chmury jest dobrze zaprojektowana i stosujemy strategię wielu kont, która oddziela obciążenia i automatyzuje zgodność z chmurą. Serverless pomaga nam egzekwować wysokie standardy, kontrolując sposób dostarczania zasobów w chmurze.
Odciążenie pracy
Nasz dostawca usług w chmurze zarządza naszymi usługami bezserwerowymi. Pojedynczy zestaw elementów składowych – zintegrowanych, zabezpieczonych, dostrojonych, włączonych i utrzymywanych przez AWS – pozwala nam skupić się na wyższym łańcuchu wartości dla klientów.
Dobrze zaplanowane obciążenia
Każdy tworzony przez nas nakład pracy jest analizowany za pomocą AWS Well-Architected Framework. Koncentrujemy się na skalowaniu, bezpieczeństwie, niezawodności i optymalizacji kosztów, aby zapewnić, że nie tylko spełniamy, ale także przekraczamy naszą umowę SLA (Service Level Agreement). Umożliwia to naszym zespołom inżynieryjnym dalszą ewolucję w środowiskach chmurowych.
O naszych zespołach
Nasza strategia technologiczna jest ambitna, co czyni ją wyzwaniem. Wielu inżynierów nie pracowało w architekturze bezserwerowej (lub rozproszonej). Przejście na architekturę bezserwerową nie jest łatwe i szukamy inżynierów, którzy są zadowoleni z nauki, myślenia i poruszania się w tempie.
Niektórzy inżynierowie nie są pewni terminu serverless (tak, wiemy, że są serwery), ponieważ podejście to jest czymś więcej niż pisaniem kodu w funkcjach. Nasza strategia wymaga holistycznego podejścia do klasycznych zasad chmurowych.
Wynik
W ciągu dwóch lat poczyniliśmy niezwykłe postępy. Modernizacja ma wiele zalet (zobacz nasz artykuł na temat AWS / znanej wartości biznesowej modernizacji chmury). W szczególności zaobserwowaliśmy następujące kwestie:
1. Szybkość: sposób, w jaki rozbiliśmy nasz system, pozwala zespołom i produktom na wprowadzanie innowacji i niezależną ewolucję. Ma to ogromny wpływ na elastyczność biznesową.
2. Zgodność: Korzystamy z AWS Well-Architected Framework do przeglądu wszystkich obciążeń. Ponieważ korzystamy z wielu AWS Managed Services, możemy polegać na ich doskonałości operacyjnej i zacząć od miejsca o wysokiej jakości.
3. Myślenie systemowe: Musieliśmy ustandaryzować wiele naszych procesów, abyśmy mogli rozumować o systemie, niezawodności i wartości biznesowej. Nie poświęcamy czasu na pracę nad komponentami o niskiej wartości.
4. Innowacja: Serverless oznacza, że wszystko jest API. To wymuszone ograniczenie wymaga podejścia opartego na interfejsie API. Kiedy myślimy o sobie jako o platformie, możemy osiągnąć nowy poziom innowacji, łatwo łącząc systemy za pomocą interfejsów API, takich jak podłączanie G-P Gia™ do nowej bazy wiedzy.
5. Własność: AWS jest właścicielem naszej infrastruktury, ale my jesteśmy właścicielem naszej domeny biznesowej. Serverless-first with domain-driven design zmusił nas do skupienia się na problemie biznesowym. Dzięki temu odpowiedzialność za możliwości jest jasna.
Serverless-first nie zawsze jest szybszy, ale jest bardziej korzystny. Wolimy optymalizować prędkość systemu niż prędkość poszczególnych programistów. Serverless-first polega mniej na używaniu funkcji, a bardziej na myśleniu: „Kod to odpowiedzialność. System jest aktywem”. Im mniej kodu musimy pisać, tym więcej możemy rozważyć i ukształtować system biznesowy, który budujemy.
Kiedy podzielimy się naszą historią, stanie się oczywiste, jak szybko pracujemy, co jest bezpośrednim wynikiem serverless-first. Bądź na bieżąco.