Русский
Русский
English
Статистика
Реклама

Iaas

Анбоксинг Huawei CloudEngine 6865 наш выбор для перехода на 25 Гбитс

18.09.2020 10:20:14 | Автор: admin


С ростом инфраструктуры облака mClouds.ru, нам потребовалось ввести в эксплуатацию новые коммутаторы на 25 Гбит/с на уровне доступа серверов. Расскажем, как мы выбрали Huawei 6865, распакуем оборудование и расскажем наши первые впечатления от эксплуатации.

Формируем требования

Исторически у нас положительный опыт как с Cisco, так и с Huawei. Cisco используем для маршрутизации, а Huawei для коммутации. На данный момент используем CloudEngine 6810. С ним все хорошо оборудование работает исправно и предсказуемо, а стоимость внедрения дешевле, чем аналоги от Cisco и других вендоров. Кстати, про серию 6800 мы уже писали ранее.

Логично продолжить использовать эту связку и далее, но нам нужно более мощное решение расширение сети до 25 Гбит/с на порт, вместо текущих 10 Гбит/с.

Остальные наши требования: аплинки 40/100, неблокируемая коммутация, производительная матрица, поддержка L3, стекирование. Из желаемого на перспективу: поддержка Leaf-Spine, VXLAN, BGP EVPN. Ну и, конечно, цена стоимость эксплуатации влияет на конечную стоимость облака для наших клиентов, поэтому важно выбрать вариант с хорошим соотношением цена-качество.

Выбор и ввод в эксплуатацию

При выборе мы остановились на трех производителях Dell, Cisco и Huawei. Как уже писали выше, мы стараемся использовать уже проверенных временем партнеров, и имеем хорошее представление о том, как ведет себя их оборудование и как работает сервис.

Под наши требования подходили следующие модели:


Но после недолгого сравнения мы остановились на первом варианте. Тут повлиял ряд факторов: привлекательная цена, полное соответствие нашим требованиям и бесперебойная работа прошлых моделей этого производителя. Решено, смело заказываем партию CE 6865.


Сравнили, заказали и наконец получили новые коммутаторы

И вот партия приехала в ЦОД. Открываем и на первый взгляд практически не видим визуальных отличий от используемых нами 6810. Единственное, что заметно у новой версии большее число аплинков и порты другого типа (SFP28 и QSFP28, вместо SFP+ и QSFP+ соответственно), что позволит нам увеличить скорость работы сети до 25 Гбит/с вместо 10 Гбит/с для SFP28 и до 100 Гбит/с вместо 40 Гбит/с для QSFP28.


Устанавливаем коммутаторы в новую стойку

Опыт эксплуатации

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

По нашим ощущениям интерфейс Huawei VRP где то между IOS и Comware. И тут будет проще, если вы работали именно с Comware от HPE, а вот пользователям Cisco, наоборот будет посложнее. Конечно, это не критично, но тоже стоит учесть при выборе оборудования.

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

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

Как управлять облачной инфраструктурой с помощью Terraform

24.09.2020 10:22:34 | Автор: admin

В этой статье мы рассмотрим из чего состоит Terraform, а также поэтапно запустим собственную инфраструктуру в облаке с VMware подготовим три VM для разных целей: прокси, файловое хранилище и CMS.

Обо всем подробно и в три этапа:

1. Terraform описание, преимущества и составляющие

Terraform это IaC (Infrastructure-as-Code) инструмент для построения и управления виртуальной инфраструктурой с помощью кода .

В работе с инструментом мы отметили несколько преимуществ:

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

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

  • Возможность описывать большинство популярных облачных платформ. Вы можете использовать инструмент от Amazon и Google Cloud, до частных платформ на базе VMware vCloud Director, предлагающих услуги в рамках IaaS, SaaS и PaaS решений.

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

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

"Террариум" Terraform

Кратко рассказали про преимущества инструмента, теперь разберем его на составляющие

Providers (провайдеры).

В Terraform практически любой тип инфраструктуры можно представить в качестве ресурса. Связь между ресурсами и платформой API обеспечивается providers модулями, которые позволяют создавать ресурсы в рамках определённой платформы, например, Azure или VMware vCloud Director.

В рамках проекта вы можете взаимодействовать с разными провайдерами на разных платформах.

Resources (описание ресурсов).

Описание ресурсов позволяет управлять компонентами платформы, например виртуальными машинами или сетями.

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

Provisioners.

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

Переменные Input и Output.

Input переменные входные переменные для любых типов блоков.

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

States (состояния).

States-файлы хранят информацию о конфигурации ресурсов платформы провайдера. При первом создании платформы никаких сведений о ресурсах нет и перед любой операцией Terraform обновляет состояние с реальной инфраструктурой уже описанных ресурсов.

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

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

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

2. Создание инфраструктуры

Составляющие разобрали, теперь с помощью Terraform мы поэтапно создадим инфраструктуру с тремя виртуальными машинами. Первая с установленным прокси-сервером nginx, вторая с файловым хранилищем на базе Nextcloud и третья с CMS Bitrix.

Писать код и исполнять его мы будем на примере нашего облака на VMware vCloud Director. У нас пользователи получают учётную запись правами Organization Administrator, если вы используете учетную запись с теми же правами в другом облаке VMware, то сможете воспроизвести код из наших примеров. Поехали!

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

mkdir project01

Затем опишем компоненты инфраструктуры. Terraform создаёт связи и обрабатывает файлы на основании описания в файлах. Сами файлы можно именовать исходя из целевого назначения описываемых блоков, например, network.tf - описывает сетевые параметры для инфраструктуры.

Для описания компонентов нашей инфраструктуры, мы создали следующие файлы:

Список файлов.

main.tf - описание параметров для виртуальной среды - виртуальные машины, виртуальные контейнеры;

network.tf - описание параметров виртуальной сети и правил NAT, Firewall;

variables.tf - список переменных, которые используем;

vcd.tfvars - значения переменных проекта для модуля VMware vCloud Director.

Язык конфигурации в Terraform является декларативным и порядок блоков не имеет значения, кроме блоков provisioner, т.к. в этом блоке мы описываем команды для выполнения при подготовке инфраструктуры и они будут выполнятся по порядку.

Структура блоков.

<BLOCK TYPE> "<BLOCK LABEL>" "<BLOCK LABEL>" {

# Block body

<IDENTIFIER> = <EXPRESSION> # Argument

}

