Сегодня утром начался пожар в здании рядом с нашим центром обработки данных DC5. Власти на месте и в настоящее время борются с огнем. Мы в значительной степени мобилизованы для мониторинга ситуации и обеспечения безопасности нашего центра обработки данных.
Власти предупредили нас о хранении химических продуктов в этом соседнем здании. На данный момент существует угроза взрыва.
Польза удерживания пруда
Эффективность проектирования и профилактики оборудования, пожарная стена и удержание пруд, позволили нам в полной мере поддерживать производство, без воздействия на наших клиентов.
Мы рады пригласить Вас в наш ScaleDay, первое издание нашего крупнейшего ежегодного мероприятия клиента, существенный перекресток объединение Scaleway, Интернет по Scaleway и Scaleway Datacenter сообщества!
На следующий день будет структурирован вокруг открытия и понимания наших продуктов, участвующий в тренингах, встречая стартапы в нашей экосистеме, обмениваясь с экспертами облака на месте и допрос их о переходе от веба — хостинга и выделенных серверов в направлении Cloud.
Вы будете вдохновлены стартапами и инновационным это также даст вам возможность приблизиться к нашему динамичному сообществу унаследованных Интернет клиентов, теперь Scaleway! Не упустите эту возможность, чтобы встретиться с нашей командой, партнерами и инженерами позади инструментов, которые вы используете каждый день.
Мы приглашаем Вас на захватывающее мероприятие, которое даст вам возможность открыть для себя наши будущих решений и получить ваши руки на нашей специализированную продукции.
Присоединяйтесь к нам в праздновании роста и развития Scaleway, и свидетель того, что мы успешно достигли в течение последних 20 лет, возможно благодаря вам.
На следующий день будет заключен памятной партией, прекрасная возможность воссоединиться с подрывной ДНК нашей компании.
Даже больше экземпляров Нового облака
В прошлом месяце, Scaleway завершил свой профессиональный выбор экземпляров, чтобы предоставить нашим клиентам всего уровень мощности и услуг для масштабирования и расти быстрее с нами. Все началось с GPU Instances с посвященный NVIDIA Tesla P100 на лучшее соотношение цена-качество на рынке. Тогда мы объявили о наших общих Purpose экземпляров с до 48 высокого класса AMD EPYC питания и выше виртуальных ЦП ИХ. Новые общего назначения Инстансы начинаются с € 39 / месяц. Наконец, мы добавили на прошлой неделе наш новый модельный ряд экземпляров разработчиков, чтобы начать свое путешествие с нами. Заменяя экземпляры Пуска с экземплярами разработчиков, мы обеспечиваем стабильность и Reliablity по лучшей конкурентоспособной производительности в своей категории. www.scaleway.com/development-instances/
Пригласите своих друзей, чтобы попробовать Scaleway бесплатно
С апреля 1 — го, Scaleway новички получают € 100 кредит на знак до тестирования наших услуг. Этот кредит действует на все виды продукции до мая 1 — го, 00:00 UTC. Не стесняйтесь, чтобы пригласить друзей, чтобы попробовать наши продукты!
Объект хранения в Париже
Хранение объекта теперь доступна в зоне Paris FR-PAR. Это позволяет хранить данные поблизости экземпляров и Dedibox выделенных серверов легко и при низкой стоимости с использованием консоли Scaleway или любой S3-совместимым инструмента. console.scaleway.com/object-storage/
Поделитесь своим мнением!
У вас есть возможность предоставить нам свои отзывы о онлайн по Scaleway и ее продукции. Ваше мнение драгоценно и поможет нам значительно улучшить наши предложения и качество обслуживания. Это не займет у Вас более 4 минут, чтобы ответить. scaleway.typeform.com/to/OYcZjM
Учебники и статьи
AWS-CLI является открытым кодом построен на вершине AWS SDK для Python (Бото), который предоставляет команды для взаимодействия с сервисами AWS. В этом уроке вы узнаете, как использовать для хранения объектов с AWS-CLI и как вы можете управлять своими ведрами и объекты с помощью АМС. www.scaleway.com/docs/object-storage-with-aws-cli/
Давайте Encrypt является органом сертификации (CA), который предоставляет бесплатные TLS / SSL сертификаты, чтобы включить HTTPS на веб-серверах. Они обеспечивают программный клиент под названием Certbot автоматизировать большинство этапов, необходимых для получения сертификата и настроить его в веб-сервер Nginx. www.scaleway.com/docs/how-to-configure-nginx-with-lets-encrypt/
Мы только что выпустили GPU Instances, наши первые серверы, оснащенные графическими процессорами (GPU). Оснащенные высокопроизводительными 16-ГБ картами NVIDIA Tesla P100 и высокоэффективными процессорами Intel Xeon Gold 6148, они идеально подходят для обработки данных, искусственного интеллекта, рендеринга и кодирования видео. В дополнение к выделенному графическому процессору и 10 ядрам Intel Xeon Gold каждый экземпляр поставляется с 45 ГБ памяти, 400 ГБ локального хранилища NVMe SSD и оплачивается 1 евро в час или 500 евро в месяц.
Сегодня мы представляем вам конкретный вариант использования для экземпляров графических процессоров, использующих глубокое обучение для получения фронтальной визуализации изображений лица. Не стесняйтесь попробовать это тоже. Для этого посетите консоль Scaleway, чтобы запросить квоты, прежде чем создавать свой первый экземпляр GPU.
Обзор графического процессора
Графический процессор (GPU) стал условным обозначением специализированной электронной схемы, предназначенной для питания графики на машине, в конце 1990-х годов, когда она была популяризирована производителем чипов NVIDIA.
Первоначально графические процессоры создавались главным образом для обеспечения высокого качества игр, создавая реалистичную цифровую графику. Сегодня эти возможности используются более широко для ускорения вычислительных нагрузок в таких областях, как искусственный интеллект, машинное обучение и сложное моделирование.
Экземпляры с графическим процессором в Scaleway были спроектированы так, чтобы их можно было оптимизировать для сбора огромных пакетов данных и очень быстрого выполнения одной и той же операции снова и снова. Сочетание эффективного процессора с мощным графическим процессором обеспечит наилучшее соотношение производительности системы и цены для ваших приложений глубокого обучения.
Написание собственного программного обеспечения Frontalization для лица с нуля
Сценаристы никогда не перестают нас смешить с причудливыми изображениями технологической индустрии, начиная от лукавого до веселого. Однако с учетом современных достижений в области искусственного интеллекта некоторые из самых нереалистичных технологий с экранов телевизоров оживают.
Например, программное обеспечение Enhance от CSI: NY (или Les Experts: Manhattan для наших франкоязычных читателей) уже вышло за пределы современных нейронных сетей Super Resolution. На более экстремальной стороне воображения находится враг государства:
«Поворот [кадры видеонаблюдения] на 75 градусов вокруг вертикали», должно быть, казался совершенно бессмысленным задолго до 1998 года, когда вышел фильм, о чем свидетельствуют комментарии YouTube под этим конкретным отрывком:
Несмотря на явный пессимизм аудитории, сегодня благодаря машинному обучению любой, кто обладает небольшим знанием Python, достаточно большим набором данных и учетной записью Scaleway, может попробовать написать программу, достойную научной фантастики.
Вступление
Забудьте MNIST, забудьте о классификаторах скучных кошек и собак, сегодня мы узнаем, как сделать что-то гораздо более захватывающее! Эта статья вдохновлена впечатляющей работой R. Huang et al. («За гранью вращения лица: глобальное и локальное восприятие GAN для фотореалистичного синтеза идентичности с сохранением идентичности»), в котором авторы синтезируют фронтальные виды лиц людей с учетом их изображений под разными углами. Ниже приведен рисунок 3 из этой статьи, в котором они сравнивают свои результаты [1] с предыдущей работой [2-6]:
Мы не будем пытаться воспроизвести современную модель R. Huang et al. Вместо этого вы сможете построить и обучить модель лобной фронтализации, дающую разумные результаты за один день:
Дополнительно вы узнаете:
Как использовать библиотеку NVIDIA DALI для высоко оптимизированной предварительной обработки изображений на GPU и подачи их в модель глубокого обучения.
Как зашифровать генерирующую состязательную сеть, которую в PyTorch назвал «самой интересной идеей за последние десять лет в машинном обучении» Янн ЛеКун, директор Facebook AI.
У вас также будет своя собственная Генеративная сеть состязаний, настроенная на обучение по выбранному вами набору данных. Без дальнейших церемоний, давайте копаться!
Шаг 1: Запуск и настройка экземпляра Gpu на Scaleway
Если вы еще не получили себе экземпляр GPU, размещенный в Scaleway, вы можете сделать это:
Войдите в консоль Scaleway.
Выберите вкладку Compute на левой боковой панели и нажмите зеленую кнопку + Создать сервер.
Выберите вкладку «GPU OS» в «Выберите образ» и «GPU» в «Выберите сервер».
Для этого проекта вы можете выбрать любой из двух доступных в настоящее время образов ОС GPU (10.1 и 9.2 относятся к соответствующим версиям CUDA) и выбрать RENDER-S в качестве сервера.
Нажмите на зеленую кнопку «Создать новый сервер» внизу страницы, и через несколько секунд ваш собственный экземпляр GPU будет запущен!
Теперь вы можете подключиться к нему по ssh, используя IP-адрес, который вы прочитали в своем списке экземпляров на вкладке Compute:
ssh root@[YOUR GPU INSTANCE IP ADDRESS]
Докерский путь:
Если вы знакомы с Docker, удобной платформой контейнерирования, которая позволяет упаковывать приложения вместе со всеми их зависимостями, продолжайте и извлекайте наш образ Docker, содержащий все пакеты и код, необходимый для проекта Frontalization, а также небольшой примерный набор данных:
nvidia-docker run -it rg.fr-par.scw.cloud/opetrova/frontalization:tutorial
root@b272693df1ca:/Frontalization# ls
Dockerfile data.py main.py network.py test.py training_set
(Обратите внимание, что вам нужно использовать nvidia-docker, а не обычную команду docker из-за наличия графического процессора.) Теперь вы находитесь в каталоге Frontalization, содержащем четыре файла Python, содержимое которых мы рассмотрим ниже, и каталог training_set содержащий образец учебного набора данных. Отличное начало, теперь вы можете перейти к шагу 2!
Родной путь:
Если вы не знакомы с Docker, нет проблем, вы можете легко настроить среду вручную. Экземпляры Scaleway GPU поставляются с уже установленными CUDA, Python и conda, но на момент написания этой статьи вам необходимо понизить версию Python до Python 3.6, чтобы библиотека DALI от Nvidia функционировала:
Вы можете загрузить свой собственный тренировочный набор на свой экземпляр GPU через:
scp -r path/to/local/training_set root@[YOUR GPU INSTANCE IP ADDRESS]:/root/Frontalization
и сохраните код Python, который вы увидите ниже, в каталоге Frontalization, используя выбранный вами текстовый редактор терминала (например, nano или vim, оба из которых уже установлены). В качестве альтернативы вы можете клонировать репозиторий Scaleway GitHub для этого проекта.
Шаг 2: Настройка ваших данных
В основе любого проекта машинного обучения лежат данные. К сожалению, Scaleway не может предоставить базу данных CMU Multi-PIE Face, которую мы использовали для обучения из-за авторских прав, поэтому мы продолжим, если у вас уже есть набор данных, на котором вы хотели бы обучить свою модель. Чтобы использовать библиотеку загрузки данных NVIDIA (DALI), изображения должны быть в формате JPEG. Размеры изображений не имеют значения, поскольку у нас есть DALI для изменения размера всех входов до размера, требуемого нашей сетью (128 × 128 пикселей), но для получения наиболее реалистичных синтезированных изображений желательно соотношение 1: 1.,
Преимущество использования DALI перед, например, стандартным набором данных PyTorch, заключается в том, что любая предварительная обработка (изменение размера, обрезка и т. Д.) Выполняется на графическом процессоре, а не на процессоре, после чего предварительно обрабатываются изображения на графическом процессоре. питаются прямо в нейронную сеть.
Управление нашим набором данных:
Для проекта фронтализации лица мы настраиваем наш набор данных следующим образом: папка набора данных содержит подпапку и целевое фронтальное изображение для каждого человека (также как субъект). В принципе, имена подпапок и целевых изображений не обязательно должны быть идентичными (как показано на рисунке ниже), но если мы хотим отдельно отсортировать все подпапки и все цели в алфавитно-цифровом порядке, те, которые соответствуют одному и тому же субъект должен появляться в одной и той же позиции в двух списках имен.
Как видите, подпапка 001 /, соответствующая теме 001, содержит изображения человека, изображенные в 001.jpg — это близко обрезанные изображения лица в разных позах, условиях освещения и различных выражениях лица. Для целей фронтализации лица крайне важно, чтобы фронтальные изображения были выровнены как можно ближе друг к другу, тогда как другие (профильные) изображения имеют немного больше свободы.
Например, все наши целевые фронтальные изображения имеют квадратную форму и обрезаются таким образом, что нижняя часть подбородка человека расположена в нижней части изображения, а центрированная точка между внутренними углами глаз расположена на 0,8 ч выше и 0,5 часа справа от нижнего левого угла (h — высота изображения). Таким образом, после изменения размера изображений до 128 × 128 все элементы лица появляются в более или менее одинаковых местах на изображениях в обучающем наборе, и сеть может научиться генерировать упомянутые элементы и объединять их вместе в реалистичный синтез. лица.
Строительство трубопровода DALI:
Теперь мы собираемся построить конвейер для нашего набора данных, который будет наследоваться от nvidia.dali.pipeline.Pipeline. На момент написания DALI не поддерживает непосредственное чтение пар (изображение, изображение) из каталога, поэтому мы будем использовать nvidia.dali.ops.ExternalSource () для передачи входных данных и целей в конвейер. data.py
import collections
from random import shuffle
import os
from os import listdir
from os.path import join
import numpy as np
from nvidia.dali.pipeline import Pipeline
import nvidia.dali.ops as ops
import nvidia.dali.types as types
def is_jpeg(filename):
return any(filename.endswith(extension) for extension in [".jpg", ".jpeg"])
def get_subdirs(directory):
subdirs = sorted([join(directory,name) for name in sorted(os.listdir(directory)) if os.path.isdir(os.path.join(directory, name))])
return subdirs
flatten = lambda l: [item for sublist in l for item in sublist]
class ExternalInputIterator(object):
def __init__(self, imageset_dir, batch_size, random_shuffle=False):
self.images_dir = imageset_dir
self.batch_size = batch_size
# First, figure out what are the inputs and what are the targets in your directory structure:
# Get a list of filenames for the target (frontal) images
self.frontals = np.array([join(imageset_dir, frontal_file) for frontal_file in sorted(os.listdir(imageset_dir)) if is_jpeg(frontal_file)])
# Get a list of lists of filenames for the input (profile) images for each person
profile_files = [[join(person_dir, profile_file) for profile_file in sorted(os.listdir(person_dir)) if is_jpeg(profile_file)] for person_dir in get_subdirs(imageset_dir)]
# Build a flat list of frontal indices, corresponding to the *flattened* profile_files
# The reason we are doing it this way is that we need to keep track of the multiple inputs corresponding to each target
frontal_ind = []
for ind, profiles in enumerate(profile_files):
frontal_ind += [ind]*len(profiles)
self.frontal_indices = np.array(frontal_ind)
# Now that we have built frontal_indices, we can flatten profile_files
self.profiles = np.array(flatten(profile_files))
# Shuffle the (input, target) pairs if necessary: in practice, it is profiles and frontal_indices that get shuffled
if random_shuffle:
ind = np.array(range(len(self.frontal_indices)))
shuffle(ind)
self.profiles = self.profiles[ind]
self.frontal_indices = self.frontal_indices[ind]
def __iter__(self):
self.i = 0
self.n = len(self.frontal_indices)
return self
# Return a batch of (input, target) pairs
def __next__(self):
profiles = []
frontals = []
for _ in range(self.batch_size):
profile_filename = self.profiles[self.i]
frontal_filename = self.frontals[self.frontal_indices[self.i]]
profile = open(profile_filename, 'rb')
frontal = open(frontal_filename, 'rb')
profiles.append(np.frombuffer(profile.read(), dtype = np.uint8))
frontals.append(np.frombuffer(frontal.read(), dtype = np.uint8))
profile.close()
frontal.close()
self.i = (self.i + 1) % self.n
return (profiles, frontals)
next = __next__
class ImagePipeline(Pipeline):
'''
Constructor arguments:
- imageset_dir: directory containing the dataset
- image_size = 128: length of the square that the images will be resized to
- random_shuffle = False
- batch_size = 64
- num_threads = 2
- device_id = 0
'''
def __init__(self, imageset_dir, image_size=128, random_shuffle=False, batch_size=64, num_threads=2, device_id=0):
super(ImagePipeline, self).__init__(batch_size, num_threads, device_id, seed=12)
eii = ExternalInputIterator(imageset_dir, batch_size, random_shuffle)
self.iterator = iter(eii)
self.num_inputs = len(eii.frontal_indices)
# The source for the inputs and targets
self.input = ops.ExternalSource()
self.target = ops.ExternalSource()
# nvJPEGDecoder below accepts CPU inputs, but returns GPU outputs (hence device = "mixed")
self.decode = ops.nvJPEGDecoder(device = "mixed", output_type = types.RGB)
# The rest of pre-processing is done on the GPU
self.res = ops.Resize(device="gpu", resize_x=image_size, resize_y=image_size)
self.norm = ops.NormalizePermute(device="gpu", output_dtype=types.FLOAT,
mean=[128., 128., 128.], std=[128., 128., 128.],
height=image_size, width=image_size)
# epoch_size = number of (profile, frontal) image pairs in the dataset
def epoch_size(self, name = None):
return self.num_inputs
# Define the flow of the data loading and pre-processing
def define_graph(self):
self.profiles = self.input(name="inputs")
self.frontals = self.target(name="targets")
profile_images = self.decode(self.profiles)
profile_images = self.res(profile_images)
profile_output = self.norm(profile_images)
frontal_images = self.decode(self.frontals)
frontal_images = self.res(frontal_images)
frontal_output = self.norm(frontal_images)
return (profile_output, frontal_output)
def iter_setup(self):
(images, targets) = self.iterator.next()
self.feed_input(self.profiles, images)
self.feed_input(self.frontals, targets)
Теперь вы можете использовать класс ImagePipeline, который вы написали выше, для загрузки изображений из вашего каталога наборов данных, по одному пакету за раз.
Если вы используете код из этого учебника в блокноте Jupyter, вот как вы можете использовать ImagePipeline для отображения изображений:
from __future__ import division
import matplotlib.gridspec as gridspec
import matplotlib.pyplot as plt
%matplotlib inline
def show_images(image_batch, batch_size):
columns = 4
rows = (batch_size + 1) // (columns)
fig = plt.figure(figsize = (32,(32 // columns) * rows))
gs = gridspec.GridSpec(rows, columns)
for j in range(rows*columns):
plt.subplot(gs[j])
plt.axis("off")
plt.imshow(np.transpose(image_batch.at(j), (1,2,0)))
batch_size = 8
pipe = ImagePipeline('my_dataset_directory', image_size=128, batch_size=batch_size)
pipe.build()
profiles, frontals = pipe.run()
# The images returned by ImagePipeline are currently on the GPU
# We need to copy them to the CPU via the asCPU() method in order to display them
show_images(profiles.asCPU(), batch_size=batch_size)
show_images(frontals.asCPU(), batch_size=batch_size)
Через несколько дней после наших экземпляров GPU мы выпускаем новую линейку для крупномасштабных рабочих нагрузок: экземпляры общего назначения. Оснащенные до 48 ядрами AMD EPYC, 256 ГБ памяти и реплицированным локальным хранилищем NVMe SSD, они доступны по цене от € 0,078 / час или 39 € / месяц.
Эта новая линейка оснащена высокопроизводительными процессорами AMD EPYC с большим количеством ядер. Это позволяет нам предлагать вам первоклассные экземпляры, разработанные для ваших самых высоких рабочих нагрузок и самых требовательных приложений.
Среди этих экземпляров общего назначения GP1-XL предлагает отличные спецификации: с 48 ядрами AMD EPYC, 256 ГБ памяти, 600 ГБ памяти NVMe и 2 Гбит / с пропускной способности, это самое мощное и современное предложение Scaleway.
Экземпляры общего назначения доступны в Париже (PAR1) и могут быть запущены в несколько кликов с новой консоли Scaleway. Они также будут развернуты в Амстердаме (AMS1) к апрелю.
Простое и прозрачное ценообразование
Цены на экземпляры общего назначения просты и прозрачны. Он включает в себя машину, место для хранения и IPv4:
Создать экземпляр общего назначения
Как всегда в Scaleway, месячная ставка основана на почасовой ставке, ограниченной 500 часами. Это означает, что после 500 часов бесперебойного использования цена ресурса замораживается до фиксированной цены до конца месяца. После запуска вашего экземпляра 1 апреля в полночь UTC его цена больше не будет расти с 21 апреля в 21:00.
Предлагаемые функции
Все функции виртуальных облачных экземпляров Scaleway доступны с экземплярами общего назначения непосредственно из консоли:
Самые распространенные дистрибутивы и приложения могут быть установлены в несколько кликов, и вы можете настроить первую загрузку с помощью cloud-init.
Сетевые настройки ваших экземпляров можно легко изменить с помощью групп безопасности; Вы можете управлять фильтрами и применять их к одному или нескольким серверам.
Экземпляры могут быть зарезервированы как образы для создания клонов или для восстановления предыдущей версии, если это необходимо.
Кроме того, вы можете автоматизировать эти действия с помощью Scaleway API или инструмента командной строки scw.
Будущее x64 предложения
С запуском экземпляров общего назначения экземпляры x64 больше не могут быть созданы из консоли и скоро исчезнут из нашего API. Однако существующие серверы остаются и останутся полностью работоспособными. При следующей полной загрузке (после выключения на консоли) они будут свободно перенесены на новые гипервизоры, оснащенные AMD EPYC, без каких-либо изменений имени или функций.
Посетите новую консоль Scaleway, чтобы протестировать инстансы общего назначения, и если у вас есть какие-либо вопросы, обращайтесь к нам за помощью. Мы ответим вам как можно скорее. console.scaleway.com/compute console.scaleway.com/support
Искусственный интеллект в Scaleway с GPU экземплярами
Дорогой Cloud Rider, Мы только что выпустили наш первый Экземпляры GPU Cloud! Работает на высоком конце посвященный NVIDIA Tesla P100 и сильные Intel Xeon Gold 6148 ядер, они предложены на лучшее соотношение цена-качество: € 1 / час или € 500 / месяц. Предназначено для искусственного интеллекта и визуализации, наши GPU Инстансы поддерживают свои высокие рабочие нагрузки. www.scaleway.com/gpu-instances/
Dedibox старт-3-S-SSD завершает наш ассортимент Start с выдающимися характеристиками, которые предлагают лучшее соотношение цена-качество.
Характеристики:
Pro-6-XS Dedibox является новинкой нашего Pro диапазона, включая RPNv2 сетевой выгоды для выделенных серверов, предлагающих баланс процессора, памяти и памяти для любых рабочих нагрузок.
Характеристики:
Объявления [ScalewayLive] Из Heroku2Kubernetes & VLC истории успеха
Присоединяйтесь к нам 14 марта в La Maison Париж для нашего следующего Meetup! Жереми Wimsingues, DevOps инженер, представит, как масштабировать вашу команду с CI / CD и Kubernetes. Получить все знать об установке Gitlab, бегуны внутри Kubernetes и CI / CD микро услуг с помощью Helm и Vault для безопасного развертывания!
Кроме того, Жан-Батист Кемпф, президент организации VideoLAN представит историю развития проекта VLC и объяснить, как он стал стандартом на многих платформах. www.eventbrite.com/e/scalewaylive-from-heroku2kubernetes-vlc-success-story-tickets-56639938581
Это статья время!
В дополнении к нашим еженедельным учебникам мы начали новую серию: «Это статья Time». В этой серии мы представим вам техническую подготовку и подробную информацию о том, как работает облачная инфраструктура. Мы начали эту новую категорию с серией статей, касающихся объектов хранения, начиная с: Хранение объекта — Что это такое? blog.scaleway.com/2019/object-storage-scaleway-what-is-it/
Учебники
PowerDNS является открытым DNS исходного сервера написан на C ++. Сервер DNS сервер, который содержит базу данных общедоступных IP-адреса и связанные с ними доменными именами. Его цель состоит в том, чтобы решить, или переводить эти общие имена IP-адрес в соответствии с просьбой. PowerDNS работает на большинстве Linux и всех других производных Unix. Программное обеспечение поставляется с веб-интерфейсом PowerDNS-администратора, что упрощает управление вашими DNS-зон. www.scaleway.com/docs/installing-powerdns-server-on-ubuntu-bionic/
Mattermost является инструментом обмена сообщений с открытым исходным кодом для межкомандной связи, распространяемого по лицензии MIT и доступна как в свободной команде и оплаченный Enterprise Edition. Этот учебник покажет вам, как установить экземпляр Mattermost с внешним интерфейсом прокси-сервером Nginx и базами данных MariaDB. www.scaleway.com/docs/installing-mattermost-messaging-ubuntu-bionic/
Scaleway makes ArtificialIntelligence more accessible by launching premium, dedicated cloud #GPU instances powered by NVIDIAEU Tesla P100 at an ultra-competitive price.