Category: Управление на проекти

Домашен дейтацентър или лаборатория|HomeLab, Home Data center

Много devops, програмисти, системни и мрежови администратори изграждат свои домашни лаборатории, мини дейтацентрове, включително доста амбициозни и сериозно направени системи…

В тази статия разглеждам някои от съществените лимити, с които следва да се съобразяваме в амбициите и инвестициите си.

Тъй като е удобно и дори изглежда изгодно да натоварим домашната си лаборатория със сериозни задачи (например проекти за клиенти) – изхождайки от опита си за проектиране и изграждане на сериозна домашна лаборатория (от клас мини дейта център :), споделям лош опит, в желанието си да спестя на читателя настъпването на някоя и друга мотика по пътя. 😉

1. Не правете голяма инвестиция – в крайна сметка домашната лаборатория е за тестове и PoC (Proof of Concept), използването и за други цели рано или късно води до задънена улица и по някое време ще се наложи да отпишете инвестираното и направите нещата както трябва.
Все пак, по-долу (т. 7.) описвам добра (макар не изключителна) идея, която може да осмисли сериозното използване на домашната инфраструктура.

Така че – инвестирайте разумно и пестеливо, за да не загубите много (пари, време, нерви, недоволни клиенти и пропуснати възможности).

2. Причината да отпишете инвестицията е, че домашният дейтацентър не скалира добре – нито в посока повече оборудване, но винаги ще е зле в посока отказоустойчивост и надеждност на работата.

Винаги! Винаги!!

Дали съм достатъчно категоричен?

Винаги!!!

3. Имайте предвид, че много рядко електрическите инсталации в стандартните жилища са оразмерени добре, за да поддържат
7 x 24 x 365 дори малки товари от 1-2KW. Това не винаги се забелязва и никога не е проблем в началото, но е добре да се провери след няколко месеца работа дали предпазителите и изходните шини не греят. Следващите индикатори са черни конвективни следи над таблото, миризма на изгоряло и вой на пожарни сирени.

4. Проблемите с шума са добре известни и всеки чувал стартиращ или натоварен сървър има ясна звукова представа за тях. :). Ще добавя само, че шумът от вентилаторите на средномощен сървър, в някои сгради се чува и през нощта, включително И от съседите.
Разбира се, те не са чак такъв проблем, но помислете за отношенията си с партньора… 🙂  

5. Охлаждането – няма лесен и смислен начин да направите добро охлаждане, ако ще имате повече сървъри. Студеният въздух трябва да се движи отдолу нагоре и фронт/гръб спрямо сървърите (ако са за рак монтаж). Това, което можете да направите е да държите достатъчно ниска температурата в помещението, за да осигурите генерално температурния режим на оборудването, но тази схема консумира повече енергия и поради това е ценово неефективна.

Е, ако имате достатъчно средства може да заложите на рак със собствена климатизация, но това е инвестиция, която не си струва предвид описаното в т. 2.

6. Възможните компромиси –

– Ако просто имате нужда от домашен лаб – използвайте втора ръка мобилни работни станции – те дават доста мощност и са относително тихи (стига да не спите в едно и също помещение с тях). Предимствата им – не ви трябва UPS или KVM имате си вградени монитор, мишка и клавиатура.

– За ML (Machine Learning) – сглобете си машина с големи бавни вентилатори, не повече от един, но възможно най-мощен ускорител, например NVidia GeForce RTX 2080Ti. Пак ще шуми, но ако е в съседно помещение се търпи. Или не се търпи – зависи…

7. Направете си (или използвайте “as a service”) мониторинг – като минимум – температура на околната среда и на системите – трябва да знаете температурното им състояние и да получавате известия при надвишаване на допустимите рамки.

Разбира се мониторинга е необходим и за други цели – например: параметри на експлоатация, надеждност, сигурност, контрол на SLA.

