Задать вопрос
  • Как эффективно переучиться на веб-разработчика?

    AmdY
    @AmdY
    PHP и прочие вебштучки
    Решате вопросы по мере необходимости. Сейчас читать и учить всё подрят бесполезно, так как теория без практики лишь добавит каши в голове. Да и в современном вебе лучше знать обёртки, чем низкоуровневые апи, jQuery вместо javascript, RoR вместо понимания http и ruby, ROR active record вместо SQL-MySQL-NoSql. Главное знать обёртки и уметь копаться в гугле в случае проблем.

    p.s. Прямо сейчас завершаю проект. который делался на незнакомых angularjs, nodejs + express, mongodb (работал раньше). Так что освет опробовал на себе, до сих пор все доки на технологиям не освоил, зато проект делается без проблем и освоил кучу недокументированных возможностей и косяков, а опыт с работой с mongodb в php мне только мешал.
    Ответ написан
    Комментировать
  • Как эффективно переучиться на веб-разработчика?

    @egorinsk
    Вообще, не увлекайтесь спецификациями. Марк Цукерберг как-то без них обошелся. Google тоже не следует строгим стандартам.

    Если вы хотите «эффективно» изучить матеиал, тогда вы должны читать статьи «для чайников» (которые вы с вашим опытом, наверняка освоите за кратчайшее время). HTML/CSS так устроены, что даже если вы сделаете 100 ошибок на странице, он все равно как-нибудь да отобразится. Ну если вы хотите более солидные знания, то параллельно смотрите непонятные моменты в спецификациях, это в общем-то полезно. А сэкономленное время посвятите практике. Она тут очень важна.

    Вот, что стоит изучить (в любом порядке):

    1) Начните с основ HTTP (только ради бога, не читайте спецификацию целиком, хватит общего представления о методах запросов, заголовках и теле запроса, кодах ответа 403/404/500/200/300)
    2) Изучите основы HTML (есть раздел на сайте htmlbook). SGML вам хватит в том объеме, в котором он упоминается в спецификации HTML. PCDATA не упоминается в ней и потому знать про отличия от CDATA вам не нужно (ну если так хотите узнать, найдите спецификацию SGML и почитайте).

    Обратите внимание, в некоторых (некачественных) статьях вы можете увидеть штуки вроде [br /] — самозакрывающиеся теги. Это ошибочный синтаксис, который употребляют авторы, путающие HTML и XHTML. В HTML такого синтаксиса нет (хотя в силу своей толерантности к ошибкам в HTML такой код как-то работает).

    3) Изучите CSS и позиционирование элементов. Вот хороший учебник, разъясняющий тонкости всяких флоатов: softwaremaniacs.org/blog/category/primer/ А спецификацию CSS2.1, думаю, вы нагуглите сами, она довольно понятно написана.

    4) Изучите яваскрипт (да, включая замыкания и прототипы) и DOM. Обратите внимание, jQuery — лишь обертка над DOM и не зная DOM, вы не сможете нормально пользоваться jQuery, вы лишь научитесь копипастить скрипты из интернета, не понимая, как они работают. После этого можете изучать jQuery, заодно советую заглянуть в исходный код, а не только читать документацию.

    5) Изучите один из серверных языков, хотя бы основы

    6) Изучите основы SQL

    7) Начинайте что-нибудь делать, так как в этот момент у вас будет очень много теоретических знаний и очень мало практических. Можете сделать простое веб-приложение, можете улучшить какое-нибудь существующее.

    8) Изучите ООП

    9) Изучите какой-нибудь серверный MVC-фреймворк

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

    > А есть ещё и XHTML, который тоже имеет свои отличия…

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

    > Клиентская разработка нынче редко обходится без всяких шаблонизаторов типа HAML/SASS

    Вы еще Coffescript забыли упомянуть. Это очень спорные вещи, есть мнения как за, так и против. Но в любом случае, согласитесь, как-то странно изучать SASS, не изучив вначале CSS, верно? Начинающему это не нужно.

    > а для эффективной серверной разработки всё и того сложнее: фреймворки, ORM, continuous integration, очереди задач и прочая-прочая.

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

    По вопросу, где брать информацию: авторитетные источники (для поиска ответа во всех подробностях) — это спецификации W3C, официальная документация фреймворков, неофициальные источники вроде htmlbook, stackoverflow или Хабра — для того, чтобы быстро получить представление о тех или иных возможностях HTML. Еще можете какую-нибудь книгу почитать, только не старую.
    Ответ написан
    5 комментариев
  • Куда и как правильно положить свои скрипты и как их лучще хранить?

    Anonym
    @Anonym
    Программирую немного )
    git clone <repo>
    git checkout <branch>
    sudo ./install.sh
    

    Как-то так. Зачем заморачиваться с deb пакетами и прочим? Напишите один скрипт, заведите git репозиторий.
    Ответ написан
    2 комментария
  • LDAP сервер и аутентификация

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

    Wott
    @Wott
    Худшее что может сделать хороший программист — это стать посредственным менеджером

    Да, когда человек упирается в потолок по зарплате и доходит до ведущего программера, то конечно — стать каким-нить менеджером ему выгодно, с точки зрения денег. Но при этом статистически хорошим менеджером ему не стать, через 2-3 года он потеряет свою квалификацию и обратно ему вернуться будет крайне сложно. При этом сменить место работы ему будет намного сложнее — хорошему программеру везде рады, а посредственных манагеров везде пруд пруди. Единственное что ему остается — это делать карьеру в своей конторе и унылое бесполезное существование до конца времен…
    Ответ написан
    Комментировать
  • Является ли должность менеджера следующим этапом развития карьеры программиста?

    Я знаю людей которые из программистов становились директорами. А кто-то может из программиста становился садовником.

    Не существует одной «ветки развития» как в играх. Есть просто более популярные направления и менее. Кто-то может из программиста стать менеджером, кто-то техническим менеджером, кто-то архитектором, кто-то может тестировщиком, кто-то начальником отдела, кто-то открывает свою фирму, кто-то становится программистом на другом языке или в другой области, кто-то просто уходит делать тоже самое ну лучше (опыт же накопился) и за большую зарплату.

    Если сравнивать конкретно позиции менеджера и программиста, то тут есть ключевая разница. Программист пишет код, а менеджер управляет людьми. Не все те кто хорошо пишут код могут хорошо управлять людьми, и главное не всем это понравится. И обратно кстати тоже верно. Просто идите куда вам интереснее.
    Ответ написан
    Комментировать
  • Django vs RoR...?

    firstrow
    @firstrow
    Вот моя короткая история. в основном я пишу на php.

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

    и вот недавно я делал тоже портал на рельсах, но намного больше по функционалу. новости, афиши, поиск по предприятиям, вобщем тоже много разного функционала. Ребята, это превый проект который я сдал в срок, причем весь код покрыт тестами,!
    было круто. причем, руби я знал базово и много узнал по ходу разработки.
    Ответ написан
    Комментировать
  • Django vs RoR...?

    yurtaev
    @yurtaev
    Пишите то на чем удобно и что чаще всего используете (язык в том числе). Имел прекрасную возможность реализовать проект на джанге и на рельсах. Проект с большим развесистым API изначально был на джанге, потом я с горящими глазами за пару дней реализовал его на рельсах, я был в восторге от того что все есть из коробки, программирования на основе соглашений, REST full api описывается тут же в контроллере, куча батареек на все случаи жизни, слежение за зависимостями. Мне казалось дикостью что core девелоперы джанги отказывались ломать совместимость в пользу ускорения введения новых фич. Плюс руби на котором все делали кучу удобных DSL-ей на все случай жизни. Но через большое время жизни проекта я понял что мне очень не хватает опыта с рельсами, а еще больше с руби, мой основной язык работы питон + огромная волна задач на js (полноценные веб приложения с большой логикой), и когда вновь возникали задачи на проект с рельсами я чувствовал дискомфорт от того что простые задачи требовали кучу времени. Затем вновь была джанга, она уже казалась такой родной, я знаю почти все её уголки, и с большей уверенностью смогу решить на ней любые поставленные задачи. У джанги нет того многообразия батареек и фишек из коробки, поэтому стоит немного уделить внимание поиску решений задачи прежде чем писать код. Управление статикой, миграций, деплой, все решается батарейками, не хуже чем на рельсах. Когда я стал замечать рутинные задачи которые решались на рельсах, я старался находить пути решения, обычно на это уходит 5 минут поиска или кодинга (большая часть решается фабриком).
    А в настоящее время набирает просто гигантскую популярность nodejs у которой просто гигантское количество батареек аналогов которых нет не у кого.
    Я это все к тому что надо выбирать инструмент с головой, тот что более знаком, желательно написанном на основном для себя языке. Но если есть возможность то пробовать все то что приносит радость, я очень благодарен моему начальству которое дало мне эту возможность.
    Ответ написан
    2 комментария
  • Django vs RoR...?

    @XimikS
    Я начинал с Django, но однажды наткнулся на рельсы и этот туториал , и влюбился в них.

    Почему Rails?

    — Быстрая разработка. В Rails это поставлено на первое место, и вместе с тем, рельсы неплохо масштабируются.
    — Экосистема. Для рельсов целая туча гемов на все случаи жизни. Devise, Gon, Mongoid, Rails_best_practices…
    — Тестирование. Просто попробуйте такие гемы как RSpec, Cucumber, Capybara.
    — Язык. После более простого питона, я немного побаивался языка с кучей спецсимволов, как оказалось, зря :) Хорошо написанный код читается как текст на английском, в особенности при использовании DSL.
    Ответ написан
    1 комментарий
  • Django vs RoR...?

    jj_killer
    @jj_killer
    Перешел с Python (Flask, Bottle) на Ruby (Sinatra, Rails). Не жалею. В плане web-разработки, ИМХО, Ruby экосистема развита лучше.
    Ответ написан
    2 комментария
  • Что выбрать для разработки веб-приложений?

    @odmin4eg
    Как мне кажется НА сегодня веяние то одно, ну точнее два.

    1 Django с питоном
    2 Руби на рельсах

    попробуйте, хоть одно хоть оба сразу
    Ответ написан
    10 комментариев
  • Как правильно организовать деплой приложения?

    shebanoff
    @shebanoff
    Я увидел в Вашем вопросе две части.

    Как правильно организовать деплой (выкладку работоспособного кода на сервер)?


    В самом простом случае Вам подойдет связка ssh + git pull на сервере. В этом случае на сервер будут доставлены патчи коммитов, которые есть в репозитории, но еще не появились на сервере, т.е. «только обновления файлов, которые сейчас существуют». Этот метод довольно подробно обсудили в ответах на другой вопрос.

    Если хочется автоматизировать процесс, что похвально, то я вижу три доступных инструмента для этого: Capistrano, Mina (мой персональный фаворит) и Vlad the Deployer. Все три проекта схожи по сути. Принцип их работы таков:
    1. Подключиться к целевому серверу.
    2. Залить обновление кода из репозитория.
    3. Выполнить предписанные Вами инструкции (перезапуск демонов, сброс индексов, обновление структуры БД и прочее).
    4. ...
    5. PROFIT!


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

    Как организовать процесс тестирования?


    Если Вы еще не определились с методикой тестирования (Test Driven Development, Behavior Driven Development, Лень-Driven Development), то Вам следует для начала заняться именно этим.

    Скорее всего, тесты будут выполняться на Вашей локальной машине, пока Вы пишете код. Используя RSpec, я держу открытым Guard. Guard отслеживает изменения в коде и запускает набор юнит-тестов, которые покрывают измененный код. Весь процесс занимает не больше минуты-двух, и особо не напрягает. Как только я вижу провалившийся тест, я меняю код до тех пор, пока он не станет зеленым. Пока тестов мало (это не самый лучший знак, к слову), Вы работаете один, локального запуска перед деплоем может оказаться достаточно — например, чтобы проверить релиз на доступность критического функционала: регистрации, покупки, создание постов и т.п.

    В какой-то момент речь может зайти о Continious Integration. Это возможность иметь стабильный билд в любой отрезок времени, а так же принимать решение о годности каждого отдельного коммита. Сопряжено с деплоем кода на integration-сервер и запуском на нем тестов. Скорее всего, это Вас не интересует, если Вы не работаете в команде. Но, для полноты картины, Вы можете понаблюдать за билдами на Travis CI известных Open Source проектов: Symfony 2 и Ruby on Rails.

    Таким образом


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

    Приведите в порядок Ваш репозиторий с кодом, используйте mina для деплоя и запускайте тесты на Вашей локальной рабочей машине. Как только Вы почувствуете, что этого не достаточно — Вы наверняка уже будете знать, куда шагать дальше.
    Ответ написан
    8 комментариев
  • Мотивация программирования — деньги. Это нормально?

    AlexanderByndyu
    @AlexanderByndyu
    IT-архитектор, эксперт в Agile&Lean
    Для начала я считаю, что программистом может быть не каждый, если у вас это получается, считайте, что это отличная возможность для карьеры.

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

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

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

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

    Этот подход выглядит очень «по-западному», что с того? Можно работать над проектами, которые меняют жизнь к лучшему и при этом зарабатывать хорошие деньги, только придется попотеть пока такое сочетание найдешь.
    Ответ написан
    1 комментарий
  • Rails g scaffold person создает контроллер people. Почему?

    2tvenom
    @2tvenom
    Это связанно с генерацией имен и Rails соглашении об именах. Модель он создает с именем в единичном, числе, а вот таблицу во множественном. Т.к. некоторые слова в английском языке во множественном числе звучат по-другому, у Rails есть на этот счет словарь, в котором как раз описаны подобные связки. People как раз в него входит. Там есть еще другие, так что это нормально
    Ответ написан
    1 комментарий
  • Как вы защищаете свои linux сервера?

    litos
    @litos
    Регулярные апдейты, ssh c доверенных IP-адресов, авторизация по ключам и сложные пароли.
    Ответ написан
    2 комментария
  • Какие курсы по автоматизации linux-администрирования есть в Москве?

    opium
    @opium
    Просто люблю качественно работать
    1)ЧИтаешь любой мануал по баш скриптам, или книжку по программированию на питон, если умеешь программировать ваять скрипты на bash и скрипт легко. Если не умеешь начни с того чтобы научиться программировать в универе например и потом уже баш
    2) по пуппету чифу и бкфг в принципе почти нет специалистов в России, тут уж не до курсов, в целом легко осваивается прочтение пары книжек, да и паппет сам по себе до вольно приятен для изучения, чиф не пробовал.
    3)централизованное логирование это вообще на уровне прочтения двух статей, думаю курсы двухчасовые никто за 5 тысяч даже посещать не будет. потому и нет
    4)В лдапе всего много и зачастую сложно + разные реализации, тут можно сходить на курсы по актив директори например.
    Ответ написан
    Комментировать
  • Какой дистрибутив Linux выбрать на сервер?

    foxmuldercp
    @foxmuldercp
    Системный администратор, программист, фотограф
    А зачем ломать если все настроено и работает нормально?
    Обновите убунту до актуальной LTS,
    Обновите контроллеры домена, почту и другие виндовые сервера.
    Убунта на серверах работает как часы — ниразу с ней проблем не было, в отличие от suse/opensuse/rhel — на которых у нас стоял оракл на одной из прошлых моих работ.

    Переделывать структуру сети надо только в одном случае — если она сделана по идиотски.
    в другом случае — я бы свое время тратил более продуктивно.

    Это первое — второе — ни один нормальный админ не будет держать на маршрутизаботре сервер бекапов.

    Я бы на вашем месте подумал о том, что надо все сервера, которые должны быть доступны снаружи — почта, dns, web, ftp и т.п — вынести в демилитаризованную зону, а локальную сеть закрыл еще одним маршрутизатором

    и
    Ответ написан
    7 комментариев
  • Стоит ли изучать администрирование Линукс серверов?

    ergil
    @ergil
    Давайте так, я оставлю тут картинку, а вы сами решите :)

    Market Share for Top Servers Across All Domains
    August 1995 — July 2012
    image

    Как думаете много ли апачей и nginx`ов на виндах? единицы. А теперь посмотрите на то, сколько суммарно апач и nginx составляют. 72% веб-серверов. Еще вопросы?
    Ответ написан
    4 комментария
  • Вопросы linux администратору

    Была вакансия в хостинг-компании NetAngels. Там был такой список:
    Компания NetAngels ищет грамотного технического специалиста на должность старшего системного администратора в отдел NOC. В своей работе мы используем Debian GNU/Linux, поэтому мы будем особенно рады специалистам, имеющим опыт работы именно с этим дистрибутивом.

    Задачи, которые вам предстоит решать:

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

    Качества, которые будут полезны при работе в нашей компании:

    — понимание функционирования linux-систем, опыт их администрирования;
    — понимание принципов функционирования Internet, знакомство с протоколами dns, http, ftp, smtp, pop3, imap;
    — некоторые представления о языке C (необходимость заглянуть в код какой-нибудь программы при отсутствии внятной документации не должна стать для вас невыполнимой задачей);
    — опыт написания скриптов на sh, виртуозное владение sed и awk;
    — технический английский на уровне свободного чтения документации (без постоянного заглядывания в словарь);
    — ответственность и готовность быстро принимать решения по возникающим проблемам;
    — самостоятельность: исследование возможностей по реализации технических новшеств, умение выбрать подходящий инструмент для решения задачи.
    — понимание устройства сетевого стека linux и подсистемы ядра netfilter;
    — опыт работы с нетривиальными конфигурациями iptables, iproute2;
    — знакомство с протоколами динамической маршрутизации;
    — навыки работы с дистрибутивами Debian/Ubuntu (пакетный менеджер, опыт сборки пакетов);
    — опыт работы с системами виртуализации;
    — навыки диагностики и решения нетривиальных проблем в области сетевых настроек или эксплуатации сервисов, работающих на linux-платформе;
    — опыт работы с высоконагруженными сервисами, работающими в режиме 24/7/365;
    — знакомство с веб-серверами Apache или nginx;
    — опыт настройки почтовой системы на платформе linux;
    — знакомство с системами контроля версий (предпочтительно git);
    — представления о том, что такое sql query plan, навыки оптимизации каких-либо СУБД под конкретную задачу;
    — навыки программирования на Python;

    Ну и сами вопросы:
    1. Как узнать, кто из клиентов потребляет больше резидентной памяти в данный момент своими процессами (построить топ по потреблению). Вывод ps (не полный) выглядит так. Всего в ps процессов несколько сотен:
    Исходник:
    ps axu
    USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
    u5867 32518 0.0 0.0 214036 12764? S 21:34 0:00 /usr/bin/php-cgi5.2
    u425 32532 1.1 0.0 139736 24556? S 21:34 0:01 /usr/bin/php-cgi5.3
    u6363 32535 1.1 0.0 183444 20240? S 21:34 0:01 /usr/bin/php-cgi5.2
    u12124 32548 0.2 0.0 174432 28360? S 21:34 0:00 /usr/bin/php-cgi5.2

    2. По какому принципу работает программа traceroute?
    3. Вам понадобилось выделить подсеть размером в 30 ip-адресов. Можете ли в уме посчитать, какой должна быть маска получившейся сети?
    4. Расскажите, что такое Path MTU.
    5. Расскажите, что такое TCP Window.
    6. Какой тип DNS-записи мы будем использовать при указании того, какой сервер отвечает за приём почты определённого домена?
    7. Как выглядит HTTP-запрос для проверки корректности работы настроек веб-сервера для отдачи сжатого контента при его поддержке клиентом (на примере /index.html)?
    8. Расскажите, в чём заключаются различия между симлинком и хардлинком.
    9. Каким образом в sh/bash можно обработать какой-либо сигнал? Например, по завершении скрипта необходимо удалить временные файлы, созданные в процессе работы, причём выполнить это необходимо даже том случае, если выполнение скрипта было прервано извне. Обработку каких сигналов мы не можем выполнить?
    10. Вам необходимо обеспечить максимальную доступность одного сервиса (программы). Расскажите, каким образом можно обеспечить автоматический запуск/перезапуск сервиса в случае его внештатного завершения.
    11. Для нового сервера, на котором будут работать базы данных, необходимо подготовить дисковую систему. Пожалуйста, расскажите, чем вы будете руководствоваться при настройке дисков, какие настройки raid будете применять, какой io scheduler?
    12. Как посмотреть, с какими параметрами запущено ядро linux?
    13. Приходилось ли вам сталкиваться с tun/tap устройствами? В чём заключается их различие?
    14. Допустимо ли полностью отключать своп на сервере? Почему?
    15. Каким образом можно просмотреть загруженность диска операциями ввода-вывода?
    16. На сервере настроены два интерфейса: eth0 и eth1. Используемый по умолчанию шлюз доступен через eth0. Запросы поступают на сервер через оба интерфейса. Каким образом можно настроить использование другого шлюза для отправки ответов на пришедшие через eth1 запросы? Предполагается, что запрос может придти с произвольного ip-адреса.
    17. Каким образом вы будете делать бэкап базы MySQL объёмом 10 Гб и использующей хранилище InnoDB? А если хранилище MyISAM?
    18. С какими трудностями/проблемами вам приходилось сталкиваться при поддержке репликации в MySQL, если есть такой опыт? Каким образом вы чинили развалившуюся репликацию?

    19. Предположим, у вас есть какой-то веб-сайт, работающий под LAMP. На этот сайт началась атака типа http-flood. Какие действия Вы бы предприняли для самостоятельной борьбы с этой атакой?
    20. Имеется некоторое большое (несколько десятков) количество одинаковых систем, настроенных под одну задачу (хостинг). Каким образом вы будете производить работы по установке нового ПО, обновлению; следить за актуальностью и однотипностью конфигурационных файлов?
    21. В каких ситуация целесообразно применять Jumbo Frames?
    22. Если вам была бы поставлена задача построить отказоустойчивый кластер для обеспечения работы веб-сайта на LAMP, какие технологии вы для этого использовали и почему?
    23. Необходимо запретить доступ к размещенным на сервере сайтам всем клиентам с User-Agent: MegaXakep. Как бы Вы это сделали?
    24. В чем отличие между KVM, XEN и OpenVZ. Какие преимущества и недостатки каждой из этих технологий вы знаете?
    25. Необходимо ограничить процессы пользователя uXXXX, чтобы они потребляли в сумме не более 512 мб памяти. Как это можно сделать?
    26. Какие режимы репликации изменений базы поддерживаются MySQL?
    27. В каких случаях на slave-ах может быть необходимо ведение binlog-а?

    Взято тут www.e1.ru/talk/forum/go_to_message.php?f=125&t=33520&i=33603
    Ответ написан
    3 комментария
  • Чем отличается XEN от OpenVZ?

    @rPman
    Вот популярные системы в порядке понижения функционала:
    Xen — на порядок сложнее и функциональнее, имеет помимо режима паравиртуализации (как openvz) режим полной виртуализации (в т.ч. поддержка соответствующих фич процессоров), есть механизмы переброса железа внутрь виртуалки (например, поддержка не самых слабых intel видеокарт), снапшоты, миграция,… много много вкусных фич.

    VMWare — как и xen, сложен, наворочен, приправлен соответствующей инфраструктурой и хорошими забористыми ценами :) режима полноценной паравиртуализации не имеет

    kvm/qemu — полная эмуляция процессора (а так же виртуализация через поддержку процессорами), есть вкусности от 'старших братьев' вида миграция запущенной виртуалки по сети, переброса железа (сильно хуже поддержка чем xen/vmware) и т.п. можно считать бакэндом, так как GUI в идеалогии не имеет, оно пилится желающим

    VirtualBox — эмуляция процессора, в т.ч. использование поддержки виртуализации процессоров, идеален как отдельное десктопное приложение, миграции по сети нет, есть снапшоты, некоторые вкусности скрыты от GUI в коммандной строке

    OpenVZ — это работа всех машин на одном ядре (патчи к нему так и зовутся openvz), нет виртуализации, максимальная скорость (так как фактически это расширенный chroot с изоляцией). Для запуска модуля ядра на поклон нужно идти к хост системе и ее администратору (например tun/tap адаптер у firstvds дают по запросу)
    Снапшотов нет (но их реализуют через lvm), миграция есть, есть сброс состояния контейнера на диск и возобновление работы…

    Lxc — еще проще чем openVZ, нет даже грамотной изоляции (если подсуетиться, можно, имея рут в контейнере, выйти в хост систему с рутовым доступом), прямой аналог jail во freebsd, имеет смысл для хитрых сетевых конфигураций, тестов и т.п.

    Chroot — это даже не виртуалка, это просто простейшая изоляция в пределах файловой системы, подмена путей в вызовах функций работы с файлами.
    p.s. lxc называют еще 'chroot на стероидах'

    OpenVZ/lxc/chroot поддерживают почти полноценное каскадирование виртуалок (т.е. к примеру можно внутри контейнера openvz запустить kvm/virtualbox при наличии модулей, даже с поддержкой аппаратного ускорения)
    Ответ написан
    6 комментариев