Как настроить смартфоны и ПК. Информационный портал

Веб-хостинг: полезные советы. Мобильные приложения требуют хостинга

Каковы самые частые сценарии использования вашего Android-устройства? Просмотр фильмов в метро по пути на работу? Лайки друзьям и чекины в ресторанах? Чтение новостей по утрам и проверка Twitter-Ленты? Или, может, быть свежие игрушки на лекциях и совещаниях? Чтение книг? Бесконечные селфи? Ах да, музыку ещё можно слушать, картами пользоваться и навигацией, даже иногда составлять какие-то электронные документы, обмениваться сообщениями как смс, так и в различных мессенджерах. Ну и, разумеется, звонить.

А у вас никогда не возникало мысли о том, чтобы использовать своего зелёного робота в качестве веб-сервера для собственного сайта или блога? Согласен, идея странная. Но для разнообразия, дабы показать, что можно сделать в рамках Android, попробуем решить эту задачу.

Ребята с AndroidGuys нашли все необходимые инструменты для этого и написали небольшую инструкцию.

Для начала нужно скачать и установить приложение KSWEB . Приложение даёт 6-дневный триальный. Этого хватит, чтобы наиграться. Либо же, если идея вдруг настолько приживётся, что потребует продолжения, придётся заплатить 2,99 доллара за полную версию программы. Из альтернатив можно обратить внимание на My FTP Server и Pixel Media Server . Мы же остановимся на KSWEB.

После запуска пройдите в мобильном бразуере по адресу "localhost:8080" (без кавычек). Работает!

Чтобы сделать наш сервер видимым через веб, придётся зайти в админ-панель домашнего роутера и создать статичный ip-адрес для нашего Android-устройства.

Затем отправляемся в настройки Wi-Fi на Android-девайсе. Долгим тапом по названию домашней сети открываем контекстное меню, где выбираем "Modify Network", а затем идём в продвинутые настройки. Значение "IP settings" выставляем - "Static". IP-адрес вводим тот, что указали статичным в роутере.

Затем у Google можно спросить "What is my IP", чтобы по нему можно было пробиться на сайт, размещённый на вашем устройстве. Вуаля! Всё работает. Теперь можно провести перенаправление портов для ftp, установить FTP Server и залить файлы на устройство.

Обратная сторона мобильных клиентов - сервер.

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

Команда
Состав проектной команды для разработки системы в идеале может быть следующим:
менеджер проекта: управляет, контролирует проект, напрямую взаимодействует с заказчиком;
разработчик серверного приложения: разрабатывает сервер бизнес логики, базу данных, сетевой протокол;
разработчик приложения администратора: разрабатывает Web приложение, пользовательский интерфейс для настройки и управления серверным приложением;
разработчик клиентского приложения для Android;
разработчик клиентского приложения для iOS;
разработчик клиентского приложения для …
тестировщик: тестирует приложение администратора и клиентские приложения.

Внимательный читатель заметит, что в случае написания серверного приложения с графическим интерфейсом, например, на HTML5, можно сэкономить. В этом случае не требуется разработка клиентских приложений – интерфейс пользователя предоставляет браузер. Данная статья не рассматривает такой случай, идет речь о разработке ”родных” (native) приложений для мобильных устройств.

Мне доводилось работать в команде с полным составом, но будет реалистами – не всегда человеческие ресурсы и бюджет позволяет собрать такую команду. И иногда роли приходится совмещать: менеджер проекта + разработчик серверного приложения, разработчик клиентского приложения + тестировщик.

Технологии, инструменты, библиотеки
Для разработки сервера мобильных клиентов обычно использую следующий стек “свободных” технологий:
Apache Tomcat – контейнер сервлетов;
MySQL – СУБД;
Subversion – система версионного контроля;
Maven – фреймворк для автоматизации сборки проектов;
JUnit – обеспечит эффективность автоматического тестирования приложений ;
Apache Log4j – библиотека логгирования;
Jenkins – система непрерывной интеграции;
Hibernate – ORM (настройки, конфигурация в properties, xml файлах и в аннотациях);
hibernate-generic-dao – реализация DAO от Google, реализует основные методы для работы с данными базы данных, упрощает реализацию фильтрации и сортировки в методах;
– реализация аутентификации и авторизации (security), контейнер сервисов и бинов (конфигурация в xml файлах и в аннотациях), используем также при создании тестов.

