Программа Bizspark от Microsoft — золотое дно для стартапов
Disclaimer. Это не рекламный пост, а рассказ о личном опыте и некоторых выводах из него; я не аффилирована Microsoft и вообще никак с этой компанией не связана.
Что такое программа Bizspark
Это программа поддержки стартапов от Microsoft (официальная информация здесь https://www.microsoft.com/ru-ru/ms-start). Поддержка заключается в том, что стартапы в течение 3 лет абсолютно бесплатно получают к доступ к программному обеспечению (от Microsoft) и большому числу облачных сервисов (на основе Azure). Основная идея, насколько я понимаю, состоит в том, чтобы дать стартапам возможность попробовать почти любые продукты и сервисы Microsoft, с тем, чтобы через три года компании, которые начали получать доход и убедились в качестве сервисов, уже могли использовать их на платной основе. За время пребывания в программе стартап получает доступ к облачным сервисам бесплатно в пределах 150 долларов в месяц (а это немало, поверьте).
Чем программа интересна стартапам
Количество доступных сервисов зашкаливает, нет смысла перечислять все их (начать стоит отсюда https://www.microsoft.com/ru-ru/ms-start/bizspark.aspx). В первую очередь я назову те конкретные преимущества, которые получает стартап по этой программе:
1. Любое (почти) программное обеспечение, когда либо выпущенное Microsoft
Это, конечно же, все (почти все) версии Visual Studio, Microsoft Office, MS SQL Server, приложение для дизайнеров (Expression), операционные системы - теперь вам ничего не нужно покупать за деньги:
2. Хостинг и облачные сервисы
Любой стартап в первую очередь интересует хостинг — это то место, где вы держите ваши сайты, будь то просто одностраничник, блог, сложное веб-приложение, сервис или API. По факту, нет никаких ограничений на технологии или языки программирования. Но “из коробки” (то есть то, что хостится самым прозрачным и удобным образом на собственных серверах Windows Azure) вы можете создать сайты написанные на:
- чистом HTML,
- Java
- .Net (например, ASP.Net MVC)
- Python
- PHP
- Node.js
Доступны сайты-заготовки, созданные с помощью Django, CakePHP, Joomla, Drupal, WordPress и многих других CMS и фреймворков.
В качестве прочих облачных сервисов могу лишь упомянуть (так как сама не использовала) облачные хранилища и бэкэнд-сервисы.
3. Виртуальные машины
Виртуальные машины, как известно, стоят достаточно дорого, но если у вас не очень строгие требования к их аппаратному обеспечению, то вы вполне, помимо своих сайтов и баз данных, которые стоят копейки, можете добавить одну или две виртуальные машины. (По ссылке калькулятор стоимости ВМ: https://azure.microsoft.com/en-us/pricing/calculator/ - добавьте сначала в список виртуальную машину, потом нажмите на ссылку и вы увидите ее параметры и результирующую стоимость). Скажем, одноядерная машина с 3,5 ГБ памяти и 50 ГБ жесткого диска обойдется вам примерно в 104 доллара в месяц (при условии постоянной эксплуатации). За дополнительные 29 долларов можно “приобрести” техподдержку 24/7.
Для чего нужна виртуальная машина? Например, ее удобно использовать, если вы хотите разместить на ней небольшую MongoDB или любую другую, базу данных которая не поддерживается “из коробки”; свои сайты, которые не поддерживаются “из коробки”; сервисы и API, которые удобно держать на отдельной машине. Я, например, организовала себе ВМ для базы MongoDB и своего веб-приложения, написанного на Node.js — второе в принципе удобнее и надежнее устанавливать как облачное приложение, но на данном этапе такое решение мне подходит больше.
Также на виртуальной машине можно установить любую (кроме Mac OS) операционную систему и использовать ее для развертывания, разработки, любых вообще нужд.
Кто может попасть в программу?
Любой стартап с доходом меньше миллиона (500 тыс. для российских стартапов) и возрастом меньше 5 лет. По условиям программы подавать заявку могут только проекты IT-направленности, которые разрабатывают собственный продукт (программу или услугу), но по факту, я думаю, возможно использовать хостинг и для не-IT проектов — то есть заявка подается, конечно, для техностартапа, но кто будет проверять, какие именно сайты вы там хостите (разумеется, речь не идет о порно или мошеннических сайтах).
Как попасть в программу?
Попасть туда очень просто. Все, что нужно сделать — это заполнить заявку (по ссылке подробная инструкция https://events.techdays.ru/files.axd?fileId=4452a9f5-393c-4f0f-8e6c-9511eaf1234b). Первый шаг для подачи заявки — создать Microsoft ID эккаунт, его можно создать и со своим емейлом. Если у вас нет своего емейла, тут же на месте можно создать адрес в домене outlook.com. В заявке надо указать свои данные, описать команду и сам проект. Очень важный момент: ваш сайт уже должен существовать хоть в каком-то виде. Если вы не укажете веб-адрес, или укажете, но по адресу будет только заглушка, то вашу заявку, скорее всего, не примут. Я не знаю, подойдет ли размещение сайта или блога на бесплатных хостингах типа Wix или WordPress, у меня нет такого опыта.
Через несколько дней вам придет ответ. Если заявку приняли, вам об этом напишут, если нет, тоже напишут — причем, насколько я помню, причина точно не указывается. Если вас не приняли, надо подать заявку еще раз. Подавать заявку с того же емейла нельзя, в этом случае, если емейлов у вас больше нет, создавайте их на outlook.com. Обычно причина отказа — нет нормального сайта или невнятное описание проекта.
Начало работы
Когда вы получите ответ с приглашением, идите сразу на сайт портала azure. У них сейчас в работе две версии портала, старая и новая. Старая мне кажется более логичной и понятное, однако она поддерживает не все сервисы, и, возможно, ее когда-нибудь закроют, поэтому имеет смысл работать с новой. Старая версия: manage.windowsazure.com, новая: portal.azure.com
Чтобы войти на портал, используйте тот емейл, с помощью которого вы подавали заявку.
Когда вы зайдете на портал, имеет смысл оглядеться
Центральную часть страницы занимает дашборд — ваши сервисы (те, которые вы там разместите), слева — меню, где вы добавляете новые сервисы или переходите к группам уже созданных. Разумеется, к этому моменту вы уже знаете, что вы хотите от программы. Ниже я коротко рассмотрю несколько кейсов (на примере своих проектов).
1. Простой сайт на HTML
1. Нажимаем “+ New”, затем выбираем “Web + Mobile”, затем “Web app”.
2. Заполняем поля. Создаем новую группу ресурсов и выбираем новую локацию для размещения (я обычно выбираю ту, что мне территориально ближе). Вы можете “пришпилить” (pin) сайт и он сразу будет виден на дашборде. Также его можно открыть через группу App services.
3. Какое-то время уйдет на создание сайта (обычно несколько минут), затем мы увидим сообщение, что сайт успешно создан. Кликните на кнопке гамбургера, вы раскрываете боковое меню, кликните на App Services — центральная часть будет содержать список ваших сайтов. Кликнем на только что созданном сайте.
Откроется страница с информацией по сайту и разными меню:
Кликните на URL сайта и вы попадете на страницу с заглушкой:
4. Теперь надо сделать деплой, допустим, у вас уже есть какие-то страницы, скрипты, графика, стили. Все это вы закидываете на новый сайт через FTP, адрес которого доступен через тот же дашборд. Кликните на невнятную кнопочку справа, чтобы скопировать его в буфер:
Левая стрелка показывает на имя пользователя для FTP эккаунта, запомним его, затем надо установить пароль для этого эккаунта. В центральной части страницы о нашем сайте кликните “Deployment credentials” - и в правой части вы увидите логин и пароль для входа. Пароль надо создать, данные сохранить (кнопка вверху).
После того, как пароль установлен, можно закидывать файлы через любой удобный FTP-клиент (я предпочитаю Filezilla). Установим соединение и увидим содержимое только что созданного сайта:
Создадим файл index.html, добавим в него простейшую разметку, загрузим на сервер и... вуаля!
Думаю, этой информации достаточно, чтобы создать сайт или сервис практически любой сложности.
Сайты, созданные на ASP.Net, удобнее публиковать прямо из Visual Studio — там для этого есть встроенный механизм, читайте здесь https://docs.microsoft.com/en-us/azure/app-service...
2. Блог на WordPress
Блог на WordPress создать очень просто, весь процесс описан здесь https://docs.microsoft.com/en-us/azure/app-service...
В двух словах - подход точно такой же, вы просто выбираете на маркетплейсе приложение на WordPress:
Сайт будет установлен на серверах Azure, что позволяет не беспокоиться о его доступности, бэкапе и так далее.
Единственная сложность (или неудобство) состоит в том, что WordPress использует MySQL для хранения данных, а для этого базу надо создавать с помощью партнерского провайдера (ClearDB), что для меня лично было не очень удобно. Выход — устанавливать не сам движок WordPress, а его билд под названием Project Nami, который делает все то же самое, но в качестве базы данных использует MS SQL Server, которая устанавливается нативно на серверах Azure. Процесс установки очень прост и описан здесь https://www.livehands.com/2016/02/create-a-scalabl...
3. Свое доменное имя
Это скорее не кейс, а насущная потребность — если вы делаете сайт или приложение для публичного доступа, то вам, конечно, надо обеспечить его видимость в интернете, для чего адрес mycoolwebsite.azurewebsites.net совсем не подходит. Последовательность действий одинаковая — что для вашего приложения, загружаемого по FTP, что для блога или другого сервиса.
Естественно, первым делом надо зарегистрировать доменное имя. Я использую сервис namecheap.com, который, несмотря на название, имеет неплохие цены, удобную панель и отличную поддержку. После этого надо создать A Record или CNAME Record. Для этого заходите в свою панель управления, выбираете домен, добавляете запись. В качестве хоста прописываете www, в качестве таргета — URL вашего сайта. Например, для моего сайта getoutdoor.io это выглядит так:
После этого идете на свою панель Azure, кликаете на свой сайт, затем выбираете раздел Custom Domains:
Кликаете Add hostname, затем в поле вводите свое доменное имя. Нажимаете кнопку Validate, чтобы зафиксировать изменения:
Выбираем тип записи (CNAME в данном случае). Если все в порядке, то внизу увидите соответствующую запись, иначе показываются ошибки, например, такая. (Ошибки обычно бывают вследствие невнимательности, но если не удается ее исправить, обратитесь к администратору вашего регистратора.)
4. Создание виртуальной машины
Чтобы создать виртуальную машину, идем в список ресурсов групп и кликаем Virtual Machines:
Затем кликаем Add, после этого справа показываются иконки, которые поначалу могут запутать - они относятся к операционной системе, устанавливаемой на виртуальную машину. Если мы хотим поставить Windows, выбираем Windows Server (я специально не выясняла, но, по-моему, кроме, серверов, никакие другие Windows OS ставить на виртуальные машины нельзя).
После этого в правой части (в блейде, как они их называют) покажется еще более запутывающий список серверов, я выбираю Windows Server 2012 R2, затем надо выбрать deployment model, выбираем Resource Manager:
После чего выбирается конфигурация в соответствии с вашими требованиями (и кошельком, см. ремарку про стоимость виртуальных машин в начале статьи).
После того, как конфигурация выбрана, происходит создание виртуальной машины, не это обычно уходит несколько минут (но может быть и дольше, скажем, полчаса).
Когда виртуальная машина создана, к ней происходит подключение по обычному удаленному доступу, для этого кликаете на свою новоиспеченую виртуальную машину и затем кликаете на кнопку Connect — на ваш компьютер будет загружен файл для удаленного доступа, при входе используют тот эккаунт, который вы создали при настройке машины.
Теперь вы можете использовать виртуальную машину на свое усмотрение, например, установить на ней MongoDB и организовать к ней доступ извне:
https://docs.microsoft.com/en-us/azure/virtual-mac...
Также можно установить приложение Node.js:
http://www.connecto.io/blog/create-a-node-js-serve...
Здесь в примерах часто используются скриншоты старой версии Azure, это не страшно, как только вы поймете суть панели управления, такие мелочи, как версия, уже не будут столько важны.
На этом все. С удовольствием отвечу на ваши вопросы — в комментариях или в личке. Всем удачной разработки!