Шаблон плана миграции автоматизированных систем. Миграция баз данных. План долгосрочной миграции

Проблемы контроля версий баз данных и миграций между версиями уже не раз поднимались как на Хабре (, , и др.), так и в Интернете (преимущественно, англоязычном).

В первом разделе этой статьи я рассматриваю основные проблемы, которые возникают в командах программистов при внесении любых изменений в структуру базы данных. Во втором разделе я попытался выделить основные общие подходы к тому, в каком виде изменения структуры базы данных можно хранить и поддерживать в процессе разработки.

Терминология

База данных - совокупность всех объектов БД (таблиц, процедур, триггеров и т.д.), статических данных (неизменяемых данных, хранящихся в lookup-таблицах) и пользовательских данных (которые изменяются в процессе работы с приложением).

Структура базы данных - совокупность всех объектов БД и статических данных. Пользовательские данные в понятие структуры БД не входят.

Версия базы данных - определенное состояние структуры базы данных. Обычно у версии есть номер, связанный с номером версии приложения.

Миграция , в данном контексте, - обновление структуры базы данных от одной версии до другой (обычно более новой).

В этом смысле термин миграция, похоже, используется во многих источниках (особенно этому поспособствовали миграции из gem"а Active Record, входящего в состав Ruby on Rails). Однако при использовании этого термина возникает двусмысленность: человек, который не знает контекста, скорее подумает, что речь идет о переносе базы данных с одной СУБД на другую (MySQL => Oracle), а то и вовсе о миграции процессов/данных между нодами кластера. Поэтому предлагаю в случаях, когда контекст неочевиден, использовать более точный термин: версионная миграция баз данных.

Зачем это нужно?

Разработчики, которые уже сталкивались с проблемой рассинхронизации версий БД и приложения, могут пропустить этот раздел. Здесь я напомню, почему нужно соблюдать паритет версий приложения и базы данных и какая общая проблема при этом возникает.

Версия базы данных должна соответствовать версии приложения

Итак, представьте себе следующую ситуацию: команда из нескольких программистов разрабатывает приложение, которое активно использует базу данных. Время от времени приложение поставляется в продакшн - например, это веб-сайт, который деплоится на веб-сервер.
Любому программисту в процессе написания кода приложения может понадобиться изменить структуру базы данных, а также, сами данные, которые в ней хранятся. Приведу простой пример: допустим, есть необнуляемое (not nullable) строковое поле в одной из таблиц. В этом поле не всегда есть данные, и в этом случае там хранится пустая строка. В какой-то момент вы решили, что хранить пустые строки - семантически неправильно в некоторых случаях (см. , ), а правильно - хранить NULL"ы. Для того, чтобы это реализовать, понадобятся следующие действия:

1. Изменить тип поля на nullable:

ALTER myTable CHANGE COLUMN myField myField VARCHAR (255) NULL DEFAULT NULL ;

2. Так как в этой таблице на продакшн БД уже наверняка есть пустые строки, вы принимаете волевое решение и трактуете их как отсутствие информации. Следовательно, нужно будет заменить их на NULL:
UPDATE myTable SET myField = NULL WHERE myField = "" ;

3. Изменить код приложения так, чтобы при получении из БД данных, хранящихся в этом поле, он адекватно реагировал на NULL"ы. Записывать в это поле тоже теперь нужно NULL"ы вместо пустых строк.

Из пункта 3 можно видеть, что приложение и база данных - неразрывные части одного целого. Это означает, что при поставке новой версии приложения в продакшн, нужно обязательно обновлять и версию базы данных, иначе приложение попросту не сможет правильно работать. В данном примере, если до новой версии будет обновлено только приложение, то в какой-то момент произойдет вставка NULL в необнуляемое поле, а это очевидная ошибка.

Таким образом, обновление версии приложения требует корректной версионной миграции базы данных .

Так ли это просто?

Осознав, что паритет версий БД и приложения необходим, вам нужно удостовериться, что миграции БД до нужной версии всегда будут выполняться правильно. Но в чём здесь проблема? Ведь, на первый взгляд, сложного здесь ничего нет!

Тут снова обратимся к живому примеру. Допустим, программисты в процессе разработки записывают свои изменения структуры и данных БД в отдельный файл в виде SQL-запросов (как DDL -, так и DML -запросов). А при каждом деплое последней версии приложения вы одновременно обновляете до последней версии и базу данных, выполняя запросы из того самого SQL-файла… Но погодите, с какой версии вы обновляете БД до последней версии? «С прошлой»? Но так ли хорошо вы помните, что конкретно из себя представляла прошлая версия (её выпустили 2 месяца назад)? Если нет, то как вы собрались её обновлять? Ведь без точной информации о состоянии структуры и данных выполнить корректную миграцию невозможно: если вы непредумышленно выполните запросы, которые уже когда-то выполнялись, это может привести к потере данных или нарушению их целостности.
Простой пример - замена паролей на их MD5-суммы. Если повторно выполнить такой запрос, то данные можно будет восстановить только из бэкапа. Да и вообще, любые UPDATE "ы, DELETE "ы, и даже INSERT "ы, выполненные повторно, могут привести к крайне нежелательным последствиям. Не говоря уже о несвоевременных TRUNCATE "ах и DROP "ах (хотя такие случаи намного менее вероятны).
Кстати говоря, с этой точки зрения, недовыполнить - не меньшая опасность для работоспособности приложения, чем перевыполнить.

Таким образом, можно сделать вывод, что в процессе версионной миграции все запросы должны выполняться только один раз и, к тому же, в правильной последовательности . Последовательность важна потому, что одни изменения могут зависеть от других (как в примере с обнуляемым полем).

Общие принципы версионной миграции

В предыдущем разделе мы выделили важные критерии, которые показывают, что же требуется от процесса версионной миграции. Это:
  • единоразовое выполнение каждого изменения (SQL-запроса);
  • строго предустановленный порядок изменений.
Теперь выделим более практические критерии, чтобы понять, чего требовать от самого процесса создания и хранения миграций. На мой взгляд, для большинства команд разработчиков будет важно:
  • чтобы любую версию базы данных можно было обновить до любой (обычно, самой последней) версии;
  • чтобы набор SQL-запросов, реализующих миграцию между любыми двумя версиями, можно было получить как можно быстрее и проще;
  • чтобы всегда можно было создать с нуля базу данных со структурой самой последней версии. Это очень полезно как в процессе разработки и тестирования, так и при развертывании нового продакшн-сервера;
  • чтобы, в случае работы над разными ветками, при последующем их слиянии ручное редактирование файлов БД было сведено к минимуму;
  • чтобы откатить БД на более раннюю версию было так же просто, как и обновить на более новую.

Основание миграции

Как оказалось, у большинства подходов есть общий принцип: им необходимо основание (baseline) - некоторое эталонное состояние БД, от которого можно отталкиваться. Эта концепция довольно хорошо описана в статье «Versioning Databases – The Baseline» Скотта Аллена.

Попросту говоря, основание - это дамп структуры базы данных для версии, которая принята за базовую. Имея на руках основание , впоследствии всегда можно будет создать БД с нуля. После применения к этой БД всех миграций, созданных в процессе разработки, получим БД со структурой самой последней версии.

Метод инкрементных изменений

Этот метод хорошо описан в статье «Versioning Databases – Change Scripts» все того же Скотта Аллена. Схожий подход также описан в статье «Managing SQL scripts and continuous integration» Майкла Бэйлона.

Структура файлов

Пример того, как в этом случае может выглядеть папка с файлами-миграциями:
Database
|- Baseline.sql
|- 0001.03 .01.sql
|- 0002.03 .01.sql
|- 0003.03 .01.sql
|- 0004.03 .02.sql
|- 0005.03 .02.sql
|- 0006.03 .02.sql
"- 0007.03 .02.sql

В этом примере в папке хранятся все файлы, созданные при разработке версии 03 . Впрочем, папка может быть и общей для всех версий приложения.

В любом случае, самый первый файл, который появится в такой папке, - основание (Baseline.sql). После этого любое изменение в БД сабмиттится в репозиторий в виде нового файла-миграции с именем вида [номер файла].[версия].[подверсия].sql .

Фактически, в этом примере в имени файла содержится полный номер версии БД. То есть после выполнения файла-миграции с именем 0006 .03.02.sql база данных обновится с состояния, соответствующего версии 03.02.0005 , до версии 03.02.0006 .

Хранение истории версий

Следующий шаг - добавление в базу данных специальной таблицы, в которой будет храниться история всех изменений в базе данных.
CREATE TABLE MigrationHistory
Id INT ,
MajorVersion VARCHAR (2),
MinorVersion VARCHAR (2),
FileNumber VARCHAR (4),
Comment VARCHAR (255),
DateApplied DATETIME ,

PRIMARY KEY (Id)
)



Это всего лишь пример того, как может выглядеть таблица. При необходимости, её можно как упростить, так и дополнить.

В файле Baseline.sql в эту таблицу нужно будет добавить первую запись:

INSERT INTO
MigrationHistory (MajorVersion, MinorVersion, FileNumber, Comment, DateApplied)
VALUES ("03" , "01" , "0000" , "Baseline" , NOW())


После выполнения каждого файла-миграции в эту таблицу будет заноситься запись со всеми данными о миграции.
Текущую версию БД можно будет получить из записи с максимальной датой.

Автоматическое выполнение миграций

Завершающий штрих в этом подходе - программа/скрипт, который будет обновлять БД с текущей версии до последней.

Выполнять миграцию БД автоматически довольно просто, т.к. номер последней выполненной миграции можно получить из таблицы MigrationHistory, а после этого остается только применить все файлы с бо́льшими номерами. Сортировать файлы можно по номеру, поэтому с порядком выполнения миграций проблем не будет.

На такой скрипт также возлагается задача добавления записей о выполненных миграциях в таблицу MigrationHistory.

В качестве дополнительных удобств, такой скрипт может уметь создавать текущую версию БД с нуля, сначала накатывая на БД основание , а затем выполняя стандартную операцию по миграции до последней версии.

Плюсы, минусы, выводы

Быстрое и удобное выполнение миграции до последней версии;
Механизм нумерации версий. Номер текущей версии хранится прямо в БД;
Для максимального удобства нужны средства автоматизации выполнения миграций;
Неудобно добавлять комментарии к структуре БД. Если их добавлять в Baseline.sql, то в следующей версии они пропадут, т.к. основание будет сгенерировано с нуля вновь, в качестве дампа новой версии структуры. Вдобавок, такие комментарии будут быстро устаревать;
Возникают проблемы в процессе параллельной разработки в нескольких ветках репозитория. Так как нумерация файлов-миграций - последовательная, то под одинаковыми номерами в разных ветках могут возникнуть файлы с разными DDL-/DML-запросами. Как следствие, при слиянии веток придется либо вручную редактировать файлы и их последовательность, либо же в новой, «слитой» ветке начинать с нового Baseline.sql, учитывающего изменения из обеих веток.

Этот метод в различных формах довольно широко распространен. К тому же, он легко поддается упрощению и модификации под нужды проекта.
В интернете можно найти готовые варианты скриптов по инкрементному выполнению миграций и встроить в свой проект.

