Не буду говорить про плюсы и минусы открытой зарплаты, тут уже высказали множество мнений и в каждой позиции есть свои плюсы и минусы. А вот про мотивацию могу немного рассказать
Давным-давно в далекой галактике я работал в одной конторе, по сути интегратор, разве что европейский, а не из ex-СССР. Так вот там была введена интересная система KPI, которая состояла из нескольких:
Так как контора была outsource/outstaff, то Customer оценивал по каждой задаче её степень завершенности, по шкале от 1 до 10 и в конце месяца для каждого сотрудника выставлялась оценка в виде коэффициента от 0 до бесконечности, причем коэффициент 1 соответствовал средней оценке 9 (т.е. 90%), что было своеобразной целью (SLA, который прописывался в конторакте с клиентом в том числе, на ряду с гарантированным временем решения задач и другими плюшками, которые должен был получать клиент).
Соответственно получив среднюю оценку 10, можно было получить коэффициент 1.11, а именно на эту сумму умножалась зарплата сотрудника. То есть зарплату никто не знал, но состояние соревнования присутствовало, так как коэффициенты озвучивались публично и каждый сотрудник видел какое место в ТОПе он занимает
Так же в системе автоматически логировалось время работы над каждой задачей, при этом это было billable time, то есть утверждалось клиентом и менеджером конкретного сотрудника (так как клиент по итогу месяца по этому времени платил конторе деньги).
Минимальный интервал был 10 минут, то есть даже если ты делал задачу 2 минуты, все равно ставил 10 и в этом был некий чит, но на практике таких задач было немного. Среднее время, вроде бы было около получаса или даже минут 40.
Но суть этого KPI в том, что по каждому грейду (Junior/Middle/Senior) у нас это называлось L1, L2, L3 (L1 — juniors/middles, L2 — middles/seniors, L3 — seniors/architects), была награда — top amount, то есть по количеству закрытых задач и общему времени (оплаченному, само собой).
Такой человек получал +20% к з/п, опять же сама з/п не раскрывалась, но 20% это большая сумма и это было очень серьезной мотивацией
Помимо этого, контора работала в режиме 24/7, а инженеры работали по скользящему графику и, естественно, у любого человека были ночные смены. Такие смены оплачивались с коэффициентом 1.25, т.е. плюс 25% денег за ночную смену (зарплата делилась на количество смен, потом сумма ночных смен умножалась на 1.25 и прибавлялась к сумме обычных смен).
При этом далеко не все стремились работать ночью, а руководство наоборот было не против по просьбе сотрудника (в стиле «я был молод и мне нужны были деньги») поставить его работать в 6/7 ночных, при условии, что он справлялся с нагрузкой.
Нормальная смена была с двумя выходными, то есть работая 6/7 плюс все эти смены ночные была возможность получить почти 150% от своей ставки. Опять же сумма, которую сотрудник получает, не разглашалась, но к ней применялись повышенные коэффициенты
Плюсом ко всему, что выше, была еще фиксированная доплата за менторство. То есть если ты гуру python, например, или bash-маньяк или rock-star в какой-то другой области, то ты готовишь некий мастер-класс по какой-то востребованной в компании технологии и согласуешь с начальством. Если таможня дает добро начальство считает это актуальной темой, ты проводишь этот мастер-класс в нерабочее время,
плюс записываешь видео, которое идет в knowledge base компании и получаешь (по тем временам, это был 2004-2006 год) 100$ к з/п
Заставлять проводить такие мастер-классы никто не заставлял, но желающие всегда были, чем руководство убивало сразу двух зайцев — повышало внутреннюю экспертизу и шарило знания,
плюс мотивировало отдельных сотрудников и, чего греха таить, немного почёсывало их ЧСВ
Ну и как контрпример, приведу случай, когда зарплата сотрудника по определенным причинам была известна и к чему это привело.
Уже намного позже событий описанных сверху я работал в другой компании и руководил IT департаментом, где были всякие system engineers, devops engineers, network engineers и так далее. Плюс к этому в компании было несколько крупный подразделений (команд разработки), которые непосредственно разрабатывали продукт и в каждом подразделении были такие ребята, которые назывались site reliability engineers, — это такие своеобразные DevOps, но которые отвечают только за выпуск продукта в прод.
Так вот, собственно история, в том, что компания наняла некоторого rock-star инженера в контрактную команду, назовём его Васей, для наглядности. И Вася поработал в этой команде где-то год, а потом руководство команды и сам Вася решили, что он слишком крут и надо его отправить работать ко мне, так как задач у нас больше и сами задачи сложнее, а Вася хоть и рок-стар, но в команде ему скучно и потенциал не раскрыт. Никто в общем-то не был против, а Васе к тому же грозил еще label upgrade.
Однако, когда Вася пришёл работать ко мне, я как его менеджер, естественно, узнал сколько Вася получает и с удивлением для себя обнаружил, что у нас с Васей одинаковая зарплата. Да, конечно, Василий рок-стар, — бесспорно, но руководство целым подразделением подразумевает немного большую ответственность (таких «Васей» у меня тогда было человек 10 или 12).
Естественно Васе я ничего не говорил, а пошел напрямую к топ-менеджменту компании и попросил поднять мне зарплату.
Но договориться с руководством не получилось, что привело к моему уходу из компании, а затем и к тому, что 70% инженеров из моего отдела ушли из компании, т.к. руководить ими было некому, а за работу спрашивали уже не с меня, а с них напрямую.
Ребята, которые привыкли, что босс их прикрывает, и они получают по башке feedback только из одного источника, были просто не готовы к прямой ответственности за свою работу.
Конечно, руководство в итоге попыталось найти другого менеджера, пробовали на эту должность и Василия, но налаженная система уже была сломана, так что сейчас (на сколько я знаю), такого отдела в принципе не существует в той компании, а каждая команда разработки имеет свой штат DevOps, System Engineers (Ops) и т.д., что, конечно, влечет за собой и большие расходы, и меньшую эффективность и много других проблем (а-ля «Лебедь, рак и щука»).
Не знаю съест ли (ведь зараженный FP должен быть подписан сертификатом, которому Apple доверяет), но даже если съест и установит, у него должны быть привилегии:
Тоже самое с камерой, сетью и т.д.
То есть ну поставит малварь через флеш (хотя и в этом сомневаюсь, так как скажет, скорее всего, что приложение из недоверенного источника), но доступа к сети, камере и диску эта малварь не получит
Но в общем-то Вы правы, так как безопасность, это в большей степени ответственность пользователя, а любая современная ОС предоставляет средства защиты, плюс есть сторонние продукты, вроде антивирусов
Например в моей компании стоит сразу несколько рубежей защиты — и GlobalProtect, и Cisco AMP и банальный антивирус от Symantec, ну и плюс еще централизованный сбор логов о потенциально опасных действиях пользователя (установка ПО, например). То есть если я скачаю и установлю себе просто взломанное ПО, то это прямой путь к увольнению, так как отдел ИБ это заметит и даст по башке.
С таким подходом уже не важно, какая ОС (у нас примерно 60% винды, 30% маков и 10% линукс)
Именно то, что любой школьник не может опубликовать (и подписать) своё приложение в AppStore и говорит о том, что это немного более безопасно, чем super_puper_app.exe
Да, фейлы безопасности есть у всех (лично я использую все 4 семейства ОС, везде хватает), однако вопрос не в фейлах, а легкости выстрела себе в ногу.
В Windows по моему мнению это сделать легче всего, дальше уже идут MacOS, Linux, Unix(*BSD) и всякая экзотика, где люди себе в ногу стреляют осознанно или эксперимента ради
Я про то, что дефолтные настройки Windows, позволяют делать много всякого, можно устанавливать любые приложения (да, они попросят «внести изменения на Вашем компьютере», без деталей), в том числе и без подписи
В той же MacOS нужно специально под админским паролем в настройках разрешить установку программ из неизвестных источников и еще при попытке установки чего-то не из AppStore тебе каждый раз напомнят, что это очень очень небезопасно
В Linux все сложнее, но если брать официальные репозитории, то там тоже есть GPG подпись
P.S. Не пытаюсь спорить, так как выбор ОС — дело сугубо религиозное, как и отношение к ИБ в конкретной ОС
Поздравляю, Вы сейчас открыли для себя MacOS X (не реклама)
Я, конечно, понимаю, что учитель в силу многих обстоятельств не сможет использовать что-то отличное от Windows, но в какой-то абстрактной работе это очень помогает (где нет зависимости от платформы).
Я про то что MacOS X без всяких дополнительных телодвижений:
Ограничивает приложение его «папкой», точнее изолирует приложение на уровне ОС, не позволяя ему видеть остальные приложения и данные пользователя
Управляет доступом к оборудованию (камера, геолокация, микрофон и т.д.)
При попытке внести изменения за пределы своего окружения, система спросит пользователя об этом (обычно даже поясняя, что именно хочет сделать приложение)
Ну и там много еще чего интересного, но всё это можно найти в интернете
У меня лично, но по совместительству и у компании, где я работаю, политика ставить всегда latest stable. Да, в ветку 3.1.х портируются фиксы из 3.3.х, но лучше таки иметь последнюю версию продукта
Хотя, справедливости ради, конкретно для запуска Storm подойдет даже 2.х, так что можно было и из Epel поставить
В случае с форматом key=(value) не нужно, просто в случае необходимости добавить еще одну пару значений (например) username=(%username%) — просто начинаем слать её в логи и она автоматом подхватывается Logstash
Как видите в статье: filter {
kv {
source => "message"
recursive => "false"
add_tag => "%{loggerclass}"
}
}
мы не указываем какой-то конкретной конфигурации для каких либо items, просто говорим — ищи пары ключ-значения в поле message, ну а тэг — дело опциональное, хоть для Java и очень useful
Да, научить loj4j2 можно и я даже нашел соответствующий log4j2 appender на github, но пересобирать Storm с нужной jar'кой и потом еще писать и поддерживать CICD для этого процесса как-то стало лень, поэтому решил остановиться на key-value
Однако, возможно это тема для отдельной статьи или «второй редакции» этой статьи. Как будет время — соберу всё это и возможно напишу статью как логировать в json
Это на самом деле не проблема ELK, это проблема log4j2, он не совсем корректно работает и не умеет pretty json, а logstash в свою очередь не умеет в multistring.
Если нужно/можно писать напрямую из приложения в logstash -> ничего не мешает использовать json
На мой взгляд key-value гибче, т.к. в него можно завернуть любые логи. Например, тот же nginx в json писать будет довольно сложно научить. Ну и добавить новые поля можно в любое время, ничего не меняя в конфигурации принимающей стороны.
Статья, в общем-то не о supervisor, но так как это системный демон он работает от рута, т.к. должен иметь необходимость запускать процессы от имени других пользователей. То есть в данном случае религия позволяет использовать системный python и от root
Да, можно сделать через sudo, есть и другие варианты, вплоть до запуска storm внутри docker, раз уж он все равно используется.
Но, повторюсь, статья не о настройке supervisor, поэтому я эту часть упростил, ибо в реальности, лично у меня всё запускается более сложным образом, с участием систем конфигурации и с запуском каждого сервиса от своего пользователя, а те сервисы, что нужно изолировать, — изолированы через контейнеры
Да, действительно ценное замечание по поводу даты из логов, однако, как Вы могли заметить у меня есть timestamp принятого сообщения и logdate филд внутри самого сообщения — это позволяет, в том числе, посмотреть на задержку в доставке сообщений (у меня в Grafana даже есть алерт, если какой-то хост начинает слишком долго доставлять логи)
Про systemd — согласен, но supervisor мне кажется более гибким (мне он еще и сообщения на почту шлёт, если пришлось перезапустить Storm). Но вообще это вопрос религии :-)
Можно, но придётся немного пошаманить с regexp, так как стандартный input для Logstash не умеет обрабатывать JSON с переносами строки, а в Loj4J2 вполне себе могут быть Exception и Stack Trace, которые будут многострочными. Фильтр kv в данном случае корректно обработает любые значения
Ну вот я, как раз, отказался от телевизора в спальне в пользу iPad (дома еще есть 3 мака + тайм капсула, куда можно складывать киношки, ну и айфоны само собой), а большой телевизор в гостинной подключен к приставке Apple TV и на нем обычно смотрятся фильмы компанией и т.д.
Я к тому, что по цене телевизора можно купить несколько планшетов от яблока :-)
То есть вы, чтобы посмотреть сериальчик в кроватке перед сном с супругой/подругой тащите с собой в кровать ноут? Или телек в спальне?
iPad, даже mini, решает проблему потребления медиа-контента (музыка, кино, ютуб, вк, фб и т.д.) на 100% в условиях дома и на 146% в условиях путешествий — ну зачем с собой в отпуск тащить ноут, если есть iPad? Особенно если вы в 90% времени валяетесь на пляже пузом к верху? :-)
Нет, Вася однозначно обладал меньшими знаниями, к тому же это немного из разной оперы, как примерно сравнивать CTO и Senior Engineer
Давным-давно
в далекой галактикея работал в одной конторе, по сути интегратор, разве что европейский, а не из ex-СССР. Так вот там была введена интересная система KPI, которая состояла из нескольких:Соответственно получив среднюю оценку 10, можно было получить коэффициент 1.11, а именно на эту сумму умножалась зарплата сотрудника. То есть зарплату никто не знал, но состояние соревнования присутствовало, так как коэффициенты озвучивались публично и каждый сотрудник видел какое место в ТОПе он занимает
Минимальный интервал был 10 минут, то есть даже если ты делал задачу 2 минуты, все равно ставил 10 и в этом был некий чит, но на практике таких задач было немного. Среднее время, вроде бы было около получаса или даже минут 40.
Но суть этого KPI в том, что по каждому грейду (Junior/Middle/Senior) у нас это называлось L1, L2, L3 (L1 — juniors/middles, L2 — middles/seniors, L3 — seniors/architects), была награда — top amount, то есть по количеству закрытых задач и общему времени (оплаченному, само собой).
Такой человек получал +20% к з/п, опять же сама з/п не раскрывалась, но 20% это большая сумма и это было очень серьезной мотивацией
При этом далеко не все стремились работать ночью, а руководство наоборот было не против по просьбе сотрудника (в стиле «я был молод и мне нужны были деньги») поставить его работать в 6/7 ночных, при условии, что он справлялся с нагрузкой.
Нормальная смена была с двумя выходными, то есть работая 6/7 плюс все эти смены ночные была возможность получить почти 150% от своей ставки. Опять же сумма, которую сотрудник получает, не разглашалась, но к ней применялись повышенные коэффициенты
таможня дает доброначальство считает это актуальной темой, ты проводишь этот мастер-класс в нерабочее время,плюс записываешь видео, которое идет в knowledge base компании и получаешь (по тем временам, это был 2004-2006 год) 100$ к з/п
Заставлять проводить такие мастер-классы никто не заставлял, но желающие всегда были, чем руководство убивало сразу двух зайцев — повышало внутреннюю экспертизу и шарило знания,
плюс мотивировало отдельных сотрудников и, чего греха таить, немного почёсывало их ЧСВ
Ну и как контрпример, приведу случай, когда зарплата сотрудника по определенным причинам была известна и к чему это привело.
Уже намного позже событий описанных сверху я работал в другой компании и руководил IT департаментом, где были всякие system engineers, devops engineers, network engineers и так далее. Плюс к этому в компании было несколько крупный подразделений (команд разработки), которые непосредственно разрабатывали продукт и в каждом подразделении были такие ребята, которые назывались site reliability engineers, — это такие своеобразные DevOps, но которые отвечают только за выпуск продукта в прод.
Так вот, собственно история, в том, что компания наняла некоторого rock-star инженера в контрактную команду, назовём его Васей, для наглядности. И Вася поработал в этой команде где-то год, а потом руководство команды и сам Вася решили, что он слишком крут и надо его отправить работать ко мне, так как задач у нас больше и сами задачи сложнее, а Вася хоть и рок-стар, но в команде ему скучно и потенциал не раскрыт. Никто в общем-то не был против, а Васе к тому же грозил еще label upgrade.
Однако, когда Вася пришёл работать ко мне, я как его менеджер, естественно, узнал сколько Вася получает и с удивлением для себя обнаружил, что у нас с Васей одинаковая зарплата. Да, конечно, Василий рок-стар, — бесспорно, но руководство целым подразделением подразумевает немного большую ответственность (таких «Васей» у меня тогда было человек 10 или 12).
Естественно Васе я ничего не говорил, а пошел напрямую к топ-менеджменту компании и попросил поднять мне зарплату.
Но договориться с руководством не получилось, что привело к моему уходу из компании, а затем и к тому, что 70% инженеров из моего отдела ушли из компании, т.к. руководить ими было некому, а за работу спрашивали уже не с меня, а с них напрямую.
Ребята, которые привыкли, что босс их прикрывает, и они получают
по башкеfeedback только из одного источника, были просто не готовы к прямой ответственности за свою работу.Конечно, руководство в итоге попыталось найти другого менеджера, пробовали на эту должность и Василия, но налаженная система уже была сломана, так что сейчас (на сколько я знаю), такого отдела в принципе не существует в той компании, а каждая команда разработки имеет свой штат DevOps, System Engineers (Ops) и т.д., что, конечно, влечет за собой и большие расходы, и меньшую эффективность и много других проблем (а-ля «Лебедь, рак и щука»).
Тоже самое с камерой, сетью и т.д.
То есть ну поставит малварь через флеш (хотя и в этом сомневаюсь, так как скажет, скорее всего, что приложение из недоверенного источника), но доступа к сети, камере и диску эта малварь не получит
Но в общем-то Вы правы, так как безопасность, это в большей степени ответственность пользователя, а любая современная ОС предоставляет средства защиты, плюс есть сторонние продукты, вроде антивирусов
Например в моей компании стоит сразу несколько рубежей защиты — и GlobalProtect, и Cisco AMP и банальный антивирус от Symantec, ну и плюс еще централизованный сбор логов о потенциально опасных действиях пользователя (установка ПО, например). То есть если я скачаю и установлю себе просто взломанное ПО, то это прямой путь к увольнению, так как отдел ИБ это заметит и даст по башке.
С таким подходом уже не важно, какая ОС (у нас примерно 60% винды, 30% маков и 10% линукс)
Да, фейлы безопасности есть у всех (лично я использую все 4 семейства ОС, везде хватает), однако вопрос не в фейлах, а легкости выстрела себе в ногу.
В Windows по моему мнению это сделать легче всего, дальше уже идут MacOS, Linux, Unix(*BSD) и всякая экзотика, где люди себе в ногу стреляют осознанно или эксперимента ради
Я про то, что дефолтные настройки Windows, позволяют делать много всякого, можно устанавливать любые приложения (да, они попросят «внести изменения на Вашем компьютере», без деталей), в том числе и без подписи
В той же MacOS нужно специально под админским паролем в настройках разрешить установку программ из неизвестных источников и еще при попытке установки чего-то не из AppStore тебе каждый раз напомнят, что это очень очень небезопасно
В Linux все сложнее, но если брать официальные репозитории, то там тоже есть GPG подпись
P.S. Не пытаюсь спорить, так как выбор ОС — дело сугубо религиозное, как и отношение к ИБ в конкретной ОС
Плюсом ко всему, приложение должно быть подписано валидным разработчиком в AppStore
Я, конечно, понимаю, что учитель в силу многих обстоятельств не сможет использовать что-то отличное от Windows, но в какой-то абстрактной работе это очень помогает (где нет зависимости от платформы).
Я про то что MacOS X без всяких дополнительных телодвижений:
Ну и там много еще чего интересного, но всё это можно найти в интернете
Хотя, справедливости ради, конкретно для запуска Storm подойдет даже 2.х, так что можно было и из Epel поставить
Как видите в статье:
filter {
kv {
source => "message"
recursive => "false"
add_tag => "%{loggerclass}"
}
}
мы не указываем какой-то конкретной конфигурации для каких либо items, просто говорим — ищи пары ключ-значения в поле message, ну а тэг — дело опциональное, хоть для Java и очень useful
Да, научить loj4j2 можно и я даже нашел соответствующий log4j2 appender на github, но пересобирать Storm с нужной jar'кой и потом еще писать и поддерживать CICD для этого процесса как-то стало лень, поэтому решил остановиться на key-value
Однако, возможно это тема для отдельной статьи или «второй редакции» этой статьи. Как будет время — соберу всё это и возможно напишу статью как логировать в json
Если нужно/можно писать напрямую из приложения в logstash -> ничего не мешает использовать json
На мой взгляд key-value гибче, т.к. в него можно завернуть любые логи. Например, тот же nginx в json писать будет довольно сложно научить. Ну и добавить новые поля можно в любое время, ничего не меняя в конфигурации принимающей стороны.
Да, можно сделать через sudo, есть и другие варианты, вплоть до запуска storm внутри docker, раз уж он все равно используется.
Но, повторюсь, статья не о настройке supervisor, поэтому я эту часть упростил, ибо в реальности, лично у меня всё запускается более сложным образом, с участием систем конфигурации и с запуском каждого сервиса от своего пользователя, а те сервисы, что нужно изолировать, — изолированы через контейнеры
Но так-то мы тут о логировании
Про systemd — согласен, но supervisor мне кажется более гибким (мне он еще и сообщения на почту шлёт, если пришлось перезапустить Storm). Но вообще это вопрос религии :-)
Я к тому, что по цене телевизора можно купить несколько планшетов от яблока :-)
iPad, даже mini, решает проблему потребления медиа-контента (музыка, кино, ютуб, вк, фб и т.д.) на 100% в условиях дома и на 146% в условиях путешествий — ну зачем с собой в отпуск тащить ноут, если есть iPad? Особенно если вы в 90% времени валяетесь на пляже пузом к верху? :-)