Przez outsourcing do SOA

Kontrakt outsourcingowy to szansa na wyzwolenie się z chaotycznego środowiska wielu aplikacji stworzonych w starych technologiach, których koszty utrzymania przekraczają granice rozsądku. Przejmując środowisko i odpowie-dzialność za nie, dostawca usług umożliwia przejście od tradycyjnej infrastruktury do architektury SOA i usług Web.

Kontrakt outsourcingowy to szansa na wyzwolenie się z chaotycznego środowiska wielu aplikacji stworzonych w starych technologiach, których koszty utrzymania przekraczają granice rozsądku. Przejmując środowisko i odpowie-dzialność za nie, dostawca usług umożliwia przejście od tradycyjnej infrastruktury do architektury SOA i usług Web.

Każde środowisko IT dużej firmy składa się z dziesiątek, setek, a czasem tysięcy aplikacji, które zostały zbudowane i wdrożone na kolejnych etapach jej rozwoju. Zwykle były one przygotowywane na zlecenie różnych działów biznesowych, programowane przez różnych wykonawców, wykorzystujących najróżniejsze technologie. Nawet jeśli każda aplikacja z osobna rozwiązuje stosunkowo proste problemy, to z punktu widzenia użytkowników jest niezastąpionym narzędziem biznesowym.

Perspektywa działu IT jest odmienna. Technologie się starzeją, a złożoność środowiska liczącego dziesiątki większych i mniejszych aplikacji osiąga taki poziom, że informatycy z trudem mogą zajmować się innymi zadaniami niż te związane z utrzymaniem tego, co już mają na stanie. Kiedy jeszcze z rynku znika producent, którego oprogramowanie stanowi istotny element systemu informatycznego firmy, całość zadań związanych ze wsparciem i rozwojem spada na lokalny zespół IT. Świadomi tego wiedzą, że najlepszym rozwiązaniem byłaby wymiana posiadanych aplikacji na nowsze, bardziej elastyczne. Mają jednocześnie świadomość, że naruszenie aplikacyjnego status quo to sygnał do wybuchu rewolucji.

W czym tkwi problem?

Problemem jest nie samo przepisanie aplikacji z użyciem nowocześniejszych technologii, ale przede wszystkim zapewnienie łagodnego przejścia pomiędzy tym, co jest obecnie, a wymarzonym, uporządkowanym środowiskiem opartym na usługach.

Wdrożenie nowych aplikacji jest oczywiście możliwe. Projekt taki wymaga zdefiniowania funkcjonalności istniejącego systemu i przeniesienia jej na nową platformę. Teoretycznie najprostszym sposobem przeprowadzenia przedsięwzięcia jest zamrożenie wdrażanej funkcjonalności na czas implementacji. To idealny scenariusz, jednak w zdecydowanej większości przypadków niemożliwy do przeprowadzenia. W realnym świecie projekt przypomina raczej remont pociągu, który pozostaje wciąż w ruchu. Konieczne jest użycie obecnie wykorzystywanych aplikacji i zapewnienie płynnego przejścia do nowoczesnych technologii.

Skąd zatem idea, że outsourcing może być drogą do przeprowadzania projektu transformacyjnego? Przemawia za tym kilka elementów typowych dla outsourcingu. Omawiamy je ze świadomością, że posługujemy się fikcyjnym modelem, opartym na "idealnym kontrakcie outsourcingowym".

Plusy modelu

Pierwszy argument przemawiający za outsourcingiem to koszty. Modernizacja aplikacji to zwykle duża inwestycja kapitałowa. Outsourcing umożliwia przeniesienie kosztów z inwestycji na działalność bieżącą. Docenią to z pewnością firmy, które nie dysponują odpowiednim kapitałem; koszty projektu zostaną rozłożone na dłuższy czas.

