• Что делать когда из команды уходит team lead?

    @spotifi
    1. Вполне штатная ситуация. Уходят тим-лиды, админы, менеджеры, креативщики, бухгалтера, механики - и пр. кто все тащил на своих плечах и все знал...
    2. Лучше всего договориться, чтобы он за отдельную денежку помогал и вводил в курс дела приемника. Так как некоторые вещи могут еще и 10 месяцев спустя остаться невыясненными.
    3. Кто-то должен начать принимать дела как можно раньше.
    4. Незаменимых нет. Найти квалифицированную замену. Окажется еще и лучше старого.
    Ответ написан
    1 комментарий
  • Для чего нужен Docker?

    @spotifi
    Внутри Docker только Linux, и, экспериментально, FreeBSD. Запускается нативно под Linux и, экспериментально, под FreeBSD. Под MacOSX, Windows - через виртуальную машину.

    Докер - это двойная изоляция. Изоляция того, что лежит внутри контейнера Докера от операционной системы и изоляция операционной системы от того, что лежит внутри Докер. Изоляция подразумевает изоляцию всех файлов, портов, приоритетов.

    Это почти виртуальная машина. Почти, да не совсем.


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

    Например, мы используем Yandex.Cocaine, которая нормально компилируется только на Ubuntu 14.04 (и, вроде, на Debian 7). Но не под CentOS 6, 7, Debian 8, FreeBSD 9, 10, Ubuntu 15, 16 и пр. - скомпилировать его невозможно. Запускаем в этих операционных системах в Докере.

    С другой стороны, и одновременно с этим, вам необходимо установить другое, более современное ПО. И одновременно более старое. Причем речь даже не идет об серьезно отличающихся версиях Linux. Например, одно ПО требует не менее Ubuntu 14.10, а другое не более Linux 14.04.

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

    Таким образом, мы имеем бинарный файл запускаемый как бы в своей операционной системе.

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

    Но виртуальные машины с Докером используются только для разработки. Для запуска в production виртуальные машины с Докер не используются.

    Докер использует контейнеры операционной системы. LXC в Linux, Jails в FreeBSD. Контейнер - это область операционной системы, изолированная от основной части операционной системы. В контейнере свое дерево каталогов (включая системные /dev, /bin, /sbin и пр.), свои сетевые порты и пр. и пр.

    Но при этом не используется полная виртуализация. Что существенно экономит ресурсы. Запустить 100 полноценных виртуальных машин вряд ли получится даже на мощном сервере. А вот запустить 100 контейнеров Docker даже на слабом домашнем компьютере - возможно.

    Правда использование не полной виртуализации ограничивает использование операционных систем внутри контейнеров. Как правило, это специально подготовленные версии Linux или FreeBSD. Именно специально подготовленные. Windows - в принципе в контейнере запустить невозможно.

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

    Зачем это используется?

    Ребята из всяческих Dropbox, Facebook и и пр. гигантах, запускающие по 1 млн. различных программ в своих сервисах, столкнулись, что невозможно везде гарантировать идентичные настройки операционной системы. А это критично.

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

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

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

    Это позволяет гарантировать гораздо большую идентичность среды разработки и среды исполнения.

    До этого люди мучались, придумывали хитрые инсталяторы...

    Потом плюнули на попытки упорядочить окружение в ОС - и сейчас концепция такова - устанавливать программы на сервера вместе со своими индивидуально настроенными под них операционными системами - то есть внутри контейнеров. 1 контейнер = 1 настройка ОС = 1 программа внутри.

    Другими словами:
    • Докер-контейнер нужно использовать для отладки.
    • Тот же Докер-контейнер нужно использовать и на сервере.


    Это позволяет не трудиться с настройками "под сервер" локально на машине разработчика. Это позволяет разрабатывать на машине разработчика совершенно разные программы одновременно, которые требует несовместимых настроек операционной системы. Это позволяет давать гораздо больше гарантий, что программа на сервере будет вести себя также как и на машине разработчика. Это позволяет разрабатывать под Windows/MacOSX с удобным "прозрачным" тестированием под Linux.

    Докер применим к созданию/настройке только серверного программного обеспечения под Linux (экспериментально под FreeBSD). Не для смартфонов. А если десктопов - то только программное обеспечение без GUI.

    Посколько Докер позволил одним махом упростить работу разработчикам и админам и повысить качество результата - сейчас бум на Докер. Придумано огромная гора инструментов для управления развертыванием приложений созданных с Докером. Если раньше чтобы запустить 10 000 программ на 1000 серверах нужно было как минимум 3 высококвалифицированнейших девопса, которые писали кучу описаний как это сделать на Puppet, Salt, Chef, Ansible, да и то не было гарантий, это все тестилось месяцами. То сейчас с Докер даже один квалифицированных девопс может рулить миллионами программ на десятках тысяч серверов. С куда как большей гарантией, что все это заведется нормально.

    UPD:

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

    Разработчик отдает весь свой результат в систему CI (обычно через git)
    CI на каждый новый коммит делает с помощью Docker образ для тестирования.
    Если тесты проходят успешно, то этот же самый Docker образ, отправляется на развертывание в production.
    Или, чуть иначе в компилируемых системах, где исходники не нужны в production: в Docker производится развертывание среды для компиляции, а для тестирования разворачивается второй образ с уже откомпилированным добром, который уже отправляется в production.

    То есть при правильной огранизации дела разработчик не может/не должен влиять на то, какой будет образ.
    А вот в тестовой среде (запускаемом на сервер, недоступном разработчику в больших командах) и в production как раз используется один и тот же образ.

    Основная идея - что тестировали, ровно то и запускаем на боевом сервере. Один-в-один, включая те же самые файлы (не такие же, а именно те же самые).
    Ответ написан
    16 комментариев
  • Какие у Вас критерии работы с Заказчиком?

    @spotifi
    Низкий средний рейт заказчика - минус. Значит, даже если он согласиться на твой высокий рейт, то скорее всего где то задумал сэкономть

    Новый заказчик, пока у тебя самого нет отзывов - терпимо. Мои первые 2 заказчика были без отзывов и я был без отзывов. Поработали прекрасно. Все честно.
    Ответ написан
    Комментировать
  • Какой редактор использовать для больших файлов?

    @spotifi
    Склеивать js файлы по умному - см. best practices с Gulp/Grunt, там же будет и минификация. Но файлы не редактируется после склейки. Редактируются исходные файлы, затем пропускаются в обработку для подготовки образа для production.
    Редактировать гигантские файлы (хотя чего там может быть гигантского в JS) - EmEditor.
    Ответ написан
    1 комментарий
  • В чем преимущества *nix, linux перед windows (для веб разработчика)?

    @spotifi
    Нету никаких проблем.
    Если только ваше конкретное используемое для ваших задач ПО нормально работает с Windows.

    Например, в моем случае используется Ansible и Docker, который не поддерживается на Windows. Приходится использовать Vagrant. Это достаточно удобно. Но ресурсы все же кушает.

    А так - даже Vim хорошо себя чуствует на Windows. Нативный. Не cygwin.

    Microsoft это тоже понимает.
    И вот уже они встроили подсистему Linux Ubuntu в Windows 10. Это не виртуализация, а именно полноценная подсистема.

    И многие вещи, например, те же шрифты - в Windows работают лучше, чем под Linux.

    Могут сказать - что лучше использовать для разработки ту же среду что и для production.

    Но дело в том, что даже если вы сидите на Ubuntu Desktop, то ваша среда серьезно отличается от среды сервера FreeBSD, CentOS, Debian, Ubutntu Server. И для полноценного CI все равно умные дядьки категорически рекомендуют и на Linux даже использовать Docker для полноценной эмуляции.

    Но ведь Docker-то можно использовать и на Windows. Правда, запускается он там подольше.

    Где именно вести разработку, где вам удобнее - это ваше личное дело. Вопрос ваших предпочтений. Никаких объективных причин в наше время, когда существуют Docker, Vagrant и виртуальные машины, когда куча приложений изначально сделанных для *nix запускаются в native под Windows - нет никаких причин себя строить. Кроме любопытства - а как оно там на других системах живется.

    У тех кто вас троллит есть еще одна причина: им приятно показать себя более умными. Как же - ведь Linux можно сконфигурить руками.

    Ага, конечно.

    Или используют готовые десктопные дистрибутивы. Не зря Ubuntu так популярна.
    Или если освоили ArchLinux - то построили себе совершенно убогое окружение по готовым мануалам.

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

    На деле 99% твердящих о гибкости Linux - далее чем ставить Apache и MySQL из пакетов - ничего сами и не умеют. Фактически работая в то же настроенной другими людьми десктопной среде. Но разве вы не умеете делать то же самое под Windows?

    Другое дело, что разворачивать и тестировать нужно под аутентичным операционным окружением.
    Неважно под Ubuntu ты сидишь или под Windows.

    Лучшие практики советуют использовать полностью изолированный и независимый от рабочего места разработчика инструментарий - виртуальные машины, Vagrant, Docker, отдельные физические сервера.

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

    Используя Docker хоть под Windows ты будешь получать даже больше преимущество повторяемости рабочей среды чем тем кругом, кто советуют тебе просто перейти на Linux. Если на более слабом железе это и было бы существенно (Docker под Linux стартует быстрее), то на твоем - несущественно на чем работать.
    Ответ написан
    9 комментариев
  • Как лучше разработать интернет магазин, где используется big data?

    @spotifi
    MySQL для BigData - это да, сильно )))

    1. Чтобы использовать MySQLна BigData вам придется целую ферму из сотни MySQL держать и как-то этой фермой рулить.
    2. Миллионы строк - это легко для современных БД. При грамотном программировании MySQL даже не вспотеет. Это не BigData.
    3. Хотите BigData - изучайте, например, БД Cassandra. Изучайте хранилище Yandex.Elliptics. И т.п.
    Ответ написан
    Комментировать
  • Какую key/value базу данных выбрать для словаря?

    @spotifi
    Yandex Elliptics (если будете ставить из исходников - то легко это делается только на Ubuntu 14 и соответствуюего поколения Debian) - распределенное DHT-хранилище. Само реплицируется, восстанавливается, расширяется. Ваше дело будет только подключать новые компьютеры.
    Ответ написан
    Комментировать
  • Какую выбрать БД для больших объемов?

    @spotifi
    InfluxDB - специализированная именно под такую задачу.

    Yandex Elliptics (в настоящее время легко компилируется только под Ubuntu 14.04 и соответствующее поколение Debian) - не БД, а распределенное хранилище DHT. Зато умеет само масштабироваться и реплицироваться и восстанавливаться. Ваше дело будет только подключать новые сервера к нему (или диски на сервера).
    Ответ написан
    Комментировать
  • Как продать готовый it-проект (программное обеспечение) или его долю?

    @spotifi
    Только лично. Нормальные инвесторы интересующиеся столь специфическими вещами - вовсе не шерстят интернет в поисках куда бы деньги вбухать.

    Пишите им сами, не стесняйтесь. Обращайте на себя внимание.
    Ответ написан
    Комментировать
  • Не зазорен ли поиск ответов в Google на работе?

    @spotifi
    Вы вовсе не обязаны все помнить наизусть. Это невозможно.
    Ответ написан
    Комментировать
  • Вопрос по оперативной памяти в 4 слота.?

    @spotifi
    Читать документацию на свою мать. Очень часто требуется ставить парные модуля во вполне определенные слоты.
    Ответ написан
    1 комментарий
  • Классификация работы?

    @spotifi
    В топку вашу классификацию.

    Те же продажники могут быть как безумно-творческими, так и совершенно скучными, так и шаблонно работающими.
    Ответ написан
  • Как сделать резервную копию большой БД mysql с таблицами innodb (85ГБ), если места на диске осталось 7ГБ?

    @spotifi
    Взять VDS в VScale на недолго, поставить nix виртуально на своей Windows, увеличить тарифный план (если у вас VDS)....
    Ответ написан
  • Как настроить отказоустойчивый web-service в 2х датацентрах?

    @spotifi
    https://habrahabr.ru/company/ivi/blog/237349/
    Вот эти ребята утверждают, что с балансировкой на DNS все грустно.
    И предлагают anycast.
    Ответ написан
    Комментировать
  • Как осуществляется переход на новую версию vmware esxi?

    @spotifi
    Если ты платный пользователь, то почему не стучишься им в тех. поддержку?
    Отвыкай.

    ПыСы:
    Я бы просто накатал бы на другой машине 6-ку и лицензию добавил бы. Если работает - можно переходить.
    Ответ написан
    Комментировать
  • Какой самый удобный, понятный и быстрый способ поднять локальный сервер?

    @spotifi
    В Ксампе это все упрощено донельзя. Куда уж проще-то?
    Попробуте на Vagrant образ готовый использовать.
    Поднимается одной командой.
    Ответ написан
    Комментировать
  • Является ли нейронная сеть частным случаем искусственного интеллекта?

    @spotifi
    Искусственный интеллект еще не создан.
    А подобия выглядят гораздо проще и существуют уже 50.
    https://ru.wikipedia.org/wiki/%D0%AD%D0%BB%D0%B8%D...
    Ответ написан
    Комментировать
  • Почему зависает docker хост?

    @spotifi
    Зависающие в Docker контейнеры - известная проблема с init.
    Ответ написан
    Комментировать
  • В чем целесообразность использования SPA, если контент в них не индексируется?

    @spotifi
    Индексируется. Но для этого нужно приложить кое-какие усилия.

    Как это сделать? Например погуглите "hash bang".
    Ответ написан
    9 комментариев
  • Нужно ли получить разрешение от владелца сайта при парсинге?

    @spotifi
    Цитаты - законно.
    Частичный парсинг, цитирование, как в поисковиках, а затем переход на сайт-донор - возможно.
    Но для вашей задачи частичные объявления да с переходами вряд ли будут выглядеть удобными для конечных пользователей.
    Придется делать целиком.
    Поэтому в вашем случае - не законно.
    Как вариант - не показывать реквизиты, а за реквизитами отправлять на исходный сайт, тогда можно будет с владельцами договориться.

    P.S.:
    То есть до тех пор пока вы не крадете трафик, пока на сайты-доноры с вашего переходят - все чисто.
    Ответ написан
    Комментировать