Okazuje się, że uświadomienie sobie sprawy z minimum cech, które dany system powinien spełniać, i ceny, jaką gotowi jesteśmy za nie zapłacić, to nie wszystko. Równie istotny jest cykl życia i koszt utrzymania poszczególnych elementów technologicznych, zastosowanych w danym rozwiązaniu: sprzętu, serwerów baz danych, serwerów aplikacji, systemów operacyjnych itd. Czyli w uproszczeniu - ile lat planujemy dany system/element technologiczny eksploatować i jakie zyski i koszty pociągnie to za sobą. Tego typu przewidywanie nie jest łatwe i często życie płata niespodzianki.
Przykład z życia: aplikacja obsługująca działalność dużej międzynarodowej firmy spedycyjnej - po kilku latach eksploatacji, bazy danych, z którymi efektywnie pracowało kilkuset użytkowników, rozrosły się do kilkuset gigabajtów, pokrywając w 80% objętość wykorzystywanych dysków. Chociaż wydajność i funkcjonalność systemu nie stanowiły problemu, to żeby pomieścić powiększające się bazy danych - konieczny okazał się zakup nowych komputerów. Powód: do eksploatowanych komputerów, których użytkowanie przewidywano jeszcze na parę lat - nie można było już dokupić dysków, gdyż dyski tego typu wycofano z produkcji. Z kolei nowe modele komputerów nie pracowały z wersją systemu operacyjnego używanego w starym sprzęcie, a z nowym systemem operacyjnym nie działał serwer bazy danych wykorzystywany w dotychczasowej wersji aplikacji. I tak - niemożność dokupienia dysków - które normalnie kosztują kilkaset dolarów - wymusiła bardzo kosztowną wymianę komputerów, systemu operacyjnego, migrację kilkuset gigabajtów baz danych do wersji obsługiwanej w nowym systemie operacyjnym, wdrożenie nowej wersji aplikacji, synchronizację i integrację nowej wersji aplikacji z kilkoma systemami pomocniczymi eksploatowanymi w firmie. Na całość operacji był przeznaczony przysłowiowy weekend, czyli 48 godzin, niepowodzenie oznaczałoby bardzo poważne kłopoty w utrzymaniu normalnej działalności firmy. W opisywanym przypadku operacja zakończyła się sukcesem - dzięki wyobraźni osób zajmujących kluczowe stanowiska w firmie, które monitorowały na bieżąco działające systemy i z wyprzedzeniem planowały i akceptowały odpowiednie środki w budżecie na rozbudowę infrastruktury, sprzętu, oprogramowania, opłacenie polis serwisowych umożliwiających wymianę licencji eksploatowanego oprogramowania. W opisywanym przypadku wzrost rozmiaru bazy danych spowodował konieczność wymiany całej infrastruktury na najnowszą dostępną.
Rozważając koszty eksploatacji oraz cykl życia aplikacji, warto bliżej przyjrzeć się zastosowanemu systemowi baz danych. W ofercie dostępne są komercyjne systemy relacyjne: Oracle, IBM DB2/400, Sybase, Progress czy Microsoft SQL Server, a także systemy bezpłatne z licencjami open-source, z powodzeniem wykorzystywane w niektórych zastosowaniach. Z roku na rok rozwijają się także obiektowe systemy baz danych, przeznaczone do składowania i przetwarzania danych o naturze hierarchiczno-obiektowej. Analizując i porównując cechy poszczególnych baz danych - w kontekście wymagań, jakie stawiamy przed systemem - warto, moim zdaniem, zwrócić uwagę na kilka kluczowych elementów:
- koszt utrzymania w kilkuletnim cyklu życia systemu, w tym rozszerzenia licencji o nowych użytkowników, uruchamianie licencji na nowych maszynach lub procesorach, koszty zastąpienia starych wersji nowymi, koszty personelu niezbędnego do efektywnej administracji systemem;
- skalowalność: zagwarantowanie odpowiedniego poziomu wydajności przy wzroście obciążenia i rozbudowie architektury;- koszty związane z archiwizacją danych, odtwarzaniem po awarii, replikacją danych do systemów zapasowych i systemów satelitarnych przyłączających się czasowo;