Projektowanie przy użyciu ekonomicznego myślenia
- 12 min
|
|
|---|
Każda decyzja dotycząca architektury ma wpływ na budżet, na przykład niezależnie od tego, czy tworzysz, czy kupujesz, jakie narzędzia używasz, czy też jak licencjonujesz i trenujesz. Ważne jest, aby rozważyć te opcje i dokonać kompromisów, które nadal spełniają potrzeby aplikacji bez nadmiernego nakładu pracy.
Przykładowy scenariusz
Firma Contoso Manufacturing uruchamia niestandardowy system zarządzania magazynem (WMS), który obsługuje cztery magazyny w Całej Ameryce Południowej. Chcą zaktualizować i przenieść usługę WMS do chmury. Decydują one o przeniesieniu bieżącego rozwiązania metodą "lift-and-shift" lub kompilacji z zielonym polem za pomocą nowoczesnych narzędzi w chmurze. Kierownictwo chce utrzymać kontrolę nad kosztami, więc zespół potrzebuje planu, który utrzymuje efektywność kosztową.
Rozwiązanie WMS to aplikacja .NET, która działa w usługach Internet Information Services (IIS) i używa programu SQL Server dla swoich baz danych.
Omówienie pełnego kosztu projektu
Zmierz całkowity koszt spowodowany wyborami technologii i automatyzacji, uwzględniając wpływ zwrotu z inwestycji (ROI). Projekt musi działać w granicach dopuszczalnych dla wszystkich wymagań funkcjonalnych i niefunkcjonalnych. Projekt musi być również elastyczny, aby uwzględnić przewidywaną ewolucję. Uwzględnianie kosztów pozyskiwania, szkolenia i zarządzania zmianami.
Zaimplementowanie zrównoważonego podejścia, które uwzględnia zwrot z inwestycji zapobiega nadmiernej inżynierii, co może zwiększyć koszty.
Wyzwanie firmy Contoso
Zespół inżynierów firmy Contoso jest podekscytowany przeniesieniem systemu magazynu do chmury, podobnie jak inne zespoły.
Wiedzą, że bieżąca aplikacja ma jakiś dług techniczny, więc planuje przepisać większość kodu aplikacji i przełączyć się na nowsze narzędzia natywne dla chmury.
Zespół inżynierów chce przeprojektować wszystko w mikrousługi i uruchomić je w usłudze Azure Kubernetes Service (AKS), która jest dla nich nową i ekscytującą platformą.
Stosowanie podejścia i wyników
Zespół jest podekscytowany wykonaniem znaczącego przeprojektowania podczas przenoszenia chmury, ale wiedzą, że muszą zachować zwrot z inwestycji obciążenia. Dlatego muszą trzymać się narzędzi, które już znają i unikać głównych przepisań, które wymagają dodatkowego szkolenia zespołu inżynieryjnego.
Zespół ds. obciążeń ma praktyczne podejście do projektowania systemu. Chcą, aby była opłacalna, spełniała oczekiwania i unikała nadmiernego komplikowania rzeczy. Aby zapewnić bezproblemowe sprawdzanie zwrotu z inwestycji i bezproblemową migrację, decydują się na przejście z równoważnym rozwiązaniem w chmurze, takim jak usługa Azure App Service.
Określają one plan bazowy kosztów, który odpowiada za infrastrukturę, licencjonowanie i koszty operacyjne, a także mniej oczywiste czynniki, takie jak trenowanie nowych platform, ponowne zapisywanie starszego kodu i zarządzanie zmianami w różnych zespołach. Zyskają jaśniejszy obraz tego, co jest możliwe w budżecie, co potwierdza swoją decyzję o usłudze App Service jako bardziej znaną, niższą ścieżkę ryzyka.
Podczas migracji zespół planuje oczyścić część długu technicznego, który ma sens, aby rozwiązać ten problem. W ten sposób, po uruchomieniu wszystkiego na platformie Azure, będą one w lepszym miejscu, aby nadal ulepszać platformę, zachowując jednocześnie na uwadze zwrot z inwestycji podczas podejmowania tych wyborów.
Uściślij projekt
Dostosuj projekt, ustalając priorytety usług, które mogą zmniejszyć całkowity koszt, nie wymagają dodatkowych inwestycji lub nie mają znaczącego wpływu na funkcjonalność. Priorytetyzacja powinna uwzględniać model biznesowy i opcje technologiczne, które przynoszą wysokie zwroty z inwestycji.
Możesz zapoznać się z tańszymi opcjami, które mogą umożliwić elastyczność zasobów lub dynamiczne skalowanie, albo uzasadnić użycie istniejących inwestycji. Parametry priorytetyzacji mogą uwzględniać koszty wymagane w przypadku obciążeń krytycznych, środowiska uruchomieniowego i operacji oraz innych kosztów, które mogą pomóc zespołowi wydajniej pracować.
Wyzwanie firmy Contoso
Istniejące obciążenie jest hostowane na urządzeniu hiperkonwergentnym (HCI), a centrum kosztów zespołu jest obciążane kosztami obliczeń, sieci i magazynu.
Obciążenie wdrożyło środowiska przedprodukcyjne i produkcyjne na maszynach wirtualnych z systemem Windows.
Funkcja GitHub Actions z własnymi modułami uruchamiającym działa na potrzeby uruchamiania zadań funkcji GitHub Actions.
Stosowanie podejścia i wyników
Po dokonaniu oceny kilku opcji natywnych dla chmury zespół decyduje, że przeniesienie składników internetowych do usługi App Service zapewni zgodność aplikacji usług IIS z systemem Windows bez znaczących zmian i nie wymaga znacznego szkolenia.
Zespół decyduje się kontynuować korzystanie z funkcji GitHub Actions z własnymi agentami uruchomieniowymi, ale decyduje się dokonać migracji do zestawu skalowania maszyn wirtualnych z możliwością skalowania do zera węzłów, gdy nie są wykorzystywane.
Opracuj swoją architekturę, aby wspierać ograniczenia kosztowe
Skonfiguruj limity kosztów w architekturze, aby utrzymać wydatki w bezpiecznym zakresie i zapewnić, że koszty środowiska w chmurze są utrzymywane w ramach tych limitów.
Wymuszanie limitów pomaga uniknąć opłat za zaskoczenie i gwarantuje, że używasz tylko tego, co rzeczywiście budżetujesz.
Wyzwanie firmy Contoso
Obecny system nie ma barier kosztowych, ale ponieważ rzadko się zmienia, nikt ich nie naciskał, aby je dodać.
Właściciele środowisk HCI ustawili limit zasobów, więc obciążenie nie może używać większej ilości zasobów obliczeniowych ani magazynu niż jest to dozwolone.
Zespół obawia się, że przejście do chmury może prowadzić do nieoczekiwanych kosztów i nie ma pewności, jak tego uniknąć.
Stosowanie podejścia i wyników
Zespół dowie się, jak używać rozwiązań Microsoft Cost Management.
Planują oni ustawić limity skalowania dla planów usługi App Service.
Planują skonfigurować zasady odmowy w celu zablokowania użycia niektórych kosztownych jednostek SKU maszyn wirtualnych.
Planują dodać automatyzację w celu zaoszczędzenia w magazynie. Starsze lub mniej używane dane zostaną automatycznie przeniesione do tańszych warstw magazynowania, takich jak zimne lub archiwum. Tego rodzaju automatyzacja nie była możliwa w ich starym środowisku HCI.