Метод идемпотентных изменений

Этот метод описан в статье «Bulletproof Sql Change Scripts Using INFORMATION_SCHEMA Views» Фила Хэка. Описание схожего подхода также изложено в ответе на этот вопрос на StackOverflow.

Под идемпотентностью понимается свойство объекта оставаться неизменным при повторной попытке его изменить.
В тему вспоминается смешная сцена из «Друзей»:)

Основная идея этого подхода - написание миграционных файлов таким образом, чтобы их можно было выполнить на базе данных больше одного раза. При первой попытке выполнить любую из SQL-команд, изменения будут применены; при всех последующих попытках ничего не произойдет.

Эту идею проще всего уяснить на примере. Допустим, вам нужно добавить в БД новую таблицу. Если вы хотите, чтобы в том случае, если она уже существует, при выполнении запроса не возникло ошибки, - в MySQL для этих целей есть краткий синтаксис:

CREATE TABLE IF NOT EXISTS myTable
id INT (10) NOT NULL ,

PRIMARY KEY (id)
);

Благодаря ключевой фразе IF NOT EXISTS , MySQL попытается создать таблицу только в том случае, если таблицы с таким именем еще не существует. Однако такой синтаксис доступен не во всех СУБД; к тому же, даже в MySQL его можно использовать не для всех команд. Поэтому рассмотрим более универсальный способ:
IF NOT EXISTS
SELECT *
FROM information_schema.tables
WHERE table_name = "myTable"
AND table_schema = "myDb"
THEN
CREATE TABLE myTable
id INT (10) NOT NULL ,
myField VARCHAR (255) NULL ,
PRIMARY KEY (id)
);
END IF ;

В последнем примере роль параметра условного выражения играет запрос, который проверяет, существует ли таблица myTable в базе данных с именем myDb . И только в том случае, если таблица отсутствует, произойдет, собственно, ее создание. Таким образом, приведенный запрос является идемпотентным.

Стоит отметить, что в MySQL по какой-то причине запрещено выполнять DDL -запросы внутри условных выражений. Но этот запрет легко обойти - достаточно включить все подобные запросы в тело хранимой процедуры:

DELIMITER $$

CREATE PROCEDURE sp_tmp() BEGIN

IF NOT EXISTS
--
-- Условие.
--
THEN
--
-- Запрос, изменяющий структуру БД.
--
END IF ;

END ;
$$

CALL sp_tmp();

DROP PROCEDURE sp_tmp;

Что за птица такая - information_schema?

Полную информацию о структуре базы данных можно получить из специальных системных таблиц, находящихся в базе данных с именем information_schema . Эта база данных и ее таблицы - часть стандарта SQL-92, поэтому этот способ можно использовать на любой из современных СУБД. В предыдущем примере используется таблица information_schema.tables , в которой хранятся данные о всех таблицах. Подобным образом можно проверять существование и метаданные полей таблиц, хранимых процедур, триггеров, схем, и, фактически, любых других объектов структуры базы данных.

Полный перечень таблиц с подробной информацией об их предназначении можно посмотреть в тексте стандарта . Краткий перечень можно увидеть в уже упоминавшейся выше статье Фила Хэка . Но самый простой способ, конечно же, - просто открыть эту базу данных на любом рабочем сервере БД и посмотреть, как она устроена.

Пример использования

Итак, вы знаете, как создавать идемпотентные SQL-запросы. Теперь рассмотрим, как этот подход можно использовать на практике.

Пример того, как в этом случае может выглядеть папка с sql-файлами:

Database
|- 3.01
| |- Baseline.sql
| "- Changes.sql
"- 3.02
|- Baseline.sql
"- Changes.sql

В этом примере для каждой минорной версии базы данных создается отдельная папка. При создании каждой новой папки генерируется основание и записывается в Baseline.sql. Затем в процессе разработки в файл Changes.sql записываются все необходимые изменения в виде идемпотентных запросов.

Предположим, в процессе разработки в разное время программистам понадобились следующие изменения в БД:
a) создать таблицу myTable;
b) добавить в нее поле newfield;
c) добавить в таблицу myTable какие-то данные.

Все три изменения написаны так, чтобы не выполняться повторно. В результате, в каком бы из промежуточных состояний не находилась база данных, при выполнении файла Changes.sql всегда будет выполнена миграция до самой последней версии.

К примеру, один из разработчиков создал на своей локальной копии БД таблицу myTable, записал изменение a) в хранящийся в общем репозитории кода файл Changes.sql, и на какое-то время забыл о нём. Теперь, если он выполнит этот файл на своей локальной БД, изменение a) будет проигнорировано, а изменения b) и c) будут применены.

Плюсы, минусы, выводы

Очень удобное выполнение миграций с любой промежуточной версии до последней - нужно всего лишь выполнить на базе данных один файл (Changes.sql);
Потенциально возможны ситуации, в которых будут теряться данные, за этим придется следить. Примером может служить удаление таблицы, и затем создание другой таблицы с тем же именем. Если при удалении проверять только имя, то обе операции (удаление и создание) будут происходить каждый раз при выполнении скрипта, несмотря на то, что когда-то уже выполнялись;
Для того, чтобы изменения были идемпотентными, нужно потратить больше времени (и кода) на их написание.

Благодаря тому, что обновить базу данных до последней версии очень просто, и делать это можно вручную, этот метод показывает себя в выгодном свете в том случае, если у вас много продакшн-серверов и их нужно часто обновлять.

Метод уподобления структуры БД исходному коду

Отдельных статей, посвященных этому подходу, я, к сожалению, не нашел. Буду благодарен за ссылки на существующие статьи, если таковые имеются. UPD: В своей статье Absent рассказывает о своем опыте реализации схожего подхода при помощи самописной diff-утилиты.

Основная идея этого метода отражена в заголовке: структура БД - такой же исходный код, как код PHP, C# или HTML. Следовательно, вместо того, чтобы хранить в репозитории кода файлы-миграции (с запросами, изменяющими структуру БД), нужно хранить только актуальную структуру базы данных - в декларативной форме.

Пример реализации

Для простоты примера будем считать, что в каждой ревизии репозитория всегда будет только один SQL-файл: CreateDatabase.sql. В скобках замечу, что в аналогии с исходным кодом можно пойти еще дальше и хранить структуру каждого объекта БД в отдельном файле. Также, структуру можно хранить в виде XML или других форматов, которые поддерживаются вашей СУБД.

В файле CreateDatabase.sql будут храниться команды CREATE TABLE , CREATE PROCEDURE , и т.д., которые создают всю базу данных с нуля. При необходимости изменений структуры таблиц, эти изменения вносятся непосредственно в существующие DDL-запросы создания таблиц. То же касается изменений в хранимых процедурах, триггерах, и т.д.

К примеру, в текущей версии репозитория уже есть таблица myTable, и в файле CreateDatabase.sql она выглядит следующим образом:

CREATE TABLE myTable
id INT (10) NOT NULL ,
myField VARCHAR (255) NULL ,
PRIMARY KEY (id)
);

Если вам нужно добавить в эту таблицу новое поле, вы просто добавляете его в имеющийся DDL-запрос:
CREATE TABLE myTable
id INT (10) NOT NULL ,
myField VARCHAR (255) NULL ,
newfield INT(4) NOT NULL ,
PRIMARY KEY (id)
);

После этого измененный sql-файл сабмиттится в репозиторий кода.

Выполнение миграций между версиями

В этом методе процедура обновления базы данных до более новой версии не так прямолинейна, как в других методах. Поскольку для каждой версии хранится только декларативное описание структуры, для каждой миграции придется генерировать разницу в виде ALTER -, DROP - и CREATE -запросов. В этом вам помогут автоматические diff-утилиты, такие, как Schema Synchronization Tool, входящая в состав SQLyog , TOAD , доступный для многих СУБД,

Последнее обновление: 31.10.2015

Нередко возникает ситуация, когда модель меняется. Например, мы решили внести в нее новые свойства. Но при этом у нас уже имеется существующая база данных, в которой есть какие-то данные. И чтобы без потерь обновить базу данных ASP.NET MVC предлагает нам такой механизм как миграции. Например, у нас есть простая модель User:

Public class User { public int Id { get; set; } public string Name { get; set; } }

Соответсвенно есть контекст данных, через который мы работаем с бд:

Users { get; set; } }

И допустим, у нас есть вся инфраструктура для работы с этой моделью - представления, контроллеры, и у нас есть уже в базе данных несколько объектов данной модели. Но в какой-то момент мы решили изменить модельную базу приложения. Например, мы добавили еще одно поле в модель User:

Public class User { public int Id { get; set; } public string Name { get; set; } public int Age { get; set; } }

Кроме того, мы решили добавить еще одну модель, например:

Public class Company { public int Id { get; set; } public string Name { get; set; } }

Таким образом, контекст данных у нас уже меняется следующим образом:

Public class UserContext: DbContext { public UserContext() : base("DefaultConnection") { } public DbSet Users { get; set; } public DbSet Companies { get; set; } }

Мы можем добавить в представления для модели User дополнительное поле для свойства Age, можем создать контроллер и представления для новой модели, но при попытке добавить новый объект в бд, мы будем получать ошибку:

Контекст данных изменился, и теперь нам надо провести миграцию от старой схемы базы данных к новой. И первым делом найдем внизу Visual Studio окно Package Manager Console, введем в нем команду: enable-migrations и нажмем Enter:

После выполнения этой команды Visual Studio в проекте будет создана папка Migrations, в которой можно найти файл Configuration.cs . Этот файл содержит объявление одноименного класса Configuration, который устанавливает настройки конфигурации:

Namespace MigrationApp.Migrations { using System; using System.Data.Entity; using System.Data.Entity.Migrations; using System.Linq; internal sealed class Configuration: DbMigrationsConfiguration { public Configuration() { AutomaticMigrationsEnabled = false; ContextKey = "MigrationApp.Models.UserContext"; } protected override void Seed(MigrationApp.Models.UserContext context) { } } }

В методе Seed можно проинициализировать базу данных начальными данными. Теперь нам надо создать саму миграцию. Там же в консоли Package Manager Console введем команду:

PM> Add-Migration "MigrateDB"

После этого Visual Studio автоматически сгенерирует класс миграции:

Namespace MigrationApp.Migrations { using System; using System.Data.Entity.Migrations; public partial class MigrateDB: DbMigration { public override void Up() { CreateTable("dbo.Companies", c => new { Id = c.Int(nullable: false, identity: true), Name = c.String(), }) .PrimaryKey(t => t.Id); AddColumn("dbo.Users", "Age", c => c.Int(nullable: false)); } public override void Down() { DropColumn("dbo.Users", "Age"); DropTable("dbo.Companies"); } } }

В методе Up с помощью вызова метода CreateTable создается таблица "dbo.Companies" и производится ее настройка: создание столбцов, установка ключей. И также добавляется новый столбец Age в уже имеющуюся таблицу. Метод Down удаляет столбец и таблицу на случай, если они существуют. Фактически эти методы равнозначные выражению ALTER в языке SQL, которое меняет структуру базы данных и ее таблиц.