Хубавото в тази схема е, че когато прехвърлите проектите си, където им е мястото – тогава домашната инфраструктура може да се използва за независим (или втори) мониторинг.

8. Ако правилно изберете оркестрацията на виртуализация/контейнеризация – ще можете лесно да мигрирате приложенията си към ваши ресурси в частни или публични клауд платформи. Така ще си запазите възможноста да правите бързи и евтини тестове и PoC в домашната среда, същевременно ще можете лесно да мигрирате продакшън системите на правилните платформи.

9. Спестете си проблеми със сигурността и надеждността и разделете правилно инфраструктурата за тестове и PoC от домашния си интернет, не ги смесвайте от самото начало най-добре – т.е. организирайте си файъруол (може и виртуализиран, но с много мисъл), умен суич/и.

Повтарям – от самото начало разделете едното от другото, никакъв компромис, временно решение и прочие.

NextCloud

Кратко описание

NextCloud е групуеър (groupware) платформа с отворен код, функционално подобна на Dropbox или Google Drive. Позволява изграждане на независима и безплатна платформа за споделяне на файлове, календар, контакти и съвместна работа върху файлове на ниво организация или по-малка работна група.

Поддържа се висок клас криптиране и защита на информацията, което позволява използването на NextCloud дори в корпоративна среда.

Предлага клиенти за достъп и синхронизация на файлове под всички разпространени десктоп и мобилни операционни системи. Nexctloud е модулен софтуер, а отворените му интерфейси позволяват създаване на разширения от трети страни (над 200 понастоящем), които допълват и развиват неговата функционалност.

Към НексКлауд може да се интегрират уеб базирани офис приложения, например Only Office, което дава възможност за уеб базирана съвместна работа с документи (подобно на Google Drive или Offie365).

Има относително добра съвместимост с MS Office – т.е. Next Cloud + Only Office отваря и визуализира на приемливо ниво документи създадени с MS Office, респективно документите създадени през Only Office са съвместими с MS Office.  

Поддържа:

  • Разширени възможности за мониторинг
  • Пълнотекстово търсене
  • Kerberos authentication
  • Аудио/видео конферентни разговори
  • Федерация (обединение на различни) NextCloud сървъри

Базова функционалност

  • calendars (CalDAV)
  • contacts (CardDAV)
  • streaming media (Ampache)
  • browser-based text editor
  • bookmarking service
  • URL shortening suite
  • gallery
  • RSS feed reader
  • document viewer tools from within Nextcloud
  • connection to Dropbox, Google Drive and Amazon S3
Подходящ за:
  • Групуеър решение за организация, отдел, фирмено или персонално ниво
  • Съвместна работа върху документи “а ла Гугъл драйв”
  • Вградените механизми за споделяне на файлове осигуряват и добър контрол на достъпа до тях.
  • Добре се вписва в корпоративна политика за достъп и организация благодарение на поддръжката на OpenID или LDAP
Неподходящ за:
  • В размките на своята ниша, NextCloud е подходящ за всички дейности
За повече информация:
Защо NextCloud:
  • Предлага цялата си функционалност в безплатна версия
  • Документацията е на приемливо ниво
  • Интеграция с LDAP
  • Множество безплатни разширителни модули
Недостатъци:
  • Комплексно приложение, изискващо поддръжка на ниво операционна система. 
Оценка на необходимите ресурси при внедряване:
  • Относително лесно и бързо внедряване. 
  • Интеграцията с някои допълнителни модули (например Only Office) може да е предизвикателство
Степен на завършеност на решението:
  • Завършено
Съвети към IT мениджъра:
  • Струва си – NextCloud е завършено групуеър решение и може да се използва като заместител на Google Drive в рамките на организация. 

Добри практики и критерии за избор на софтуер с отворен код

Инструкцията е предназначена за:

Всеки, който е склонен да използва решение базирано на софтуер с отворен код (Open Source Software).

  • Техническите лица – за да имат по-широк поглед и допълнителни критерии при изборите, които правят
  • Мениджъри – за да създадат списък с критерии, които отговарят на конкретните нужди и възможности на организацията

