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



Представляем нашу новую локацию – запущена и работает новая площадка в Праге, столице Чешской Республики. 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/

Облачные VPS по суперцене — от 27 копеек в час!


Облачные VPS по суперцене — от 27 копеек в час!
Облачные серверы VPS — современное представление VPS на виртуализации KVM. Главное их преимущество — скорость работы. Создание сервера у вас займёт всего 30 секунд, а управление им происходит в удобной панели. Самый маленький сервер с 5 ГБ SSD, 512 МБ RAM и 1 ядром обойдётся всего в 179 рублей в месяц (27 копеек/час)! За минимальные деньги вы сможете убедиться лично в возможностях облачных VPS от компании REG.RU и использовать самые современные технологии для своего проекта!
www.reg.ru/vps/cloud

Timeweb вошёл в TOP-10 регистраторов доменов в зоне .RU

Немногие знают, что с начала 2018 года мы стали полноценно вести деятельность в качестве регистратора доменов в зонах .RU/.РФ.

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

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


Отдельно можно сказать, что толчком к решению стать регистратором послужило повышение цен на регистрацию доменов .RU/.РФ летом 2017 года.

Нам важно было сохранить цены для клиентов на регистрацию доменов на низком уровне без резких повышений. Можем сказать с уверенностью, что этого удалось добиться: стоимость регистрации .RU/.РФ всего 179 рублей.

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

Запуск самостоятельного регистратора
В конце 2017 года мы завершили многочисленные внутренние тесты и убедились, что в момент открытия регистрации доменов в зоне .RU/.РФ для клиентов не возникнет непредвиденных ситуаций и проблем.

В самом начале 2018 года, после окончания новогодних каникул мы переключили регистрацию новых доменов на систему регистратора Timeweb. С этого момента мы фактически начали свою деятельность в новой роли — регистратора доменных имен.

Кто мы сейчас
Спустя год мы вошли в топ-10 регистраторов страны по доменам .RU. При этом являемся одним из лидеров рынка хостинга.

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


Куда мы движемся
Наши планы амбициозны: в следующем году мы планируем войти в ТОП-5 регистраторов по зонам .RU/.РФ. Мы продолжим наращивать клиентскую базу, а также постараемся сохранить конкурентную стоимость регистрации и продления доменов.

Что получат наши текущие и будущие клиенты: быстрый и недорогой перенос домена к нам. Вы платите только комиссию, которая взимается за оформление процедуры Координационным центром национального домена сети Интернет — на текущий момент это всего 144 рубля.

Какие преимущества получили клиенты?
Являясь регистратором, мы можем держать цены для клиентов на невысоком уровне, поскольку теперь отсутствует «посредник» между нами и Реестром доменных имён.

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

Стала ли проще процедура переноса домена с другого хостинга в Timeweb?
Конечно. Нужно всего лишь узнать код авторизации у своего текущего регистратора. Для этого потребуется поискать его самостоятельно в личном кабинете текущего хостинг-провайдера или регистратора, либо обратиться в их поддержку.

После того, как получите код — зайдите в раздел «Домены и поддомены», выберите «Перенос домена» и введите код.

После нажатия на кнопку «Перенести» и оплаты (сейчас перенос стоит 144 руб., но можно воспользоваться и бонусом, который добавляется на аккаунт виртуального хостинга при оплате за год) для домена будет заказан трансфер, о завершении которого мы проинформируем по e-mail.


Если вы хотите управлять доменами и хостингом из одной панели Timeweb, но сомневаетесь, как правильно это сделать — просто напишите или позвоните нам и мы ответим на все вопросы о процедуре переноса и подскажем, как действовать.

В случае, если вы готовы приобрести более 100 доменов, мы готовы предложить для вас специальную цену намного ниже рыночной (99 рублей) с адекватной ценой продления. Запросы отправляйте на почту: 2domains@timeweb.ru