И в завершении чтобы выполнить миграцию, применим этот класс, набрав в той же консоли команду:

PM> Update-Database

После этого, если мы посмотрим на состав базы данных, то увидим, что к ней были применены изменения в соответствии с выполненной миграцией:

Итак, миграция выполнена, и мы можем уже использовать обновленные модели и контекст данных.

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http :// www . allbest . ru /

Введение

1. Миграция данных в проектах внедрения КИС

1.1 Цели и стратегия процесса миграции данных в проектах внедрения ИС

1.2 Этапы процесса миграции данных в проектах внедрения ИС

1.3 Особенности разработки бизнес-требований к миграции данных

1.4 Постановка задачи на разработку методики проведения миграции данных

2. Анализ проектного опыта проведения миграции данных

2.1 Краткая характеристика проекта внедрения ИС

2.2 Выявленные проблемы при разработке плана работ и коммуникаций на этапе миграции данных

2.3 Выявленные проблемы при разработке требований к выгрузке из системы-источника

2.4 Выявленные проблемы документирования требований к миграции данных

2.5 Выявленные проблемы при тестировании загруженных данных в систему-приемник

3. Методика организации проведения миграции данных

3.1 Последовательность шагов для организации миграции данных

3.2 Оценка применения разработанной методики организации и проведения миграции данных

Заключение

Список использованных источников

Приложения

Введение

Исследование проблем проведения проектов внедрения корпоративных информационных систем являются актуальными для возможного исследования в силу возрастающего интереса заказчиков к проектам внедрения КИС, целью которых является замена эксплуатируемых информационных систем, что подтверждается аналитикой CNews . Аналитики CNews отмечают следующие особенности и тренды в поведении заказчиков:

· Заинтересованность в качестве результата проекта;

· Направленность проектов на оптимизацию существующих бизнес-процессов, в том числе за счет совершенствования существующих средств автоматизации;

· Повышенное внимание заказчика к качеству управления проектом внедрения ИС.

Еще одним поводом для исследования являются показатели качества осуществленных проектов. По данным аналитического издания PCWeek неудачными оказываются до 75% всех ИТ-проектов.

В настоящее время довольно большое количество заказчиков уже имеет внедренные информационные системы, поэтому миграция данных является неотъемлемой частью таких проектов. Результаты проведения этапа миграции данных имеют влияние на дальнейшие этапы проекта, как правило, являются условием приемки системы в промышленную эксплуатацию.

Миграция данных является обязательной частью большинства проектов. В частности, в соответствии с законодательством РФ, подробный анализ которого в этой сфере будет проведен позднее в работе, организации государственного сектора не имеют возможности отказаться от части исторических данных и обязаны перенести электронные архивы в новую информационную систему. В случае негосударственных организаций процесс работы с историческими данными может регулироваться внутренними корпоративными политиками и регламентами, а также политиками клиентов этих организаций. Таким образом, проблемы, возникающие на этапе миграции исторических данных, являются актуальными и могут стать материалом для дальнейшего исследования темы.

При рассмотрении аналитических материалов по вопросам миграции данных, становится очевидным следующее существующее противоречие: разрабатываются частные программные решения и методические материалы в области миграции данных, но в то же время отсутствует общий подход к разработке требований к процессу миграции. Существует целый ряд практических наработок ведущих мировых вендоров программного обеспечения, например, IBM Best Practices или Oracle White paper, однако отсутствует обобщенный подход к организации миграции данных, который бы учитывал многообразие особенностей заказчиков и проектов. Соответственно, можно сделать предположение о том, что предложенная проблема исследования является недостаточно изученной.

Объектом настоящего исследования являются проекты по модернизации или замене уже внедренных информационных систем.

Предмет исследования - этап миграции данных в проектах по замене эксплуатируемых информационных систем и подходы к организации работ данного этапа проектов.

Целью работы является разработка методики организации процесса миграции данных из эксплуатируемой информационной системы во внедряемую информационную систему. Общая цель работы может быть детализирована с учетом этапов проведения миграции данных, а именно: предложить подходы к планированию этапа миграции данных, описать методику разработки требований к миграции данных, разработать подходы к тестированию и оценке результатов этапа миграции данных.

В качестве гипотезы исследования рассматривается следующий тезис: может быть разработана методика организации этапа миграции данных, который позволит повысить качество разработки бизнес-требований к процессу миграции и снизить вероятность «срабатывания» рисков данного этапа.

Для достижения цели работы необходимо последовательное решение следующих задач исследования:

1. Выявить наиболее «узкие» места процесса миграции, порождающие риски для бизнеса.

2. Проанализировать существующие методологии проведения миграции данных, лучшие практики вендоров ПО для миграции данных.

3. Выявление особенностей заказчика, влияющих на организацию миграции данных и формирование пакета требований к миграции данных.

4. Выявление проблем бизнеса, возникающих при миграции данных, которые не могут быть решены с помощью существующих средств автоматизации;

5. Разработка методики организации процесса миграции данных, которые позволят устранить выявленные проблемы бизнеса на всех этапах миграции (планирование, сбор требований, проектирование, реализация, тестирование);

6. Оценка разработанных подходов и методов организации и проведения миграции данных.

В качестве предпосылки для проведения исследования принимается необходимость мигрировать накопленные в существующей системе данные в новую систему. Проведение данного этапа работ требуется не во всех проектах, однако для целей настоящего исследования стоит предположить наличие такой потребности у заказчика.

В качестве теоретической базы для исследования используются методология разработки требований, сформулированная К. Вигерсом в книге «Разработка требований к программному обеспечению» , а также основные принципы методологии MSF, методы решения проектных задач этапа миграции данных, изложенные в White Paper вендоров ПО IBM , Oracle , Microsoft .

Результатом работы должна стать методика организации процесса миграции данных. Ожидаемый результат работы является новым, так как каждый проект по миграции данных обладает индивидуальными особенностями, в то же время разрабатываемая методика должна позволять учесть такие особенности проекта и нивелировать потенциальные риски проекта.

В частности, будет предложен набор инструментов планирования и структурирования работ этапа миграции данных, ряд методов разработки требований к программному обеспечению, специфических для этапа миграции данных. Такой набор инструментов будет предложен для каждого этапа миграции данных.

Ожидаемыми результатами работы является методика организации миграции данных, которая будет опробована в организации-заказчике определенного типа (государственное предприятие).

Полученные результаты могут быть использованы при организации проектов, в рамки которых входит миграции данных.

Предложенные автором подходы и способы решения проектных задач могут являться способом снижения рисков бизнес-заказчика, возникающих при ошибках, допущенных в ходе миграции данных из эксплуатируемой ИС во внедряемую ИС.

Структура работы предполагает последовательное описание этапов решения поставленных задач исследования. В первой части работы будет приведен обзор существующих методик проведения миграции данных. Вторая часть работы будет посвящена анализу предметной области проектов, а также выявлению типичных проблем этапа миграции данных, которые не могут быть решены с помощью существующих инструментов и методов, проанализированных в первой части работы. Третья часть исследования будет описывать последовательность шагов, которые позволят оптимизировать процесс миграции данных и решить проблемы бизнеса, обозначенные во второй части работы. В третьей части работы будет проведена оценка предложенной методики организации и проведения миграции данных, проведенная на основании апробации этой методики в рамках реального проекта.

1. Миграция данных в проектах внедрения КИС

1.1 Цели и стратегия процесса миграции данных в проектах внедрения ИС

Миграция данных - процесс переноса информации при смене информационной системы, хранилища или изменении версии приложения. Процесс миграции данных, как правило, является частью одного из этапов проекта внедрения корпоративной информационной системы, однако проведение этого процесса может являться целью для отдельного проекта.

Внедряемая информационная система должна заменить систему или системы, находящиеся в эксплуатации в настоящее время. По завершении проекта внедрения КИС, как правило, дальнейшая эксплуатация существующих систем в организации-заказчике не планируется. В терминах процесса миграции данных эксплуатируемая система или системы являются системами-источниками. Внедряемая система является системой-приемником. Внедряемая система должна заменить автоматизированные функции систем-источников, соответственно, внедряемая система будет использовать исторические данные, накопленные в двух эксплуатируемых системах.

Наличие этапа миграции данных в проектах внедрения КИС определяется соответствующими бизнес-требованиями. Необходимость мигрировать данные возникает при решении одного из следующих случаев:

- Создание новой системы в результате кардинального изменения требований заказчика. Такая ситуация может возникать при критических запросах на изменение функциональных требований, изменения внешних факторов, влияющих на бизнес, и недостаточной гибкости используемого решения.

- Слияние бизнес-единиц (отделы, департаменты или организации) вызывает необходимость использовать единую информационную систему вместо нескольких систем, с которыми ранее работали сотрудники заказчика.

- Изменение ИТ-инфраструктуры при использовании текущих КИС. Здесь речь идет о необходимости миграции данных из разрозненных систем при создании общего корпоративного хранилища данных (data warehouse) для хранения данных из корпоративных приложений.

При решении перечисленных выше задач необходимо определить стратегию миграции, руководствуясь принципами которой, будут проводиться работы по миграции данных. Эксперты Oracle определяют два типа стратегий: стратегия «большого взрыва» (big bang) и стратегия плавной миграции (trickle migration).

В первом случае миграция производится единовременно, при миграции происходит остановка работы системы-источника и целевой системы. Такой подход может показаться привлекательным в силу снижения временных затрат на проведение процесса миграции, однако осуществление миграции по принципу «большого взрыва» довольно часто является рискованным решением. В первую очередь риски связаны с затруднениями в работе организации во время остановки систем. Как правило, бизнес-заказчики отказываются от остановки информационных систем. Для осуществления эффективного процесса миграции необходимо предпринять, по крайней мере, одну тестовую попытку, прежде чем мигрировать реальные данные. Помимо времени на тестирование необходимо учесть при планировании возможную дополнительную дату миграции - резервный день - требуемый для повторной миграции в случае первой неудачи. Спланировать проведение такого процесса довольно сложно без значительных потерь работоспособности бизнеса в момент миграции, поэтому качество мигрированных данных при таком подходе, как правило, страдает из-за недостаточно тестирования и нехватки времени для валидации результатов миграции.

При использовании стратегии плавной миграции данных система-источник и целевая система работают параллельно, работа приложений не приостанавливается, что обыкновенно позитивно воспринимается заказчиками. Применение такого подхода, скорее всего, приведет к усложнению средств миграции, так как понадобится в реальном времени отслеживать наборы данных, которые были мигрированы, а также контролировать изменения в данных, сделанные пользователями системы-источника. При плавной миграции процесс переноса данных может быть синхронизирован с процессом переключения групп пользователей на работу с новой системой. При постепенном переключении групп пользователей на работу с целевой системой происходит параллельная эксплуатация обеих систем, что может сказаться на сохранности мигрируемых данных. Изменения в мигрируемыех данных могут быть внесены за время параллельной работы двух систем, что приведет к повторной миграции этих данных.

При формулировании стратегии миграции данных существует ряд типовых рисков, которые требуют дополнительной оценки и могут привести к проблемам в ходе реализации процесса миграции. Согласно экспертам Oracle типичные проблемы, возникающие при формулировании стратегии миграции данных, можно разделить на несколько групп:

