Site Reliability Engineering
Site Reliability Engineering to dyscyplina, która obejmuje aspekty inżynierii oprogramowania, mających zastosowanie w rozwiązywaniu problemów infrastrukturalnych i operacyjnych. SRE – definiowane przez Benjamina Treynora Slossa (Vice President, Engineering @Google) jest jako sposób myślenia i podejścia do produkcji oprogramowania, stanowi zbiór zasad i praktyk. Koncept sprowadza się do traktowania wszystkich operacji, jako problemów z oprogramowaniem, którym mają zaradzić inżynierowie. SRE w Google, skupia się na ochronie, udostępnianiu i rozwijaniu oprogramowania i systemów wszystkich publicznych usług Google, co zarazem jest świadectwem wysokiej dostępności, małych opóźnień i lepszej wydajności ich usług. Pełną historię SRE możecie obejrzeć w poniższym video:
SRE ma kompleksowe zastosowanie w IT. Oprócz budowania niezawodności i lepszej wydajności, SRE można wykorzystać podczas zarządzania incydentami, obciążeniami, machine learningu czy DevOpsie(DevSecOpsie). Jednak najważniejszą kwestią jest bezpieczeństwo, które jest swoistym filarem, podczas projektowania niezawodnych rozwiązań. Dlatego też pozycja “Building Secure & Reliable System: Best Practices for Designing, Implementing and Maintainig Systems” powinna być obowiązkową w biblioteczce każdego programisty.
W tym wydaniu znajdziemy m.in:
- Strategie projektowania, w tym best practices projektowania pod kątem zrozumienia, odporności i odzyskiwania, a także określone zasady projektowania, takie jak “least privilege”.
- Zalecenia dotyczące kodowania, testowania i debugowania.
- Strategie przygotowania się, reagowania i odzyskiwania danych po incydentach.
- Kulturowe best practices ułatwiające efektywną współpracę zespołom w całej organizacji.
Ponadto pozycja została opracowana przez praktyków specjalizujących się w zakresie bezpieczeństwa i niezawodności. Organizacje w coraz większym stopniu polegają na technologii, nawet jeśli nie jest to podstawa ich działalności. A rosnące jej znaczenie oznacza, że bardziej, musimy polegać na niezawodności rozwiązań. Złożoność nowoczesnych systemów i szybkość z jaką są opracowywane, oznacza, że na bezpieczeństwo i niezawodność należy kłaść nacisk od od początku ich tworzenia, aby uzyskać maksymalną skuteczność.
Postrzeganie tych elementów i jako nieodłącznych właściwości systemu jest nie tylko naturalne, ale ma kluczowe znaczenie w dzisiejszym zautomatyzowanym, połączonym i złożonym krajobrazie technologicznym. Koncepcja zintegrowanego modelu bezpieczeństwa i niezawodności wymaga czasu. Dlatego zanim ewoluuje i stanie się naturalną częścią ekosystemu jest szeroko dyskutowana w społecznościach DevOps i DevSecOps. Wiele cykli rozwojowych i organizacji koncentruje się funkcjonalnie na podziale pracy między zespołami odpowiedzialnymi za: rozwój, testowanie, bezpieczeństwo, niezawodność i działanie systemu. Co za tym idzie model ten będzie musiał ulegać ciągłemu dostosowywaniu do wymogów zmian technologicznych.
Podsumowując, bezpieczeństwo i niezawodność muszą być integralną częścią całego procesu projektowania. Korzyści jakie można uzyskać z zastosowania Site Reliability Engineering to m.in.:
- Wypełnienie luki między programistą a administratorem systemu.
- Automatyzacja procesu.
- Stały monitoring i analiza wydajności aplikacji.
- Możliwość swobodnego rozwoju produktu.
To tylko kilka z licznych zalet i możliwości jakie daje SRE, które pozwala na rozwój i dostosowanie się do zmian technologicznych.
Jeśli chcesz poznać zasady dobrego projektowania rozwiązań, nie tylko w kontekście site reliability, to koniecznie przeczytaj nasze poprzednie posty. Polecamy:
- DevSecOps strażnikiem bezpieczeństwa
- Well-Architected Framework od AWS do projektowania w chmurze
- Machine Learning Lens od AWS
- Serverless Lens od AWS
- Bezpieczna chmura od Google