Skip to content

work

Hosting Providers

В интересное время живём: мне кажется что ещё пара лет максимум и всякие фуджитсу и хьюлет паккарды-эйдиэсы с их непробиваемыми change control и service request процедурами канут в лету и останутся в виде реселлеров железячного пространства. Уже сейчас народу гораздо легче сделать себе сервера при помощи Puppet/Chef или Fabric, чем запросить чтобы хостинг провайдер сделал это вручную, с ошибками и дорогими недочётами, содрав за это хорошие деньги.

По долгу службы приходится общаться с HP/EDS Эти индусские работяги предоставляют сервера для хостинга нашего софта. Все эти сервера виртуальные, но отношение к ним как к железякам. Вот, например, попросили мы дать нам ещё пару серверов точно таких-же, как уже работающие. Казалось бы, этот запрос делается в течение получаса, максимум: клонируется уже существующий и запускается. В реальности это занимает неделю: сначала пишутся бумаги, потом пинг-понг из емейлов на тему “что вы имели ввиду под термином ‘100% как уже существующие'” и потом мы выискиваем недочёты – так как сервера всё равно были сделаны “с нуля”. Или, вот ещё смехотворная ситуация: вместо того, чтобы сделать снапшот виртуального сервера перед деплойментом новой версии и откатиться на этот снапшот если что-то не получилось, эти весельчаки будут восстанавливать сервер из вчерашнего бэкапа. То есть никто не пользуется преимуществами виртуализации. Всё как по-старому, только работает медленнее.

Я, конечно, понимаю, что такая бодяга сделана только для того, чтобы максимизировать время, потраченное на производство работ, потому как работы оплачиваются по схеме time and materials. Но если раньше альтернативы не было, то сейчас есть. И бизнесы, покупающие “услуги” таких провайдеров, начинают оглядываться на альтернативы и разговаривать уже совсем по-другому. Так что даю пару лет на вымирание или на перевоплощение.

А я тем временем запустил под kvm/Ubuntu на обычном десктопе четыре Windows XP и подключил их к боевому билд серверу для запуска на них всяческих функциональных тестов. В режиме ожидания (это их обычное состояние) они отъедают каких-то 6-8% от четырёхядерного процессора.

Virtialbox, VMWare, Xen, kvm

На работе меня поставили главным по виртуализации билд сервера. Он и сейчас виртуализован, но основная ОС в нём Windows 7, а не всеми любимый Линух. Было решено убрать эти форточки, воняющие мышами и взгромоздить туда линух и на нём запускать много-много других виртуальных линухов и чуть чуть виртуальных виндузов.

Выбор, естесственно, пал на главный линуховый виртуализатор – Xen. Он, типа, мейнстрим и все под ним работают и огого какой быстрый. Зенификация бокса была поручена мне, никогда этот зен не видевшему в глаза. Я человек осторожный в плане предчувствия того, что хорошую вещь зеном не назовут, поэтому решил сначала потренироваться на кошках на лаптопе, который валялся заброшенным в углу. Лаптоп имеет в себе Core 2 Duo+4GB RAM, самое оно для экспериментов. Скопировал виртуальные машины с билд сервера (они под VirtualBox сделаны), сконвертировал их в raw images (согласно повсеместным рекомендациям).

Столько зена я не имел давным давно! Было попробовано следующее:

Citrix XenServer – установился, но не нашёл сетевую карту. В баш консоле она есть, но зен ее не видит.
XenSource Xen Cloud Platform – установился, нашёл сетевую карту, но отказался монтировать NTFS диск. Я специально для него сделал ext3 partition на внешнем диске, оно диск смонтировало, но всё равно отказалось монтировать raw images. Эти файлы её же родной fdisk великолепно видит как файловые системы, но вот опаньки…
Debian Squeeze – не имеет LiveCD, влезающий на CD. Плюс не даёт выбрать зеркало, откуда его, собственно, можно скачать. На специальной странице с зеркалами половина зеркал не имеет этой версии в наличии. Поставил при помощи network CD, попутно выяснив, что это чудо не знает ничего, кроме WEP, когда дело доходит до установок пароля в WiFi. Установил, поставил dom0 xen kernel, но обломался на зене с установками сети для виртуальных машин. Все гайды в сети о том, как сделать нетворк бридж, мне же надо нат – хз как его делать. Не видят гостевые машины сети и всё тут. Плюс хз как их запускать в графическом режиме.
Ubuntu Natty Narvahl – не имеет dom0 (hypervisor) kernel. Можно взять и самому его скомпилировать. Скомпилировал, ошибок нет, но вот не работает. Не даёт создать гостевую машину.

