Pull to refresh
  • by relevance
  • by date
  • by rating

Paymentwall Kiev is Hiring!

Paymentwall, Inc. corporate blog
image

Here are the positions we’re currently hiring:
— PHP Team Lead
— Senior PHP developer
— PHP developer
— Junior PHP Developer
— System Administrator
— Quality Assurance Engineer
— Operations Assistant
— Auditor / Accountant
— Customer Service Representative
— Integration Engineer
— Senior Fraud & Risk Analyst
— CPA Advertising Associate
— Optimization Engineer
— Junior Fraud & Risk Analyst

www.paymentwall.com/en/company/jobs
Total votes 27: ↑1 and ↓26 -25
Views 2.7K
Comments 1

Запуск worker'ов сервиса с помощью systemd

Development for Linux *
Tutorial
После выхода Ubuntu 16.04 (новый LTS релиз), systemd стал реальностью всех основных дистрибутивов Linux, использующихся на серверах. Это означает, что можно закладываться на расширенные возможности systemd, не рискуя оставить часть пользователей приложения «за бортом».

Этот пост о том, как реализовать многоворкерное приложение средствами systemd.

Abstract: Использование шаблонов сервисов и target'ов для запуска нескольких инстансов сервиса (реализация «воркеров»). Зависимость PartOf. Немного про [install] секцию у unit'ов.

Вступление


Многие языки программирования с плохой или никакой многопоточностью (Python, Ruby, PHP, довольно часто C/C++) используют концепцию «воркера». Вместо того, чтобы городить сложные отношения между тредами внутри приложения, они запускают несколько однопоточных копий приложения, каждое из которых берёт на себя кусок нагрузки. Благодаря опции SO_REUSEPORT есть даже возможность «вместе» слушать на одном и том же порту, что покрывает большинство задач, в которых возникает потребность в воркерах (собственно, обычные серверные приложения, реализующие API или обслуживающие веб-сайт).

Но такой подход требует наличия «супервизора», который отвечает за запуск копий, следит за их состоянием, обрабатывает ошибки, завершает при всякого рода stop/reload и т.д. При кажущейся тривиальности — это совершенно не тривиальная задача, полная нюансов (например, если один из воркеров попал в TASK_UNINTERRUPTIBLE или получил SIGSTOP, то могут возникнуть проблемы при restart у не очень хорошо написанного родителя).

Есть вариант запуска без супервизора, но в этом случае задача reload/restart перекладывается на администратора. При модели «один процесс на ядро» перезапуск сервиса на 24-ядерном сервере становится кандидатом в автоматизацию, которая в свою очередь требует обработки всех тех же самых SIGSTOP и прочих сложных нюансов.

Одним из вариантов решения проблемы является использование шаблонов сервисов systemd вместе с зависимостью от общего target'а.
Читать дальше →
Total votes 20: ↑19 and ↓1 +18
Views 19K
Comments 20

Интересные приемы программирования на Bash

Programming *
Sandbox
Tutorial
Эти приемы были описаны во внутреннем проекте компании Google «Testing on the Toilet» (Тестируем в туалете — распространение листовок в туалетах, что бы напоминать разработчикам о тестах).
В данной статье они были пересмотрены и дополнены.
Читать дальше →
Total votes 181: ↑175 and ↓6 +169
Views 121K
Comments 67

Berkshelf и зависимости Chef cookbook-ов

EPAM corporate blog
Привет, Хабрапользователи!
Я продолжаю свое погружение в пикантности automation-а и configuration management-а, параллельно пытаясь делится опытом с community.

Речь пойдет опять об инструменте автоматизации разрешения зависимостей Сhef cookbook-ов, которым наша компания пользуется, а именно — Berkshelf.
Читать дальше →
Total votes 6: ↑4 and ↓2 +2
Views 7.9K
Comments 5

Hadoop и автоматизация: Часть 2

EPAM corporate blog Hadoop *
Привет, Хабрапосетители!


Продолжаю свою «развеселую» серию статей, посвященных знакомству с Hadoop и автоматизации развертывания кластера.