Для описания блоков используется собственный язык программирования HCL (HashiCorp Configuration Language), возможно описывать инфраструктуру и с помощью JSON. Подробнее о синтаксисе можно прочитать на сайте разработчика.

Конфигурация переменной окружения, variables.tf и vcd.tfvars

Сначала создадим два файла, которые описывают список всех используемых переменных и их значений для модуля VMware vCloud Director. Первым создадим файл variables.tf.

Cодержимое файла variables.tf.

variable "vcdorguser" {

description = "vCD Tenant User"

}

variable "vcdorgpassword" {

description = "vCD Tenant Password"

}

variable "vcdorg" {

description = "vCD Tenant Org"

}

variable "vcdorgvdc" {

description = "vCD Tenant VDC"

}

variable "vcdorg_url" {

description = "vCD Tenant URL"

}

variable "vcdorgmaxretrytimeout" {

default = "60"

}

variable "vcdorgallowunverifiedssl" {

default = "true"

}

variable "vcdorgedgename" {

description = "vCD edge name"

}

variable "vcdorgcatalog" {

description = "vCD public catalog"

}

variable "vcdtemplateoscentos7" {

description = "OS CentOS 7"

default = "CentOS7"

}

variable "vcdorgssdsp" {

description = "Storage Policies"

default = "Gold Storage Policy"

}

variable "vcdorghddsp" {

description = "Storage Policies"

default = "Bronze Storage Policy"

}

variable "vcdedgelocalsubnet" {

description = "Organization Network Subnet"

}

variable "vcdedgeexternalip" {

description = "External public IP"

}

variable "vcdedgelocalipnginx" {}

variable "vcdedgelocalipbitrix" {}

variable "vcdedgelocalC11Cnextcloud" {}

variable "vcdC12Cexternal_network" {}

Значения переменных, которые мы получаем от провайдера.
  • vcd_org_user - имя пользователя с правами Organization Administrator,

  • vcd_org_password - пароль пользователя,

  • vcd_org - название организации,

  • vcd_org_vdc - название виртуального дата-центра,

  • vcd_org_url - API URL,

  • vcd_org_edge_name - название виртуального маршрутизатора,

  • vcd_org_catalog - название каталога с шаблонами виртуальных машин,

  • vcd_edge_external_ip - публичный IP-адрес,

  • vcd_edge_external_network - название внешней сети,

  • vcd_org_hdd_sp - название политики хранения HDD,

  • vcd_org_ssd_sp - название политики хранения SSD.

И вводим свои переменные:

  • vcdedgelocalipnginx - IP-адрес виртуальной машины с NGINX,

  • vcdedgelocalipbitrix - IP-адрес виртуальной машины с 1С: Битрикс,

  • vcdedgelocalipnextcloud - IP-адрес виртуальной машины с Nextcloud.

Вторым файлом создаем и указываем переменные для модуля VMware vCloud Director в файле vcd.tfvars: Напомним, что в нашем примере мы используем собственное облако mClouds, если вы работаете с другим провайдером уточните значения у него.

Содержимое файла vcd.tfvars.

vcdorgurl = "https://vcloud.mclouds.ru/api"

vcdorguser = "orgadmin"

vcdorgpassword = "*"

vcd = "org"

vcdorgvdc = "orgvdc"

vcdorgmaxretrytimeout = 60

vcdorgallowunverifiedssl = true

vcdorgcatalog = "Templates"

vcdtemplateos_centos7 = "CentOS7"

vcdorgssdsp = "Gold Storage Policy"

vcdorghddsp = "Bronze Storage Policy"

vcdorgedgename = "MCLOUDS-EDGE"

vcdedgeexternalip = "185.17.66.1"

vcdedgelocalsubnet = "192.168.110.0/24"

vcdedgelocalipnginx = "192.168.110.1"

vcdedgelocalipbitrix = "192.168.110.10"

vcdedgelocalipnextcloud = "192.168.110.11"

vcdedgeexternal_network = "NET-185-17-66-0"

Сетевая конфигурация, network.tf.

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

Схема сети для создаваемой Terraform платформыСхема сети для создаваемой Terraform платформы

Создаем виртуальную организационную сеть с названием net_lan01, шлюзом по умолчанию: 192.168.110.254, а также с адресным пространством: 192.168.110.0/24.

Описываем виртуальную сеть.

resource "vcdnetworkrouted" "net" {

name = "netlan01"

edgegateway = var.vcdorgedgename

gateway = "192.168.110.254"

dns1 = "1.1.1.1"

dns2 = "8.8.8.8"

staticippool {

startaddress = "192.168.110.1"

end_address = "192.168.110.253"

}

}

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

Описываем правила для доступа VM в интернет.

resource "vcdnsxvfirewallrule" "fwinternetaccess" {

edgegateway = var.vcdorgedgename

name = "Internet Access"

source {

gatewayinterfaces = ["internal"]

}

destination {

gatewayinterfaces = ["external"]

}

service {

protocol = "any"

}

dependson = [vcdnetworkrouted.net]

}

Установив зависимость, что после обработки блока vcdnetworkrouted.net мы приступаем к конфигурации блока vcdnsxvfirewallrule, с помощью dependson. Используем эту опцию, так как некоторые зависимости могут быть распознаны неявно в конфигурации.

Далее создадим правила разрешающее доступ к портам из внешней сети и указываем наш IP-адрес для подключения по SSH к серверам. Любой пользователь сети Интернет имеет доступ к портам 80 и 443 на веб-сервере и пользователь с IP-адресом 90.1.15.1 имеет доступ к портам SSH виртуальных серверов.

Разрешаем доступ к портам из внешней сети.

resource "vcdnsxvfirewallrule" "fwnatports" {

edgegateway = var.vcdorgedgename

name = "HTTPs Access"

source {

gatewayinterfaces = ["external"]

}

destination {

gateway_interfaces = ["internal"]

}

service {

protocol = "tcp"

port = "80"

}

service {

protocol = "tcp"

port = "443"

}

dependson = [vcdnetworkrouted.net]

}

resource "vcdnsxvfirewallrule" "fwnatadminports" {

edgegateway = var.vcdorgedgename

name = "Admin Access"

source {

ipaddresses = [ "90.1.15.1" ]

}

destination {

gatewayinterfaces = ["internal"]

}

service {

protocol = "tcp"

port = "58301"

}

service {

protocol = "tcp"

port = "58302"

}

service {

protocol = "tcp"

port = "58303"

}

depends_on = [vcdnetworkrouted.net]

}

Создаём правила Source NAT для доступа в сеть Интернет из облачной локальной сети:

Описываем правила Source NAT.

resource "vcdnsxvsnat" "snatlocal" {

edgegateway = var.vcdorgedgename

networktype = "ext"

networkname = var.vcdedgeexternalnetwork

originaladdress = var.vcdedgelocalsubnet

translatedaddress = var.vcdedgeexternalip

dependson = [vcdnetwork_routed.net]

}

И в завершении конфигурации сетевого блока добавляем правила Destination NAT для доступа к сервисам из внешней сети:

Добавляем правила Destination NAT.

resource "vcd_nsxv_dnat" "dnat_tcp_nginx_https" { edge_gateway = var.vcd_org_edge_name network_name = var.vcd_edge_external_network network_type = "ext"

description = "NGINX HTTPs"

original_address = var.vcd_edge_external_ip original_port = 443

translated_address = var.vcd_edge_local_ip_nginx translated_port= 443 protocol = "tcp"

depends_on = [vcd_network_routed.net]}resource "vcd_nsxv_dnat" "dnat_tcp_nginx_http" { edge_gateway = var.vcd_org_edge_name network_name = var.vcd_edge_external_network network_type = "ext"

description = "NGINX HTTP"

original_address = var.vcd_edge_external_ip original_port = 80

translated_address = var.vcd_edge_local_ip_nginx translated_port= 80 protocol = "tcp"

depends_on = [vcd_network_routed.net]

}

Добавляем правило NAT для трансляции портов к SSH-серверу под Nginx.

resource "vcd_nsxv_dnat" "dnat_tcp-nginx_ssh" { edge_gateway = var.vcd_org_edge_name network_name = var.vcd_edge_external_network network_type = "ext"

description = "SSH NGINX"

original_address = var.vcd_edge_external_ip original_port = 58301

translated_address = var.vcd_edge_local_ip_nginx translated_port= 22 protocol = "tcp"

depends_on = [vcd_network_routed.net]

}

Добавляем правило NAT для трансляции портов к SSH-серверу с 1С-Битрикс.

resource "vcd_nsxv_dnat" "dnat_tcp_bitrix_ssh" { edge_gateway = var.vcd_org_edge_name network_name = var.vcd_edge_external_network network_type = "ext"

description = "SSH Bitrix"

original_address = var.vcd_edge_external_ip original_port = 58302

translated_address = var.vcd_edge_local_ip_bitrix translated_port= 22 protocol = "tcp"

depends_on = [vcd_network_routed.net]

}

Добавляем правило NAT для трансляции портов к SSH-серверу с Nextcloud.

resource "vcd_nsxv_dnat" "dnat_tcp_nextcloud_ssh" { edge_gateway = var.vcd_org_edge_name network_name = var.vcd_edge_external_network network_type = "ext"

description = "SSH Nextcloud"

original_address = var.vcd_edge_external_ip original_port = 58303 translated_address = var.vcd_edge_local_ip_nextcloud translated_port= 22 protocol = "tcp"

depends_on = [vcd_network_routed.net]

}

Конфигурация виртуальной среды main.tf

Как мы и планировали в начале статьи, создадим три виртуальные машины. Они будут подготовлены с помощью "Guest Customization". Сетевые параметры пропишем согласно указанным нами настройками, а пароль от пользователя генерируется автоматически.

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

Конфигурация виртуальных машинКонфигурация виртуальных машин

Создадим контейнер vApp. Чтобы мы могли сразу же подключить vApp и ВМ к виртуальной сети также добавляем параметр depends_on:

Создаем контейнер

resource "vcd_vapp" "vapp" { name = "web" power_on = "true" depends_on = [vcd_network_routed.net]

}

Создадим виртуальную машину с описанием

resource "vcd_vapp_vm" "nginx" {

vapp_name = vcd_vapp.vapp.name

name = "nginx"

catalog_name = var.vcd_org_catalog

template_name = var.vcd_template_os_centos7

storage_profile = var.vcd_org_ssd_sp

memory = 8192

cpus = 1

cpu_cores = 1

network {

type = "org"

name = vcd_network_routed.net.name

is_primary = true

adapter_type = "VMXNET3"

ip_allocation_mode = "MANUAL"

ip = var.vcd_edge_local_ip_nginx

}

override_template_disk {

bus_type = "paravirtual"

size_in_mb = "32768"

bus_number = 0

unit_number = 0

storage_profile = var.vcd_org_ssd_sp

}

}

Основные параметры в описании VM:

  • name - имя виртуальной машины,

  • vappname - название vApp в который добавить новую ВМ,

  • catalogname / templatename - название каталога и название шаблона виртуальной машины,

  • storageprofile - политика хранения по умолчанию.

Параметры блока network:

  • type - тип подключаемой сети,

  • name - к какой виртуальной сети подключить ВМ,

  • isprimary - основной сетевой адаптер,

  • ipallocation_mode - режим выделения адреса MANUAL / DHCP / POOL,

  • ip - IP-адрес для виртуальной машины, укажем вручную.

Блок override_template_disk:

  • sizeinmb - размер boot-диска для виртуальной машины

  • storage_profile - политика хранения для диска

Создадим вторую VM с описанием файлового хранилища Nextcloud

resource "vcd_vapp_vm" "nextcloud" {

vapp_name = vcd_vapp.vapp.name

name = "nextcloud"

catalog_name = var.vcd_org_catalog

template_name = var.vcd_template_os_centos7

storage_profile = var.vcd_org_ssd_sp

memory = 8192

cpus = 1

cpu_cores = 1

network {

type = "org"

name = vcd_network_routed.net.name

is_primary = true

adapter_type = "VMXNET3"

ip_allocation_mode = "MANUAL"

ip = var.vcd_edge_local_ip_nextcloud

}

override_template_disk {

bus_type = "paravirtual"

size_in_mb = "32768"

bus_number = 0

unit_number = 0

storage_profile = var.vcd_org_ssd_sp

}

}

resource "vcd_vm_internal_disk" "disk1" {

vapp_name = vcd_vapp.vapp.name

vm_name = "nextcloud"

bus_type = "paravirtual"

size_in_mb = "102400"

bus_number = 0

unit_number = 1

storage_profile = var.vcd_org_hdd_sp

allow_vm_reboot = true

depends_on = [ vcd_vapp_vm.nextcloud ]

}

В секции vcdvminternal_disk опишем новый виртуальный диск, который подключается к виртуальной машине.

Пояснения по блоку vcdvminternaldisk:

  • bustype - тип дискового контроллера

  • sizeinmb - размер диска

  • busnumber / unitnumber - место подключения в адаптере

  • storage_profile - политика хранения для диска

