Теперь размещать свои проекты будет еще выгоднее!



Теперь размещать свои проекты будет еще выгоднее!
Например 1 Гбит/с Вы можете приобрести за 20 000 руб/мес.

Более подробно по другим предложениям на канал можно ознакомиться на странице Выделенный канал
cloud4box.com/vydelennyj-setevoj-kanal/

Промокоды и обновленная партнерская программа



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

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



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

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

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

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

Важно: промокоды дают скидку только на VDS / VPS базовых тарифов, а так же на Облачные VDS. Использование любых промокодов при заказе Лицензий на ПО или Администрирование невозможно.

Скидка на период суммируется со скидкой по промокоду. Например: Вы сообщили свой промокод рефералу, он оформил заказ VDS на 1 год, и получит 15% скидку на срок периода, а так же Вашу 10% скидку по промокоду, итого — 25%.

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

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

Команда облачного хостинга MEMVDS.com
memvds.com

Представляем нашу новую локацию



Представляем нашу новую локацию – запущена и работает новая площадка в Праге, столице Чешской Республики. EU4.PRG, именно так называется наш новый датацентр, имеет стратегически выгодное местоположение в Центральной Европе – это означает, что ресурсы, расположенные в Праге, имеют отличные показатели по связности как с крупнейшими точками обмена трафика, так и со странами Восточной Европы.

Традиционно, мы дарим скидки при заказе SSD VDS в новой локации! Регистрируйтесь на itldc.ru и используйте при заказе купон PRAGUE для того, чтобы получить постоянную скидку 40% на VDS любой конфигурации в EU4.PRG. Обратите внимание – код актуален только до 12 декабря 2018 года, осталось несколько дней!

Подробнее — в нашем блоге. Проверить трассы-пинги можно на lg-cz.itldc.com. Присоединяйтесь!

Что мы сделали для вас в ноябре



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


Мы припасли для вас два новых сервиса и кое-что ещё.


Machine Learning — помогает создавать решения на основе машинного обучения. Во-первых, тут можно развернуть из образа преднастроенные среды обучения нейронных сетей, есть выбор из нескольких популярных сред. Ещё в сервисе есть API для встраивания в приложения машинного зрения и слуха (аудиоаналитики).
mcs.mail.ru/machine-learning/


Магазин приложений — с помощью него вы развёртываете готовые приложения для разработки. Это — инструменты централизованного логирования, мониторинга, CI/CD, Git-репозиторий, docker registry и многое другое.
mcs.mail.ru/app/services/marketplace/

НОВОЕ В СЕРВИСАХ
  • Ресайз дисков виртуальных серверов — без остановки машин, из меню каждого инстанса.
  • Балансировщик: https и прокси-протокол. Раньше поддерживались http и TCP, теперь поддерживается ещё и https. При TCP-балансировке поддержка прокси-протокола обеспечивает сохранение заголовков x-forwarded-for, так что IP-адрес удалённого узла, который обращается к серверу, не теряется.
  • Управление пользователями и базами данных. Кликнув на инстанс базы данных, вы сможете создавать в ней новые базы и пользователей. Не забудьте, что это работает только для master-узлов.
  • Root-доступ в базах данных. Можно получить пароль root-пользователя, который даёт возможности тонкой настройки баз данных, установки аддонов.
  • Docker registry для Kubernetes. Теперь при создании кластера вы можете сразу развернуть его с Docker registry, который будет хранить images в объектном хранилище Mail.Ru Cloud Storage.
  • Префиксные ключи в объектном хранилище (Cloud Storage) упрощают управление доступом пользователей.
Ждите новостей команды в следующем году!

В январе запустят две спорных зоны

В начале следующего года будут запущены домены .DEV и .INC.

Владельцем зоны .DEV является Google. Доменная зона предназначена для разработчиков программного обеспечения. Для одного из проектов Google уже есть рабочий сайт в этой зоне — web.dev. Регистрация доменов в ней стартует 16 января.

