• Насколько заметно различие между linux дистрибутивами?

    Singaporian
    @Singaporian
    Есть только три крупных основных ветки: Debian, RedHat и Slackware. Плюс одна новая: NixOS. Все остальное - их потомки и действительно отличаются не сильно. Что-то подинамичнее и посвежее (Ubuntu, Fedora), а что-то поустойчивее (как правило сами "отцы основатели").
    В любом случае это неважный вопрос. Зная что-то одно, можно спокойно привыкнуть к другому за очень короткий срок. Причем это действительно будет не вопрос знаний, а вопрос привычки.
    Совет: не заморачивайтесь и работайте с тем, к чему привыкли. Все ОС вполне достойные.
    Ответ написан
    Комментировать
  • Java и Vim - реально ли?

    Singaporian
    @Singaporian
    Не надо вам это. Поверьте. Сам люблю vim, но любой любви должен быть предел.
    Ответ написан
  • Что нужно знать чтобы стать начинающим системным инженером (devops)?

    Singaporian
    @Singaporian
    Статья, которую должен прочитать каждый.

    DevOps - не профессия. Это название культуры доставки кода от разработчика (dev) через тестировщиков и до сисадмина(ops) и обратная связь по этой цепочке.

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

    Профессии, которые отрисуются в процессе построения этой методологии следующие:
    • Build Engineer - инженер, который управляет зависимостями, сборками, конфликтами кода.
    • Release Engineer - инженер, который управляет репозиторием кода (кто куда и по каким правилам мерджится и откуда бренчуется). Пожалуй, это самая сложная задача в больших проектах. Особенно с нестрогим Agile или в Waterfall.
    • Automation Engineer - инженер, который занимается автоматизацией рутинных задач. Обычно деплоймент, автотесты, etc. Все эти buzz-слова типа Docker - его инструментарий.
    • Site Reliability Engineer - инженер, который поддерживает ops (апгрейды, расширение железа)
    • Configuration Manager - непонятная мне специальность. Жуткое порождение HR-специалистов, давящих на громкое название позиции. Можно было бы пойти дальше и назвать специальность ZooKeeper Vice President

    В список не вошла самая главная специальность - "психолог". Человек, который должен следить за людьми и вычислять психологически важные аспекты команды, пораждающие боттлнеки производительности.

    Почти всегда все эти роли совмещают один-два человека. Ну это зависит от качества кода.
    Назовем эту компанию BRAE/CM для краткости.
    Задача BRAE/CM состоит в том, чтобы программный код, который выходит из под пера программистов, оставался на контроле программистов и сисадминов одновременно. Программисты, равно как и сисадмины, благодаря DevOps-подходу, имеют возможность и даже обязаны обслуживать код на протяжении всего жизненного цикла от планирования архитектуры до мусорки.
    То есть сисадмины начинают рулить еще до того, как код попадет к ним - на ранних стадиях, а программисты продолжают рулить своими задачами уже после того, как код от них ушел к сисадминам - на поздних стадиях. И все это прозрачно друг для друга и все проблемы и решения ходят туда сюда и не спотыкаются о бюрократия в стиле "ничего не знаю, мы код уже закоммитили, у меня тут свои проблемы, у них сломалось - пусть сами и чинят".

    Так вот эта работа - завершающая стадия системного администратора и начинающая стадия разработчика. Поэтому не бывает Junior BRAE/CM.
    BRAE/CM бывает всегда только Senior в системном администрировании и всегда Junior в программировании.

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

    Сразу оговорюсь по языкам.
    У каждого языка свое предназначение. Java чаще используется в корпоративном секторе. Там много серверов и сложные бизнес-приложения. Поэтому Java-мир очень чувствителен к таким понятиям, как "технинческий долг" и "управление процессом разработки". И именно поэтому именно там все основные вакансии DevOps и именно там будет самый интересный опыт.
    Кроме Java, традиционно сильная DevOps-культура у Ruby. Практически все остальные языки не имеют столь развитой и популярной инфраструктуры в в данном контексте и потому вам скорее всего будут неинтересны.
    Другими словами, если в среде разработчиков выбор языка - тема для холивара и эмоций с миллионами сравнительных анализов с противоположными результатами, то для специалистов по DevOps выбор очевиден и прозрачен. Java - это одновременно самые интересные задачи, самый богатый toolset, самый большой выбор вакансий и самые высокие зарплаты.

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

    Итак, что делать:
    1) Почитать книги Head First по Java. Пройти курсы Java на EDX.
    2) Освоить SVN. Есть прекрасные тьюториалы. (GIT освоим позже)
    3) Поставить VirtualBox (не VMWare!!!)
    4) Написать простенькое приложение. Код коммитить в SVN. Собирать его при помощи maven.
    5) Поднять на отдельной виртуалке Jenkins. Он должен брать код приложения на SVN и запускать свой локальный maven для сборки.
    6) Написать модульные тесты (unit tests) своего кода. Пусть maven и их прогоняет.
    7) Поднять где-нибудь Nexus. Усложнить задачу maven, чтобы он теперь складывал все в Nexus. Если maven'у потребуются внешние библиотеки, он тоже не сам должен ходить в интернет, а через Nexus (Central repo).
    8) Настроить на своем десктопе vagrant так, чтобы он с нуля создавал виртуалки VirtualBox.
    9) Создать виртуалку DEV через vagrant. При этом ansible должен на ней что-нибудь настроить (например установить JDK)
    10) Научиться деплоить jar/war из Nexus на виртуалку DEV чем-нибудь. Чем - не посоветую, так как сам работаю с очень сложным IBM uDeploy, а это точно не для новичка. Посмотрите в сторону Rundeck или чего-то такого. Может самим Jenkins'ом задеплойте.
    11) Напишите интеграционные АВТОтесты. На чем хотите (как вариант: Selenium).

    Усложняем систему.
    12) Донастраиваем Jenkins: собирает maven-проект; выкладывает на Nexus; дергает vagrant/ansible для создания виртуалки SIT (system integration test); деплоит приложение на SIT; прогоняет автотесты на SIT; удаляет виртуалку после успешного завершения автотестов.
    13) Прикручиваем SonarQube в Jenkins для статического анализа кода. Исправляем косяки своего кода, согласно полученным от SQ рекомендациям.
    14) Прикручиваем мониторинг Sensu.
    15) Пишем нагрузочные тесты на чем-нибудь. В идеале потрогать два инструмента: jMeter и Gatling.
    16) Как и в 12-м шаге прикручиваем в Jenkins автоматизацию создания виртуалки SLT (Stress/Load test) и прогона на ней тестов. Только уже лоад-тестов(обязательно) и стресс-тестов(опционально) соответственно.
    17) Дописываем в свое приложение какой-нибудь функционал, чтобы использовалась база.
    18) Придется познакомиться с LiquiBase. Деплой SQL руками делать запрещено.
    19) Перейти на Docker (то есть теперь приложение выкладывать не напрямую в ОС, а внутрь докера)

    20) Денек на то, чтобы почитать про Agile, Scrum, Waterfall и прочие организационные порядки.

    А теперь немного уходим в управление проектом:
    21) Поставить Atlassian Jira. Разобраться, чем отличаются Epic, Story, Task, Sub-Task. Создать себе подобной этой структуре фронт работ (делать его не придется, просто нафантазируйте).
    22) Поставить Atlassian Stash и связать его с Jira.
    23) Переехать со своего SVN на GIT, предоставленный Stash'ем.
    24) Пройти Git-тьюториал какой-нибудь. Инструмент очень нетривиальный.
    25) Взять любую таску в работу. При этом в начале работы сделать новый Git branch из тикета Jira.
    26) По завершению работы запустить всю построенную ранее цепочку, но уже для своего брэнча.
    Дайте попробую угадать: вам пришлось скопировать все джобы и переписывать в них ветки?
    27) Сделать джобы нормально. Чтобы одни и те же можно было использовать для любых веток - по аналогии с принципом программирования "reuse code". У Вас будет reuse job :)
    28) Сделать pull request, самому сделать code review и самому себя же за-approve'ить. После этого сделать merge своей ветки в master.
    29) Сделать сборку брэнча автоматической по git-hook (или SCM pool)

    30) А теперь высший пилотаж: к чертям Docker, Copistrano и прочую buzz-word-hipsters-галиматью. Теперь вы с этим знакомы и сможете применить, но пришло время выгрызать этот детский сад калёным железом. Теперь вы доставляете код только как .deb-пакеты. Это значит, что вы:
    a) разбиваете control-файл на несколько пакетов, возможно с lib*,
    b) оверрайдите все ~20 dh_ в файле rules так, чтобы все это соответствовало вашим наработкам в предыдущих пунктах.
    c) раскидываете файлы по .install
    d) самое тяжелое: готовите .preinst, .postinst, .prerm, .postrm файлы СОГЛАСНО ИХ ПРИМЕРАМ .ex, сгенерированным dh_make - то есть с разбиемнием на update/configure/broken-install и что там еще есть. Это означает, что при переустановке, при апгрейде, при даунгрейде, при удалении и при пурдже, у вас будут разные сценарии, каждый из которых должен быть проработан досканально. На этом этапе вы также познакомитесь с понятием "регрессионные тесты".

    Ну как бы базовый вариант вот. Но это далеко не весь инструментарий и путь. Это так, для начала.
    Кроме этого неплохо бы познакомиться с Puppet (это не очень подходит для DevOps, скорее для рядовых админов с кучей серверов, но это очень популярный инструмент ввиду того, что никто не понимает, что такое DevOps и вас скорее всего заставят управлять сотней серверов, вместо релиз инжиниринга). А так же нужно познакомиться с операционными системами NixOS (обязательно) и CentOS/Debian (опционально, но я бы палкой бил тех, кто не знает эти OS). Кроме того, надо базово ориентирваться в PostgreSQL.

    Внимание, важный момент, который должен быть вшит на уровень подсознания у DevOps-ориентированного инженера: вы все время пробуете новые инструменты. Вы всегда будете находить что-то очень отличное. Знаете Nexus как свои пять пальцев и он решает почти все проблемы? Отлично! Теперь выкидываете Nexus и ставите Artifactory. Знаете хорошо CentOS? Круто! Теперь пробуете все это проделать на Windows или Debian. Потому что только когда вы сможете сравнивать инструменты, ваша работа будет ювелирной. А DevOps бывает либо ювелирным, либо он не DevOps. Вы должны быть языко-независимым, платформо-независимым и инструменто-независимым.

    Что будет дальше? Дальше вы начнете работать с микросервисами (сотни одинаковых контейнеров в облаке, которые должны как-то работать друг с другом без ручной конфигурации). Тогда познакомитесь со всякими Consul, ZooKepper и кучей инструментов AWS/OpenStack.
    Ответ написан
    13 комментариев
  • Просветите по современным сервисам сбора и мониторинга логов, что выбрать с пользой и без ущерба карману?

    Singaporian
    @Singaporian
    Половину из списка можно сразу выкинуть. Например Kibana занимается визуализацией логов, а не сбором. В ELK стэке для этого служит Logstash. А Blackfire - инструмент для перфоманс-тестирования + метрики.

    Дальше нужно определиться, где вы хотите разместить сервис. Если в облаке, то New Relic, Loggly и Logentries остаются в списке (если ваш сервис на AWS, то добавляется CloudWatch), но из него уходят LogStash и GrayLog2. Но если хотите держать сервис у себя, ваш дальнейший выбор только между LogStash и GrayLog2.
    В первом случае у вас продолжение поисков -- на следующем этапе уже встает вопрос цены продукта.

    =====
    "Так же интересно чтобы можно было собирать логи ошибок nginx/mysql/postgres, не требовало особых плясок с бубном"

    Все три сервиса написаны на C-lang. Это значит, что, в отличии от Java, они не будут выкидывать ужасные стэктрейсы на 100500 строк, а всегда будут укладываться в 1024 символа. Именно этот предел есть у стандартного syslog. Поэтому пусть они и дальше пишут в syslog, а уже в нем вы настроете куда редиректить логи дальше. Таким образом вам не надо будет при смене сервиса сбора логов бегать по всем нджинкасам и постгрессам и менять настройки - достаточно будет поменять в одном месте, в syslog.
    Но! Если будет Java приложение, то такое не пройдет и вам потребуется что-то типа GELF, чтобы успешно доставить полный размер exception.
    Ответ написан
    Комментировать
  • Как правильно составить резюме системному администратору, или что я написал не так?

    v_sadist
    @v_sadist
    DevOps engineer
    "Указал, как и требуется все места где работал прежде, и заполнил самый важный пункт "Навыки и умения". "
    Самый важный пункт - это опыт. Навыки и умения это здорово, но в них вы пишете "я знаю как настроить циску", а в опыте вы пишете "сопровождение циски АСА, настройка ОСПФ, настройка сайт ту сайт впн. Чувствуете разницу? Вложите больше данных в раздел опыта работы.
    В моем резюме, есть разделы, в одном из них регулярные задачи (сопровождение того-то и того-то, делание того-то и того-то), проекты (в которых указывается сам проект, моя роль в нем, и что конкретно я в нем делал)

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

    "В связи с этим вопрос - может быть я что-то не так написал, или же написал мало? Чего не хватает в моем резюме? Думаю что вопрос будет интересен многим. Заранее спасибо."
    Распишите подробно опыт, каждую мелочь которую вы делали на работе - это раз.
    В зависимости от того, какую должность вы хотите, оптимизируйте резюме под конкретную должность.

    "PS: "навыки и умения" в моем резюме -

    Знание принципов работы протоколов модели OSI, коммутация, маршрутизация. Построение и обслуживание сетей построенных на оборудовании Cisco, MicroTik, D-link (VLAN, STP, ACL, NAT, OSPF, VPN). Анализ сетевого трафика (Wireshark)."
    Вы это напрямую скопипастили из резюме? У вас там грамматическая ошибка - рекрутеры не любят ошибки в резюме.

    "Работа с Windows Server 2012 R2, FreeBSD, Avaya."
    Как-то в кучу все. Разбейте ОС отдельно, телефонию отдельно. В ОС напишите, что кнкретно умеете там делать.

    "Внедрение Vmware ESXi на предприятии. "

    Запишите лучше это в опыт.

    "Back-UP, антивирусная защита. "
    Любой админ решает задачи по безопасности и надежности данных. Лучше распишите какими средствами это делаете.

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

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

    "Построение ЛВС с нуля, обслуживание оргтехники, телефонии,"
    Повторяетесь. Это есть выше.
    " планирование и закуп оборудования."
    Запишите это лучше в опыт работы в качестве одной из задач.
    Ответ написан
    Комментировать
  • Openfire+AD+Miranda возможна ли авторизация по ntlm или sso?

    @glesis
    у меня получилось так: lanton.spb.ru/myjob/%D1%81%D0%B8%D1%81%D1%82%D0%B5...
    Ответ написан
    Комментировать
  • Выбор IP телефона?

    Ogogon
    @Ogogon
    По моему опыту, очень хороши уже не самые последние, но хорошо отлаженные модели компании Yealink.
    Yealink SIP-T22P www.ipmatika.ru/products/?wid=11
    Yealink SIP-T26P www.ipmatika.ru/products/?wid=3
    Yealink W52P www.ipmatika.ru/products/?wid=103 (Потрясающий звук!)
    Ссылки на русскоязычный сайт российского мастер-дистрибютора. Можно найти и у других поставщиков, причем дешевле.
    Сейчас у Yealink'а появились новые модели, но они на других процессорах и к ним пока еще есть вопросы.

    Очень неплохие, входящие на рынок модели:
    ATCOM Rainbow 1L www.skomplekt.com/tovar/10/4/9999912304
    ATCOM Rainbow1 www.skomplekt.com/tovar/10/2/9999890911
    ATCOM Rainbow 2 www.skomplekt.com/tovar/10/2/9999890912
    Ссылки на русскоязычный сайт российского мастер-дистрибютора.
    Модель пока не подкручена до уровня классических Yealink'ов, но, несомненно, у нее все впереди. Софт допишут.

    По моим наблюдениям, SIP-телефоны Panasonic ориентированы на пропиетарные IP-PBX той же компании и со свободными продуктами, делающими упор на полную реализацию описанных стандартов, работают не очень удобно.
    Ответ написан
    1 комментарий
  • Выбор IP телефона?

    chumayu
    @chumayu
    Если в башне по*бень. То что еб*нь, что не еб*нь.
    С грандстримом работал, все отлично я думаю и по цене он лучше.
    Только зачем такая грамадина может 2130?
    Ответ написан
    2 комментария
  • С чего начать когда Руководитель ИТ отдела уволился без отработки и дела не передал?

    saboteur_kiev
    @saboteur_kiev Куратор тега Системное администрирование
    software engineer
    > Дело в том, что он (мой начальник) придерживался такого мнения, что ничего я записывать не буду, пусть мне потом звонят и спрашивают, а я вот уже подумаю помогать мне или нет, короче делал всё то чтобы быть не заменимым.
    Сразу показатель, что если у тебя случится жопа, от него адекватной помощи не дождетесь.
    Твой бывший босс УЖЕ создал конфликтную ситуацию, и быть у него в просителях не рекомендуется. Постарайся по максимуму обойтись без его помощи 1 на 1, старайся всю помощь к нему запрашивать официально. Можно письменно (в емайле, копируя кого-нить из руководства)
    Нормальный человек при уходе обязан передать дела нормально. С краткой базой знаний по всем сервисам которые он обслуживал. Если этого не случилось - это уже конфликт.

    > Мне сказали принимать дела, но на его место не ставят, якобы месяц-полтара протянешь мы посмотрим и может сделаем руководителем.
    Требуй если не место руководителя, то премию в размере его зарплаты все время, пока ты будешь выполнять его работу. Месяц-полтора это как раз тот срок, за который можно разобраться для поддержки основных критических систем. То есть у тебя САМЫЙ трудный срок твоей работы, а тебе не обещают это компенсировать?
    Добейся, что ты или берешься за его дела, с такой же оплатой, либо пусть сразу ищут другого. (А другого за 2 дня они не найдут, так что надави и будь упорен в вопросе оплаты. Почуют слабину, а ты справишься - станешь директором но получать будешь в два раза меньше чем предыдущий. Еще и твою бывшую должность сократят).

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

    Можно не спрашивать как настроить kde под freebsd, но названия использованных продуктов, доступы, контакты, на каких серверах что расположено - это главные вопросы. Твоя задача выяснить все до того момента, когда остальное ты сможешь самостоятельно нагуглить.

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

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

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

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

    P.S. С точки зрения начальника, всегда мысли чуть шире - ты теперь сможешь принимать решения о смене используемых продуктов, и так далее, главное научиться это экономически обосновывать для тех, кто платит.
    Ответ написан
    3 комментария
  • Выбор RAID контролера?

    Diman89
    @Diman89
    LSI более производительный, однако, при отсутствии кэша и поддержке SSD, они туда и напрашиваются. Так что, в зависимости от используемых дисков, имхо.
    зы. а модели с BBU вообще не рассматриваете? странновато как-то
    Ответ написан
    6 комментариев
  • Esxi на software raid?

    Largo1
    @Largo1
    Айтишник далёкого плана
    на гипервизор уж стоит найти железяку...
    вот самый ходовой: Adaptec RAID 6405E ASR-6405E KIT
    Ответ написан
    3 комментария
  • Какую литературу/ресурсы посоветуете для решившего открыть компанию в сфере ИТ в России?

    @balamut108
    Py
    Животрепещущий вопрос, видимо после пары пива. При организации компании главное определить её сильные и слабые стороны - это значит понять какие направления больше всего укреплять, а какие оставить на базовом уровне. Понятно, что Вам потребуются люди которые будут администрировать деятельность компании, понятно нужны люди которые будут двигать её вперёд. Но важно понимать, куда брать экспертов, а куда можно взять мамочку в декрете на полставки. Я приведу простой пример из практики: компания занимается заказной разработкой ПО, укреплять надо продажи и технический пре-сейл, т.е. на эти позиции надо брать экспертов. Кто такие эксперты? Это люди с практикой в данной области не менее 5 тыс. часов, что соотв. примерно 5 годам работы. Понятно, что на поверхности лежал ответ, конечно в компанию по разработке ПО надо брать экспертов-программистов, но Вы их и так возьмёте, а что толку когда у Вас продаж не будет или экспертиза входящих проектов ошибается на 50% - один такой проект на первом этапе может запросто убить Ваш бизнес.
    Ответ написан
    2 комментария
  • WINDOWS не видит диск на ESXI, просит драйвера, какие драйвера нужно поставить?

    GraphiteLeader
    @GraphiteLeader
    VMware engineer
    тип виртуального SCSI контроллера должен быть типа LSI SAS, а не Paravirtual SCSI
    Ответ написан
    3 комментария