В первой части я вкратце описал, что нужно было достичь, какую архитектуру кластера построить и что представляет собой Hadoop-кластер с точки зрения архитектуры. Также, я рассмотрел, наверное, самую простую часть кластера — Clients, которая отвечает за постановку задач, предоставление данных для вычислений и получение результатов.
Читать дальше →
Total votes 11: ↑11 and ↓0 +11
Views 9.1K
Comments 6

Автоматизированная установка WordPress на VPS с помощью Ansible

WordPress *
Recovery mode
Tutorial
Добрый день, Хабр.

Не так давно я начал разбираться с замечательным инструментом для любого DevOps — Ansible. Сегодня хочу представить на ваш взыскательный суд небольшую вводную статью по использованию этого, во многом прекрасного, инструмента. Итак, начнем.

Что такое Ansible


Ansible — это инструмент для автоматизации задач системного администратора и не только. Если своими словами — это та штука, которая позволяет автоматически настраивать сервера пачками.

Кто-то скажет, что он не нужен, т.к. есть Chef, Puppet, etc. Я с этими людьми абсолютно соглашусь. Если вы можете использовать эти инструменты — отлично. Я же пишу эту статью для тех, кто хочет немного понять как работает Ansible и как с его помощью можно многое автоматизировать.

Если вы до этого не сталкивались с Ansible вообще, то советую почитать статью компании Селектел. Отличная статья.

Максимум автоматизации


Давайте определимся, что нам нужно, чтоб запустить Wordpress на VPS сервере с установленной Ubuntu:
  • Nginx
  • Mysql
  • PHP5
  • Memcached для использования W3Total Cache плагина
  • Wordpress

Вот в таком порядке мы и будем писать роли для настройки сервера.
Читать дальше →
Total votes 9: ↑6 and ↓3 +3
Views 13K
Comments 3

Базовая настройка Juniper серии SRX

System administration *Network technologies *
Sandbox
Tutorial
Здесь уже есть несоклько статей про настройку маршрутизаторов Juniper SRX (например, раз, два, три и т.д.). В этой я постараюсь консолидировать полезную информацию, дополнив ее некоторыми приятными мелочами.

Всех заинтересовавшихся прошу под кат.
Читать дальше →
Total votes 7: ↑6 and ↓1 +5
Views 30K
Comments 13

Манифест инженеров поддержки

Development for Windows *
В настоящее время существует большое количество хороших программных решений. Почему же только немногие из них успешны? На мой взгляд по большей части причина в том, что они недостаточно хорошо вписываются в большие корпоративные инфраструктуры, управляемые ITIL.

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

Платформа Windows в свою очередь предоставляет технологии, призванные создавать решения учитывая необходимости по поддержке, эксплуатации и инвентаризации в будущем.
Читать дальше →
Total votes 6: ↑5 and ↓1 +4
Views 8.1K
Comments 0

Автоматизируем и ускоряем процесс настройки облачных серверов с Ansible. Часть 1: Введение

Infobox corporate blog
Ansible – популярный инструмент для автоматизации настройки и развертывания ИТ-инфраструктуры.

Основные задачи, которые решает Ansible:
  • Управление конфигурациями. Максимально быстрая и правильная настройка серверов до описанной конфигурации.
  • Провижнинг. Управление процессом развертывания новых облачных серверов (например через API, с помощью Docker или LXC).
  • Развертывание. Инсталляция и обновление ваших приложений без простоя наилучшим образом.
  • Оркестрация. Координация компонентов вашей инфраструктуры для выполнения развертываний. Например проверка, что веб-сервер отключен от балансировщика нагрузки, до апгрейда ПО на сервере.
  • Мониторинг и уведомления.
  • Логгирование. Централизованный сбор логов.



По сравнению с другими популярными инструментами автоматизации ит-инфраструктуры, Ansible не требует установки клиентских приложений на обслуживаемые сервера, что может сократить время настройки перед развертыванием инфраструктуры. Для работы Ansible подключается к обслуживаемым серверам по SSH.
Читать дальше →
Total votes 30: ↑26 and ↓4 +22
Views 77K
Comments 32

Forensic system administration

Webzilla corporate blog System Analysis and Design *
Среди всех служебных обязанностей системного администратора, самой интересной, сложной и продуктивной, на мой взгляд, является детективная работа по мотивам случившегося «инцидента». При этом, в отличие от реальной криминологии, системный администратор сам себе одновременно и детектив, и эксперт по вещественным доказательствам.