Ważną zaletą outsourcingu jest współdzielenie ryzyka między klientem a dostawcą usług. W przypadku tradycyjnych projektów konsultingowych uruchomienie aplikacji najczęściej przerzucane jest na klienta. Outsourcer natomiast bierze na siebie część ryzyka i daje wsparcie na wszystkich etapach projektu transformacyjnego. Przykładowo, w ramach trzyletniego kontraktu outsourcingowego dostawca może zobowiązać się, że przez pierwsze kilka miesięcy poziom usług będzie taki jak zastany; równolegle będzie prowadzona modernizacja środowiska. Dostawca zobowiązuje się, że po okresie kilku miesięcy sytuacja zacznie się stopniowo poprawiać, aż w ustalonym momencie osiągnięty zostanie stan określony jako docelowy.

Dobrze zaplanowana umowa outsourcingowa zapewnia niezbędne zmiany i modernizację aplikacji. Co więcej, mogą być one wliczone w cenę kontraktu w postaci puli tzw. "punktów zmian". W przypadku systemu, w który wbudowane są regulacje prawne, jeśli zachodzą zmiany legislacyjne, outsourcer będzie je wdrażał wykorzystując taką pulę. Długookresowy kontrakt outsourcingowy wiąże się z zapewnieniem dostępności pracowników go obsługujących. Po stronie zamawiającego nie istnieje obowiązek związany z budowaniem kompetencji niezbędnych do migracji. Nie jest wymagane także utrzymywanie zespołów wdrożeniowych w późniejszym terminie. Zamawiający powinien mieć tylko tyle kompetencji w dziedzinie, którą powierza w outsourcing, by należycie współpracować z wykonawcą i móc kontrolować jego pracę.

W tradycyjnym modelu poczucie panowania nad sytuacją bywa złudne ze względu na merytoryczną przewagę dostawcy w procesie odbioru produktu projektu. W modelu outsourcingowym klient kontraktuje usługę gwarantującą określony rezultat mierzony w sposób ciągły. Zapewnienie odpowiednio wyszkolonej kadry i innych zasobów jest zadaniem dostawcy.

Udany mariaż

W przypadku projektów związanych z architekturą SOA jako docelowym środowiskiem aplikacyjnym wybór modelu outsourcingowego ujawnia dodatkowe zalety. Dostawca usług może bowiem w ramach kontraktu zaoferować podstawowe komponenty SOA wraz z tzw. frameworkiem wykorzystywanym do konstrukcji aplikacji. Innymi słowy, usługodawca wnosi elementy spinające całą infrastrukturę.

Architektura SOA to dobry wybór z punktu widzenia ochrony poczynionych wcześniej inwestycji. Umożliwia bowiem przedłużenie czasu życia aplikacji stworzonych w starych technologiach, ale wciąż przydatnych. Jest to możliwe dzięki obudowaniu ich warstwą abstrakcji. Można stworzyć warstwę pośrednią stanowiącą interfejs dla użytkowników. Będą oni pracować w nowym interfejsie de facto korzystając z tych samych aplikacji. Równolegle oprogramowanie będzie transformowane. Przejmując odpowiedzialność za całą infrastrukturę i aplikacje outsourcer powinien gwarantować, że środowisko będzie działać i w określonym czasie zostanie zmodernizowane.

Powiązanie architektury SOA z outsourcingiem pozwala na ustalenie, że elementem podstawowym stają się procesy biznesowe, a nie serwery czy aplikacje. Architektura SOA dostarcza ramy, które umożliwiają prowadzenie miar poziomu świadczonych usług w oparciu o procesy biznesowe, a nie technologiczne.

Etapy przechodzenia do architektury SOA

ETAP 1

Stworzenie warstwy abstrakcji, która umożliwia powiązanie istniejących aplikacji. Uczynienie aplikacji motorami przetwarzania danych, które można swobodnie wymieniać, daje ogromną wartość. Przekłada się na znaczne uproszczenie aplikacji i zmniejszenie ich liczby. Okazuje się bowiem zwykle, że istniała spora nadmiarowość.

ETAP 2

Utworzenie aplikacji złożonych, działających we współpracy z warstwą pośrednią (middleware).

ETAP 3

Integracja z procesami biznesowymi.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200