Владелец зоны .INC — компания Intercap, которая приобрела зону у предыдущего владелельца GTLD Limited. Сумма сделки не разглашается, но она, очевидно, довольна высока, так как GTLD Limited в свою очередь потратил 15 миллионов долларов, чтобы выиграть аукцион за право обладания доменом .INC.

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

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

www.webnames.ru

Джон Неветт стал директором PIR Registry

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

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

Неветт стал сооснователем компании Donuts в 2010 году. С этого времени компания выросла до крупнейшего регистратора новых gTLD. Сейчас чистая прибыль компании составляет 150 миллионов долларов, а в ее собственности находится более 240 доменных зон.

Неветт с отличием закончил Гарвардский университет, успешно оаботал во многих компаниях, занимающихся регистрацией доменных имен. Он был вице-президентом Network Solutions, где отвечал за корпоративные отношения и корпоративную этику. В компаниях NameJet и Central Registry Solutions он был председателем Совета директоров. Неветт был участником целого ряда рабочих групп ICANN, в том числе он занимался разработкой модели перехода ICANN от надзора со стороны правительства США к независимости.

www.webnames.ru

MK.com продан за $700 000

Недавно состоялась сделка по продаже домена MK.com. Его стоимость составила семьсот тысяч долларов.

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

Ранее в этом году был продан домен Fo.com. Он оказался дешевле: его приобрели за $510 000.

www.webnames.ru

Вопрос о домене .amazon снова завис в воздухе

Месяц назад мы сообщали, что ICANN планирует переговоры с Амазонским пактом относительно спорного домена .amazon. Компания Amazon со своей стороны пообещала предоставить ряд услуг странам амазонского региона.

Но недавно обсуждение внезапно зашло в тупик. Генеральный секретарь Амазонского пакта Жаклин Мендоса прервала все переговоры о встрече, которая должна была состояться 29 ноября в Боливии и сказала, что вопрос о разрешении на запуску зоны .amazon больше не будет обсуждаться.

Причиной такого решения стало то, что ICANN в это время уже поменял статус заявки на регистрацию доменной зоны .amazon, сняв с нее пометку «Will Not Proceed», говорящую об отказе в регистрации. По этому поводу Мендоса направила протест в Совет директоров ICANN и сообщила, что прежний статус заявки является обязательным условием для ведения каких-либо переговоров.

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

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

Дальнейшие переговоры по зоне .amazon по-видимому еще возможны, но отношения между сторонами заметно ухудшились.

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

www.webnames.ru

Make your ideas come app. Serverless приложение — пошаговая инструкция



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

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

В статье я расскажу, как создать простое todo приложение с аутентификацией, профилем пользователя, хранением картинок и, собственно, управлением задачами используя serverless подход. Мы, естественно, будем делать это на Swifty, но подход здесь примерно одинаков для всех serverless решений. Пример готового приложения можно посмотреть здесь. Фронтенд написан на vue.js, запускать который мы будем на встроенном Object Storage (S3), бекенд будем делать на функциях на Go и Python.

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

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


Теперь, когда у вас есть аккаунт можно приступать к созданию самих функций. Swifty включает сервис аутентификации — Authentication, который дает базовые операции signup, signin и logout, а также возможность создавать, изменять, получать и удалять профиль пользователя. В нем есть также интеграция с Facebook и возможность связывать уже созданный профиль с профилем Facebook. Но они нам пока не понадобятся. Maybe later.

Создаем сервис аутентификации:
  • Открываем Swifty -> Authentication Services.
  • Нажимаем Create Auth Database и называем базу todoapp. Я в дальнейшем буду использовать это название, но вы можете назвать свою базу по-желанию.

В результате будет создано много чего:
  • Функция todoapp.base — делает signup, signin и logout пользователей, реализует OAuth 2.0 протокол.
  • Функция todoapp.fb — позволяет аутентифицировать пользователей через fb.
  • Функция todoapp.link — связывает аккаунты уже созданных пользователей с их аккаунтами на fb.
  • Функция todoapp.profiles — создает, обновляет, удаляет профили пользователей в MongoDB.
  • БД todoapp_mgo — Mongo для хранения аккаунтов пользователей.
  • БД todoapp_profiles — Mongo для хранения профилей пользователей.
  • Authentication Middleware (AuthMW) — прокси, который позволяет при обращении к API функции проверять аутентификацию пользователя через проверку его JWT токена, который ему выдала функция todoapp.base. Нет токена или он не верен — запрос к API будет отброшен.

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


