Sklepy internetowe napędzane są przez oprogramowanie, które musi podlegać nieustannym zmianom. Nie istnieje sklep, który może zostać zamrożony w swojej pierwszej produkcyjnej wersji. Nowe sposoby

Zrzut ekranu 2011-08-3 o 21.35.31

płatności, integracja z zakupami grupowymi, akcje marketingowe, newslettery  …

Jedyną pewną rzeczą w IT jest zmiana, na którą jeśli chcemy odnieść sukces, musimy być gotowi.

Niestety każda zmiana w oprogramowaniu niesie za sobą ryzyko zdestabilizowania systemu i pojawienia się błędów – które w przypadku eCommerce mogą mieć opłakane skutki.

Duże firmy poświęcają bardzo dużo zasobów i czasu na wdrażanie metodyk zarządzania zmianami takich jak np. ITIL – które w małych firmach raczej nie okażą się pragmatyczne.

Czy wynajmujemy do rozwoju naszego oprogramowania firmę IT w ramach pakietów maintenance, czy zajmujemy się rozwojem przez własny dział IT warto pamiętać o kilku prostych sposobach i narzędziach pozwalających zapanować nad chaosem.

  1. Cały kod aplikacji powinien być zarządzany w systemie kontroli wersji – SVN czy coraz popularniejszy GITsprawdzi się idealnie. Wszyscy programiści powinni działać w oparciu o ten system, aby nie wchodzić sobie w drogę, aby wersjonować kod aplikacji i nie gubić żadnych ważnych zmian.
  2. Powinniśmy koniecznie używać serwera testowego – a tak naprawdę testowej instancji sklepu – która ew. może byc uruchomiona na tym samym serwerze. Bazę takiego sklepu możemy co jakiś czas zsynchronizować z bazą produkcyjną i na nim spokojnie testować wszystkie nowo wprowadzane funkcje.
  3. System kontroli wersji powinien być też stosowany na serwerach produkcyjnych i testowych do aktualizowania aplikacji. Wystarczy wpisać „svn up” aby uaktualnić system do nowszej wersji czy też wgrać nowe funkcje, nie trzeba kopiować plików przez FTP czy stosować innych, podatnych na błędy sposobów :)
  4. Dzięki systemowi kontroli wersji, w przypadku błędów – w każdej chwili możemy przywrócić oprogramowanie do ostatniej stabilnej wersji. Wszystkie zmiany są logowane i możemy sprawdzić kto wprowadził zaburzenia do sysstemu :)
  5. System kontroli wersji to nie wszystko. Powinniśmy śledzić również wszystkie wymagania które są zgłaszane do naszej aplikacji. Dużo firm stosuje system Basecamp, można skorzystać ze świetnego darmowego Redmine (polecamy). System ticketowy umozliwi nam również sprawne testowanie oprogramowania i komunikowanie błędów developerom, a także śledzenie prac nad nimi. Systemy ticketowe często mogą być integrowane z systemem kontroli wersji tak, że konkretne tickety są przypisywane rewizjom (wersjom) w systemie kontroli wersji.
  6. Jeśli korzystamy z systemu OpenSource – System kontroli wersji i narzędzia z nim powiązane (diff/merge) mogą ułatwić nam aktualizowanie systemu. Warto śledzić changelisty używanej platformy i w przypadku poprawek bezpieczeństwa lub ważnych zmian scalać nasz kod z kodem z repozytorium.
  7. Na serwerach produkcyjnych powinniśmy koniecznie stosować automatyczny mechanizm monitoringu usług – np. Incinga, do której możemy dodać niestandardowe checki (sprawdzające dostępność wybranych stron WWW). Warto też pokusić się o automatyczne odpalanie testów jednostkowych lub testów behawioralnych po każdym updejcie oprogramowania.

Zrzut ekranu 2011-08-3 o 21.41.27

To tylko proste propozycje co możemy zrobić. Co o nich sądzicie? Co Wy robicie aby ogarnąć cały ten it-jazz? :) Komentarze pod tym wpisem mogą być świetnym miejscem do wymiany pomysłów i narzędzi.