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

Pi

Встречи планирования разработки в пандемию, или Как устроить электро PIP

15.04.2021 14:13:15 | Автор: admin
Сегодня мне хотелось бы с помощью моих коллег Agile-коучей Ани Родионовой, Макса Зотова и владельца продукта в Трайбе Розничное взыскание и урегулирование Свята Божухина рассказать о практике применения интересного инструмента. Итак, речь пойдёт о Program Increment Planning Meeting aka PI Planning.

Это метод планирования из SAFe (Scaled Agile Framework) гибкого фреймворка для крупных компаний. Ну, знаете, это когда люди стоят у стены, оклеенной стикерами, лепят всякие ниточки от одного стикера к другому, но при этом в городе не орудует маньяк.

Ниже пример места встречи одной из команд для PI в Сбере (обратите внимание на ту самую стену на заднем плане):

image

Все мы помним, что в марте 2020 года всё стало иначе: пандемия и режим самоизоляции внесли свои коррективы. Мы переобувались на лету за неделю, а то, что ранее, как нам казалось, было возможно только оффлайн, переместилось в онлайн.

С чего началось


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

Вот так выглядит SAFe, и скромную часть в нём занимает PI:

image

Вот что должны сделать разные участники, чтобы планирование прошло успешно:

image

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

Scrum-мастерам поручили подготовить все шаблоны флипов (флипчартов). В онлайне они трансформировались в таблички на Confluence в специальном пространстве для совместной работы.

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

Группа фасилитаторов следила за тем, чтобы все шаблоны в Confluence были подготовлены и всё логистически готово.

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

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

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

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

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

image

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

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

image

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

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

Процесс


Мы бронируем два дня на эту работу, чтобы все всё успели. Начало в первый день в 10 утра, рассказ бизнеса, куда мы идём, каких основных ключевых целей ждёт от нас бизнес, какие основные изменения в архитектуре могут быть.

Дальше идёт работа команд:

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

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

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

В среднем из запланированного делается по факту 7080 %. Это очень качественный показатель.

Инвестиция в будущее


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

Вот так, если вкратце про PI Planning. Если хотите больше подробностей, то можно посмотреть выступление коллег тут.
Подробнее..

VMware ESXi на Raspberry Pi

13.10.2020 18:18:35 | Автор: admin

Ранее мы рассказывали, что VMware ESXi стала доступна для Raspberry Pi. В данной статье мы рассмотрим установку гипервизора и запуск гостевой ОС на Raspberry PI 4 Model B.

Подготовка рабочего места


Прежде чем приступать к установке, необходимо подготовить рабочее место. Вот что использовалось при написании инструкции:

  • Raspberry Pi 4 Model B 4GB RAM;
  • источник питания Qualcomm GA-QC810;
  • кабель USB A to USB type C;
  • карта MicroSD 16GB;
  • адаптер MicroSD to USB;
  • USB флешка 32GB;
  • USB флешка 16GB;
  • кабель HDMI-mini to HDMI;
  • комплект клавиатура+мышь с беспроводным адаптером;
  • ноутбук с Ubuntu 20.04;
  • кабель RJ-45;
  • монитор.

Уделите особое внимание источнику питания, так как нехватка тока может привести к разным ошибкам в процессе установки гипервизора. Используемый нами Qualcomm GA-QC810 дает 3А при напряжении 5В, что идеально подходит для нашей малинки. Также рекомендуем использовать активное охлаждение Raspberry PI вместо пассивного.

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

Обратите внимание, что на момент написания статьи VMWare ESXi не поддерживает модуль Wi-Fi, для подключения к сети используется только проводной интерфейс.

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

Обновление EEPROM


Первым делом обновите EEPROM малинки. Эта процедура выполняется в Raspberry PI OS. Эта ОС должна быть предустановлена на Raspberry PI, но, если вы уже устанавливали другую ОС, это не проблема.

Скачиваем Raspberry Pi Imager с официального сайта. Для Ubuntu программа распространяется в виде deb-пакета. Далее в терминале переходим в каталог со скачанным пакетом и устанавливаем его:

sudo dpkg -i imager_1.4_amd64.deb

Могут возникнуть ошибки, связанные с неразрешенными зависимостями. Необходимые зависимости устанавливаются с помощью команды apt:

sudo apt --fix-broken install

Если зависимости и Imager успешно установились, можно приступать к установке Raspberry Pi OS.

Окно Raspberry Pi Imager v1.4 с выбранными ОС и накопителем
Подключаем MicroSD-карту к ноутбуку и запускаем утилиту. В качестве ОС выбираем Raspberry Pi OS (32-bit), а в качестве SD Card подключенную MicroSD-карту. Убедитесь, что выбрали правильное устройство, так как нажатие кнопки write сотрет все данные на устройстве и запишет туда файлы выбранной ОС.