Можно пропустить, но лучше прочитать
Этот параграф, в принципе, можно пропустить. Или нет, если вы хотите понять, как работает наш сервис аутентификации и чуть больше понять о принципах работы Swifty. Функция todoapp.base, написанная на Go, дает базовые возможности аутентификации, но ничто не мешает вам расширить ее возможности в соответствии с потребностями вашего приложения. Как бы вы ее не меняли, не трогая signin и signout, она все-равно будет делать свою работу. В функции есть переменная SWIFTY_AUTH_NAME, которая хранит название AuthMW. Функции также нужен доступ к MongoDB и собственно AuthMW, которые прописаны на вкладке Access в свойствах функции. Также у нее есть REST API триггер у которого есть ссылка, которую и нужно вызывать, чтобы получить доступ к функции.

Функция todoapp.base ожидает, что вы передадите ей userid и password в виде аргументов запроса. При этом пароль шифруется.

Вот примеры таких запросов:
* Sign up:
https://api.swifty.cloud:8686/call/012.../signup&userid=user@yourmail.com&password=xxxxxxxx
* Sign in:
https://api.swifty.cloud:8686/call/012.../signin&userid=user@yourmail.com&password=xxxxxxxx
* Log out:
https://api.swifty.cloud:8686/call/012.../leave&userid=user@yourmail.com


Если, например, signin был успешен (функция успешно проверила переданный пароль), то вы получите JSON с JWT токеном, который нужно будет использовать каждый раз при обращении к функциям, для которых включена аутентификация. JWT токен создается на базе Bearer Authentication схемы. Подробнее про OAuth 2.0 и Bearer cхему можно прочитать тут.

Если аутентификация не успешна, то вызываемая функция не запускается и запрос возвращает код 401.

Управление профилем пользователя
Итак, у каждой функции есть REST API url, ссылка, которую нужно вызвать, чтобы запустить функцию. Чтобы получить эту ссылку для функции аутентификации, откройте функцию todoapp.base, перейдите на вкладку Triggers, скопируйте REST API url и сохраните его как AUTH_URL где-нибудь. Чуть дальше нам потребуется вставить эту ссылку в конфигурационный файл фронтенда нашего приложения.


Также нам нужен API URL для todoapp.profiles, чтобы наше приложение могло управлять профилями пользователей. Откройте эту функцию, перейдите на вкладку Triggers, скопируйте REST API url и сохраните его как PROFILE_URL.

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

Чтобы создать функцию управления картинками:
  • Переходим на вкладку Functions -> New Function -> From repo (Templates). Мы храним все шаблоны функций в публичном git репозитории swifty.demo. Этот репозиторий должен быть выбран по умолчанию.
  • Выберите функцию Avatar management (python), нажмите Next и введите имя новой функции todoapp.avatar. Нажмите Create.
  • Далее перейдите на вкладку Triggers, нажмите Add Trigger, выберете REST API (URL). Скопируйте появившуюся ссылку и сохраните ее как PICTURE_URL.

Далее нужно создать бакет в Object Storage для хранения картинок пользователей:
  • Переходим на вкладку Object Storage -> Create Bucket. Назовите новый бакет todoappimages.
  • Переходим на вкладку Functions -> todoapp.avatar -> Access -> нажимаем Add, выбираем Object Storage, вновь созданный бакет todoappimgaes и жмем Add.

Теперь наша функция имеет доступ к указанному бакету. Так просто и нам не нужно прописывать никакие доступы к бакету внутри функции. Единственное, мы должны указать функции, в каком бакете хранить картинки с помощью переменной окружения:
  • Переходим на вкладку Functions -> todoapp.avatar -> Variables и нажимаем Create Variable.
  • Вводим имя переменной — BUCKET_NAME, и ее значение — todoappimages.

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