Я сейчас исключаю из рассмотрения инциденты с осмысленным злым умыслом, это отдельный топик. Речь про стихийные проблемы (сервер упал/завис, виртуальная машина начала тормозить а потом перестала, приложение потеряло 100500 транзакций и считает, что всё хорошо).

Суть происшествия


Иногда она тривиальная («самопроизвольно перезагрузился сервер», или «упал самолёт»). Иногда она крайне трудная для объяснения («клиенты жалуются что у не получается поменять регион», при этом все сотрудники с клиентскими аккаунтами регион поменять могут). Чаще всего, чем дальше от системного администратора источник жалобы, тем более размытой становится жалоба: «клиент говорит, что после заказа в интернет-магазине плюшевого медведя он не может поменять регион на IE7 при использовании LTE-коннекта через USB-модем, а ещё он получает 500ую ошибку при попытке отменить операцию и нажатии „назад“).

Ещё более сложным является случай, когда несколько проблем сливаются вместе: „сервер внезапно перезагрузился, а на другом сервере был таймаут работы с базой данных, а клиенты в это время писали, что у них не грузятся картинки“. Сколько тут проблем? Одна, две, три, а может и больше? Какие из проблем надо молча объединить (база данных и отсутствие картинок), а какие надо учитывать раздельно? А если в этот момент ещё придёт жалоба, что пользователь не может залогиниться в систему — это обычное „забыл пароль“ или тоже симптом? А если таких пользователей два? Или кто-то мимоходом говорит, „что-то у меня почта не проходит“?

Подсознательно в момент начала проблем, каждая новая жалоба тут же объединяется с существующими (и может завести не туда), плюс резко увеличивает стресс из-за того, что приходится думать не о трёх симптомах, а о восьми, например. А в голове хорошо только семь удерживаются. Но в то же время в моей практике бывало так, что пришедший „новый“ симптом с лёгкостью приводил к сути проблемы и её устранению…… за вычетом того, что серьёзная проблема (с которой всё началось) не имеет никакого отношения к радостно и быстро починенной ерунде. А время потрачено.

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

То есть журнал (в sticky notes) выглядит так:
  • Мониторинг сработал на srv1 (22:05)
  • (имя) сказал про проблемы с почтой (22:07)
  • Не могу залогиниться на srv12 (22:08)/refused — Зашёл 22:16, dmesg чисто, аптайм большой
  • Не могу залогиниться на srv13 (22:10) (timeout) — отвалился офисный wifi (22:11)
  • Не открывается панель (22:12)
  • Саппорт пишет, что клиент жалуется, что ничего не работает, 22:15

Не стоит увлекаться (не время печатать), но симптомы стоит выписывать. Один это случай или несколько, важные это симптомы или нет, станет понятно потом. Я обычно начинаю выписывать примерно после третьего отвлекающего обращения.

Вторым аспектом проблемы является доказательство существования проблемы. Самая ненавистная фраза, которой не удаётся избежать:

У меня всё работает


После того, как Энийские Авиалинии пожаловались производителю на то, что самолёты иногда падают, разработчик проверил, что самолёты взлетают/садятся и закрыл тикет с 'Unable to reproduce'. Сотрудники поддержки Энийских Авиалиний продолжают собирать статистику по падению самолётов и пытаются научиться воспроизводить падение в лабораторных условиях.

Читать дальше →
Total votes 29: ↑26 and ↓3 +23
Views 17K
Comments 6

Автоматизируем и ускоряем процесс настройки облачных серверов с Ansible. Часть 2: вывод, отладка, и повторное использование playbook

Infobox corporate blog
В предыдущей статье мы начали изучение Ansible, популярного инструмента для автоматизации настройки и развертывания ИТ-инфраструктуры. Ansible был успешно установлен в InfoboxCloud, описаны принципы работы, базовая настройка. В завершении статьи мы показали как быстро установить nginx на несколько серверов.
Ansible InfoboxCloud
В этой статье мы продолжим изучение Ansible: разберем вывод playbook, научимся отлаживать их и разделять для удобства повторного использования.
Читать дальше →
Total votes 15: ↑11 and ↓4 +7
Views 17K
Comments 9