Опишем последнюю VM на Битрикс

resource "vcd_vapp_vm" "bitrix" {

vapp_name = vcd_vapp.vapp.name

name = "bitrix"

catalog_name = var.vcd_org_catalog

template_name = var.vcd_template_os_centos7

storage_profile = var.vcd_org_ssd_sp

memory = 8192

cpus = 1

cpu_cores = 1

network {

type = "org"

name = vcd_network_routed.net.name

is_primary = true

adapter_type = "VMXNET3"

ip_allocation_mode = "MANUAL"

ip = var.vcd_edge_local_ip_bitrix

}

override_template_disk {

bus_type = "paravirtual"

size_in_mb = "81920"

bus_number = 0

unit_number = 0

storage_profile = var.vcd_org_ssd_sp

}

}

Обновление ОС и установка дополнительных скриптов

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

Рассмотрим как обновить ОС и запустить установочный скрипт CMS Bitrix с помощью provisioner блока.

Сначала выполним установку пакетов обновления CentOS.

resource "null_resource" "nginx_update_install" {

provisioner "remote-exec" {

connection {

type = "ssh"

user = "root"

password = vcd_vapp_vm.nginx.customization[0].admin_password

host = var.vcd_edge_external_ip

port = "58301"

timeout = "30s"

}

inline = [

"yum -y update && yum -y upgrade",

"yum -y install wget nano epel-release net-tools unzip zip" ]

}

}

}

Обозначение составляющих:

  • provisioner "remote-exec" - подключаем блок удаленного "провижининга"

  • В блоке connection описываем тип и параметры для подключения:

  • type - протокол, в нашем случае SSH;

  • user - имя пользователя;

  • password - пароль пользователя. В нашем случае указываем на параметр vcdvappvm.nginx.customization[0].admin_password, который хранит сгенерированный пароль от пользователя системы.

  • host - внешний IP-адрес для подключения;

  • port - порт для подключения, который ранее указывали в настройках DNAT;

  • inline - перечисляем список команд, которые будут вводится. Команды будут введены по порядку, как и указано в этой секции.

Как пример, дополнительно выполним скрипт установки 1С-Битрикс. Вывод результата выполнения скрипта будет доступен во время выполнения плана. Для установки скрипта, сначала опишем блок:

Опишем установку 1С-Битрикс.

provisioner "file" {

source = "prepare.sh"

destination = "/tmp/prepare.sh"

connection {

type = "ssh"

user = "root"

password = vcd_vapp_vm.nginx.customization[0].admin_password

host = var.vcd_edge_external_ip

port = "58301"

timeout = "30s"

}

}

provisioner "remote-exec" {

inline = [

"chmod +x /tmp/prepare.sh", "./tmp/prepare.sh"

]

}

И сразу же опишем обновление Битрикс.

Пример провижининга 1С-Битрикс.

resource "null_resource" "install_update_bitrix" {

provisioner "remote-exec" {

connection {

type = "ssh"

user = "root"

password = vcd_vapp_vm.bitrix.customization[0].admin_password

host = var.vcd_edge_external_ip

port = "58302"

timeout = "60s"

}

inline = [

"yum -y update && yum -y upgrade",

"yum -y install wget nano epel-release net-tools unzip zip",

"wget http://repos.1c-bitrix.ru/yum/bitrix-env.sh -O /tmp/bitrix-env.sh",

"chmod +x /tmp/bitrix-env.sh",

"/tmp/bitrix-env.sh"

]

}

}

Важно! Скрипт может не сработать, если не отключить заранее SELinux! Если вам требуется подробная статья по установке и настройке CMS 1С-Битрикс с помощью bitrix-env.sh, оо вы можете воспользоваться нашей статьей в блоге на сайте.

3. Инициализация инфраструктуры

Инициализация модулей и плагиновИнициализация модулей и плагинов

Для работы мы используем простой джентельменский набор: лэптоп с ОС Windows 10 и дистрибутив с официального сайта terraform.io. Распакуем и проинициализируем с помощью команды: terraform.exe init

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

  1. Выполняем команду - terraform plan -var-file=vcd.tfvars.

  2. Получаем результат - Plan: 16 to add, 0 to change, 0 to destroy. То есть по этому плану будет создано 16 ресурсов.

  3. Запускаем план по команде - terraform.exe apply -var-file=vcd.tfvars.

Виртуальные машины будут созданы, а затем выполняются перечисленные нами пакеты в рамках секции provisioner ОС будет обновлена и установится CMS Bitrix.

Получение данных для подключения

После выполнения плана мы хотим получить в текстовом виде данные для подключения к серверам, для этого оформим секцию output следующим образом:

output "nginxpassword" {

value = vcdvappvm.nginx.customization[0].adminpassword

}

И следующий вывод сообщает нам пароль от созданной виртуальной машины:

Outputs: nginx_password = F#4u8!!N

В итоге мы получаем доступ к виртуальным машинам с обновлённой операционной системой и предустановленными пакетами для нашей дальнейшей работы. Все готово!

Но что если у вас уже есть существующая инфраструктура?

3.1. Работа Terraform с уже существующей инфраструктурой

Всё просто, вы можете импортировать текущие виртуальные машины и их vApp контейнеры с помощью команды import.

Опишем ресурс vAPP и виртуальную машину.

resource "vcd_vapp" "Monitoring" {

name = "Monitoring"

org = "mClouds"

vdc = "mClouds"

}

resource "vcd_vapp_vm" "Zabbix" {

name = "Zabbix"

org = "mClouds"

vdc = "mClouds"

vapp = "Monitoring"

}

Следующий шаг, это выполнить импорт свойств ресурсов vApp в формате vcdvapp.<vApp> <org>.<orgvdc>.<vApp>, где:

  • vApp - имя vApp;

  • org - название организации;

  • org_vdc - название виртуального дата-центра.

Импорт свойств ресурса vAPPИмпорт свойств ресурса vAPP

Выполним импорт свойств ресурсов VM в формате: vcdvappvm.<VM> <org>.<orgvdc>.<vApp>.<VM>, в котором:

  • VM - имя VM;

  • vApp - имя vApp;

  • org - название организации;

  • orgvdc - название виртуального дата-центра.

Импорт прошел успешно

C:\Users\Mikhail\Desktop\terraform>terraform import vcd_vapp_vm.Zabbix mClouds.mClouds.Monitoring.Zabbix