В зависимости от специфики системы и требований к ней использую один из 2-ух вариантов реализации протокола обмена данными.
Когда требуются кроссплатформенность, быстродействие, простота, эффективность, масштабируемость, открытое API, то беру Jersey – реализацию Web-сервисов REST (RESTful Web services). Эта библиотека позволяет использовать сериализацию данных в формате JSON или(и) XML. Конфигурация REST ведется посредством аннотаций. Для обмена с мобильными устройствами взят формат JSON по причине того, что имеет более простую реализацию на стороне клиента (по этой причине не используем “классические” Web-сервисы), генерируется меньший объем трафика. Jersey позволяет настроиться на наиболее подходящий “вид” JSON.
В ином случае, если необходимы кроссплатформенность, высокое быстродействие, простота, эффективность, интерактивность, то беру
Apache MINA – framework для создания сетевых приложений,
Google protobuf – библиотека кодирования и декодирования структурированных данных. Структура данных определяется заголовочными файлами *.proto, компилятор генерирует из них Java классы (также есть возможность генерации для других языков программирования: C++, Objective-C и т. д., что обеспечивает свойство кроссплатформенности);
java.util.concurrent – используем стандартный пакет.
Данный вариант может масшабироваться, но на это требуется закладываться на этапе проектирования на уровне архитектуры, учитывая бизнес логику.

Рассмотрим гипотетическую задачу на примере выбора технологий для реального SaaS сервиса – “Аукцион услуг “Аукнем” , который позволяет людям сформировать заказ на выполнение требуемых услуг или работ, а организациям в свою очередь оставить для них свои предложения. Берем все базовые требования по умолчанию. Ввиду того, что регистрация в этой системе свободная и бесплатная, то однозначно к ним требуется добавить масштабируемость. А что на счет интерактивности? Было бы здорово сообщать подрядчикам (исполнителям) о создании новых заказов, а заказчиков информировать о поступивших предложениях в тот же миг в приложении, а не только по электронной почте. На основания этого возьмем для реализации Apache MINA, Google protobuf. Смотрим следующее свойство - открытое API. Сервис общедоступный, потому предположим, что внешние разработчики могут проявить интерес к интеграции с ним. Постойте! Не все так просто. Протокол на базе Apache MINA достаточно сильно зависит от реализации и интеграция без знания нюансов отнюдь не прозрачна. В такой ситуации придется взвесить, какой фактор важнее и сделать выбор.

Заключение
Мне интересно было бы узнать, а какие Вы использовали технологии, библиотеки при разработке сервера мобильных устройств или подобных систем? Все меняется, ничто не вечно, на каждом уровне имеются альтернативы со своими преимуществами и недостатками: MySQL -

Аудитория мобильного Интернета с каждым годом становится все больше. Многие эксперты прогнозируют, что через несколько лет большинство пользователей будут выходить в сеть с помощью смартфонов или планшетов. По данным РАЭК, в России уже сейчас аудитория мобильного Интернета составляет около 40% от общего количества пользователей сети.

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

В магазины мобильного контента для двух крупнейших мобильных платформ Android и iOS загружено уже более 1,3 миллиона приложений. В общей сложности пользователи скачали более 50 миллиардов приложений из этих сторов.
Как и веб-версиям сервисов, мобильным приложениям также требуется хостинг. Принципиально хостинг для мобильных приложений ничем не отличается от “немобильного” хостинга, ровно, как и для приложений справедливы общие принципы устройства современных программ. Как любая прикладная программа, мобильное приложение может быть ориентировано на независимый запуск на планшете/смартфоне пользователя или быть звеном в цепочке “клиент-сервер” (именно в этом случае приложению понадобится хостинг).

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

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

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

