Skalowanie oznacza zwiększanie możliwości obsługi użytkowników i ich zadań, a ten temat pomoże Ci rozpoznać, kiedy aplikacja rzeczywiście potrzebuje większej wydajności, budżetu lub zespołu.
Wzrost ma różne postacie
Mała kawiarnia może potrzebować większego ekspresu, dodatkowej osoby przy kasie albo prostszego sposobu odbierania zamówień. Każda zmiana odpowiada na inne ograniczenie. Kupienie ekspresu nie skróci kolejki, jeśli wszyscy czekają na ręczne przepisywanie zamówienia do zeszytu.
Z aplikacją jest podobnie. Możesz zwiększyć moc komputerów, poprawić sposób wykonywania zadań, usprawnić pomoc albo ograniczyć czynności wymagające Twojej obecności. Zanim wydasz pieniądze, nazwij etap, który przestał nadążać, i opisz jego wpływ na użytkownika.
Rozdziel wzrost zainteresowania od wzrostu rzeczywistego użycia. Dużo odwiedzin strony opisującej aplikację nie oznacza wielu osób jednocześnie tworzących dokumenty. Duża liczba założonych kont również nie mówi, ile pracy program wykonuje dzisiaj.
W generatorze CV obciążenie może powstawać podczas przygotowania pliku do pobrania. W rezerwacji boiska najważniejsze może być poprawne zapisanie wielu prób wyboru tego samego terminu. W aplikacji szkoły językowej problemem może być przygotowanie zestawień dla dużej liczby grup.
Nie istnieje uniwersalna liczba użytkowników, po której trzeba zmienić technologię. Znaczenie ma rodzaj czynności, ich częstotliwość, ilość danych i to, czy występują równocześnie. Prosty odczyt informacji i tworzenie rozbudowanego dokumentu nie wymagają takiej samej pracy.
Skalowanie dotyczy również projektu bez przychodów. Wtedy zamiast opłacalności sprzedaży oceniasz, czy liczba odbiorców mieści się w przyjętym budżecie i dostępności opiekunów. Większa popularność nie zobowiązuje Cię automatycznie do finansowania nieograniczonego użycia.
Zbieraj sygnały z użycia
Najpierw ustal, jak wygląda poprawne wykonanie najważniejszego zadania. W rezerwacji oznacza to wybór wolnego terminu, zapis i potwierdzenie właściwego miejsca. Samo szybkie otwarcie strony nie dowodzi, że cały proces działa wystarczająco sprawnie.
Przygotuj prostą tabelę obserwacji: dzień, liczba wykonanych zadań, czas oczekiwania, nieudane próby oraz zgłoszenia użytkowników. Dodawaj informacje o opublikowanych zmianach i większych akcjach promocyjnych. Bez tego łatwo przypisać spowolnienie wzrostowi ruchu, chociaż zaczęło się po konkretnej poprawce.
Czas odpowiedzi to okres między rozpoczęciem czynności a otrzymaniem wyniku. Mierz go dla wybranego zadania, a nie dowolnego fragmentu aplikacji. Jeśli użytkownik czeka na dokument, szybkie wyświetlenie komunikatu „przygotowujemy” nie jest jeszcze szybkim dostarczeniem dokumentu.
Poproś osobę techniczną o pokazanie typowego oczekiwania oraz wolniejszych przypadków. Średnia może ukryć sytuację, w której większość osób działa sprawnie, ale część regularnie czeka bardzo długo. Nazwa p95 oznacza czas, którego nie przekracza 95 procent pomiarów; pozostałe próby mogą trwać dłużej.
To definicja sposobu pomiaru, a nie zalecany poziom jakości. Akceptowalne oczekiwanie ustal dla konkretnej czynności i potrzeb odbiorców. Inaczej ocenisz przełączanie dat w kalendarzu, inaczej przygotowanie dużego zestawienia, którego użytkownik nie potrzebuje natychmiast.
Obserwuj także liczbę błędów i poprawność zapisów. Program może odpowiadać szybko, ale odrzucać część rezerwacji albo pokazywać nieaktualne dane. W takim przypadku przyspieszenie odpowiedzi nie rozwiązuje problemu, bo podstawowym celem pozostaje prawidłowe ukończenie zadania.
Porównuj podobne okresy oraz podobne czynności. Początek zapisów na nowy semestr nie przypomina spokojnego dnia w środku kursu. Zapisuj kontekst, żeby pojedynczy szczyt nie wyglądał jak trwała zmiana sposobu używania produktu.
Znajdź rzeczywiste ograniczenie
Wąskie gardło przypomina najwęższy odcinek drogi: ogranicza przepływ niezależnie od szerokości pozostałych odcinków. W aplikacji może nim być wykonywanie obliczeń, odczytywanie danych, zewnętrzna usługa albo ręczna praca właściciela. Każdy przypadek wymaga innego działania.
Komputer stale udostępniający aplikację w internecie nazywa się serwerem. Jego procesor wykonuje obliczenia, a pamięć operacyjna przechowuje informacje potrzebne podczas bieżącej pracy. Więcej jednego zasobu nie zawsze zastępuje brak drugiego, więc poproś o wskazanie konkretnego ograniczenia.
Baza danych jest uporządkowaną kartoteką programu. Jeśli aplikacja przy każdej zmianie dnia pobiera całą historię rezerwacji, problem może wynikać ze sposobu przeszukiwania tej kartoteki. Powiększenie serwera może odsunąć objaw, lecz nadal pozostawić zbędną pracę wykonywaną przy każdym kliknięciu.
| Zaobserwowany objaw | Co sprawdzić przed zakupem |
|---|---|
| Wolne jest jedno zestawienie | Sposób pobierania i przetwarzania jego danych |
| Większość czynności zwalnia przy dużym ruchu | Zużycie zasobów i liczbę równoczesnych zadań |
| Dokumenty długo czekają na przygotowanie | Kolejność pracy oraz ograniczenia usługi tworzącej pliki |
| Użytkownicy czekają na aktywację konta | Ręczne czynności wykonywane przez opiekuna |
| Pojawiają się podwójne rezerwacje | Reguły zapisu i obsługę równoczesnego wyboru terminu |
Poproś wykonawcę o wyjaśnienie w formie: „Czekamy na ten etap, potwierdza to taki pomiar, proponowana zmiana ograniczy tę pracę”. Taka odpowiedź daje podstawę do decyzji. Ogólne stwierdzenie, że dotychczasowa technologia „się kończy”, nie mówi jeszcze, co rzeczywiście przeszkadza użytkownikom.
Sprawdź również ograniczenia dostawców zewnętrznych. Jeśli usługa przygotowująca treść przyjmuje ograniczoną liczbę zadań, większy własny serwer nie zwiększy automatycznie jej możliwości. Potrzebujesz zmiany sposobu wysyłania zadań, uzgodnienia większego limitu albo innej organizacji funkcji.
Wybierz najmniejszą skuteczną zmianę
Zacznij od usunięcia zbędnej pracy. Program może wielokrotnie przeliczać ten sam wynik, pobierać niepotrzebne informacje albo przygotowywać dokument ponownie po każdym odświeżeniu ekranu. Poprawa takiego zachowania pozwala obsłużyć więcej zadań bez proporcjonalnego zwiększania zasobów.
Pamięć podręczna działa jak odłożenie gotowej odpowiedzi na podręczną półkę: program wykorzystuje wcześniejszy wynik zamiast liczyć go od nowa. Nadaje się do informacji, które mogą przez określony czas pozostać niezmienione. W dostępności boiska trzeba uważać, ponieważ stary wynik nie może zastąpić sprawdzenia terminu przy zapisie.
Kolejka zadań przypomina numerki w punkcie obsługi: praca czeka na swoją kolej, zamiast rozpoczynać się cała równocześnie. Przy tworzeniu dokumentów użytkownik może otrzymać informację o przygotowaniu i później pobrać wynik. Kolejka łagodzi nagły napływ pracy, ale nie daje nieskończonej przepustowości, czyli liczby zadań możliwych do wykonania w danym czasie.
Jeżeli ograniczeniem rzeczywiście jest moc komputera, można zwiększyć zasoby pojedynczego serwera. Nazywa się to skalowaniem pionowym. Przed zmianą ustal koszt, ewentualną przerwę oraz sposób sprawdzenia, czy wybrana czynność faktycznie przyspieszyła.
Dodawanie kolejnych komputerów obsługujących aplikację nazywa się skalowaniem poziomym. Wymaga uzgodnienia, jak dzielą pracę i korzystają ze wspólnych danych. Nie każdą aplikację da się po prostu uruchomić w kilku kopiach bez zmian, zwłaszcza gdy przechowuje pliki tylko na jednym komputerze.
Jako właściciel nie musisz samodzielnie projektować tych rozwiązań. Potrzebujesz porównania możliwości: co poprawiają, ile pracy wymagają, jakie tworzą nowe obowiązki i jak można się z nich wycofać. Wybór powinien wynikać z pomiaru ograniczenia, a nie z atrakcyjności technicznej nazwy.
Sprawdź przed większym ruchem
Przed zapisami na nowy sezon możesz zrobić próbę podobną do sprawdzenia obsługi sali przed wydarzeniem. Test obciążeniowy to kontrolowane odtwarzanie wielu czynności użytkowników, żeby zobaczyć, jak aplikacja zachowuje się przy większej pracy. Taki test powinien odpowiadać rzeczywistemu użyciu, nie tylko wielokrotnie otwierać stronę główną.
Grafana k6 jest narzędziem do testowania wydajności i zachowania aplikacji pod obciążeniem. Przygotowanie wiarygodnego scenariusza możesz powierzyć osobie technicznej, przekazując jej opis zachowania użytkowników. Możliwości narzędzia opisuje dokumentacja Grafana k6.
Dla boiska scenariusz powinien uwzględnić odczyt kalendarza, wybór terminu i próby zapisu, również wtedy, gdy kilka osób chce tego samego miejsca. Dla szkoły językowej potrzebujesz danych o strukturze podobnej do rzeczywistych grup i zajęć. Pusta aplikacja może zachowywać się inaczej niż produkt z historią użytkowania.
Próbę organizuj w oddzielnej kopii przeznaczonej do sprawdzania, zwanej środowiskiem testowym. Uzgodnij z wykonawcą, na ile odpowiada warunkom prawdziwej aplikacji. Słabsza kopia albo sztucznie mała ilość danych ograniczają przydatność wyniku i powinny być opisane w podsumowaniu.
Przed testem ustal kolejność działań:
- Wybierz zadania i spodziewany sposób napływu użytkowników.
- Przygotuj dane pokazowe oraz wyłącz prawdziwe płatności i wysyłkę wiadomości.
- Uzgodnij zakres próby, koszty i warunek przerwania.
- Zwiększaj obciążenie stopniowo i zapisuj wyniki.
- Sprawdź poprawność danych, nie tylko szybkość odpowiedzi.
- Po zmianie powtórz porównywalny scenariusz.
Nie uruchamiaj dużego testu na cudzych usługach bez uzgodnienia warunków. Sprawdź również, czy automatyczne próby nie tworzą opłat za dokumenty lub wiadomości. Wynik testu ma pokazać granice konkretnego scenariusza, a nie zagwarantować odporność na każde możliwe zachowanie użytkowników.
Oceń pieniądze i obsługę
Techniczna możliwość przyjęcia większej liczby osób nie oznacza jeszcze, że możesz je sprawnie obsłużyć. Jeśli każde nowe konto wymaga Twojej rozmowy, wprowadzenia danych i ręcznego przygotowania dokumentu, wzrost szybko wypełni kalendarz. Zapisz te czynności obok ograniczeń samego programu.
Zastanów się, co można uprościć, co zautomatyzować, a co przekazać drugiej osobie. Automatyzacja oznacza wykonywanie powtarzalnej czynności przez program według ustalonych zasad. Zanim ją zlecisz, opisz wyjątki, żeby szybszy proces nie powielał błędów na większą skalę.
W projekcie zarobkowym porównaj wpływy związane z dodatkowym użyciem z dodatkowymi wydatkami. Uwzględnij przygotowanie dokumentów, obsługę, opłaty dostawców i pracę ludzi. Jeżeli każde kolejne zlecenie kosztuje więcej niż przynosi, zwiększenie ruchu powiększa problem zamiast go rozwiązywać.
Nie myl tego z chwilowym wydatkiem na przygotowanie większej pojemności. Jednorazowa poprawka może podnieść koszt bieżącego miesiąca i obniżyć koszt późniejszej obsługi. Poproś o oddzielne pokazanie pracy jednorazowej, stałych zobowiązań oraz opłat rosnących z użyciem.
Dla projektu społecznego ustal granicę wydatków i zakres dostępności opiekunów. Możesz otwierać zapisy etapami, ograniczyć kosztowną funkcję albo prowadzić listę oczekujących. Jasne ograniczenie jest uczciwą decyzją organizacyjną, jeśli odpowiada możliwościom utrzymania usługi.
Zachowaj zapas wynikający z przewidywalnych szczytów, takich jak rozpoczęcie semestru. Nie kupuj jednak nieokreślonej „gotowości na sukces” bez scenariusza użycia. Potrzebujesz wiedzieć, jaki wzrost obsłużysz, przez jaki czas oraz co zrobisz po przekroczeniu przyjętych granic.
Zapisz warunek decyzji
Przygotuj krótką kartę decyzji: obserwowany objaw, dowody, proponowana zmiana, koszt, osoba odpowiedzialna i sposób sprawdzenia efektu. Dopisz warunek rozpoczęcia działania. Może nim być powtarzające się przekraczanie zaakceptowanego czasu przygotowania dokumentu przy typowym ruchu, po wykluczeniu pojedynczej awarii.
Warunek powinien odnosić się do własnych pomiarów i potrzeb odbiorców. Nie kopiuj cudzej liczby kont albo poziomu zużycia zasobów jako automatycznej granicy. Poproś wykonawcę o wskazanie zapasu oraz czasu potrzebnego na zmianę, żeby zareagować przed utratą możliwości normalnej obsługi.
Ustal też, kiedy nie skalujesz. Jeśli spowolnienie zniknęło po poprawieniu jednego zestawienia, obserwuj wynik przed dalszym zakupem. Jeśli aplikacja działa sprawnie, a użytkownicy nie wracają, większa moc komputera nie odpowiada na przyczynę braku zainteresowania.
Po wdrożeniu porównaj ten sam rodzaj pracy przed zmianą i po niej. Sprawdź koszty, błędy, oczekiwanie oraz liczbę spraw wymagających pomocy. Zapisz wynik również wtedy, gdy poprawa okazała się mniejsza od oczekiwanej; ta informacja pomoże trafniej wybrać następne działanie.
Podsumowanie w pięciu punktach
- Oceniaj potrzebę skalowania według wykonywanych zadań i ich skutków dla użytkowników.
- Znajdź ograniczenie na podstawie pomiarów przed zakupem większych zasobów.
- Wybierz zmianę odpowiadającą przyczynie, uwzględniając również pracę ludzi.
- Sprawdź przewidywany ruch w kontrolowanym teście z bezpiecznymi danymi.
- Zapisz warunek decyzji i porównaj jakość oraz koszt obsługi po zmianie.
Co dalej
Przeczytaj „Stałe koszty”, aby uporządkować zobowiązania związane ze zwiększaniem możliwości aplikacji. „Chmura i kontenery” wyjaśnia sposoby organizacji zaplecza technicznego, a „Wsparcie użytkowników” pomoże przygotować obsługę większej liczby spraw.