vcd_vapp_vm.Zabbix: Importing from ID "mClouds.mClouds.Monitoring.Zabbix"...

vcd_vapp_vm.Zabbix: Import prepared!

Prepared vcd_vapp_vm for import

vcd_vapp_vm.Zabbix: Refreshing state... [id=urn:vcloud:vm:778f4a89-1c8d-45b9-9d94-0472a71c4d1f]

Import successful!

The resources that were imported are shown above. These resources are now inyour Terraform state and will henceforth be managed by Terraform.

Теперь мы можем посмотреть на новый импортированный ресурс:

Импортированный ресурс

> terraform show

...

# vcd_vapp.Monitoring:

resource "vcd_vapp" "Monitoring" {

guest_properties = {}

href = "https://vcloud.mclouds.ru/api/vApp/vapp-fe5db285-a4af-47c4-93e8-55df92f006ec"

id = "urn:vcloud:vapp:fe5db285-a4af-47c4-93e8-55df92f006ec"

ip = "allocated"

metadata = {}

name = "Monitoring"

org = "mClouds"

status = 4

status_text = "POWERED_ON"

vdc = "mClouds"

}

# vcd_vapp_vm.Zabbix:

resource "vcd_vapp_vm" "Zabbix" {

computer_name = "Zabbix"

cpu_cores = 1

cpus = 2

expose_hardware_virtualization = false

guest_properties = {}

hardware_version = "vmx-14"

href = "https://vcloud.mclouds.ru/api/vApp/vm-778f4a89-1c8d-45b9-9d94-0472a71c4d1f"

id = "urn:vcloud:vm:778f4a89-1c8d-45b9-9d94-0472a71c4d1f"

internal_disk = [

{

bus_number = 0

bus_type = "paravirtual"

disk_id = "2000"

iops = 0

size_in_mb = 122880

storage_profile = "Gold Storage Policy"

thin_provisioned = true

unit_number = 0

},

]

memory = 8192

metadata = {}

name = "Zabbix"

org = "mClouds"

os_type = "centos8_64Guest"

storage_profile = "Gold Storage Policy"

vapp_name = "Monitoring"

vdc = "mClouds"

customization {

allow_local_admin_password = true

auto_generate_password = true

change_sid = false

enabled = false

force = false

join_domain = false

join_org_domain = false

must_change_password_on_first_login = false

number_of_auto_logons = 0

}

network {

adapter_type = "VMXNET3"

ip_allocation_mode = "DHCP"

is_primary = true

mac = "00:50:56:07:01:b1"

name = "MCLOUDS-LAN01"

type = "org"

}

}

Теперь точно готово - мы закончили с последним моментом (импорт в существующую инфраструктуру) ирассмотрели все основные моменты работы с Terraform.

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

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

Подробнее..

Почему важно проверить ПО на вашей СХД высокой доступности (99,9999)

02.10.2020 10:21:39 | Автор: admin

Какая версия прошивки самая правильная и рабочая? Если СХД гарантирует отказоустойчивость на 99,9999%, то значит ли, что и работать она будет бесперебойно даже без обновления ПО? Или наоборот для получения максимальной отказоустойчивости нужно всегда ставить самую последнюю прошивку? Постараемся ответить на эти вопросы, опираясь на наш опыт.

Небольшое введение

Все мы понимаем, что в каждой версии программного обеспечения, будь то операционная система или драйвер для какого-то устройства, зачастую содержатся недоработки/баги и прочие особенности, которые могут, как не "проявиться" до конца службы оборудования, так и вскрыться только при определенных условиях. Количество и значимость таких нюансов зависит от сложности (функциональности) ПО и от качества тестирования при его разработке.

Зачастую пользователи остаются на прошивке с завода (знаменитое "работает, значит не лезь") или всегда ставят самую последнюю версию (в их понимании последняя значит самая рабочая). Мы же используем другой подход смотрим релиз ноты для всего используемого в облаке mClouds оборудования и внимательно выбираем подходящую прошивку для каждой единицы оборудования.

К такому выводу мы пришли, что называется, с опытом. На своем примере эксплуатации расскажем, почему обещанные 99,9999 % надежности СХД ничего не значат, если вы не будете своевременно следить за обновлением и описанием ПО. Наш кейс подойдет для пользователей СХД любого вендора, так как подобная ситуация может произойти с железом любого производителя.

Выбор новой системы хранения данных

В конце прошлого года, к нашей инфраструктуре добавилась интересная система хранения данных: младшая модель из линейки IBM FlashSystem 5000, которая на момент приобретения именовалась Storwize V5010e. Сейчас она продается под названием FlashSystem 5010, но фактически это та же аппаратная база с тем же самым Spectrum Virtualize внутри.

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

IBM FlashSystem 5010IBM FlashSystem 5010

Кратко про нашу модель 5010. Это двухконтроллерная блочная система хранения данных начального уровня. Она умеет размещать в себе диски NLSAS, SAS, SSD. Размещение NVMe в ней недоступно,так как эта модель СХД позиционируется для решения задач, которым не требуется производительность NVMe дисков.

СХД приобреталась для размещения архивной информации или данных, к которым не происходит частого обращения. Поэтому нам было достаточно стандартного набора её функционала: тиринг (Easy Tier), Thin Provision. Производительность на NLSAS дисках на уровне 1000-2000 IOPS нас тоже вполне устраивала.

Наш опыт как мы не обновили прошивку вовремя

Теперь собственно про само обновление ПО. На момент приобретения система имела уже немного устаревшую версию ПО Spectrum Virtualize, а именно, 8.2.1.3.

Мы изучили описание прошивок изапланировали обновление до 8.2.1.9. Если бы мы были чуть расторопнее, то этой статьи бы не было на более свежей прошивке баг бы не произошел. Однако, по определённым причинам обновление этой системы было отложено.

В результате небольшая задержка обновления привела к крайне неприятной картине, как в описании по ссылке: https://www.ibm.com/support/pages/node/6172341.

Да, в прошивке той версии как раз был актуален так называемый APAR (Authorized Program Analysis Report) HU02104. Проявляется он следующим образом. Под нагрузкой при определённых обстоятельствах начинает переполняться кэш, далее система уходит в защитный режим, в котором отключает ввод-вывод для пула (Pool). В нашем случае выглядело как отключение 3-х дисков для RAID-группы в режиме RAID 6. Отключение происходит на 6 минут. Далее, доступ к Томам в Пуле восстанавливается.

