Dobrze wykonane wydanie dotyczy planowania i komunikacji. Dlatego przed przeprowadzeniem wydania rozważ następujące pytania:
Jak długo potrwa wydanie i czy istnieje jakiekolwiek ryzyko, że użytkownicy będą mogli nadal komunikować się z moim produktem podczas jego wydania? Jeśli istnieje ryzyko dla systemu, rozważ przełączenie go w tryb offline i umieszczenie w jego miejscu komunikatu „System jest w trakcie konserwacji”.
Czy są jacyś klienci, których może być konieczne powiadomienie o wydaniu z wyprzedzeniem? Czy muszę im mówić o możliwym zakłóceniu usługi lub obniżeniu wydajności w trakcie wydawania? Osobiście zawsze mylę się po stronie nadmiernej komunikacji i mówienia wszystkim klientom o nadchodzącym oknie wydania lub konserwacji na blogu publicznym lub w podobnym miejscu.
Jakie są moje plany awaryjne, jeśli wydanie się nie powiedzie? Na przykład, jeśli wydanie pójdzie źle, czy powinniśmy wycofać i przywrócić system do stanu, w którym był minimalizowany, kiedy jesteśmy offline? A jeśli tak, to czy kroki do wycofania wydania są dobrze udokumentowane? Czy powinienem mieć odpowiednie osoby pod telefonem lub pod ręką, aby pomóc w rozwiązywaniu problemów w razie ich wystąpienia. Osobiście uważam, że najlepszym sposobem podejścia do planowania każdego wydania jest założenie, że coś pójdzie nie tak z wydaniem. W ten sposób zmusiłem się do przemyślenia niektórych z tych kwestii z wyprzedzeniem.
Następnie, jeśli chodzi o wykonanie wydania, jednym z najlepszych sposobów zapewnienia płynnego działania jest ćwiczenie, ćwiczenie, praktyka i dokumentowanie wszystkiego, co napotkasz po drodze. Na długo przed wdrożeniem nowego kodu do produkcji najpierw przećwicz wdrażanie kodu w bezpiecznym, właściwie piaskowionym środowisku testowym. Poproś osobę, która będzie odpowiedzialna za wdrożenie w środowisku produkcyjnym, przeprowadź wdrożenie testowe na etapie testowania. Weź to pod uwagę podczas próby ubioru i postępuj tak, jakbyś to robił. Dokumentuj wszystko, co robisz na każdym kroku; udokumentuj każde wykonane polecenie, każdy uruchomiony kod SQL, wszelkie zmodyfikowane pliki i sposób ich modyfikacji, a także na każdym etapie po drodze udokumentuj, czego się spodziewasz, czy procedura zostanie wykonana poprawnie. Jeśli napotkasz jakiś problem, udokumentuj, co zrobiłeś, aby go rozwiązać.
Następnie wdrażanie ćwiczeń jest zakończone, przejrzyj swoje notatki i sprawdź, czy możesz udoskonalić proces w celu wyeliminowania błędów. Następnie zrób to wszystko od nowa . Ćwicz dalej, aż wykonanie wydania stanie się tak rutynowe, jak wykonanie prostej instrukcji, na przykład „zaloguj się do tego komputera, wykonaj to polecenie; następnie zaloguj się do bazy danych i wykonaj to polecenie SQL, a następnie ...”
Powyżej wymieniono czynności, które zespół zarządzający operacjami lub wydaniami może zrobić, aby wydanie przebiegało płynnie. Ale co inżynieria może zrobić, aby zminimalizować ryzyko w wydaniu?
Wydawnictwa powinny być małe. Mówiąc najprościej, im bardziej złożony zestaw zmian kodu zawartych w wydaniu, tym bardziej ryzykowne stanie się wydanie. Wyświadcz przysługę swojemu zespołowi operacyjnemu, planując mieć większą liczbę małych wydań, a nie mniejszą liczbę dużych wydań w tym samym okresie.
Test, test, test. Nie tylko testuj kod w środowisku kontroli jakości, użyj środowiska testowego również do testowania oprogramowania. Często zdarzają się błędy, które mają niewiele lub nie mają nic wspólnego z samym kodem, ale mają główną przyczynę, która leży w konfiguracji samego środowiska (lub pewnej kombinacji tych dwóch). Aby znaleźć te problemy, musisz przetestować kod w środowisku, które ściśle odzwierciedla produkcję, czyli inscenizację.
Na koniec, czasem najważniejsze jest nie to, co robimy, aby zapobiec błędom, ale to, jak postępujemy, gdy się nie udają. Dlatego uważam, że ważne jest budowanie kultury w Twojej firmie wokół przejrzystości operacyjnej. Nie próbuj ukrywać problemów przed klientami, bądź na bieżąco. Aktywnie korzystaj z Twittera, aby informować klientów o problemach, o których Twój zespół operacyjny jest obecnie świadomy i pracuje nad ich rozwiązaniem ( Lighthouse jest w tym niesamowity!). Rozważ opublikowanie strony „statusu” swojej usługi, do której klienci mogą się odwołać, aby sprawdzić, czy coś jest nie tak ( TypePad oferuje świetny przykład tego). Podsumowując, zawsze popełniaj błąd po stronie nadmiernej komunikacji. Twoi klienci Ci za to podziękują.