Третий вид — shared-хостинг (виртуальный хостинг). В этом случае клиент получает фиксированную часть ресурсов сервера, который был заранее настроен определенным образом. При этом на нем уже предустановлен стандартный набор программ-серверов (web, почта, доступ к базе данных, FTP/SSH). Стоимость shared-хостинга значительно меньше выделенного сервера. Он подойдет для небольших, несложных приложений. И выдержит несколько тысяч обращений в сутки. Кроме того, в отличие от dedicated или VDS, такой вид хостинга не потребует серьёзной технической настройки. Представители хостинговой компании все сделают за вас: помогут с выбором оптимального тарифа, подскажут алгоритм работы с ним, помогут осуществить начальные настройки.

Ознакомиться с тарифами можно на специальной странице http://www.hoster.ru/tarifs . Достаточно зарегистрироваться: http://www.hoster.ru/reg и начать тестирование выбранного тарифа виртуального хостинга.

Хостинг как вид услуг развивался вместе с Web и всегда был наиболее широко востребован именно для размещения веб-сайтов в ЦОД провайдеров.

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

Термины VDS (Virtual Dedicated Server) или VPS (Virtual Private Server), обозначающие виртуальный выделенный сервер, функционирующий на физическом, появились почти десятилетие назад.

В последующие годы VDS /VPS как вид хостинговых услуг эволюционировал вместе с программными средствами виртуализации и сегодня предоставляет пользователям широкие возможности гибкого выделения ресурсов и изменения параметров виртуального сервера, выбора программных платформ и инструментов, включая средства аналитики и защиты от DDoS-атак. Виртуальный выделенный сервер может поддерживать требуемое количество сайтов, баз данных, доменных зон и пр. Ряд провайдеров предлагают (Solid State Drive).

Каждому – по потребностям

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

▍Какой тип сайта планируется создать?

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


Примеры веб-сайтов: статический (HTML), веб-приложения, система управления контентом.

▍Каковы технические требования сайта?

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

▍Какой необходим уровень безопасности?

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

▍Требуется ли хостинг электронной почты?

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

▍Сколько конкретно сайтов вы планируете создать?

Если их несколько, то можно ли отвести каждому поддомен типа myothersite.mydomain.ru, или необходим домен верхнего уровня вида myothersite.ru? Есть ли у этих сайтов дополнительные требования, например, нужны ли для них базы данных?

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

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

▍Какой ожидается начальный трафик?

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

▍Какой трафик ожидается в будущем?

Ожидаете ли вы в перспективе значительного роста трафика? Если да, то нужно заранее планировать увеличение емкости и пропускной способности.

▍Какой у вас бюджет на хостинг?

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

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


В числе популярных автономных систем электронной коммерции - Magento, Prestashop, Opencart, Shopify, ZenCart.

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

▍Ghost

несколько отличается от вышеперечисленных систем. В серверной части она использует Node.js на базе JavaScript. Лучшие варианты для Ghost - это хостинг вашего сайта с управляемым вами самостоятельно сервисом Ghost(Pro) или хостинг и управление с помощью такого сервиса как дроплет Digital Ocean.

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

▍Безопасность

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

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

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

Некоторые провайдеры предлагают средство IP Deny. Оно позволяет вам запретить доступ к своему сайту с конкретных IP. Это очень удобный инструмент против хакеров и спамеров.

▍Резервное копирование

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

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

▍Электронная почта

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

▍Емкость для хранения данных и полоса пропускания сети

Естественно, эти требования зависят от объема хранимых данных и ожидаемого трафика. У текстового сайта проблем с объемом данных обычно не возникает. Другое дело – фото и видео.