Короче плюнул я на этот зен!

Пошёл и поставил kvm в Natty – и оно сразу заработало! Всё вместе, и сеть, и графический режим, и прочесть имеющуюся файловую систему из файла, и запустить новую машину из имеющегося файла! Ну то есть всё на уровне “работает прямо из коробки, уберите ваш напильник”! Вот только гость для виндовз ну очень тормозливый… Но я пока валю это на то, что я запускаю уже установленные окны, и оне там как-то не так вставлены. Буду дальше копать в направлении переустановки виндовза.

Такое вот веселье у меня на работе.

Work, work, work

На работе третий месяц моей небольшой командой из 2.5 человек пишутся скрипты для тестирования производительности продукта, который большая команда будет переписывать с нуля. Всего где-то 120 питон скриптов, плюс баш скрипты чтобы всё это запускать “одной кнопкой”. В результате многочасового теста сгенерится где-то гиг файлов, которые преобразуются в 10и килобайтный текстовый файл.
Меня поражает факт что для генерации этого файлика требуется столько усилий и времени. :) И всё для того, чтобы тест этот можно было запускать когда угодно.

Question

Может пора уже перестать сопротивляться и заняться в полный рост performance testing?

За последние 10 лет на каждой работе и на каждом проекте этим занимаюсь, но сопротивляюсь. И вот на новом проекте опять двадцать пять – поставили этим заниматься потому как “Алексей знает это лучше других”. Так что я теперь задумался…

Agile practices

Одна из страшных вещей в моём бизнесе – это когда кто-то решает следовать каким-либо “best practices” с религиозным рвением. Я считаю, что ко всем новшествам надо подходить с изрядной долей скептицизма.

Новому проект, проходящему под лозунгом гибкого, agile, не выделили места на стенах офиса. То есть на стены нельзя вешать ничего, кроме корпоративного буллшита. Но вот апологеты говорят о том, что задания надо распределять на листах бумаги, которые вешают на стены. Что же делать? Местные “эксперты” даже голову не стали чесать по этому поводу. Раз апологеты и гуру говорят, что надо на бумаге и на стену, то так и будем делать: будем бумагу вывешивать на стену только на время ежедневного митинга. И стали так делать.

Прошло три недели. Бизнес-спонсор проекта стал терять нить обсуждений. Не вижу, говорит, прогресса. Где риски? Где мы отстаём и где мы перегоняем? Какой общий статус проекта? Опаньки. Проджект менеджер, который с радостью прикрылся словами “agile project” как индульгенцией от составления и поддержания плана, как-то так посуровел и заявил, что статусы проекта в agile не ведутся и что если кто-то не успевает, то “he has to make some time for his job”. На что сразу получил от разработчиков интересное заявление о том, что о переработках надо бы знать зарание и надо бы разместить их в общем плане.

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

About starting new work

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

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

  • настроил IDE на своём лаптопе путём копирования его из корня флешки, выданной на курсе по Spring, в корень лаптопского диска.
  • запуск приложения из IDE – трёхступенчатый процесс:
    1. Eclipse скомпилирует
    2. Ручками копируется новый jar
    3. Eclipse рефрешится и компилирует ещё раз
  • в 50% случаев такой запуск не работает и приходится это лечить перезапуском эклипса
  • вручную сделал пару таблиц в sql server и сказал серверу сгенерить скрипт. Сервер сказал “Есть!” и сгенерил скрипт в каком-то идиотском формате, который понимается только notepad’ом (и после сохранения в ноутпаде перестаёт быть идиотским). Но так как вера в возможность генерации скриптов автоматом велика, то практически все скрипты находятся в этом идиотском виде.
  • запрограммировал два экрана и, ввиду торможения клиентом на предмет выделения сервера для тестирования, тестируются на машине юноши путём запуска в IDE. Класический случай “Works on my machine”.
  • ввиду того, что клиент тормозит и не дал своих компьютеров, но не позволяет входить лаптопу юноши в свою сеть, юноша не пользуется никаким source version control инструментом. В конце дня просто пакует все файлы и не озадачивается копировать их куда-нибудь ещё (на флешку и т.п.)

А теперь хит сезона!

Весь этот бардак юноша называет Agile Software Development и себя называет Scrum master.

А вы говорите “индусы, индусы”…