Принципи за подбор

  • Стабилни проекти с дългогодишно развитие
    • Минимално две-три години, ако решението ще се ползва за нужди критичен за бизнеса тип
  • Редовна поява на нови версии
    • Поне две, по-добре три главни версии (major release)
  • Редовна поява на ъпдейти
    • Поне няколко в последните няколко месеца
    • Ако проектът е, например в GitHub, гледайте какво се променя – код, Readme файлове или лицензионни текстове
  • Широка база от разработчици
    • Ако мащабен проект се прави от един човек има голяма вероятност кодът да не подлежи на развитие и поддръжка
    • Респективно ако в проекта участват повече хора – то е по-вероятно да се спазва технологична дисциплина и изисквания за писане на добър код.
  • Пълна функционалност в основна безплатна версия, за да може да се направи обоснован избор от пряк опит
    • Пълна функционалност все пак допуска необходимост от конфигурация и/или доразработка на системата, както и интеграция с други компоненти

Винаги допускайте възможността да подберете лош код и вземете грешно решение. Не се привъзрвайте към грешките си – имайте предвид историята за умрелия кон:

Една пословица на индианското племе дакота гласи: “Ако изведнъж откриете, че яздите умрял кон, най-добре скочете от него”. В бизнеса обаче хората често посягат към странни стратегии за използване на умрелия кон. Например:

  • Купуваме по-здрав камшик
  • Сменяме ездачите
  • Заявяваме: „Ние винаги яздим конете си по този начин”
  • Събираме комитет по изследване на коня
  • Организираме посещение на други организации, за да обменим опит по яздене на умрели коне
  • Организираме учебен семинар за развитие на ездовите навици
  • Проверяваме дали състоянието на умрелия кон съответства на съвременната околна среда
  • Сменяме изискванията към коня, като твърдим, че той не е умрял
  • Наемаме хора на граждански договор, за да яздят умрелия кон
  • Събираме няколко умрели коня във впряг, с цел да повишим скоростта
  • Заявяваме, че никой кон не е достатъчно умрял, за да не може да бъде бит с камшик
  • Търсим допълнително финансиране, за да повишим производителността на коня
  • Анализираме разходите, за да установим могат ли наемните ездачи да яздят по-евтино
  • Купуваме продукт, който да накара умрелия кон да препуска по-бързо
  • Заявяваме, че умрелият кон е „по-добър, по-бърз и по-евтин”
  • Създаваме кръжоци по качеството, за да намерим приложение на умрелия кон
  • Преразглеждаме изискванията към производителността на конете
  • Казваме, че този кон е бил купен по себестойност като независима променлива величина
  • Издигаме умрелия кон на длъжност ръководител на компанията

Сещате се. Успех!

Инструкции за провеждане на интервю

Инструкцията е предназначена за:

  • Специалисти от ниско и средно мениджърско ниво без или с недостатъчен предишен опит в областта на наемане на персонал.
  • Желаещи да усвоят изкуството за провеждане на интервю и повишат успеваемостта в процеса на откриване и привличане на необходимите за организацията хора.