Запись Raspberry Pi OS на MicroSD-карту
После завершения записи утилита дополнительно проверит корректность записанных данных. Если все хорошо, то устанавливаем MicroSD-карту в Raspberry Pi и запускаем. После загрузки ОС нас приветствует первоначальная настройка ОС. Отвечаем на ее вопросы и ближе к концу соглашаемся обновить ПО.

Обновлений EEPROM не найдено
После обновления ПО можно приступать к обновлению EEPROM. Сначала проверим наличие обновлений:

sudo rpi-eeprom-update

У нас установлена актуальная версия, поэтому необходимости выполнять обновление нет. Однако если версия CURRENT все же отличается от LATEST, то обновляемся:

sudo rpi-eeprom-update -asudo reboot

Теперь, когда EEPROM обновлен, приступаем к установке образа UEFI.

Установка UEFI


Для загрузки VMWare ESXi необходим UEFI, которого по умолчанию нет на Raspberry Pi. Это легко исправить. Выключаем малинку, извлекаем MicroSD-карту и подключаем ее к ноутбуку.

Карточку необходимо отформатировать в FAT32 и примонтировать в удобное место:

sudo mkfs.fat -I /dev/sdXsudo mount /dev/sdX /mnt

Обратите внимание, что мы создаем файловую систему прямо на накопителе без использования таблицы разделов. Далее скачиваем и распаковываем архив с содержимым репозитория raspberrypi/firmware.

cd /tmpwget 'https://github.com/raspberrypi/firmware/archive/master.zip'unzip master.zip

В репозитории нас интересует содержимое каталога boot, кроме файлов с расширением .img, которые представляют собой образы с ядром ОС Linux. Избавляемся от img-файлов и копируем содержимое каталога на MicroSD-карту:

cd firmware-master/bootrm -f *.imgsudo cp -r * /mnt

Так как это оригинальные файлы прошивки, в них нет UEFI. Скачиваем модули с UEFI отдельно на странице релизов:

cd /tmpmkdir ueficd uefiwget 'https://github.com/pftf/RPi4/releases/download/v1.20/RPi4_UEFI_Firmware_v1.20.zip'unzip RPi4_UEFI_Firmware_v1.20.ziprm RPi4_UEFI_Firmware_v1.20.zip

Если вы используете Raspberry Pi с 4 ГБ оперативной памяти, то в config.txt необходимо добавить строчку gpu_mem=16:

echo "gpu_mem=16" >> config.txt

После этого добавляем файлы на MicroSD-карту:

sudo cp -r * /mnt

Далее отмонтируем карту, устанавливаем ее в Raspberry Pi и запускаем.

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

UEFI Setup Utility на Raspberry Pi
Заходим в Setup и видим достаточно привычную для серверов картину. Однако глаз цепляется за строку 3072 MB RAM. Объяснение этому достаточно простое. По умолчанию оперативная память ограничивается до 3 ГБ для совместимости с другими ОС.

Отключение искусственного ограничения оперативной памяти
Так как нам нужна вся доступная на малинке оперативная память, то находим пункт Limit RAM to 3 GB по пути Device Manager Raspberry PI Configuration Advanced Configuration и устанавливаем в Disabled. После этого сохраняем настройки нажатием клавиши F10 и выходим из Setup Utility. Для применения настроек необходимо выполнить перезагрузку, о чем нас и попросят. Соглашаемся на перезагрузку, и наш Raspberry Pi готов к установке гипервизора.

Подготовка установочной флешки


Заходим на страничку ESXi Arm Edition, выбираем ESXi-Arm-ISO, соглашаемся с лицензией Technical Preview и принимаем факт, что Flings это экспериментальное ПО и его стоит использовать только для тестовых целей.

Скачать образ без существующего аккаунта VMware не получится. Необходимо зарегистрироваться или войти со своей учетной записи. На странице загрузок выбираем ESXi for Arm ISO image (no VMware Tools). После скачивания разворачиваем ISO-образ на меньшую из флешек:

sudo dd if=VMware-VMvisor-Installer-7.0.0-16966451.aarch64.iso of=/dev/sdX bs=1M

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

Назначение порядка загрузки
По умолчанию порядок загрузки UEFI начинается с попыток загрузиться по сети. Так как мы работаем с флешками, то заходим в Setup Utility и меняем порядок в следующем пункте настроек: Boot Maintenance Manager Boot Options Change Boot Order Change the order. Записи меняют приоритет по нажатию кнопок . Устанавливаем флешки первыми.

После установки приоритета необходимо нажать Enter для сохранения нового порядка, а затем сохранить изменения в конфигурации с помощью F10. Перезагружаем Raspberry Pi и наконец попадаем в установщик VMware ESXi.

Установка VMware ESXi