Если кто не знаком со структурой и именованием логических сущностей в контексте IBM Spectrum Virtualize, я сейчас кратко расскажу.

Структура логических элементов СХДСтруктура логических элементов СХД

Диски собираются в группы, которые называются MDisk (Managed Disk). MDisk может представлять собой классический RAID (0,1,10,5,6) или виртуализованный DRAID (Distributed RAID). Использование DRAID позволяет увеличить производительность массива, т.к. будут использоваться все диски группы, и уменьшить время ребилда, благодаря тому, что нужно будет восстанавливать только определённые блоки, а не все данные с вышедшего из строя диска.

Распределение блоков данных по дискам при использовании Distributed RAID (DRAID) в режиме RAID-5.Распределение блоков данных по дискам при использовании Distributed RAID (DRAID) в режиме RAID-5.

А эта схема показывает логику работы ребилда DRAID в случае выхода из строя одного диска:

Логика работы ребилда DRAID при выходе из строя одного дискаЛогика работы ребилда DRAID при выходе из строя одного диска

Далее, один или несколько MDisk образуют так называемый Pool. В пределах одного пула не рекомендуется использовать MDisk с разным уровнем RAID/DRAID на дисках одного типа. Не будем в это сильно углубляться, т.к. мы планируем рассказать это в рамках одной из следующих статей. Ну и, собственно, Pool делится на Тома (Volumes), которые презентуются по тому или иному протоколу блочного доступа в сторону хостов.

Так вот, у нас, в результате возникновения ситуации, описанной в APAR HU02104, из-за логического отказа трёх дисков, перестал быть работоспособным MDisk, который, в свою очередь, повлёк отказ в работе Pool и соответствующих Томов.

Так как эти системы довольно умные, их можно подключить к облачной системе мониторинга IBM Storage Insights, которая автоматически, при возникновении неисправности, отправляет запрос на обслуживание в службу поддержки IBM. Создаётся заявка и специалисты IBM в удалённом режиме проводят диагностику и связываются с пользователем системы.

Благодаря этому вопрос решился довольно оперативно и от службы поддержки была получена оперативная рекомендация по обновлению нашей системы на уже ранее выбранную нами прошивку 8.2.1.9, в которой на тот момент этот момент был уже исправлен. Это подтверждает соответствующий Release Note.

Итоги и наши рекомендации

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

Мы получили подтверждение, что даже надежные системы с 99,9999% обещанной доступности требуют внимания и своевременного обслуживания. Исходя из ситуации мы сделали для себя ряд выводов и делимся нашими рекомендациями:

  • Нужно обязательно следить за выходом обновлений, изучать Release Notes на предмет исправления потенциально критичных моментов и своевременно выполнять запланированные обновления.

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

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

    Например, IBM для своих систем хранения данных держит в актуальном состоянии как минимум два релиза ПО. На момент написания этой статьи это 8.2 и 8.3. Обновления для 8.2 выходят раньше. Следом с небольшой задержкой обычно выходит аналогичное обновление для 8.3.

    Релиз 8.3 имеет ряд функциональных преимуществ, например, возможность расширения MDisk (в режиме DRAID) добавлением одного или более новых дисков (такая возможность появилась начиная с версии 8.3.1). Это довольно базовый функционал, но в 8.2 такой возможности, к сожалению, нет.

  • Если обновиться по каким-либо причинам нет возможности, то для версий ПО Spectrum Virtualize, предшествующих версиям 8.2.1.9 и 8.3.1.0 (где описанный выше баг актуален), для снижения риска его появления техническая поддержка IBM рекомендует ограничить производительность системы на уровне пула, как это показано на рисунке ниже (снимок сделан в русифицированном варианте GUI). Значение 10000 IOPS показано для примера и подбирается согласно характеристикам вашей системы.

Ограничение производительности СХД IBMОграничение производительности СХД IBM
  • Необходимо правильно рассчитывать нагрузку на системы хранения и не допускать перегрузки. Для этого можно воспользоваться либо сайзером IBM (если есть к нему доступ), либо помощью партнеров, либо сторонними ресурсами. Обязательно при этом понимать профиль нагрузки на систему хранения, т.к. производительность в МБ/с и IOPS сильно разнится в зависимости как минимум от следующих параметров:

    • тип операции: чтение или запись,

    • размер блока операции,

    • процентное соотношение операций чтения и записи в общем потоке ввода-вывода.

    Также, на скорость выполнения операций влияет как считываются блоки данных: последовательно или в случайном порядке. При выполнении нескольких операций доступа к данным на стороне приложения есть понятие зависимых операций. Это тоже желательно учитывать. Всё это может помочь увидеть совокупность данных со счётчиков производительности ОС, системы хранения, серверов/гипервизоров, а также понимание особенностей работы приложений, СУБД и прочих "потребителей" дисковых ресурсов.

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

Благодарим, что дочитали до конца.
Готовы ответить на ваши вопросы и замечания в комментариях. Также приглашаем подписаться на наш телеграмм-канал, в котором мы проводим регулярные акции (скидки на IaaS и розыгрыши промокодов до 100% на VPS), пишем интересные новости и анонсируем новые статьи в блоге Хабра.

Подробнее..

Бесплатные сервисы для разработчиков огромный список

06.04.2021 12:11:10 | Автор: admin

Бесплатное хранилище артефактов PackageCloud

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

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

Но для некоторых бесплатный тариф единственный способ завлечь новых клиентов. Это просто замечательно с точки зрения самих пользователей. Ведь перед нами десятки бесплатных хостингов, API, CMS, CDN, сервисов обработки данных, поисковых движков, репозиториев, инструментов проверки кода и других. Бесплатный тариф идеален для опенсорс-разработчиков, любительских и некоммерческих проектов, маленьких стартапов. Ни за что не надо платить.

Например, огромный список бесплатных сервисов для разработчиков ведётся в репозитории free-for-dev. Список составлен пул-реквестами более 900 участников.

Важно подчеркнуть, что конкретно в этом списке отсутствуют альтернативы на своём хостинге (о них см. ниже). Здесь исключительно онлайновые сервисы, то есть SaaS, PaaS, IaaS.

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

Для примера вот несколько тематических категорий.

Основные облачные провайдеры


Ниже указано, в каком объёме предоставляются бесплатные услуги.