1. Риски составления технической спецификации

В техническую спецификацию для миграции данных входит описание наборов, типов и форматов данных, а также алгоритмы миграции. При составлении технической документации этапа миграции обыкновенно мало внимания уделяется изучении документации по функционалу и информационному обеспечению системы-источника. При составлении спецификаций может быть использована нерепрезентативная или недостаточная по объему выборка данных из старой системы, соответственно, могут быть упущены детали. Фокус смещен в сторону технических, а не бизнес-требований к новой системы, такая ситуация приводит к некорректному маппингу данных и ошибкам при миграции.

2. Риски тестирования

Риски этапа тестирования чаще всего связаны с недостатком времени, такая ситуация складывается не только при миграции данных, но может быть характерна, в целом, для всего проекта. Этап миграции требует тщательного тестирования на больших объемах данных, зачастую же используются юнит-тесты, результаты которых не могут быть в данном случае достаточными.

3. Риски процесса получения и загрузки данных

Как правило, при миграции данных может быть упущен этап валидации данных, полученных из системы-источника. Это упущение может привести к непредвиденному развитию событий при загрузке информации в новую систему. Такая ситуация может возникать, когда в системе-источнике существовали ошибки соответствия метаинформации и контента, а алгоритмы миграции были спроектированы, исходя из метаданных о контенте.

4. Риски размещения данных в целевой системе

Некорректно проведенная загрузка данных при миграции может привести к следующим негативным последствия: некорректная работа функциональности целевой системы в связи с конфликтами и ошибками, вызванными загруженными данными. Для решения проблем требуется дополнительное время на разработку обходных путей решения проблем путем доработки функциональности целевой системы, очистки или дополнительной конвертации загруженных данных. Итогом описанных сбоев и ошибок является снижение эффективности работы новой ИС, недовольство пользователей системы и убытки бизнеса.

5. Риски, связанные с работой проектной команды

Этап миграции данных, как и любой другой этап проекта внедрения информационной системы, требует четкого распределения ролей в проектной команде и привлечения всех заинтересованных сторон. Отсутствие вовлеченности бизнес-пользователей новой системы в процесс миграции приводит к упущениям при сборе требований и повышает риски возникновения ошибок. При разработке алгоритмов переноса данных требуется привлечение экспертов, обладающих знаниями о структуре и назначении данных для миграции. Таким образом, смещение ответственности в сторону технических специалистов, работающих только с целевой, новой системой является распространенным, но нерациональным решением.

Формулировка стратегии и оценка рисков этапа миграции являются одними из наиболее важных шагов при осуществлении миграции данных. Результаты мероприятий по оценке рисков и выбора стратегии - это входные данные для этапа планирования процесса миграции.

1.2 Этапы процесса миграции данных в проектах внедрения ИС

Процесс миграции данных может являться одним из этапов проекта внедрения ИС, а может быть организован как отдельный проект. Под процессом миграции данных в рамках настоящей работы будем подразумевать проектные работы, покрывающие полный цикл задач, связанных с миграцией данных: от планирования работ по миграции данных до оценки результатов этапа миграции данных.

В любом случае процесс миграции данных распадается на несколько взаимосвязанных последовательных этапов, в настоящем исследовании будут последовательно рассмотрены все шаги процесса миграции по методологии Oracle и IBM .

Жизненный цикл процесса миграции начинается после формирования стратегии и оценки рисков этапа миграции данных. Схема процесса миграции представлена на диаграмме процесса.

Целью любого процесса миграции данных является маппинг информации, типов и форматов данных старой системы с типами и форматами данных новой системы. При миграции данных этапу «Data Extraction» соответствует выбор и выгрузка данных из старой системы, а этапу «Data Loading» соответствует перенос полученных данных старой системы и их загрузка в новую систему. Ниже процесс миграции будет рассмотрен более детально.

После завершения этапа планирования миграции данных наступает этап определения требований к мигрируемым данным. Этот этап включает в себя разработку требований заказчика и описание их в соответствующих проектных документах. На этапе сбора требований ответственной ролью в команде проекта за результат этапа является бизнес-аналитик или системный аналитик. Подробнее этот этап миграции будет освещен в третьей главе настоящей работы. Выходной информацией этапа определения требований к данным для миграции является описание структуры и состава данных для миграции.

Этап сбора требований к данным для миграции, как правило, очень тесно взаимосвязан со следующим этапом - разработки алгоритмов переноса данных из системы-источника в целевую систему. На этапе проектирования аналитиками создаются подробные спецификации с описанием типов данных системы-источника и их взаимосвязей с типами данных целевой системы. В таких спецификациях описывается структура данных для миграции, их объемы, источник, назначение. Спецификация является источником для постановки задач разработчику, который будет проектировать и разрабатывать специализированное ПО для переноса данных. На этапе проектирования проводится анализ существующей архитектуры данных в системе-источнике - анализ «as is» и разработка архитектуры данных в целевой системе - «to be». При анализе существующей архитектуры данных выявляются и учитываются все ограничения и ИТ-инфраструктуре, а также их влияние на работу целевой системы с мигрированными данными. Выходными артефактами анализа архитектуры данных могут являться такие документы, как логические модели данных (ER-диаграммы, модели баз данных), словари и справочники с детальным описанием каждого элемента и его атрибутов, описание бизнес-правил работы с данными, сведения о системах, взаимодействующих с системой-источником при информационном обмене и интеграции.

Результаты сбора требований и проектирования являются основаниями для выбора метода и определения технологии миграции данных. Миграция может осуществляться в режиме «оффлайн» или «онлайн», категоризация методов зависит от того, поддерживается ли работоспособность приложений в течение процесса миграции. Выбор метода и средств миграции определяется совокупностью факторов, в числе которых доступное время простоя систем, зависимость бизнеса от партнеров, объем данных, физическое размещение хранилищ данных системы-источника, политика информационной безопасности системы-источника и целевой системы.

Описанные выше этапы анализа и планирования можно объединить в общий подготовительный этап. Разработанные процедуры и механизмы миграции регламентируют этапы извлечения, переноса и загрузки данных в новую систему, то есть осуществляются последовательно все шаги ETL-процесса. После получения необходимых для миграции данных наступает фаза загрузки этих данных в целевую систему, перед началом которой необходимо выделить отдельный этап - верификация мигрируемого контента.

Проверка соответствия загружаемых данных требованиям может происходить в режиме «онлайн» - непосредственно на входе в целевую информационную систему или в режиме «оффлайн» - как промежуточный этап в процессе миграции. По завершении загрузки данных в целевую систему производится дополнительная проверка, зачастую, запускаются обе системы для параллельной работы. Тестовые мероприятия параллельной работы планируются при проектировании правил и процедур миграционного процесса. В рамках миграционного процесса параллельная работа двух систем может рассматриваться как опытная эксплуатация. Результатом опытной эксплуатацией может стать подтверждение полной работоспособности новой системы с мигрированными данными. В случае выявления массовых ошибок в ходе параллельной работы системы-источника и целевой системы может быть принято решение о повторной миграции данных и перезагрузке контента. Согласованные результаты миграции фиксируются в журнале опытной эксплуатации целевой системы с загруженными данными, выполненных тест-кейсах, могут быть составлены опросные листы для проверки соответствия мигрированных данных требованиям целевой системы.

Мероприятия тестирования не ограничиваются параллельной эксплуатацией системы-источника и целевой системы. Тесты могут проводиться на выборках из мигрируемых данных с целью раннего выявления ошибок и их исправления до начала разработки миграционного ПО. Более ранняя ликвидация ошибок позволяет экономить бюджет и избежать повторных загрузок данных. К работам по тестированию могут быть отнесены мероприятия по аудиту данных в процессе миграции. Аудит данных позволяет отслеживать состояние данных и избежать ошибок, вызванных изменениями в контенте, которые могут быть внесены пользователями уже во время проведения работ по миграции.

После согласования результатов миграции стартует этап пост-миграционных работ, включающих проверку, очистку и тестирование работоспособности целевой системы, в целом, после миграции данных. Очистка может происходить вручную или с помощью программных средств. Очистка данных производится для удаления устаревшей информации и удовлетворения требований к информационному обеспечению новой системы.

Методология проведения миграции данных, приведенная выше, предполагает, что наиболее «узким» местом при организации данного этапа проекта является этап планирования и работы с бизнес-требованиями заказчика, то есть сбор требований и проектирование, поэтому рассмотрим подходы к решению задач этих этапов подробнее в следующих частях работы. Помимо этапов планирования и разработки бизнес-требований особое внимание стоит уделить этапу оценки результатов работ этапа миграции данных, так как в соответствии с циклом Деминга (PDCA) , именно проведение мероприятий по оценке работ является условием успешности проведения аналогичных работ в аналогичных проектах.

1.1. Особенности планирования миграции данных

Планирование миграции данных является первым этапом жизненного цикла процесса и производится с учетом понимания основных рисков процесса и стратегии миграции. Входной информацией помимо стратегии миграции может являться раздел технического задания или документа о рамках всего проекта, посвященный миграции данных. На этапе планирования определяются рамки процесса миграции данных, устанавливаются достижимые в условиях проектных ограничения (источники данных, требования верхнего уровня) цели процесса миграции данных. Для определения рамок процесса миграции целесообразно привлечение бизнес-пользователей, обладающих пониманием того, как система работала с данными в прошлом и как она должна работать с ними в будущем. Далее в зависимости от способа миграции устанавливается срок, и выделяются необходимые ресурсы в рамках заданного бюджета. При планировании миграции данных важными моментом является определение участников процесса со стороны заказчика, то есть тех бизнес-пользователей и технических специалистов заказчика, которые отвечают за управление данными. На выходе процесса планирования процесса миграции данных могут формироваться следующие проектные артефакты:

Документ о рамках миграции данных;

План работ по миграции данных с указанием ответственных членов проектной команды;

План коммуникаций на этапе миграции.

Организация этапа миграции в проектах внедрения ИС начинается с этапа планирования, где необходимо составить план работ, рассчитать необходимые ресурсы и сроки выполнения.

Пакеты работ на этапе миграции должны соответствовать фазам жизненного цикла процесса, примерная структура плана-графика работ может быть следующей:

Планирование и обозначение рамок миграции данных;

Бизнес-анализ и документирование требований;

Выбор, настройка или проектирование и разработка специализированного ПО;

Перенос данных;

Валидация мигрированных данных;

Опытная эксплуатация;

Пост-миграционные работы по очистке и тестированию;

Согласование результатов миграции, оценка и закрытие этапа проекта внедрения.

Назначение ответственных членов проектной команды за выполнение пакетов работ этапа миграции данных происходит на этапе планирования после составления плана работ.

Выбранным проектным ролям приведены в соответствие кластеры - зоны ответственности, определенные в методологии MSF . Стоит отдельно отметить, что под управлением продуктом в контексте миграции будем понимать управление качеством мигрированных данных и работоспособностью целевой системы после миграции. Управление релизами (выпусками) в терминах процесса миграции - осуществление итераций процесса миграции, получение и загрузка данных миграции.

В соответствии с моделью MSF предполагается следующее распределение зон ответственности между ролевыми кластерами:

Системный аналитик - управление программой, удовлетворение потребителя;

Менеджер по разработке - управление программой, управление продуктом, управление выпуском;

Разработчик - разработка алгоритмов или специализированного ПО для переноса данных в целевую Систему, специализированного ПО (при необходимости);

Тестировщик - тестирование, управление выпуском.

Для того чтобы наглядно продемонстрировать участие привлеченных человеческих ресурсов в мероприятиях процесса миграции данных составим матрицу RACI - приведена в приложении 1 к работе (см. Приложение 1 - Матрица RACI для работ по миграции данных).

Нужно оговориться, что менеджер по разработке (технический менеджер) рассматривается как лидер команды, занимающейся миграцией данных, поэтому он несет ответственность за проведение всего процесса, в целом. Однако если миграция данных проводится в рамках масштабного проекта внедрения ИС, где назначен менеджер всего проекта, то технический менеджер этапа миграции будет только исполнителем в задачах, касающихся определения сроков и подбора персонала. Решения по вопросам персонала, ресурсов и сроков в таком случае принимается менеджментом проекта коллегиально.

1.3 Особенности разработки бизнес-требований к миграции данных

Этап разработки требований бизнеса при миграции данных является ключевым при подготовке средств переноса данных, и именно от того, насколько качественно были собраны и проанализированы требования бизнес-пользователей будет зависеть качество процесса миграции, в целом.

Требования к миграции данных могут быть зафиксированы в различных проектных артефактах, рекомендации по разработке таких проектных артефактов будут приведены в Главе 3.

Методологической базой для организации проектных работ по выявлению и разработке бизнес-требований к миграции данных могут служить различные стандарты. В рамках настоящего исследования теоретической базой для бизнес-анализа является подход Карла Вигерса .

Для начала рассмотрим применение инструментария, рекомендуемого Вигерсом для моделирования бизнес-требований в контексте разработки требований к миграции данных.

Рассмотрим ниже применение подхода Вигерса к разработке требований к миграции данных. Требования к миграции данных выявляются параллельно с разработкой функциональных требований к внедряемой системе. В процессе разработки функциональных требований обозначаются входные наборы данных для автоматизируемых бизнес-процессов, таким образом могут быть обозначены верхнеуровневые требования бизнеса к составу мигрируемых данных.

Вигерс предлагает использование ER-диаграмм (диаграмма «сущность-связь») для определения логической структуры предметной области. Диаграмма «сущность-связь» используется для построения модели данных предметной области. Логическая структура данных (концептуальная модель данных - КМД) позволяет описать предметную область работы системы в терминах объектов данных (сущностей).

Использование модели данных в форме ER-диаграммы согласно Вигерсу позволяет облегчить процесс выявления требований к организации структуры данных в проектируемой системе за счет наглядности и относительной простоты изложения модели. Работая с ER-диаграммой «as is», ключевые бизнес-пользователи смогут определить перечень объектов данных, которые необходимо перенести из системы-источника в проектируемую систему-приемник.

Помимо диаграмм «сущность-связь» в процессе выявления требований к миграции данных может использоваться другой инструмент моделирования - диаграмма смены состояний или диаграмма перехода состояний. Диаграмма перехода состояний позволяет получить точное, полное и ясное представление о механизме с конечным числом состояний. Диаграмма перехода состояний является частью подхода к моделированию - UML (unified modelling language) и позволяет наглядно представить жизненные циклы объектов данных. Переход в каждую следующую стадию жизненного цикла определяется определенным набором бизнес-правил. При разработке такой модели в ходе разработки функциональных требований к проектируемой информационной системе необходимо проводить сравнительный анализ такой модели с аналогичной моделью для эксплуатируемой системы. При модернизации ИС некоторые состояния объектов данных могут быть изменены или исключены, могут быть изменены правила смены состояний. Такие случаи должны быть учтены при разработке требований к миграции для того, чтобы корректно определить в каком состоянии объекты данных должны быть перенесены в систему-приемник. Помимо этого, в требованиях к миграции данных необходимо учесть логические несоответствия, которые могут возникнуть из-за модернизации правил смены состояний. Например, переход объекта данных в следующее состояние может зависеть от заполнения или значения какого-либо атрибута сущности. При разработке требований к системе-приемнику атрибутный состав сущностей может быть изменен таким образом, что данный атрибут будет исключен. В таком случае смена состояний для мигрированной сущности будет невозможна. Соответственно, в работе функциональности системы-приемника возникнут сбои и ошибки. Во избежание таких ошибок каждый подобный случай изменения атрибутного состава должен быть выявлен, а в требованиях к миграции данных должна быть отражена логическая проверка или правило обработки такой ситуации. Пример разработанной диаграммы состояний для одной из сущностей в системе-приемнике приведен в приложении 3 к работе (см. Приложение 3 - Примеры схем жизненного цикла сущностей в системе-источнике).

Выше было рассмотрено применение инструментария бизнес-анализа для выявления требований высокого уровня к миграции данных. Теперь более подробно проанализируем методологическую базу для детальной проработки потребностей бизнеса: в частности, для разработки требований к профилю мигрируемых данных.

При взаимодействии с заказчиком по вопросам составления профиля данных для миграции требований аналитику необходимо получить информацию по следующим вопросам , :

1. Что является источником данных: корпоративное приложение, система или источники за пределами организации-заказчика?

2. Будут ли мигрированные данные являться входными для работы какого-либо бизнес-процесса?

3. Каковы требования к данным в целевой системе? В каких процессах новой системы будут использоваться эти данные? Позволяет ли структура данных корректно работать с ними в целевой ИС (возможно ли соотнести структуру мигрируемых данных и целевую модель данных)? Присутствуют ли в структуре данных поля и типы, которые невозможно заполнить в целевой структуре и - наоборот?

4. Каково качество данных? Соответствует ли текущий уровень качества данных уровню, необходимому для функционирования целевой системы? Есть ли критические ошибки (например, незаполненные обязательные поля, несоответствие типов данных в системе-источнике и системе-приемнике). Существует ли необходимость в разработке процедур по улучшению качества данных до начала процесса переноса данных?

5. Позволяет ли метаинформация мигрируемого контента разработать алгоритмы миграции? Возможно ли произвести анализ структуры данных на основе метаинформации или необходимо производить анализ самого контента, предназначенного для миграции?

6. Оценка критичности ошибок при переносе данных в целевую систему. Будут ли эти данные использоваться в пользовательском интерфейсе или достаточно произвести валидацию на уровне БД?

7. Есть ли связь выбранных данных с историческими данными? Происходили ли за некоторый выбранный период (например, год или 5 лет) значительные изменения в бизнес-процессе, которые могут привести к изменениям в структуре или форме хранения выбранного элемента модели данных?

8. Каковы бизнес-правила работы с выбранными данными?

9. Кто является владельцем данных (контента, документов, изображений) и кто является ответственным за сохранность и качество выбранных данных?

10. Какие ограничения системы-источника отражаются на структуре данных, формах хранения и работы с данными? Сохранятся ли данные ограничения при работе с данными в целевой системе?

11. Существует ли необходимость в поддержке «онлайн» миграции данных?

12. Будут ли вноситься изменения в мигрируемые данные в течение процесса миграции? Существует ли необходимость в итеративном процессе выгрузки и загрузки данных?

Выявленные потребности бизнеса должны быть зафиксированы и описаны в виде пакета требований к миграции. Взаимосвязь потребностей бизнеса и функциональных требований соблюдается в случае, когда функциональные требования являются трассируемыми.

Помимо инструментов моделирования предметной области и бизнес-процессов немалое внимание Вигерс уделяет такому понятию в работе с бизнес-требованиями, как «трассируемость» требований. Трассируемость требований также означает, что возможно проследить взаимосвязь требований верхнего уровня, зафиксированных в концепции проекта или техническом задании, с более детальными требованиями к подсистемам и модулям, зафиксированными в функциональных и технических спецификациях.

При разработке требований к миграции данных также должна соблюдаться трассируемость требований. Требования верхнего уровня, отражающие необходимость и стратегию миграции, фиксируются в документе о рамках проекта внедрения ИС или техническом задании. Потребность бизнеса в миграции данных из эксплуатируемой систем в проектируемую систему трассируется к пакету требований к миграции: составу мигрируемых данных, способу проведения миграции, конкретным правилам и сценариям миграции, которые описываются в техническом задании на реализацию ИС или технической спецификации процесса миграции.

Инструментом для отслеживания трассируемости требований по Вигерсу может являться матрица трассируемости требований. С помощью матрицы трассируемости можно наглядно представить взаимосвязи между требованиями к разрабатываемому ПО.

В приложении 2 к работе (Приложение 2 - Пример трассировки требований к миграции данных) представлен пример - фрагмент составленной матрицы трассируемости требований к миграции данных.

В приведенном фрагменте матрицы представлены различные типы пользовательских потребностей:

· Нефункциональное требование к способу проведения миграции;

· Требования непосредственно к функциям утилиты миграции данных;

· Бизнес-требование к функциональности проектируемой системы, связанное с функциональными требованиями к утилите миграции.

В первой строке примера отсутствует тестовый сценарий, так как данная потребность пользователей трассируется к плану организации работ по миграции данных, а не к конкретному элементу утилиты миграции. Вигерс допускает такие исключения при составлении матриц трассируемости требований. Требования высокого уровня являются входящей информацией при планировании работ этапа миграции. При составлении плана коммуникаций проекта системным аналитиком и техническим менеджером для проведения обследования должны быть выбраны не только технические специалисты, но и бизнес-пользователи, причем как системы-источника, так и целевой системы.

Прочие приведенные в матрице трассируемости пользовательские потребности и функциональные требования являются обобщенными примерами бизнес-требований, разработанных в рамках конкретного проекта по миграции. Характеристика этого проекта, а также детальный анализ проектного опыта миграции данных будет проведен в Главе 2.

1.4 Постановка задачи на разработку методики проведения миграции данных

Ожидаемым результатом работы должна стать методика организации и проведения миграции данных. Такая методика должна состоять из последовательности взаимосвязанных шагов, выполнение которых позволит спланировать, провести и протестировать результаты миграции данных.

Каждая из частей методики должна содержать описание последовательности мероприятий для отдельного этапа миграции, а именно: планирование, разработка требований, проведение миграции (выгрузка и загрузка), тестирование результатов. Таким образом, предлагаемая в работе методика должна содержать рекомендации по выполнению задач каждого из этапов, представленных на схеме жизненного цикла миграции данных (Рис. 1).

В первой части методики должны быть приведены и описаны способы разработки общих требований к миграции данных. В частности, в этой части методики должны быть описаны способы работы с потенциальными рисками этапа миграции данных. В этой же части методики также описывается взаимодействие с ключевыми пользователями с целью выявить требования к стратегии миграции и другие бизнес-требования высокого уровня.

Вторая часть методики должна быть посвящена инструментам планирования и организации процесса миграции. На основе анализа проектного опыта выявляются наиболее «узкие» места процесса, для которых методика предлагает способы решения.

Следующая часть методики должна покрывать этап обследования и разработки требований к миграции данных. Эта часть методики должна содержать указания по проведению мероприятий обследования (встречи, коммуникации других видов), а также по документированию результатов этапа - шаблоны документации и примеры заполнения.

Заключительная часть методики проведения миграции должна содержать рекомендации по проведению миграции и тестирования на этапе миграции. Тестирование на этапе миграции делится на тестирования миграционного ПО, а также на тестирование работы системы-приемника после размещения в ней мигрированных данных. Данная часть методики должна содержать описание способов контроля процесса миграции, выявления возможных дефектов и их причин.

2. Анализ проектного опыта проведения миграции данных

2.1 Краткая характеристика проекта внедрения ИС

Проектный опыт, который будет рассмотрен в работе, - это несколько проектов миграции данных, проведенных в рамках портфеля проектов внедрения ведомственной информационной системы. В рамках анализа проектного опыта будет дана краткая характеристика проекта и рассмотрены некоторые особенности организации-заказчика.

В рамках настоящей работы будет проанализирован проектный опыт внедрения информационной системы в государственной организации, входящей в систему органов исполнительной власти регионального уровня. Основной проект был разбит на несколько подпроектов, каждый из которых подразумевал автоматизацию группы бизнес-процессов заказчика. Соответственно, в каждом проекте предполагался перевод на работу с новой системой некоторой части бизнес-подразделений заказчика. В каждом из проектов была предусмотрена миграция накопленных в системах-источниках данных, с которыми работает соответствующее бизнес-подразделение. Основная деятельность организации такого типа связана с оказанием государственных услуг населению. В рамках настоящего анализа будет рассматриваться этап миграции данных в проектах по внедрению ИС, автоматизирующей именно этот вид деятельности организации-заказчика. В следующих частях работы для проведения более глубокого бизнес-анализа и демонстрации практических результатов работы будет описана более узкая часть предметной области - на уровне оказания определенной государственной услуги.

Для того чтобы подробнее описать профиль организации-заказчика, необходимо ввести несколько понятий. «Заявителем» или «публичным пользователем ИС» является лицо, обратившееся за оказанием государственной услуги. «Объектом данных» будем называть одну из сущностей или артефактов предметной области деятельности организации-заказчика. «Системой-приемником» будем называть внедряемую корпоративную информационную систему, относящуюся к классу ECM. Заказчик эксплуатирует две отдельных информационных системы, не интегрированных между собой, для хранения контента и автоматизации основного бизнес-процесса. Эти системы будут являться источниками данных - «системами-источниками» для процесса миграции данных во внедряемую систему. Первая из двух существующих систем разработана на платформе IBM Lotus Notes и предназначена для автоматизации бизнес-процесса в одном из функциональных подразделений заказчика. Вторая система была разработана сотрудниками заказчика самостоятельно и предназначена для автоматизации бизнес-процессов в других бизнес-подразделениях и хранения документов в электронном виде, сбора и хранения отчетной информации по бизнес-процессам организации.

Организационной особенностью ведения проекта является использование следующей модели распределения ответственности за результаты проекта между следующими основными участниками со стороны Заказчика:

Функциональный заказчик несет ответственность за качественный результат проекта;

Нефункциональный заказчик несет ответственность за финансовый результат проекта.

Организация - функциональный заказчик является владельцем автоматизируемых бизнес-процессов. Сотрудники этой организации обладают знаниями специфики предметной области. Сотрудники функционального заказчика будут являться конечными пользователями внедренной информационной системы.

Сотрудники нефункционального заказчика могут не обладать знаниями и глубокой экспертизой в узкой предметной области деятельности. В их обязанности входит контроль проведения проекта внедрения ИС с организационной точки зрения, организация постпроектной технической поддержки внедренной системы на стороне заказчика. Стоит также отметить, что в зону ответственности нефункционального заказчика может входить надзорная функция за операционной деятельностью организации - функционального заказчика.

Специфическое распределение ответственности приводило к возникновению конфликта интересов функционального и нефункционального заказчика в ходе проведения проекта. Такая организационная структура является источником риска при проведении миграции данных.

2.2 Выявленные проблемы при разработке плана работ и коммуникаций на этапе миграции данных

При разработке плана работ на этапе миграции данных менеджмент проекта опирался на модель проектной группы MSF, а также использовал в качестве инструмента распределения ответственности матрицу RACI. Анализ такого подхода был проведен выше, в Главе 1.

На этом же шаге была сформулирована стратегия проведения миграции данных в рамках проекта. Стратегия была выбрана, исходя из верхнеуровненвых требований функционального заказчика, который отказался приостанавливать бизнес-процесс для проведения работ по миграции. Таким образом, была выбрана стратегия «большого взрыва», единовременная миграция данных из двух источников в систему-приемник.

Первоначальная иерархическая структура работ этапа миграции данных выглядела так, как показано.

Согласно первоначальному плану проекта работы непосредственно по проведению выгрузки данных из систем-источников и загрузке данных в систему-приемник должны были занять 4 календарных дня. 3 дня были отведены на получение данных и загрузку файлов во внедряемую систему, а также 1 день был зарезервирован для снижения риска срыва работ по загрузке данных. Однако работы не были реализованы в срок: в ходе проекта сработало несколько рисков, обозначенных при анализе теории в Главе 1.

Срыв сроков проведения работ в течение первого проекта по миграции данных произошел из-за некорректного планирования коммуникации с заинтересованными лицами на стороне заказчика. Как упоминалось выше, организация-заказчик имеет сложную организационно-штатную структуру. При планировании работ по обследованию и выбору пользователей для сбора бизнес-требований необходимо было привлечь к обследованию заказчика сотрудников нефункционального заказчика. Именно эти сотрудники заказчика обладают знаниями в области надзора за деятельностью функционального заказчика. Так, сотрудники нефункционального заказчика обладали знаниями о требованиях к временному горизонту выгрузки данных из систем-источников. Требования к временному горизонту выгрузки могли быть разработаны на основе анализа нормативно-правовой базы и согласованы с сотрудниками нефункционального заказчика, однако эти работы не были запланированы и проведены. Таким образом, можно говорить сразу о двух проблемах этапа миграции:

1) Некорректное планирование плана коммуникации с сотрудниками заказчика;

2) Некорректное планирование работ в ИСР;

3) Неполные бизнес-требования к миграции данных, как следствие первой проблемы. В частности, выгрузка из систем-источников была получена только за последние 2 года работы деятельности функционального заказчика. В то же время выгрузка данных должна была охватывать гораздо более длительный период.

Органы исполнительной власти регионов РФ обязаны хранить исторические данные (архивы) в течение сроков, установленных ФЗ . Таким образом, требования к составу выгрузки данных из систем-источников определяются в соответствии с регламентом хранения данных, который, в свою очередь, ссылается на федеральный закон. Помимо требований к составу выгрузки данных из системы-источника именно требования к временному горизонту хранения данных во многом определяют требуемый объем хранилища данных в системе-приемнике.

Более узкая предметная область, в которой работает функциональный заказчик, - оказание государственных услуг строительным и проектным организациям в области экологического надзора.

В соответствии с ФЗ организация-заказчик обязана хранить:

Проектную документацию по капитальному строительству в течение 20 лет;

Технологическую и конструкторскую документацию в течение 20 лет.

Организация-заказчик ввела в эксплуатацию существующие информационные системы в 2005 и 2000 годах, соответственно. Таким образом, в диапазон выгрузки для переноса данных в систему-приемник попадают все документы, хранящиеся в системах-источниках, а также все объекты, на которые ссылаются такие документы.

Аналогично описанному выше примеру может быть произведен анализ норм законодательства для других организаций государственного сектора или коммерческих организаций, в случае если внутренние регламенты таких организаций составляются на основе федеральных законов.

Помимо временного горизонта выгрузки из систем-источников федеральным законом определяются также требования к составу выгрузки из систем-источников: перечень наименований документов, необходимость переноса в новую систему их версий и дополнительных материалов - приложений, дополнений к каждому документу.

Федеральным законодательством определены виды и состав документации, которую обязана хранить организация-заказчик. Соответственно, нормы ФЗ должны быть проанализированы с учетом особенностей деятельностей конкретного заказчика и состава документации, которая требуется для оказания определенного вида государственных услуг. Артефакты предметной области деятельности заказчика должны быть сопоставлены с нормами законодательства и объектами модели данных эксплуатируемой системы-источника. Результаты такого анализа позволят определить состав выгрузки из системы-источника и определения требований к приемнику, а также к программному средству переноса данных.

Возвращаясь к примеру организации, входящей в структуру Департамента строительства региона, в состав данных для переноса из системы-источника в систему-приемник могут быть определены такие объекты как:

Электронные образы комплектов технологической, проектной и конструкторской документации объектов капитального строительства, а также объекты данных, хранящие информацию о соответствующих документах;

Электронные образы технологической и организационной-распорядительной документации объектов переработки и захоронения строительных отходов, а также объекты данных, хранящие информацию о соответствующих документах;

Электронные образы разрешительной документации, а также история выдачи дубликатов таких документов, а также объекты данных, хранящие информацию о соответствующих документах;

История работы со всеми перечисленными выше видами документации, хранимая в системе-источнике.

Таким образом, сработал риск некорректного планирования и, как следствие, частично сработал риск разработки неполных требований к выгрузке данных. Более подробно возможность «срабатывания» риска неполноты требований к выгрузке из систем-источников будет рассмотрен в следующей части работы.

2.3 Выявленные проблемы при разработке требований к выгрузке из системы-источника

В рамках планирования работ по миграции данных в проекте отсутствовали работы по проверке данных, входящих в состав выгрузки из систем-источников. Предполагалась валидация всего объема данных на входе в систему-приемник по модели данных внедряемой системы. Анализ качества алгоритмов логических проверок и валидации данных будет приведен в следующем разделе работы. В этой части работы анализируются подготовительные операции по получению данных из систем-источников и анализа состояния данных в этих системах. Для того чтобы исследовать состояние данных, выявить потенциальные проблемы размещения данных в системе-приемнике формируется тестовая выгрузка из систем-источников. Цель этого шага - успешно разместить тестовую выгрузку в системе-приемнике, выявить все потенциальные проблемы при загрузке данных и, таким образом, снизить риск неудачной миграции вследствие ошибок при загрузке невалидных данных в систему-приемник.

...

Подобные документы

    Проектирование информационной системы "Учёт работы поликлиники": анализ программных продуктов, описание диаграмм бизнес–процесса, описание IDEF0, DFD, IDEF3 диаграмм потоков данных и документирования процессов посредством AllFusion Process Modeler r7.3.

    курсовая работа , добавлен 20.08.2012

    Система управления базами данных задач и составляющих их процессов предприятия. Требования к информационной системе. Состав запросов к базе данных. Связи и отношения между информационными объектами. Алгоритмы работы и архитектура информационной системы.

    курсовая работа , добавлен 02.02.2014

    Детализация функций системы и требования к информационной системе. Анализ категорий пользователей. Этапы внедрения автоматизированной информационной системы на предприятии. Описание таблиц базы данных. Защита данных от несанкционированного доступа.

    дипломная работа , добавлен 22.07.2015

    Характеристика объектов автоматизации информационных систем. Требования к документированию. Порядок контроля и приемки системы. Описание потоков данных и бизнес процессов. Структура информационной системы, состав функциональных и обеспечивающих подсистем.

    курсовая работа , добавлен 18.09.2013

    Выбор методологии проектирования и разработка информационной системы "Расчёт зарплаты" для предприятия ОАО РТП "Авторемонтник". Архитектурное проектирование базы данных информационной системы и разработка её интерфейса. Тестирование программного модуля.

    дипломная работа , добавлен 25.05.2014

    Разработка информационной системы ресторана, определение ее границ для реализации базы данных. Перечень запросов, отчетов и операций по вводу информации в информационной системе "Ресторан". Проектирование базы данных, выбор средств ее реализации.

    курсовая работа , добавлен 27.04.2011

    курсовая работа , добавлен 10.07.2014

    Разработка требований к программному обеспечению отдела воинского учета, методология проектирования информационной системы. Реализация и аттестация информационной системы, взаимодействие приложения с источниками данных, его экономическая эффективность.

    дипломная работа , добавлен 30.11.2010

    Назначение создания информационной системы "Электронный журнал" для автоматизации контроля учебного процесса. Построение логической и реляционной моделей данных. Разработка клиент-серверного приложения для работы с базой данных; программная реализация.

    дипломная работа , добавлен 19.01.2017

    Анализ входной информации и процессов, уровня автоматизации на предприятии. Выявление объекта и задачи автоматизации. Разработка концепции построения информационной модели информационной системы. Разработка структуры базы данных и клиентского приложения.


как внедрить свободное ПО

Миграция на свободное ПО подобна миграции на более новую операционную систему. Как пример, можно упомянуть появление первых вариантов Windows в нашей стране. Не менее яркий пример – миграция на Windows NT, идеология работы в которой резко отличалась от Windows 9x. Можно привести еще один пример -- каждая новая версия пакета MS Office отличается от предыдущей не только отличиями в интерфейсе, но и форматами файлов. Итак, задача миграции является актуальной даже в таком случае, когда используется ПО от единственного производителя.

В данной статье предлагается общее описание методики миграции с освещением существенных моментов. Общий принцип миграции состоит во вдумчивом, осторожном осуществлении процесса путем постепенных изменений. Миграция состоит из нескольких логически целостных участков, этапов.

создание рабочей группы (кто делает)

При осуществлении миграции необходимо предусмотреть решение вопросов как технического, так и нетехнического характера.

Важно рассмотреть правовые проблемы, которые в последнее время черезвычайно актуально стоят для некоторых стран СНГ, в частности, Украины. В некоторых случаях осмысленно обсудить административные задачи взаимоотношений "работодатель-пользователь-администратор". Исторически сложилось, что эти отношения недостаточно регламентированы внутрикорпоративными правилами и инструкциями.

В процессе подготовки материала были проведены беседы с профессионалами в области безопасности, компьютерного права и системными администраторами. Подавляющее большинство заявляли о необходимости документального оформления правил работы пользователей с информационной системой организации.

Правильное планирование также включает в себя решение финансовых вопросов. Необходимо провести оценку затрат на легализацию существующей информационной системы, стоимость внедрения новой, оценить стоимость владения в обозримом будущем.

Любой проект, в том числе проект миграции, может столкнуться с недооценкой человеческого фактора. Естественно, потребуется применение методов управления человеческими ресурсами. Большинство известных автору системных администраторов и ИТ менеджеров не являются специалистами в областях управления персоналом или финансов. Подобную комплексную задачу невозможно решить силами одного ИТ-департамента.

Первой задачей на пути к миграции на новую, целевую систему является создание рабочей группы планирования миграции. Данная группа ответственна за проведение миграции и, следовательно, должна обладать достаточно широкими полномочиями.

Целью проекта является построение экономически оправданной ИТ-инфраструктуры. Хорошим кандидатом на должность руководителя рабочей группы будет топ-менеджер предприятия или организации, к примеру – финансовый директор. Естественно, в данную группу входит начальник ИТ-департамента, который владеет видением всей ИТ-инфраструктуры как на данный момент, так и в перспективе. В составе группы обязателен опытный системный администратор, желательно с опытом эксплуатации свободного ПО. Размер группы невозможно оценить – в некоторых случаях привлекаются при необходимости иные сотрудники фирмы. Возможно привлечение стороннего консультанта с опытом, или – специализирующейся на подобных решениях фирмы. Результатом работы данной группы является развернутый план миграции с оценкой стоимости миграции. Либо – пояснения неэффективности миграции на свободные решения для организации.

исследование (что есть)

Первым этапом должен быть аудит – описание существующей (унаследованной) системы.

Не секрет, что, при годами применявшейся "авральной" информатизации без учета окупаемости затрачиваемых на ПО средств результатом являлись, как правило, не только экономически, но и технологически несбалансированные системы. Аудит программного обеспечения предприятия представляет собой ревизию установленных программ, определение соответствия их требованиям бизнеса.

Результатом процесса аудита являются:

Описание технических характеристик установленного ПО;

Список выявленных рисков, связанных с использованием нелицензионного ПО;

Подсчет стоимости приобретения лицензий на установленное ПО;

Подсчет стоимости удаления нелицензионного и установки лицензионного ПО;

Определение целесообразности дальнейшего использования ПО;

Список выявленных рисков, связанных с использованием ПО;

инвентаризация ПО

Некоторые исследования показывают, что большинство руководителей организаций большее внимание уделяют функциональности используемого ПО и гораздо меньше – соблюдению прав на используемые продукты.

К сожалению, в большинстве организаций отсутствует ИТ-культура. Иногда даже представители ИТ-службы толком не знают, что и где установлено на компьютерах у работников, а рядовые сотрудники самостоятельно решают и устанавливают программные продукты, полученные из сомнительных источников.

Инвентаризация ПО позволяет выявить нелицензионное ПО в организации. Следует подчеркнуть, что данное мероприятие всегда выгодно. Результатом инвентаризации можно воспользоваться для оценки затрат на легализацию ПО как с использованием свободного, так и с использованием несвободного ПО.

Руководители организаций часто заинтересованы в четком финансовом планировании затрат на использование и развитие программного обеспечения. Заинтересованность топ-менеджеров в такой подобной детализации вполне понятна – топ-менеджмент компаний заинтересован в превращении ПО в актив компаний, который учитывается, контролируется и развивается аналогично другим видам активов.

Аудит ПО – процедура, занимающая, как правило, достаточно много времени, требующая на этапе анализа информации высокой квалификации персонала и знание различной специфической информации. Рекомендацией может быть обращение в специализирующуюся на данных услугах фирму. Тем не менее, вполне возможно провести аудит силами ИТ департамента.

В некоторых организациях неудобно (зачастую – невозможно) проводить единовременно крупномасштабную инвентаризацию ПО. Причинами могут быть размеры организации либо политика безопасности. Необходимо найти компромисс между эффективностью инвентаризации и факторами, усложняющими подобный процесс.

Можно рассмотреть два варианта проведения аудита. Первый вариант – полный аудит, про котором производится исследование всех вычислительных средств, локальной сети и переферии. Достоинство данного метода – высокая точность, недостаток – большая стоимость, высокие затраты времени и неудобство для пользователей. Дополнительными достоинствами данного метода является возможность выявить самостоятельно установленное пользователями ПО и изучить требования пользователей к ПО на их рабочих местах, используя специально подготовленные анкеты. Второй вариант – аудит некоторых типичных вычислительных средств, локальной сети и переферии. При этом выбор объектов аудита диктуется, как правило, функциональными обязанностями пользователей. Такой метод аппроксимации значительно удешевляет стоимость инвентаризации, но обладает большой погрешностью.

Небольшие организации могут провести аудит вручную, и внести сведения о компьютерах и серверах, а также об установленном на них программном обеспечении, в электронную простую таблицу. При этом следует указать наличие или отсутствие необходимых лицензий, сертификатов подлинности и авторских договором для каждого из найденного программного продукта.

Для средних и крупных можно рекомендовать использование специализированного ПО или пригласить стороннюю организацию, специализирующуюся на подобных услугах. В процессе создания документа были проведены работы по обзору средств автоматической инвентаризации программного и аппаратного обеспечения (известны программы GASP, PC inventory, MSIA). Рекомендацией может стать eXponent Navigator (http://www.e-x.ru/pages/expnav.html), производства eXponent.

Exponent Navigator

Продукт предназначен для ревизии оборудования и программного обеспечения по сети. Сведения о компьютерах включают в себя данные о комплектующих (процессор, материнская плата, винчестеры, модули памяти, видео-карта, сетевые карты, принтера и другие устройства), операционной системе, драйверах и программном обеспечении.

По утверждению создателей программы, после организации автоматического сбора сведений о компьютерах есть возможность просматривать и упорядочивать эту информацию, подготавливать печатные отчеты и веб-публикации, выгружать данные в Microsoft Excel, XML и другие форматы. Возможности:

Автоматическая диагностика конфигурации компьютеров;

Автоматический сбор информации о компьютерах по сети;

Определение установленного оборудования;

Определение установленных программ;

Определение файловых характеристик;

Расширенные возможности сортировки, поиска и отбора данных;

Подготовка печатных отчетов;

Экспорт данных в MS Excel;

Автоматическая генерация веб-публикаций.

В бесплатном варианте программы существует ограничение – учет до 25 компьютеров; стоимость лицензии составляет $1 за 1 компьютер.

проектируем (что хотим)

Обработанные результаты исследования существующей системы являются основанием для моделирования новой, целевой системы. Этот вопрос черезвычайно важен и сложен. Усложняет рассмотрение данного вопроса и исторически сложившийся недостаток знакомства со свободным ПО, в частности Linux, большинства ИТ менеджеров и системных администраторов.

Существует масса литературы, в том числе русскоязычной, о Linux, в которой описано преимущество этой платформы с технологической точки зрения. Однако, все эти преимущества имеют значение вместе с главным вопросом – существованием широкого спектра прикладного ПО разного направления. Достаточно давно и широко распространен миф о том, что под платформу Linux существует ограниченное количество прикладного программного обеспечения для корпоративного пользования, в том числе офисной автоматизации. В подавляющем большинстве эти мифы создаются и подпитываются создателями и продавцами проприетарного ПО и имеют мало общего с действительностью. Развенчание данного мифа не является главной целью данной книги. Тем не менее, стоит заметить, что, к примеру, широта прикладного ПО является абсолютным фантомом с учетом сложившихся исторически стандартов на обмен документов. Так, к примеру, фактическим стандартом офисного редактора является Microsoft Office, редактором растровой графики – Adobe Photosop, а в качестве векторной графики черезвычайно распространен Corel Draw.

Еще одним вопросом является, зачастую, избыточная функциональность проприетарных продуктов, продиктованная не потребностями рынка, а мнением маркетологов. И за эту избыточную функциональность пользователь выплачивает достаточно большие деньги: стоимость лицензии на право использования программ, повышающуюся сложность эксплуатации и повышенные требования к аппаратному обеспечению.

В последнее время ситуация изменяется – появляется масса информации, посвященной прикладному применению Linux. Вероятно, наилучшим материалом будет данный документ:-), в котором планируется осветить множество административных и технических вопросов.