Автоматизируем и ускоряем процесс настройки облачных серверов с Ansible. Часть 3: Переменные и файл inventory

Infobox corporate blog
В первой части мы начали изучение Ansible, популярного инструмента для автоматизации настройки и развертывания ИТ-инфраструктуры. Ansible был успешно установлен, описаны принципы работы, базовая настройка. В завершении статьи мы показали как быстро установить nginx на несколько серверов.

Во второй части мы разобрались в выводе playbook, научились отлаживать и повторно использовать скрипты Ansible.



В этой части вы узнаете, как писать единый Ansible playbook для разных ОС (например с rpm и deb), как обслуживать множество хостов и не писать их все в inventory, как сгруппировать сервера по регионам InfoboxCloud и многое другое.
Читать дальше →
Total votes 19: ↑19 and ↓0 +19
Views 26K
Comments 2

Автоматизируем и ускоряем процесс настройки облачных серверов с Ansible. Часть 4: работаем с модулями

Infobox corporate blog
В первой части мы начали изучение Ansible, популярного инструмента для автоматизации настройки и развертывания ИТ-инфраструктуры. Ansible был успешно установлен в InfoboxCloud, описаны принципы работы, базовая настройка. В завершении статьи мы показали как быстро установить nginx на несколько серверов.

Во второй части мы разобрались в выводе playbook, научились отлаживать и повторно использовать скрипты Ansible.

В третьей части мы узнали как написать единый Ansible playbook для разных ОС (например с rpm и deb), как обслуживать множество хостов и не писать их все в inventory, и как сгруппировать сервера по регионам облака. Было изучено использование переменных Ansible и файла inventory.



В этой части мы научимся использовать модули Ansible для настройки сервера: разберемся, как запускать самые обычные скрипты на удаленных серверах, использовать шаблонизацию для файлов конфигурации, подставляя необходимые переменные, и как использовать системы управления версиями для получения кода на сервер.
Читать дальше →
Total votes 10: ↑7 and ↓3 +4
Views 12K
Comments 12

Автоматизируем и ускоряем процесс настройки облачных серверов с Ansible. Часть 5: local_action, условия, циклы и роли

Infobox corporate blog
В первой части мы начали изучение Ansible, популярного инструмента для автоматизации настройки и развертывания ИТ-инфраструктуры. Ansible был успешно установлен в InfoboxCloud, описаны принципы работы, базовая настройка. В завершении статьи мы показали как быстро установить nginx на несколько серверов.

Во второй части мы разобрались в выводе playbook, научились отлаживать и повторно использовать скрипты Ansible.

В третьей части мы узнали как написать единый Ansible playbook для разных ОС (например с rpm и deb), как обслуживать сотни хостов и не писать их все в inventory и как сгруппировать сервера по регионам InfoboxCloud. Было изучено использование переменных Ansible и файла inventory.

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



В этой части мы рассмотрим, как запускать задачу локально в рамках playbook для удаленных серверов, как использовать условия для выполнения конкретных задач только в определенной ситуации, как использовать циклы для значительного сокращения количества задач в playbook. В завершении мы разберем, как организовывать playbook в роли.
Читать дальше →
Total votes 9: ↑9 and ↓0 +9
Views 30K
Comments 2

День системного администратора 2015

System administration *
image
В последнюю пятницу июля в нашей стране ежегодно принято отмечать Всемирный День системного администратора. В Америке название этого праздника звучит несколько иначе — День благодарности системному администратору. В 2015 году все сисадмины будут отмечать свой профессиональный праздник 31 июля.
В этот день принято чествовать скромных тружеников «невидимого фронта», оберегающих благополучие корпоративных сетей и компьютеров — ведь именно от них напрямую зависит успешная работа компании.
Читать дальше →
Total votes 26: ↑19 and ↓7 +12
Views 23K
Comments 8

Docker, часть вторая. Полуавтоматическая винтовка с самонаведением на ногу

Website development *System Analysis and Design *ООP *
Tutorial
Пожалуйста, начинайте читать с начала серии: habrahabr.ru/post/267441

Как не надо использовать Docker.



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

Открываю документацию любого официального образа сервисного ПО — например, Nginx и нахожу раздел «How to use this image». Нам предлагают создать свой образ на базе официального, скопировав в него наши файлы, настроить мапинг порта в мир, и подмонтировать свою папку с конфигами.