Google Cloud Platform

  • App Engine 28 часов фронтенд-инстансов в день, 9 часов бэкенд-инстансов в день
  • Cloud Firestore 1ГБ места, 50000 чтений, 20000 записей, 20000 удалений в день
  • Compute Engine 1 невытесняемый инстанс f1-micro, 30ГБHDD, 5ГБ для снапшотов (не для всех регионов), сеть 1ГБ из Северной Америки во все регионы (кроме Китая и Аргентины) в месяц
  • Cloud Storage 5ГБ, трафик 1ГБ
  • Cloud Shell веб-терминал Linux и базовая IDE с хранилищем на 5ГБ. Лимит 60 часов в неделю
  • Cloud Pub/Sub 10ГБ сообщений в месяц
  • Cloud Functions 2 млн вызовов в месяц (включая все фоновые и HTTP-вызовы)
  • Cloud Run 2 млн запросов в месяц, 360000гигабайт-секунд памяти, 180000 vCPU-секунд вычислительного времени, трафик 1ГБ в месяц из Северной Америки в другие регионы
  • Google Kubernetes Engine отсутствие платы за управление для одного зонального кластера. Но при этом все узлы оплачиваются по стандартной цене Compute Engine
  • BigQuery 1ТБ запросов в месяц, 10ГБ хранилище на месяц
  • Cloud Build 120 минут сборки в день
  • Cloud Source Repositories до 5 пользователей, хранилище 50ГБ, трафик 50ГБ
  • Полный список бесплатных тарифов Google Cloud

Amazon Web Services

  • Amazon DynamoDB СУБД NoSQL на 25ГБ
  • Amazon Lambda 1млн запросов в месяц
  • Amazon SNS 1млн нотификаций в месяц
  • Amazon Cloudwatch 10 пользовательских метрик и 10 предупреждений
  • Amazon Glacier 10ГБ долговременного хранилища объектов
  • Amazon SQS 1 млн запросов из очереди сообщений
  • Amazon CodeBuild 100 минут сборки в месяц
  • Amazon Code Commit 5 активных пользователей в месяц
  • Amazon Code Pipeline 1 активный конвейер в месяц
  • Полный список бесплатных тарифов AWS

Microsoft Azure

  • Virtual Machines 1 виртуальная машина B1S под Linux, одна B1S под Windows
  • App Service 10 приложений (веб, мобильные или API)
  • Functions 1 млн запросов в месяц
  • DevTest Labs среда разработки и тестирования
  • Active Directory 500000 объектов
  • Active Directory B2C хранилище на 50000 пользователей в месяц
  • Azure DevOps 5 активных пользователей, неограниченные приватные репозитории Git
  • Azure Pipelines 10 бесплатных параллельных задач с неограниченным временем выполнения для опенсорсных проектов под Linux, macOS и Windows
  • Microsoft IoT Hub 8000 сообщений в день
  • Load Balancer 1 бесплатный публичный IP (VIP) с балансировкой нагрузки
  • Notification Hubs 1млн пуш-нотификаций
  • Bandwidth внешний трафик 5ГБ в месяц
  • Cosmos DB 5ГБ хранилище и обеспеченная пропускная способность на 400 RU (реквест-юнитов)
  • Static Web Apps сборка, деплой и хостинг статичных приложений и бессерверных функций, с бесплатным SSL, аутентификацией/авторизацией и пользовательскими доменами
  • Storage хранилище для файлов и блобов на 5ГБ в LRS (locally redundant storage)
  • Cognitive Services AI/ML API (компьютерное зрение, перевод, распознавание лиц, боты...) с бесплатным лимитом использования
  • Cognitive Search сервис индексации текстов и поиск на основе ИИ, бесплатно на 10000 документов
  • Azure Kubernetes Service бесплатное управление кластером Kubernetes (хотя при этом оплачиваются сами виртуальные машины, хранение данных и другие сервисы за пределами бесплатных лимитов)
  • Event Grid 100тыс. операций в месяц
  • Полный список бесплатных тарифов Azure

Oracle Cloud

  • Compute два инстанса VM.Standard.E2.1.Micro 1ГБ RAM
  • Block Volume 2 тома, в сумме 100ГБ (используется для вычислений)
  • Object Storage 10 ГБ
  • Load Balancer 1 инстанс на 10 Мбит/с
  • Databases 2 базы данных, по 20 ГБ каждая
  • Monitoring приём до 500млн точек данных, выдача до 1млрд точек данных
  • Bandwidth внешний трафик 10ТБ в месяц с ограничением скорости 5Мбит/с
  • Notifications 1 млн нотификаций в месяц, 1000 отправленных писем
  • Полный список бесплатных тарифов Oracle Cloud

IBM Cloud

  • Cloud Functions 5 млн выполнений в месяц
  • Object Storage 25ГБ в месяц
  • Cloudant Database хранилище на 1 ГБ
  • Db2 Database хранилище на 100МБ
  • API Connect 50000 вызовов API в месяц
  • Availability Monitoring 3 млн точек данных в месяц
  • Log Analysis анализ логов до 500МБ в сутки
  • Полный список бесплатных тарифов IBM Cloud

Аналитика, статистика, логи


Вот несколько сервисов бесплатной аналитики для мобильных приложений и сайтов. Здесь только бесплатные сторонние сервисы. Многие из них можно использовать вместо скриптов Google Analytics, поскольку GA рассматривается как угроза приватности.

Примечание. Программы self-hosted см. в отдельной категории.

  • AO Analytics бесплатная аналитика для любых сайтов, без ограничений по объёму
  • Indicative платформа аналитики до 50млн событий в месяц
  • Amplitude 1 млн событий в месяц, до 2 приложений
  • GoatCounter опенсорсная платформа веб-аналитики бесплатно для некоммерческого использования или self-hosted версия бесплатно для всех. Позиционируется как более приватная альтернатива коммерческим сервисам Google Analytics и Matomo. Бесплатный лимит 6 месяцев хранения данных и 100тыс. просмотров в месяц.
  • Google Analytics, без комментариев
  • Expensify учёт расходов, контроль личных финансов
  • GetInsights система аналитики без куков, бесплатно до 5000 событий в месяц.
  • Heap автоматический трекинг действий пользователя в iOS или веб-приложениях. Бесплатно до 5000 визитов в месяц
  • Keen разнообразные инструменты для сбора данных, анализа и визуализации. Бесплатно до 50000 событий в месяц
  • Яндекс.Метрика российская альтернатива GA, но не лишённая недостатков последнего (в том числе угроза приватности со стороны материнской корпорации)
  • Mixpanel лимит 100000 пользователей в месяц, неограниченный срок хранения данных


    Mixpanel
  • Moesif аналитика API для REST и GraphQL, бесплатно до 500000 вызовов API в месяц
  • Molasses Флаги функций и A/B-тестирование, бесплатно до 3 окружений по 5 флагов функций в каждом.
  • Optimizely A/B-тестирование, бесплатный стартовый план на 1 сайт, 1 приложение iOS и 1 приложение Android
  • Quantcast новый сервис бесплатной аналитики, запущен в марте 2021 года, лимиты бесплатного тарифа официально не объявлены
  • Sematext бесплатно до 50тыс. действий в месяц, хранение данных 1 день
  • Tableau Developer Program бесплатная версия для разработчиков (предрелизная тестовая версия аналитической платформы)
  • UsabilityHub тестирование юзабилити и эффективности разных вариантов веб-дизайна. Бесплатные тесты до 2 минут
  • Woopra бесплатная платформа аналитики для любых продуктов, до 500тыс. действий в месяц, хранение данных до 90 дней