Принципи

  • Провеждането на интервю не е формален акт и представлява отговорна работа, изискваща познания, опит и човешко отношение към хората, с които се срещате. Използвайте своя позитивен или негативен опит в областта.
  • Успехът води до поява на нов участник в професионалния Ви живот, а неуспехът е провал и за организацията.
  • Ако не сте участвали във вътрешния процес за определяне на нужди и търсене на персонал, информирайте се предварително за предпоставките, очакванията и използваната технология за търсене (например публикуване на обяви за работа в специализирани сайтове).
  • Запознайте се със CV-то на кандидата предварително, лоша практика е да го прелиствате по време на интервюто – едновременно създава дискомфорт и издава неувереност и липса на опит.
  • Посрещнете кандидата и опитайте да му създадете комфорт – ако е притеснен – покажете му, че сте добре разположен, задайте „успокояващ” въпрос – например как е пристигнал, лесно ли е намерил офиса, коментар за трафика по улиците, времето и т.н.
  • След като установите контакт, направете кратък преглед на резюмето му/и. Това е най-лесният начин да уточните наличната експертиза или характеристика на заемани позиции. Краткият преглед ще покаже на кандидата, че сте прочели документите и че бихте искали да изясните конкретни неща.
  • Изключително важно е да опишете максимално подробно и точно (за формата на интервюто, разбира се) какво представлява работата, която предлагате и организацията, за която работите. Така ще създадете у кандидата правилна представа и ще повишите вероятността да получите адекватни отговори и себепреценка на интервюирания, възоснова на които ще направите Вашия избор.

Технология на интервюто

Можете да използвате някои от изброените по-долу въпроси в подходяща според вас последователност (според получените отговори и следвайки естествения ход на интервюто).

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

Имайте предвид, че някои от тези въпроси и особено комбинации от тях може да са неподходящи за конкретната работа, организация и дори за Вас като интервюиращ.

  • Какво знаете за нашата организация/ компания/ фирма?
  • Опишете проблемна ситуация и как сте се справили с нея.
  • С кои ваши постижения се гордеете най-много?
  • Как определяте и оценявате успеха като понятие? Дайте ми пример за Ваше успешно начинание.
  • Защо напуснахте предишната си работа или искате да напуснете настоящата? Макар този въпрос да изглежда формален – важно е да знаете.
  • Малко съм притеснен заради липсата на… (посочете празнини в биографията/резюмето или области, които считате за слаби)
  • Имате солиден опит. Защо искате тази работа?
  • Опишете ми идеалната работа и/или ръководител.
  • Защо трябва да Ви наемем на работа при нас?
  • Кое Ваше качество считате като основен фактор за успеха в кариерата Ви?
  • Какви уникални умения/ качества или опит Ви различават от останалите кандидати? Важно е не какво, а как отговарят.
  • Разкажете ми за случай, в който сте работили успешно с човек, който не Ви е харесвал (или Вие него/нея)
  • Кои са най-големите Ви слабости?
  • Какви са краткосрочните/ дългосрочните Ви цели?
  • Какво биха казали за Вас бившите Ви колеги и началници?
  • Опишете ситуация, в която е трябвало да изпълните няколко задачи едновременно. Как се справихте? Какъв беше резултатът?
  • Защо искате да работите тук?
  • Каква заплата очаквате?
  • Дайте ми конкретен пример за случай, в който се е налагало да разрешите проблем, прилагайки добра преценка и логика.
  • Кои са най-добрите и най-лошите аспекти на предишната Ви работа?
  • Дайте ми пример за случай, в който се е налагало да мислите бързо, за да избегнете неловка ситуация.
  • Разкажете ми за случай, в който не сте изпълнили дадена задача в срок. Какво точно не успяхте да свършите? Какви бяха последиците? Какво научихте от този случай?
  • Дайте ми пример за случай, в който е трябвало да спазите политика, с която по принцип не сте съгласен/на?
  • Какво Ви мотивира? Как мотивирате другите?
  • Разкажете ни за важен писмен документ, който е трябвало да изготвите.
  • Дайте пример за случай, в който сте приложили умението си да откривате/ намирате информация/ факти, за да разрешите даден проблем.
  • Опишете ми преподавател/ ръководител, благодарение на когото сте научили нещо важно и полезно
  • Спомняте ли си за случай, в който са ви възложили проект, който сте считали за много сложен/ труден? Какви конкретни стъпки предприехте, за да го започнете и приключите впоследствие? Бяхте ли доволни от резултата? Ако имате възможност да се върнете назад във времето и да промените нещо, коя част от процеса бихте променили?
  • Задайте хипотетичен въпрос от етичен характер… например касаещ конфликт на интереси, сценарий, свързан с право на интелектуална собственост, и т.н.

