Używanie spisów do zarządzania zasobami i zapobiegania duplikowaniu
Wraz ze wzrostem organizacji ilość rzeczy potrzebnych do śledzenia. Organizacje często duplikowały wysiłki wewnętrzne, ponieważ jeden zespół nie wie o projekcie drugiego. Gdy ludzie przechodzą między zespołami, nowe osoby dołączają do firmy i innych opuszczają, projekty mogą stać się oddzielone. Spisy ułatwiają rozwiązywanie tych problemów i stanowią kluczową część inżynierii platformy.
Spis to narzędzie lub system służący do śledzenia zasobów technicznych organizacji oraz zarządzania nimi i organizowania ich. Te zasoby obejmują kod, interfejsy API, kontenery, maszyny wirtualne, uprawnienia zespołu i inne.
Brak śledzenia zasobów prowadzi do rozrastania się i marnotrawstwa technicznego po prostu dlatego, że nie można łatwo odkryć, co już istnieje. Utrata śladu tego, co już istnieje, jest częstym wyzwaniem.
Mamy mnóstwo kontenerów lub uruchomionych wystąpień [VM]. Czy możemy usunąć nasze stare maszyny wirtualne? Nikt nie wie. Musimy wymyślić sposób czyszczenia starych rzeczy i używania odpowiednich tagów, aby wiedzieć, kto jest właścicielem lub zespołem, który może poinformować nas o tym, co możemy zrobić i co to jest cykl życia.... Nie wiemy, czy możemy zamknąć określoną maszynę wirtualną, ponieważ nie jesteśmy pewni, co się stanie. - Martin, inżynier DevOps, duża firma logistyczna
Śledzenie zasobów
Potrzebujesz spisu, aby śledzić wszystkie utworzone lub wbudowane elementy ekosystemu, które klienci wewnętrzni mogą wizualizować w zrozumiały sposób.
Spis może poprawić bezpieczeństwo, promować ponowne użycie i ogólnie ułatwić odnajdywanie. Różne narzędzia są dostępne do śledzenia różnych typów zasobów. Każde z tych narzędzi udostępnia spis, który ułatwia zarządzanie, śledzenie i czyszczenie odpadów.
Dostępne narzędzia do śledzenia obejmują:
- Środowiska wdrażania platformy Azure umożliwiają śledzenie złożonej infrastruktury utworzonej za pomocą infrastruktury jako kodu (IaC) jako środowiska abstrakcyjnego.
- Centrum interfejsów API platformy Azure umożliwia deweloperom odnajdywanie interfejsów API i korzystanie z nich.
- Rejestry pakietów, takie jak Pakiety GitHub lub Azure Artifacts (lub inne spisy zatwierdzonych pakietów i zestawów SDK), zwiększają bezpieczeństwo łańcucha dostaw.
Podczas podejmowania decyzji o widoczności spisów należy wziąć pod uwagę najlepsze podejście dla organizacji. Niektóre organizacje umożliwiają wszystkim deweloperom wyświetlanie zasobów oprogramowania, ale tylko kilka z nich może je modyfikować (podobnie jak otwarta kuchnia). Inne, zwłaszcza w branżach regulowanych, ograniczają dostęp bardziej ściśle, czasami nawet ograniczając widoczność nazw projektów ze względu na wrażliwość.
Zwiększanie możliwości odnajdywania, ładu i ponownego użycia
Posiadanie co najmniej jednego systemu spisu, które ułatwiają śledzenie posiadanych rozwiązań inżynieryjnych na platformie i unikanie rozrostu technicznego. Początkowo posiadanie zestawu prostych list spisu może wystarczyć. Można jednak jeszcze bardziej zwiększyć możliwości odnajdywania, dodając relacje między różnymi elementami zawartości w wielu zapasach. Niezależnie od wymaganego poziomu widoczności scentralizowany punkt agregacji umożliwia zespołom szybkie wyszukiwanie i odnajdywanie wszystkich dostępnych zasobów. Sprzyja to ponownemu używaniu, zmniejsza nadmiarowość i ustanawia spójne podejście do ładu.
Rozważ relację między definicją interfejsu API a wdrożonym kodem aplikacji, który implementuje interfejs. Ten kod jest przechowywany w repozytorium i zarządzany przez zespół oraz zawiera dokumentację dotyczącą jego użycia. Tworzone są środowiska deweloperskie, testowe, produkcyjne, a nawet tymczasowe środowiska piaskownicy. W scenariuszach natywnych dla chmury środowiska mogą być wdrażane w udostępnionym klastrze Kubernetes. Zespół programistyczny tworzący interfejs API i każdy użytkownik wewnętrzny musi mieć możliwość uzyskania informacji o każdej z tych rzeczy, ale sposób, w jaki zasoby są powiązane, nie jest oczywiste.
Aby rozpocząć, możesz użyć czegoś prostego jako strony typu wiki, aby śledzić, jak każda rzecz odnosi się do siebie nawzajem. Jednak wiek dokumentacji szybko i może być trudny zarówno do znajdowania, jak i analizowania. Najlepiej byłoby mieć system z grafem relacji, który umożliwia interfejsom użytkownika przechodzenie tych relacji w spisie. Aby naprawdę poprawić możliwości odnajdywania, musisz mieć możliwość skojarzenia elementów przechowywanych w wielu typach spisów lub wykresów. Może nie być konieczne bezpośrednie użycie spisów, ale prawdopodobnie zechcesz skojarzyć je z informacjami w systemie wykazu interfejsów API.
Łączenie spisów z relacyjnymi grafami i wykazami
Aby użyć analogii sklepu cyfrowego, może być również przydatne skojarzenie elementów (szablonów) z katalogiem z wynikową zawartością spisu. Jeśli na przykład zauważysz, że jeden z szablonów tworzy niezabezpieczoną konfigurację, musisz szybko znaleźć wszystkie zasoby utworzone za pomocą szablonu, aby je naprawić. Uruchamianie odpowiednich szablonów aplikacji to pakiety zestawów startowych w tym katalogu, które łączą się z innymi typami elementów wykazu (takimi jak szablony IaC). Śledzenie tych skojarzeń umożliwi aktywne znalezienie dowolnej aplikacji, która odwołuje się do nieprawidłowego szablonu IaC, nawet jeśli żadna infrastruktura nie jest jeszcze aprowizowana.
Uproszczona odmiana tego koncepcyjnego wykresu platformy deweloperów wysokiego poziomu można znaleźć w kilku zestawach narzędzi i produktach, choć to, co nazywa się, różni się. Na przykład zestaw narzędzi portalu open source Backstage.io wywołuje ten katalog oprogramowania, podczas gdy inne produkty używają różnych terminów. Jednak większość tych produktów i zestawów narzędzi zakłada, że używasz ich szerszego zestawu funkcji i wymaga zduplikowania zawartości spisu wewnątrz nich. Duplikowanie oznacza, że zawartość bazy danych katalogu nie jest specyficzna dla użytkownika, może stać się nieaktualna i nie jest kontrolowana przez mechanizmy autoryzacji użytkowników rzeczywistego systemu źródłowego. Jednak może to zadziałać dobrze w twojej organizacji, jeśli obserwujesz otwarte podejście do kuchni.