Другие категории



Эмулятор основных операционных систем в браузере copy.sh

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


Опенсорсные инструменты безопасности


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

Например, в нём есть системы для управления уязвимостями Faraday, Archery Sec, Jackhammer,
Watchdog и OpenVAS, сканер контейнеров trivy, менеджеры конфигурация вроде MGMT, Chef и Puppet, бесплатные системы SIEM (анализ событий в реальном времени и реагирование), VPN, инструменты для улучшения безопасности систем на Linux и Windows (Bastille, JShielder, nixarmor, Zeus (AWS), Docker-bench и др.), защита аутентификации в Linux, чёрные списки IP и доменов, прокси, socks-серверы, HTTP-туннели, FTP-прокси, DNS-прокси, инструменты сетевого и серверного мониторинга, системы для определения вторжений в сеть и на хост (NIDS и HIDS, соответственно), мониторинг и анализ логов, антивирусы, спам-фильтры, симуляторы инфраструктуры, файрволы для веб-приложений, сетевые сканеры, системы форензики (поиск цифровых улик), программы анализа файлов, метаданных, оперативной памяти и многие другие инструменты.

Всё бесплатно и с открытыми исходниками.

Бесплатные альтернативы на своём хостинге


Вышеупомянутый список free-for-dev не включает бесплатные инструменты на своём хостинге. Однако их очень много. Обычно это опенсорсные программы. Бывает, что какой-то коммерческий сервис SaaS одновременно публикует исходники, то есть предлагает параллельно платный и бесплатный тариф.

Вот список бесплатных альтернатив на своём хостинге в 81 категории из коллекции awesome-selfhosted:



Списки бесплатных ресурсов для разработчиков также ведутся в проектах FOSS-for-Dev, getAwesomeness и De-google-ify Internet.

Надеемся, что эта подборка окажется кому-то полезной.



Наша компания предлагает облачные серверы для любых задач и на любой операционной системе. Создавайте собственные конфигурации в течение минуты, минимальный тариф всего 6.5 рублей в день!
Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!

Подробнее..

Какой вид облаков выбирают компании сегодня. Российская и зарубежная практика

06.11.2020 14:12:14 | Автор: admin
Приватные облака становятся все более популярным решением для построения ИТ-инфраструктуры. Это глобальная тенденция. Тем не менее, публичные облака вряд ли станут менее популярными они подходят для многих задач, от разработки ПО до хранения бэкапов. Конкретный выбор зависит от ваших задач и возможностей.




Опыт Hewlett Packard Enterprise


Руководитель линейки продуктов GreenLake от Hewlett Packard Enterprise Кит Уайт утверждает, что в ближайшем будущем 70% рабочих процессов будут выполняться на локальной инфраструктуре. Я могу посчитать на пальцах одной руки количество клиентов, которые планировали пользоваться только публичным облаком, говорит он. Уайт рассказывает, что когда компания переносит много сложных рабочих процессов в общедоступную облачную инфраструктуру, расходы резко возрастают.

Уайт делится еще одним инсайдом. Хоть он и был семь лет одним из руководителей Microsoft Azure, он признается, что большинство компаний всерьез не планировали перехода на публичное облако. Когда люди начинают изучать тему и видят стоимость работы с публичным облаком и отсутствие гибкости в использовании нужных инструментов, это уже другой разговор, говорит Уайт. По его словам, гибкость важна для очень многих сфер. Например, для производства и здравоохранения, которые не имеют возможности разместить данные в публичных облаках, как из-за требований регуляторов, так и из соображений безопасности.

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

Доводы в пользу публичности


Сторонники публичных облаков выделяют три основных плюса.

  • Это оптимальный выбор для разработки с помощью такого облака можно отделить среду тестирования продукта от рабочей и избежать сбоев.
  • Это хороший выбор для корпоративной электронной почты. Обеспечить нужный уровень безопасности силами штатных специалистов компании долго и дорого. А провайдеры публичных облаков уже накопили достаточное количество экспертизы, чтобы размещение почтового сервиса там было надежным.
  • Желающих взломать публичные сервера хватает, поэтому такие компании тратят серьезные усилия и ресурсы на безопасность. Если вы будете пользоваться услугами крупного провайдера публичного облака, беспокоиться, скорее всего, не придется.

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

Облачные тенденции в России


По словам заместителя генерального директора компании ITGLOBAL.COM Василиия Белова, в нашей стране, как и во всем мире, становятся популярнее частные облака. Главная причина задачи компаний становятся сложнее, растет инфраструктура и требования к ней. Традиционных технологий уже недостаточно и переход в частное облако логичный эволюционный шаг.

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

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

  • Быстрый доступ к нужным ИТ-ресурсам. При этом гибко контролируется соблюдение нормативных требований и уровень безопасности. Благодаря этому снижается вероятность ошибок.
  • Быстрый запуск ИТ-инфраструктуры в облаке и объединение ресурсов в пулы.
  • Гибкое масштабирование облака. Можно оперативно реагировать на изменения в потребностях.
  • Безопасность. Можно дать доступ только авторизованным пользователям и устройствам.
  • Быстрый запуск виртуальных машин.


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

Еще один признак хорошего провайдера он не боится предлагать разместиться в сторонних публичных облаках наподобие Amazon Web Services, Microsoft Azure и Google Cloud. Там, где другие могут видеть конкуренцию, он видит возможность для совместной работы. Также опытный сервис-провайдер возьмет на себя администрирование, мониторинг и первую линию поддержки инфраструктуры.

Резюме


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



Блог ITGLOBAL.COM Managed IT, частные облака, IaaS, услуги ИБ для бизнеса:



Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru