По технологии проекта миграции веб-сайта

Подробнее

Размер

31.30K

Добавлен

29.12.2020

Скачиваний

9

Добавил

Максим
5+
Текстовая версия:

Эссе «По технологии проекта миграции веб-сайта»

Требования к разработке веб-архитектуры

Что касается архитектуры приложения, то на нее влияет большое количество факторов. Для успешной реализации проекта переезда объекта необходимо сконцентрировать усилия на формировании требований и планировании проекта. Кроме того, большое значение имеет общение с клиентами и определение их потребностей. Планирование предполагает разумную оценку идей относительно создаваемой системы, что избавляет от необходимости тратить деньги на создание неправильной системы. Иногда пользователи четко не знают, что они хотят получить; поэтому требуются дополнительные усилия для определения их требований. Тем не менее, это дешевле, чем создавать что-то ненужное, хоронить результаты и начинать все сначала (McConnell, 2004). В данной статье рассматриваются все детали, которые необходимо учитывать при переносе существующего веб-сайта из внешнего размещенного решения во внутреннее.

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

Требования к передаче веб-приложений с минимальным временем простоя

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

Требования к внедрению решения для аварийного восстановления данных

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

Чтобы повысить устойчивость программной системы к выходу из строя жесткого диска, неплохо использовать механизм зеркального отображения. Это подразумевает дублирование информации на двух физических дисках и запись резервной копии данных на удаленный сервер каждые 2-4 часа. Удаленный сервер может принадлежать иностранным компаниям. Затем, чтобы повысить безопасность, можно применить шифрование. Необходимо выбрать такой алгоритм шифрования, который подходит для больших объемов данных и обеспечивает криптоустойчивость.

Обоснование программного обеспечения и операционных систем

Наилучшим решением для данного программного обеспечения является комплексное серверное программное обеспечение LAMP, в частности Linux, Apache, MySQL и PHP. Преимущества этого выбора заключаются в том, что все эти программные продукты распространяются как программное обеспечение с открытым исходным кодом, которое является бесплатным. Кроме того, поскольку работа на сайте для электронных покупок не является чем-то инновационным, существует множество готовых решений и фреймворков для этой задачи. Если говорить о языке программирования PHP, то набор библиотек, модулей, задач и фреймворков для электронной коммерции является одним из самых широких возможностей. Поскольку время, затрачиваемое на разработку программ скриптового языка с динамической типизацией, на порядок меньше, чем строго типизированные языки, мы также получаем дополнительный прирост производительности при разработке приложения (McConnell, 2004).

Система, основанная на PHP, обладает высокой производительностью. На серверах, использующих PHP сервис, около миллиона адресов в день. Если применять комбинации взаимодействующих серверов, производительность становится практически неограниченной. Компания Zend Technologies провела многочисленные тесты, результаты которых показали более высокую производительность PHP по сравнению с конкурентами. Учитывая распространенность этого стека технологий, будет очень просто найти персонал, который будет поддерживать работоспособность этого стека программного обеспечения.

Оценка альтернатив самостоятельному размещению сайта

Одним из возможных вариантов серверного программного обеспечения является ASP.NET платформа базируется на серверах, управляемых операционной системой Windows. Этот вариант имеет такие положительные черты, как высокая производительность приложения и относительно легкая разработка крупных проектов со многими разработчиками. Сопровождение этого стека включено в лицензию на программное обеспечение, но довольно высоко. Нативная поддержка Microsoft SQL Server является стандартом де-факто на уровне Oracle Database, основной операцией в той или иной области бизнеса. Учитывая, что этот проект недостаточно амбициозен по количеству кода, использование этого набора программ приведет к избыточным расходам на лицензирование и посещение занятий.

Рассматривался также вариант использования технологии JSP (Java Server Pages). Хотя это решение обладает очень высокой производительностьюремя разработки приложения увеличивается. Кроме того, есть проблемы, которые возникают у клиентов с набором JVM. Кроме того, есть также случаи уязвимостей безопасности.

Хорошей альтернативой выбранным технологиям являются Ruby on Rails и Django (на базе Python), хотя готовых решений у них меньше и в настоящее время они сталкиваются с некоторыми проблемами масштабирования и производительности (Lynott, 2003).

Задачи Проекта. Диаграмма Ганта

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

Шесть основных частей проекта

Обоснование и иллюстрации архитектуры системы

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

Клиент
Пользователь подключается к серверу через веб-клиент. Пользователь из своего браузера отправляет запросы, характеризующие его действия в системе. Этот интерфейс работает на HTML5, CSS, JS.

Сервер Apache
Это программная система, которая фактически рассматривает запросы пользователей. Он требует настройки для обработки большого количества запросов и дальнейшего масштабирования. Apache server вызывает интерпретатор PHP для выполнения реальных PHP-скриптов.

PHP переводчик
Интерпретатор PHP выполняет кодовую систему.

MySQL
Система Управления Базами Данных. Настройки-выделение отдельным пользователям минимально необходимых привилегий повысит устойчивость системы к взлому. Необходимо вести настройки для большого количества запросов.

База данных
Собственно, это база данных, в которой будут храниться данные и системные настройки.

Крон
Операционная система System utility. Выполняет программу по определенному расписанию. Проводите настройки производительности для резервного сценария каждые 4 часа.

Резервный Сценарий
Этот сценарий отправляет резервные копии на внешний сервер базы данных. Для реализации этого можно использовать скрипт Bash, который вписывается в параметры моего SQL.

Внешний Удаленный Сервер Хранения Данных
Он обеспечивает стабильность работы системы в непредсказуемых ситуациях и поддерживает базу данных.

Linux
Дистрибутив установленной операционной системы. Лучшим вариантом является использование Red Hat Enterprise Linux, а затем поддержка системы возлагается на внешнюю компанию. Это эффективно, но требует затрат на лицензирование. Другой вариант-использовать бесплатную посуду дистрибутива, но тогда поддержка возлагается на обслуживающий персонал.

Представьте Себе Жесткий Диск
Он часто используется в RID1. Зеркальное резервное копирование выполняется для сохранения данных на отдельных жестких дисках для их постоянной доступности, что гарантирует хранение данных.

Жесткий Диск А, Жесткий Диск Б

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

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

Продавец
Пользователь со стороны фишек Тони, который отслеживает “витрину”, добавляет и удаляет товар, меняет цену и так далее.

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

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

Приказы
Записи покупок и продаж также содержат статус операции.

Информация О Доставке
Пользователь из выпадающего списка выбирает способ доставки и изменяет стоимость заказа.

Детали Заказа
Дополнительная информация по заказу.

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

Вариант использования: книжная стопка фишек в системе.

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

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

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

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

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

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

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

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

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

Выполните Поиск Продуктов
Система поиска работает по ключевым словам. Можно выбрать определенную категорию для облегчения поиска и большей его точности.

Поддержка операций для внутреннего веб-сайта

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

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

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

Оценка эффективности работы нового объекта

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

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

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

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

Команда тестировщиков может зависеть от требований спецификации, так как необходимо собрать такие специфические данные:

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

Оценка успеха

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