Создаем функцию:
  • Переходим на вкладку Functions -> New Function -> From repo (Templates).
  • Выберите функцию TODO application (python), нажмите Next и введите имя новой функции todoapp.tasks. Нажмите Create.
  • Далее перейдите на вкладку Triggers, нажмите Add Trigger, выберете REST API (URL). Скопируйте появившуюся ссылку и сохраните ее как TASKS_URL.

Далее нам нужна база данных, чтобы хранить наши задачи. Самый простой вариант — MongoDB.
  • Переходим на вкладку Mongo Database -> Create Database и создаем базу с именем todoapp_tasks.
  • Переходим на вкладку Functions -> todoapp.tasks -> Access -> Add и добавляем новую базу.

Теперь наша функция имеет доступ к БД todoapp_tasks и мы можем обратиться к ней из функции с помощью библиотеки swifty, например так:
db = swifty.MongoDatabase(os.getenv('TASKS_DB_NAME’))


Нам осталось только прописать переменную окружения с именем базы данных:
  • Переходим на вкладку Functions -> todoapp.tasks -> Variables и нажимаем Create Variable.
  • Вводим имя переменной — TASKS_DB_NAME, и ее значение — todoapp_tasks.
  • Включаем аутентификацию для функций

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

Как включить проверку токенов для определенных функций:
  • Переходим на вкладку Functions и выбираем функции todoapp.tasks и todoapp.avatar.
  • Нажимаем Manage Authentication и выбираем сервис todoapp, нажимаем Enable.
  • Теперь, функции todoapp.tasks и todoapp.avatar будут выполнены только для пользователей с правильным JWT токеном сгенерированным с помощью todoapp.base.

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


Публикация приложения
Займемся фронтендом нашего приложения. Фронтенд написан на vue.js и нам нужно всего лишь добавить ссылки на наши функции в его конфигурационный файлик и пересобрать приложение с этой обновленной конфигурацией. Здесь все просто и никаких знаний vue.js и JavaScript не понадобиться.

Для того, чтобы пересобрать приложение вам нужен установленный node.js. Если у вас его нет, то используйте, пожалуйста, официальный гайд, чтобы его поставить. Если у вас mac, то есть хороший гайд здесь. Также вам понадобиться git, чтобы стянуть репозиторий себе на компьютер. Пожалуйста, сделайте:
# git clone https://github.com/swiftycloud/swifty.todoapp


После этого перейдите в папку /swifty.todoapp/src и откройте файл config.js в вашем любимом редакторе. Вам нужно поменять содержащиеся там переменные на на те, которые вы сохранили ранее:
export const AUTH_URL = "https://api.swifty.cloud/call/991..."
export const PROFILE_URL = "https://api.swifty.cloud/call/281..."
export const PICTURE_URL = "https://api.swifty.cloud/call/e6a..."
export const TASKS_URL = "https://api.swifty.cloud/call/4b1..."


Переменные связанные с FB нам пока не нужны.

Затем вам нужно пересобрать приложение:
# npm run build
…
DONE Build complete. The dist directory is ready to be deployed.


Прежде чем собрать приложение вы можете также протестировать его локально:
# npm run serve

и зайти в него через браузер по адресу localhost:8080

Мы используем Object Storage для хранения статических файлов нашего приложения. Перейдите на вкладку Object Storage, создайте бакет todoapp и загрузите в него файлы из папки /swifty.todoapp/dist/ соблюдая именование папок (их придется создать руками).

Последний шаг — публикация приложения. Нажмите More -> HTTP Server Settings и включите HTTP Server для вашего бакета. Скопируйте появившуюся ссылку и перейдите по ней — это и есть ваше приложение!


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

Что дальше?
Мы показали простой пример, как использовать serverless для создания приложений. У нас еще много шаблонов популярных функций, а у вас, я уверен, еще много идей для новых приложений. Пробуйте шаблоны, пишите свои функции и make your ideas come app.

Ну и конечно же, обращайтесь, если у вас есть какие-то вопросы по serverless вообще и Swifty в частности.
www.rusonyx.ru/swifty/