Automatyzowanie pod kątem wydajności
Zastępowanie powtarzających się zadań ręcznych automatyzacją oprogramowania, które przyspiesza ich wykonywanie, z większą spójnością i dokładnością oraz zmniejsza ryzyko. |
---|
Obciążenie może mieć przepływy pracy z procesami, które obejmują członków zespołu wykonujących przyziemne, powtarzalne i czasochłonne zadania, które w rzeczywistości nie potrzebują ludzkiej inteligencji. W zależności od częstotliwości możesz poświęcić dużo czasu na te wysiłki, inwestując więcej czasu w miarę wzrostu obciążenia. Ponadto te procesy są często podatne na błędy z powodu ludzkich danych wejściowych.
Dzięki automatyzacji oszczędzasz czas, nakład pracy i pieniądze i unikasz błędów.
Przykładowy scenariusz
Firma Contoso University opracowała aplikację internetową, obecnie w środowisku produkcyjnym i hostowaną na platformie Azure, która zapewnia usługi edukacyjne online dla studentów i wykładowców firmy Contoso.
Rozwiązanie technologiczne jest oparte na usługach aplikacja systemu Azure Service, Azure SQL Database, Azure Active Directory, Azure Key Vault i Azure DevOps.
Automatyzowanie przepływów
Oceń wszystkie przepływy pracy pod kątem kryteriów, które są na odpowiednim poziomie złożoności, nakładu pracy, częstotliwości, dokładności, osi czasu i cyklu życia. Automatyzowanie przepływów pracy na podstawie tej oceny i określanie priorytetów przepływów pracy przy użyciu najwyższych oczekiwanych zwrotów. Usuń nadmiarowe przepływy pracy lub dodaj wartość, aby uzasadnić wysiłek człowieka.
Dzięki wdrożeniu tego podejścia można ponownie zainwestować potencjał zespołu w wyższą pracę w wartości oraz zwiększyć produktywność i spójność.
Utworzenie spisu przepływów pracy zapewnia automatyzowanie odpowiednich zadań. Usuwanie nadmiarowych zadań zmniejsza złożoność i błędy.
Wyzwanie firmy Contoso
- Zespół firmy Contoso University szuka sposobów ulepszania procesu operacji, automatyzując zadania ręczne, które są powtarzalne, czasochłonne, podatne na błędy lub niskie wartości. Może to zwolnić część czasu i zasobów zespołu w celu bardziej strategicznej pracy, poprawić jakość i niezawodność usługi oraz potencjalnie obniżyć koszty.
Stosowanie podejścia i wyników
- Aby rozpocząć ten wysiłek, zespół przeprowadził spis zadań ręcznych operacji, które mogą być potencjalnie zautomatyzowane. Następnie zespół przeanalizował listę zadań przy użyciu kryteriów sugerowanych w rekomendacji, takich jak odpowiedni poziom złożoności, nakład pracy, częstotliwość, dokładność, oś czasu i żywotność, aby określić najlepszych kandydatów do automatyzacji. W tym samym czasie zespół ocenił również, czy uzyskanie narzędzia automatyzacji, czy niestandardowe tworzenie automatyzacji w firmie może być lepsze w dłuższej perspektywie.
- W wyniku analizy zdecydowali się skupić na automatyzacji działań związanych z zarządzaniem kontami użytkowników. Zarządzanie kontami użytkowników (studentów, wykładowców, pracowników) jest typowym zadaniem, które obejmuje tworzenie nowych kont podczas rejestracji studentów, resetowanie haseł i usuwanie kont, gdy osoby opuszczają uniwersytet.
- Automatyzując wiele zadań związanych z zarządzaniem kontami użytkowników, zespół zwolnił wystarczający czas, aby rozpocząć od innych ulepszeń doskonałości operacyjnej, które zostały wcześniej opóźnione.
Projektowanie pod kątem automatyzacji
Zaprojektuj składniki obciążenia, aby obsługiwać możliwości automatyzacji.
Unikaj sytuacji, w której brak automatyzacji w projekcie systemu promuje antywzór powtarzających się zadań, spowalnia wzrost i zaczyna gromadzić dług techniczny.
Wyzwanie firmy Contoso
- Aplikacja ma bogaty i dynamiczny interfejs użytkownika, który używa wielu interaktywnych elementów i animacji. Zespół programistyczny nigdy nie używał zautomatyzowanych narzędzi do testowania interfejsu użytkownika, ponieważ aplikacja została pierwotnie opracowana i polegała tylko na testowaniu ręcznym.
- Ostatnio zespół pracuje nad automatyzacją testowania interfejsu użytkownika, ale stoi przed wieloma wyzwaniami. Niektóre strony interfejsu użytkownika są zbyt dynamiczne i nieprzewidywalne i nie ma spójnego sposobu identyfikowania niektórych pól, z którymi muszą korzystać przypadki testowe.
Stosowanie podejścia i wyników
- Zespół zdecydował się ulepszyć implementację interfejsu użytkownika, aby była bardziej testowalna i dostępna. Będą one wprowadzać ulepszenia przyrostowo, naprawiając strony podczas tworzenia przypadków testowych.
- Podczas rozwiązywania problemów z poszczególnymi stronami każdy pole ma unikatowy identyfikator, który może być używany przez narzędzia do automatyzacji testów. Są one również zgodne z wytycznymi i standardami ułatwień dostępu, takimi jak używanie semantycznego kodu HTML, odpowiednich etykiet i nawigacji za pomocą klawiatury. Dzięki temu interfejs użytkownika jest bardziej przyjazny dla użytkownika i jest łatwiejszy do przetestowania.
- W miarę ukończenia testów automatycznych są one dołączane do zestawu testów, który jest uruchamiany podczas codziennej kompilacji, co powoduje znaczne zmniejszenie czasu potrzebnych do wydania nowych kompilacji do środowiska produkcyjnego, poprawy jakości produktu i oszczędności kosztów podczas opracowywania.
Automatyzacja powinna być dobrze zaprojektowana
Traktuj całą automatyzację jako krytyczną zależność obciążenia. Dostosuj się do oczekiwanego wzrostu obciążenia. Narzędzia automatyzacji są integralną częścią obciążenia i powinny być zgodne z pięcioma filarami dobrze zaprojektowanej struktury.
Zaprojektuj składnik automatyzacji tak, aby wytrzymał zagrożenia, takie jak zagrożenia bezpieczeństwa. Zastosowanie najlepszych rozwiązań pozwala uniknąć rozrastania implementacji.
Obciążenie będzie nadal działać z gwarancją wysokiego poziomu, jeśli ta zależność jest zachowana jako funkcjonalna i bezpieczna.
Wyzwanie firmy Contoso
- Obciążenie ma środowisko przeznaczone do ładowania i testowania wydajnościowego z konfiguracją, która ściśle naśladuje produkcję. Aby dokładniej symulować warunki przypominające środowisko produkcyjne, nowa kopia produkcyjnej bazy danych ze wszystkimi poufnymi danymi użytkownika zanonimizowanymi i zamaskowanymi jest ładowana do środowiska testowego w każdy poniedziałek, gdy to środowisko zostanie zresetowane.
- Skrypt ładowania bazy danych został napisany przez byłego dewelopera, który nie udokumentował go dobrze lub przestrzegał innych najlepszych rozwiązań. Skrypt działa wolno i nie obsługuje błędów ani niepowodzeń w sposób bezproblemowy.
- Ostatnio wraz ze wzrostem produkcyjnej bazy danych czas wykonywania skryptu coraz bardziej się wydłuża i często kończy się niepowodzeniem. Te opóźnienia i błędy wpływają na zdolność zespołu do wykonywania przebiegów testów i powodują opóźnienia w harmonogramie programowania.
Stosowanie podejścia i wyników
- Zespół decyduje, że nadszedł czas, aby przepisać to narzędzie, aby można było użyć standardowych praktyk programistycznych używanych do opracowywania podstawowej bazy kodu aplikacji. Zespół będzie przestrzegał przyjętych przez branżę najlepszych rozwiązań programistycznych, w tym odpowiednich zabezpieczeń i odpowiedniej obsługi błędów.
- Wydajność jest lepsza, a funkcjonalność została przeprojektowana w taki sposób, aby tworzyła przewidywalny czas wykonywania, niezależnie od rozmiaru produkcyjnego zestawu danych.
- Traktując automatyzację przy użyciu tej samej platformy co podstawowa baza kodu aplikacji i stosując zasady i zalecenia zapory aplikacji internetowej, zespół zoptymalizował go pod kątem niezawodności, zabezpieczeń, wydajności, kosztów i operacji.