Дополнительные параметры для установщика
Ранее мы говорили, что предпочтительным способом общения с установщиком является использование монитора и клавиатуры, а не консоли. Эта рекомендация имеет наибольшую силу во время начала установки. При использовании клавиатуры можно нажать Shift + O и задать параметры для установщика, в то время как в консольном режиме это невозможно.

Мы как раз воспользуемся этим для ограничения раздела VMFS-L до 1 ГБ. Нажимаем Shift + O и прописываем autoPartitionOSDataSize=1024. Так у нас останется место на Datastore для виртуальных машин. К сожалению, нам не удалось заставить ESXi видеть другие USB-накопители и iSCSI-устройства, поэтому ограничение раздела VMFS-L это пока единственный способ выделить место для хранилища ВМ.

Отвечаем на вопросы установщика, и спустя 10 минут VMware ESXi установлена. Обратим внимание, что установщик не задает вопросы про сетевые интерфейсы. Проводной интерфейс настроен получать адрес по DHCP, а беспроводной игнорируется системой.

Главная страница веб-интерфейса VMware ESXi
Если установка прошла успешно, то перезагружаем Raspberry Pi, извлекаем установочную флешку и дожидаемся загрузки гипервизора. Операционная система попытается получить адрес по DHCP на проводном интерфейсе, и если ей это удастся, то этап установки завершен.

Запуск виртуальной машины


Во время установки гипервизора мы ограничили размер VMFS-L раздела до 1 ГБ, что позволило оставить 20 ГБ под datastore место, где виртуальные машины хранят свои данные. Мы бы очень хотели воспользоваться возможностью загрузки готовых OVA-образов, но, к сожалению, под архитектуру ARM64 такие образы не находятся.

Установка Debian 10 из ISO-образа
Так как легким путем пойти не удалось, придется искать образы CD с ОС под архитектуру ARM64. Мы выбрали Debian 10 и скачали netinstall-версию с cdimage.debian.org.

При создании виртуальной машины нужно уделить особое внимание количеству оперативной памяти и размеру диска гостевой ОС. Во-первых, диск гостевой ОС должен быть от 16 ГБ, чтобы установщику было где развернуться. Во-вторых, количество свободного места на VMFS-разделе должно превышать количество выделенной оперативной памяти для ВМ.

Таким образом, при наличии 20 ГБ свободного места на VMFS получилось создать виртуальную машину с 2 ГБ оперативной памяти и 18 ГБ постоянной памяти. При нарушении этого условия виртуальная машина откажется запускаться, и одной из причин будет No space left on device.

Гостевая Debian 10 Buster и характеристики виртуальной машины
После множества попыток нам удалось установить Debian 10 на виртуальной машине в следующей конфигурации:

  • 2 vCPU;
  • 1 ГБ RAM;
  • 17 ГБ диск.

Со стороны операционной системы важными являются следующие настройки:

  • один раздел для всего на 17 ГБ;
  • не использовать swap;
  • из компонентов на выбор поставить только SSH Server.

Конечно, успех был достигнут не с первой попытки.

Рекомендации по решению проблем


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

Но не все проблемы решаются бездействием. Так, например, нам не удалось установить Debian с первого раза, поскольку виртуальная машина зависла на этапе разбиения диска, а следом завис и гипервизор.

Жесткая перезагрузка помогла продвинуть установку Debian дальше, но на этапе установки ядра ВМ опять зависала, потребление CPU снижалось до минимума, как и обращение к дискам. Гипервизор был неспособен перезагрузить ВМ, а datastore browser отображал бесконечную загрузку. Подозрения пали на флешку с гипервизором.

Задержка при обращении к диску до 150 секунд
Просто заменить флешку было невозможно, так как внешних накопителей подобного объема в ближайшем доступе не было. Графики мониторинга гипервизора говорили о больших задержках при обращениях к диску. Мы проверили установку Ubuntu 20.04 и CentOS 7, и каждая из ОС выдавала схожие симптомы, а проблема воспроизводилась в конкретные этапы установки.

Предположили, что установщику не хватает места. Мы сократили раздел VMFS-L до 1ГБ и выделили виртуальной машине 16 ГБ. Это сместило зависание виртуальной машины на самый конец установки и подтвердило догадку. Опытным путем было установлено, что для минимальной установки Debian 10 требуется диск на 17 ГБ.

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

Заключение


Мы добились желаемого и не просто поставили гипервизор на Raspberry Pi, но и установили гостевую ОС, которая корректно работает. Хочется отметить, что запуск VMware ESXi на малинке был увлекательной и местами нетривиальной задачей.

Несмотря на малую вычислительную мощность Raspberry Pi, вероятно в будущем, ее можно применить в качестве бюджетного хоста-свидетеля (witness) для программно-определяемого хранилища VMware vSAN.

Подробнее..

Категории

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

  • Имя: Макс
    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