Однако, в данный момент документ только создается и информацию можно найти в разных источниках. Невозможно пройти мимо материалов Valery V. Kachurov, Несов Артем “Аналоги Windows-программ в Linux – таблица соответствий.” (http://linuxshop.ru/linuxbegin/win-lin-soft/). Этот ресурс содержит массу ценной информации. К сожалению авторы, кажется, забросили этот труд. Данный раздел сайта регулярно недоступен, но копию таблицы можно найти по адресу http://www.blif.net/modules.php?name=LinWin. Можно посоветовать ресурсы Open Source Applications Foundation
(http://www.osafoundation.org/), особенно http://www.osafoundation.org/desktop-linux-overview.pdf.

Результатом являются:

Создания прототипа рабочих станций;

Подсчет стоимости лицензий на предлагаемое ПО;

Обучения пользователей;

Создание примерного календарного плана внедрения;

Список рисков при внедрении свободного ПО;

Поддержки свободных решений;

Подсчет экономической эффективности новой системы на срок до пяти лет.

пилотный проект (проверка боем)

Из-за большого количества факторов в унаследованной системе, большого числа пользователей, на которых потенциально воздействует миграция, рекомендуется экспериментальное выполнение миграции в маленьком масштабе – пилотный проект. Этот этап необходим для проверки и корректировки планов миграции и прототипа новой системы. Именно пилотный проект является основой для принятия решения о внедрении новой информационной системы на базе СПО. Второй ценностью пилотного проекта является возможность информировать пользователей о новой системе, получить обратную связь с пользователями. Третьим аргументом в пользу пилотного проекта будет возможность экспериментальным путем определить более точно стоимость проекта.

При выборе объекта испытаний необходимо найти золотою середину. Во-первых, выбранный объект должен предоставить достоверные данные для оценки. Во-вторых, проведение пилотного проекта не должно оказывать критическое влияние на ведение бизнеса.

На данном этапе также производится обучение системных администраторов и конечных пользователей: предоставляются прототип методических материалов, документация, ресурсы в сети Интернет. Рекомендуется пользователей, которые участвуют в пилотном проекте «разгрузить» и дать возможность часть времени использовать на освоение новой системы.

Экспериментальный этап особенно востребован:

Если не была доказана возможность миграции пользователей от унаследованной системы к новой системе;

Если есть пользовательский скептицизм, который будет способен затормозить процесс миграции;

Организация испытывает недостаток корпоративной культуры (что, к сожалению распространено на территории СНГ);

Если есть ограниченные ресурсы для крупномасштабной миграции;

Организация большая, и в экспериментальный проект не вовлечено много пользователей;

Если унаследованные проприетарные системы стремительно эволюционировали как в - техническом плане, так и в снижении стоимости;

Не выяснен полностью экономический эффект миграции.

Чтобы преуспеть, пилотный проект:

Не должен относиться к критическому участку бизнеса;

Должен быть достаточно важен для бизнеса;

Не должен требовать черезмерного ресурса людей, которые уже ограничены во времени;

Должен иметь существенную группу поддержки;

Должна быть обеспечена обратная связь с пользователями (системы Help Desk);

Не должен быть в сфере иных ограниченный (к примеру, важный для бизнеса период).

В зависимости от величины организации, возможны одна или более экспериментальных стадий, позволяющих точнее определить строки и стоимость миграции на свободное. Важно оценить его результаты и определять, являются ли видение и цели практическими или они должны быть изменены или возможно даже оставлены. Данные от этих пилотных проектов должны быть использованы для корректировки планов и подсчета окончательно стоимости. В процессе эксперимента необходимо уточнить вопросы:

Описание прототипа рабочих станций;

Описание специфических настроек пользователя:

Средние затраты на развертывание типов станций;

Переноса данных из наследованной системы в новую;

Обучения пользователей;

Подсчет стоимости внедрения ПО;

Поддержки свободных решений.

планирование (что и как)

1. Создание плана миграции. План миграции должен отвечать на вопросы:

Описание фаз построения системы;

Определение потребностей поддержки;

Описание завершения миграции.

Фактически, производится окончательный выбор, как будет происходить миграция. Утверждается смета затрат на миграцию.

2. Описание фаз построения системы. Должна быть сделана оценка фаз построения системы, которые лучше всего поддерживают приоритеты пользовательских потребности.

План должен отвечать на следующий вопросов:

В какой степени и какими этапами система должна быть установлена и развернута, чтобы максимально удовлетворять потребностям пользователей?

Что необходимо для каждой фазы миграции на новую систему от клиентов организации и пользователей системы?

Каково будет воздействие и риск использования системы на каждом этапе приращения?

Этапы развертывания системы должны быть четко обозначены в плане мигрирования; клиенты, разработчики, и пользователи должны быть ознакомлены. Оценки рисков должны быть выполнены перед завершением плана построения системы. Необходимо убедиться, что оценки планирования разумны, подход хорошо задуман в соответствии с приоритетами организации, и потенциальное воздействие на клиентов и пользователей приемлемо.

3. Определение потребностей поддержки. Нужно обеспечить оптимальный уровень поддержки, чтобы помочь пользователям в использовании новой системы. Кроме того, пользователи часто требуют, чтобы служба поддержки помогла им понять общие способности(возможности) целевой системы.

Вопросы, которые необходимо решить, включают:

Какого обучения и помощи в эксплуатации пользователи будут требовать?

Каков общий уровень поддержки миграции, которая будет требоваться пользователям, чтобы гарантировать успешную миграцию?

Как достигнуть принятия целевой системы пользователями и избежать сопротивления пользователей внедрению новой системы?

Каким образом будут сообщаться клиентам и пользователям неизбежные изменения в особенностях систем и услугах?

Возможна ли поддержка свободного решения ИТ подразделением организации или лучшим вариантом будет аутсорсинг?

План миграции должен сосредоточиться на решении этих вопросов, планируя поддержку пользователей в областях:

Система сообщения неприятностей;

Службы технической помощи для новых систем;

Техническая помощь пользователям, мигрирующим к новым системы;

Руководства пользователей на переходной и последующий периоды;

Обучение для пользователей в изучении и приспосабливании к новой системе, к выполнению тех же самых типов задач;

Возможность испытания использования новых систем;

Демонстраций использования новых систем, чтобы показать существующим пользователям унаследованных систем, как новая система работает и как они могут исполнять сопоставимые задачи;

Преодоления текущих эксплуатационных проблем.

На этапе обучения пользователей уделите особое внимание тем, кто является приверженцем старой системы и/или противником новых систем.

4. Описание завершения миграции. После окончания каждой новой фазы развертывания и обучения, разработчики и внедренцы должны гарантировать, что пользователи максимально комфортно мигрируют к новой целевой системе. План миграции должен предусмотреть, чтобы ускорить усилие миграции и к удалению унаследованной системы как только возможно.

Необходимо предусмотреть дополнительное усилие, которое может быть необходимо для "последних адептов" и других пользователей, кто испытывают непредвиденные проблемы. Другой аспект этой деятельности оценивает время и стоимость, чтобы закончить переход всех пользователей к новой системе и к удалить старые системы, построенные на нелицензионном проприетарном ПО.

Руководство организации, разработчики и внедренцы должны рассмотреть включение нескольких подходов, чтобы помогать мигрировать пользователям унаследованных систем:

Сообщать каждой группе пользователей, как и когда они должны совершать перенос своих задач на новые системы, каким образом изменяется рабочая нагрузка на период миграции с унаследованных систем;

Установить стимулы к действиям полностью перейти на новую свободную систему и устранить зависимости от унаследованных систем;

Предусмотреть помощь (программное обеспечение и дополнительный персонал) для преобразования унаследованных данных в новую систему; - порядок вывода из эксплуатации унаследованных систем;

Архивирование данных унаследованных систем и их хранение.

миграция (делаем)

Все, что остается на последнем этапе – работать согласно плану.

Активно управляйте и контролируйте процессы миграции:

Установите критерии измерения и отслеживайте этапы миграции и затраты ресурсов на миграцию;

Делайте периодические обзоры ситуации и ознакомливайте с ними, согласно полномочий и организационной политикой, заинтересованных людей (руководство, менеджеров проектов и спонсором);

Устанавливайте систему отслеживания (tracking), чтобы управлять продвижением процессов (прогрессом), проблемами, решениями, и другими деловыми вопросами, которые относятся к планированию миграции и выполнению планов.

Вадим Машков, UA-FOSS, [email protected]

Перенос данных - это перемещение хранимой цифровой информации между компьютерами, системами или форматами. Перенос данных происходит по ряду причин, включая замену или обслуживание сервера, изменение центров обработки данных, проекты консолидации данных и обновление системы. Так как большая часть корпоративных знаний и бизнес-аналитики компании содержится в ее данных, любой проект миграции данных должен быть тщательно выполнен, чтобы минимизировать риски.

РАЗГРУЗКА «Миграция данных»

Перенос данных представляет собой значительный риск непрерывности бизнеса, если он выполнен неправильно. Потеря данных, конечно, является худшим сценарием, но компании также должны иметь дело со временем простоя, проблемами совместимости и общей проблемой производительности системы. Перенос данных затрудняется из-за большого количества данных, различных форматов данных и различий в данных в корпорациях.

Чтобы свести к минимуму риски миграции данных, компании создают подробные политики переноса данных, которые по мере необходимости приостанавливают резервное копирование, порядок перемещения и параллельные среды данных. Если компания не может запускать среду предварительной миграции при подготовке новой среды, тогда будет значительное время простоя, так как бизнес-операции над текущими приложениями приостанавливаются, чтобы разрешить миграцию данных. Этот тип переноса остановки, переноса и запуска может потребоваться при переходе на новые платформы или при наличии жестких ограничений на физическое хранение, а для существующей технологии хранения требуются свопы или исправления.

Миграция данных с нулевым временем простоя

Модель миграции с нулевым временем простоя зависит от наличия достаточного количества хранилища для создания и запуска двух полных сред. Полная копия данных компании берется в новую среду и проверяется, пока сотрудники остаются в старой среде. Ошибки разрабатываются из новой системы, гарантируя, что все приложения все еще работают, и все там, где должно быть. По завершении тестирования появляется новая копия, и все сотрудники переходят на новую среду. Старая среда данных иногда остается открытой в течение нескольких месяцев, чтобы сотрудники могли получать файлы из старой системы данных, но не записывали новые данные на эти серверы. Во всех миграциях данных выполняется проверка данных после миграции для проверки потери данных.

Одна вещь, которая может улучшить миграцию данных, заключается в очистке и стандартизации практики данных до миграции. Организация данных компании часто является отражением различных привычек в подаче своих людей. Два человека с одинаковой ролью могут использовать совершенно разные методы. Например, сохранение контрактов по поставщику в одном случае, а также в течение финансового года и месяца в другом. Унификация методов данных может быть гораздо более важной задачей, чем фактическая миграция данных, но чистые, когерентно организованные данные, подкрепленные четкими политиками, помогают будущим доказательствам данных компании для многих миграций еще впереди.

Loading...Loading...