К примеру, у вас галерея из 10 изображений по 200 Кбайт каждое, общим объемом 2 Мбайта. Если эту галерею просматривают 100 человек, то по сети передается 200 Мбайт. Если 1000 человек, то 2 Гбайта. Вообще говоря, большинство сайтов будет отлично работать с пропускной способностью типичного хостинга. Однако, если у вас особенно большое количество данных, и вы знаете, что будет большой трафик, то нужно точно выяснить, какую полосу пропускания вам выделили, и не превысите ли вы ее, и как перейти на другой тарифный план в случае роста трафика и объема данных без простоя сайта.

▍Дополнительные домены

Хостинг-провайдер дает вам IP-адрес вида 173.194.68.102, однако запоминать такие адреса трудно, поэтому используются доменные имена. Сколько сайтов вы собираетесь разместить у провайдера? Во многих случаях пакет начального уровня предполагает создание одного сайта, получающего доменное имя. Но большинство поставщиков услуг хостинга допускают неограниченное использование поддоменов вида mysubsite.mydomain.com. Если же для создания нескольких сайтов такой вариант вас не устраивает, и нужны домены верхнего уровня, то потребуется соответствующий тарифный план.

▍Базы данных

При создании нескольких сайтов, скорее всего, вам также понадобится несколько баз данных. Как и в случае с доменами, для тарифного плана начального уровня обычно разрешена только одна база данных. Убедитесь, что ваш тарифный план предусматривает достаточное количество баз данных, но при необходимости позже можно будет перейти на другой тарифный план. Как мы говорили ранее, наиболее распространенным типом баз данных, используемых CMS и сайтами электронной коммерции, является MySQL. Однако также может потребоваться MS SQL Server , PostgreSQL или SQlite. Определитесь с нужным вам типом базы данных и убедитесь, что хостинг-провайдер ее поддерживает.

▍Управляемый хостинг

О видах хостинга мы , поэтому подробно на них останавливаться не будем. Отметим лишь, что при самостоятельном управлении сайтом WordPress или сайтом электронной коммерции на вас лежит ответственность за инсталляцию сайта и его обновление, защиту сайта от хакеров и вредоносных программ, создание резервных копий, блокирование спама и атак, создание CDN (Content Delivery Network), если она используется, а также за регистрацию пользователей и защиту их персональных данных, обработку и защиту данных банковских карт и пр.


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

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

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

  1. Разумная цена. Это кажется очевидным, но не лишним будет сравнить предложения и посмотреть, что именно хостинг-провайдер включает в свои пакеты.
  2. Дружественная к пользователю , такая, например, как cPanel или ISPmanager, по которым есть многочисленные онлайновые руководства и блоги.
  3. Если на вашем виртуальном сервере работает команда сотрудников, и вам необходимы несколько одновременных подключений к VDS (более двух), то можно воспользоваться арендой лицензий RDS CAL .
  4. Грамотная и отзывчивая поддержка в режиме 24*7. Хорошо, если есть разные способы контакта – телефон, почта, сайт и пр.
  5. Надежная и бесперебойная работа серверов. Обычно достаточен уровень надежности 99,5%, но иногда требуется 99,9%. Предпочтительнее гарантия, а не просто слова. Работу своего сайта можно отслеживать с помощью инструмента Uptime Robot или Pingdom.
  6. Механизм оплаты должен быть гибким и комфортным для вас, например, это может быть годовая подписка или ежемесячные выплаты.
  7. Для сайтов электронной коммерции – SSH-доступ и сертификаты SSL.
  8. Возможности роста. Возможен ли апгрейд для VPS или выделенного сервера? Можно ли поменять вид хостинга без переноса всего сайта?
Сервисы VDS/VPS получили широкое распространение и пользуются спросом со стороны тех владельцев сайтов, которым возможностей виртуального хостинга уже не хватает, а выделенного физического сервера не требуется. Наряду с невысокой стоимостью и удобным управлением VPS привлекает простой масштабируемостью: вычислительные ресурсы, память или емкость хранения добавляются без проблем. VPS часто используется небольшими компаниями для размещения сайтов, разработки и тестирования программного обеспечения и развертывания систем управления контентом.
  • Dedicated
  • Cloud
  • Managed
  • Добавить метки

    Лучшие статьи по теме