Внимание

Не задавайте въпроси, свързани с възраст, семейно положение, сексуална ориентация, религия, „кой ще се грижи за децата?“ и пр. Имайте предвид, че много често кандидатите сами (т.е. доброволно) поднасят такава информация, напр. „Жена ми/Мъжът ми, постоянно ми повтаря…”, „три-годишната ми дъщеря ще се радва да го чуе” и т.н.

Не е незаконно да разполагате с тази информация; незаконно е да наемете (или ненаемете) човек на работа, поради подобна информация. Ако работата изисква чести пътувания и/или „оставане до късно” редно е това да се съобщи на кандидата и да се зададе въпрос – дали той може да се справи с подобно натоварване.

Дайте възможност на кандидата да зададе въпроси. Това е и лек намек, че интервюто е към своя край. Много често кандидатите не могат да измислят кой знае колко ‘умни въпроси’ в този момент (това може и да е индикатор за слаба заинтересованост от организацията/длъжността, както и за слаба подготовка за интервюто като цяло). Въпреки това им напомнете, че ако възникнат някакви въпроси след интервюто ( включително в близките няколко дни) могат да се свържат с Вас.

Слушайте внимателно въпросите на кандидатите и се опитайте да извлечете максимална полза/ информация от зададените от тях въпроси. Много често именно техните въпроси ще носят повече полезна информация, отколкото отговорите, които са Ви дали по време на интервюто.