FROM ...
COPY  . /usr/src/myapp
WORKDIR /usr/src/myapp

Да, нам предлагают унаследовать Model от View в одном звездном классе и заплатить за хранение на Docker Hub образов наших проприетарных приложений.
Читать дальше →
Total votes 29: ↑11 and ↓18 -7
Views 22K
Comments 48

Тест от Ростелеком на проверку знаний в области системного администрирования и поддержки пользователей

Ростелеком corporate blog
Пройди реальный рекрутинговый тест от #Ростелеком и проверь свои знания в области системного администрирования и поддержки пользователей!

Тест проверяет базовые знания системного администрирования и поддержки пользователей. На выполнение теста вам отводится не более 30 минут, в течение которых нужно будет дать ответы на 20 вопросов по ключевым темам.
Читать дальше →
Total votes 16: ↑7 and ↓9 -2
Views 20K
Comments 25

PowerShell Remoting — настройка и удаленное управление

PowerShell *
Tutorial
Здесь минимум теории, в основном практическая часть. Описывается как настроить WinRM, как изменить профиль сетевого адаптера, дается скрипт по добавлению в TrustedHosts с фильтрацией, объясняется зачем нужны доверенные хосты, и рассматриваются поверхностно удаленные подключения так чтобы можно было сесть и сразу админить удаленные машины.

Наиболее простой путь сконфигурировать удаленное управление это выполнить Enable-PSRemoting в оболочке powershell с правами администратора. При этом произойдет следущее:
  • запустится служба WinRM (если запущена перезапустится)
  • служба WinRM перейдет в состояние — автоматический запуск при старте
  • будет создан прослушиватель WinRM для HTTP трафика на порту 5985 для всех локальных IP адресов
  • будет создано правило файрвола для прослушивателя WinRM. Внимание, этот пункт завершится с ошибкой если любая из сетевых карточек имеет тип сети «публичная», т.к. открывать порт на такой карточке не хорошо. Если у вас при конфигурировании вышла такая ошибка измените профиль это сетевушки командлетом Set-NetConnectionProfile и после этого запустите Enable-PSRemoting снова. Если вам нужна сетевая карточка с профилем «Публичная сеть» запустите Enable-PSRemoting с параметром -SkipNetworkProfileCheck в этом случае будут созданы правила файрвола только из локальной сети.

Читать дальше →
Total votes 14: ↑12 and ↓2 +10
Views 112K
Comments 11

SparrowHub — репозиторий готовых утилит для системного администрирования

Perl *

SparrowHub — проект, целью которого является распространение различных готовых решений для задач системного администрирования и не только.


Несмотря на то, что существует масса решений по автоматизации задач системного администрирования, определенная ниша в этой области все же остается незанятой. Что мы делаем, когда хотим решить какую-то специфическую задачу? Например, проверить логи нашего ssh сервиса на наличие неудачных попыток логинов с целью позаботиться о секьюрности наших серверов? — Берем и пишем однострочник, состоящий из bash команд вида grep, sed, awk и так далее, ну, или можем написать скрипт на Perl. Отлично, все работает. Eсть решение, которое устраивает нас. И мы пользуемся им. Вопрос в том, как мы хотим сохранить результаты наших трудов, что бы поделиться ими с другими или же когда пройдет время снова воспользоваться придуманным решением. Вот тут и возникает проблема.

Читать дальше →
Total votes 14: ↑13 and ↓1 +12
Views 11K
Comments 10

Централизованное управление политиками резервного копирования

ICL Services corporate blog Backup *
Очередная приятная новость от команды разработчиков Microsoft Azure. Если кто-то из читателей, кто уже использует сервис резервного копирования в Azure ARM портале, то они могли заметить, что управление политиками резервного копирования чрезвычайно затруднено. Действительно, вам давалась возможность выбора существующей или создания новой политики, только при добавлении нового сервера в Recovery Services Vault.


Теперь все изменилось. Буквально сегодня команда Microsoft Azure добавила функцию работы с политиками резервного копирования в отдельную оснастку портала Azure Resource Manager.
Читать дальше →
Total votes 12: ↑12 and ↓0 +12
Views 3.6K
Comments 0