За да завършите интервюто, благодарете на кандидата за отделеното време и накратко опишете следващите етапи на набирането, за да може да се добие поне обща представа за това кога реално може да се очаква развитие. (Ако планирате да провеждате интервюта в следващите 10 дни, то е ясно, че вторият кръг интервюта няма да започне по-рано.

Не оставяйте кандидатите с погрешно впечатление (не ги подвеждайте), че ще им се обадите през следващите три дни. В същото време се опитайте да разберете какво предизвестие трябва да дадат на настоящия си работодател в случай, че бъдат избрани за тази длъжност. Ако зависи от Вас – погрижете се всички да бъдат уведомени за резултата.

Успех!

Zulip chat

Кратко описание

Zulip chat е чат приложение за работни групи – подобно е на Slack, Mattermost, MS Teams и прочие.

Предлага:

  • Оптимални система за визуализация на съобщения
    • Метаезик оптимизиран за групов чат с четимо и удобно представяне на съобщенията
    • Представяне на снимки и видео клипове
    • Drag and drop работа с файлове
    • Визуализация на код, включително syntax highlighting
  • Мощна система за нотификации, включително през мобилни и десктоп клиенти, мейл. нотификация по конкретни теми, участници в дискусия, ключови думи и прочие
  • Клавишни шорткъти за удобство и скоростна работа
  • Интеграция със стотици приложения и системи
  • Бизнес клас сигурност
  • Пълнотекстово търсене
  • История на чатове
  • Статистики
  • Частни разговори
  • Видео разговори
  • Модерация
  • Интеграция с други чат системи (например Slack, IRC, Matrix)
  • Много, много други възможности
Подходящ за:
  • Изграждане на фирмена чат система
  • Безплатна алтернатива на Slack – при надхвърляне на рамките,  в които Slack е безплатен
Неподходящ за:
  • Система за индивидуален чат
За повече информация:
Защо Zulip chat:
  • Предлага цялата си функционалност в безплатна версия
  • Има клауд базирана комерсиална версия (подобно на Slack)
  • Документацията е на приемливо ниво
  • Интеграция с LDAP
  • Интеграция със системи за наблюдение и управление
  • Собственост е и активно се развива от DropBox
Недостатъци:
  • Дребни проблеми при работа с мобилния клиент под Андроид.
    • Доколкото приложението се развива активно, те вероятно са отстранени към момента на четене на статията
  • Липса на документация на български език
Оценка на необходимите ресурси при внедряване:
  • Време за инсталация: 45 мин
  • Време за базово усвояване: 1 час
  • Необходимост от оперативна поддръжка: ниска
Степен на завършеност / Необходимост от развитие:

  • Завършено решение
Съвети към IT мениджъра:
  • Струва си да се използва като безплатна алтернатива на Slack и MS Teams.
  • В някои отношения е по-добре замислен и изпълнен
  • Възможностите за интеграция с други приложения и системи са огромни и близки до тези на основният конкурент – Slack

GLPI

Кратко описание на GLPI

  • Предлага пълен комплект IT Service Management (ITSM) средства (ITIL V2)
  • Мощен модул за IT инвентар (IT inventory), включително с автоматично разпознаване (Fusion Inventory) и завеждане в инвентара на компютри, принтери, мрежово оборудване, софтуер, лицензи, консумативи, договори за поддръжка
  • Добър хелп/сървисдеск модул –
    • завеждане/отваряне на тикети през различни канали (мейл, уеб, може да се правят и други).
    • Разпределяне на задачи към вътрешни и външни изпълнители.
    • Knowledge base.
    • SLA контрол
    • Call center решение може да се направи с комерсиални модули за интегриране със софтуерна телефонна централа (Asterisk)
  • Проджект мениджмънт модул
  • Универсална система с широка приложимост в рамките на голяма организация
Подходящ за:
  • Базови ITSM процеси (ITIL V2)
  • Изграждане на система за поддържане на IT складово стопанство – инвентар (inventory) с ръчно и автоматично въвеждане на информацията
  • Изграждане на хелп деск (help desk) / сървис деск (service desk) система за поддръжка на вътрешни и външни за организацията клиенти
Неподходящ за:
  • Инвентар и складово стопанство извън IT областта
За повече информация:
Защо GLPI:
  • Добре направен и с много мисъл софтуер за организация на IT експлоатация 
  • Достатъчно широка общност от разработчици и потребители
  • Удобен за SLA контрол
  • Добро API за връзка с трети продукти – например мониторинг системи
  • Множество модули написани от трети страни, които разширяват възможностите на GLPI
  • Добре се вписва в корпоративна среда (LDAP/AD) и в политиката за сигурност на компанията
Недостатъци:
  • Web интерфейсът не е особено интуитивен и изглежда архаичен
  • Макар да има няколко андроид базирани безплатни мобилни клиента, нито един от тях не предоставя цялостно мобилно решение. Платените клиенти не си заслужават
  • Няма много материали на български език
  • Добра документация има на френски език. Документацията на английски език върши работа, но има липси
  • Тъй като API-то за връзка с допълнителни модули и външни системи е променяно неколкократно през годините – случват се несъвместимости
Оценка на необходимите ресурси при внедряване:
  • Има относително добра документация за инсталация
  • Изисква ръчна инсталация на базови компоненти (database, web server) и на множество php модули
  • Лек е за експлоатация
  • Време за базово усвояване: 4-6 часа
  • Необходимост от оперативна поддръжка: средна (под 4-6 часа месечно, в зависимост от типовите системи и устройства, които се инвентаризират)
  • При използване на модули от трети страни може да се направи добро call center решение за IT поддръжка 
Степен на завършеност / Необходимост от развитие:

  • Завършено решение
  • За пълноценна работа е необходимa инсталация и конфигурация на допълнителни модули, което може да изисква промяна в кода на модулите, ако са разработвани за предишна версия на API
Съвети към IT мениджъра:
  • Струва си
  • Ако се търси ITSM решение с отворен код (open source) – GLPI върши смислена работа

Операни предлага инсталация, интеграция със съществуващи компоненти, експлоатация и поддръжка на комплексни ITSM решения в инфраструктура на клиента, публични и частни облаци или върху специализиран Operani Operations Cloud