Pull to refresh
0
0
Alexzander thunder Shevchenko @thunderspb

DevOps

Send message

Два с половиной приема при работе с argparse

Reading time5 min
Views33K

Приемы, описанные здесь, есть в официальной документации к модулю argparse (я использую Python 2.7), ничего нового я не изобрел, просто, попользовавшись ими некоторое время, убедился в их мощности. Они позволяют улучшить структуру программы и решить следующие задачи:

  1. Вызов определенной функции в ответ на заданный параметр командной строки с лаконичной диспетчеризацией.
  2. Инкапсуляция обработки и валидации введенных пользователем данных.

Что там еще за пол-приема?

Большая подборка ссылок о галереях и всем, что с ними связанно

Reading time3 min
Views25K
Дадли Стори, автор «Pro CSS3 Animation», представил подборку своих статей с сайта demosthenes.info о галереях на сайтах и всем, что с ними связано. Решения используют HTML, CSS и PHP в различных комбинациях, текст статей на английском языке. В начале каждой статьи представлена демонстрация эффекта, о котором говорит автор.
Читать дальше →

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

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

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

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



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

Пишем поисковый плагин для Elasticsearch

Reading time7 min
Views11K
Elaticsearch — популярный поисковый сервер и NoSQL база данных. Одной из интересных его особенностей является поддержка плагинов, которые могут расширить встроенный функционал и добавить немного бизнес-логики на уровень поиска. В этой статье я хочу рассказать о том, как написать такой плагин и тесты к нему.
Читать дальше →

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

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

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



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

Штампуем окна: автоматизированное развёртывание виртуальных машин Windows на Hyper-V при помощи Vagrant (часть 2)

Reading time7 min
Views14K
В предыдыщей части мы рассмотрели, для чего нужна автоматизация разворачивания ВМ Windows и как подготовить хостовую систему. Сегодня я хотел бы заострить внимание на технической реализации самой массивной части процесса, а именно — подготовке базового бокса для Vagrant.
Собираем коробочку

Штампуем окна: автоматизированное развёртывание виртуальных машин Windows на Hyper-V при помощи Vagrant (часть 1)

Reading time7 min
Views22K
Рано или поздно перед любой растущей ИТ-компанией встаёт задача оптимизации ресурсов, которая с точки зрения системного администрирования обязательно предполагает максимальную автоматизацию всех процессов. Нужно это по многим причинам: сокращение затрат времени, минимизация влияния человеческого фактора, повышение за счёт этого масштабируемости и надёжности систем в целом.

Наша компания Wild Apricot занимается разработкой ПО (SaaS), которое работает на ASP и .NET, а в качестве базы данных использует MS SQL Server. Поэтому львиная доля инфраструктуры у нас работает под управлением Windows, преимущественно Server 2012 R2. Соответственно, отделу сисопов периодически приходится поднимать новые машины с ней, а иногда и разворачивать целые фермы, как на живом окружении, так и на тестовом. В настоящее время у нас порядка 20 гипервизоров и, соответственно, более сотни разнообразных машин, из которых абсолютное большинство — это ВМ с Windows. Сейчас планируется установка ещё полудюжины девелоперских окружений, каждое из которых состоит из десятка компонент, которые желательно изолировать друг от друга. Для решения подобных задач мы и задумали автоматизацию всего процесса. Описание всего пути я сделал довольно детальным, так что статья разрослась и поэтому я решил разделить её на три части. В этой части я постараюсь затронуть общие вопросы, объяснить выбор инструментов и рассказать, как подготовить окружение для дальнейшей работы.
Читать дальше →

Переходим на HTTPS на Nginx: шпаргалка

Reading time3 min
Views162K
Уже второй раз сталкиваюсь с задачей «поставь https на наш сервер» от моего босса, поэтому решил сделать для самого себя шпаргалку, а заодно и для всех остальных. Итак, ситуация следующая: к нам пришел босс и заявил, что ему нужен https. Под катом я напишу 5 простых шагов, как все сделать буквально за час. Приступим.
Читать дальше →

Липкий эффект

Reading time5 min
Views31K
Буквально недавно Крис написал про «Эффект капельного преобразования в CSS». Эффект реально крутой и сама техника реализована по-умному, но данный подход через обычные CSS фильтры имеет определенные недостатки: нельзя использовать непрозрачность, добавлять контент внутрь капель, проблемы с фоновыми цветами.

В последние дни я достаточно много экспериментировал с SVG фильтрами и заметил, что с их помощью можно решить вышеописанные проблемы в CSS реализации. Посмотрите на липкое меню, которое я сделал для демонстрации:

CodePen


Читать дальше →

Continuous Integration с Unity

Reading time9 min
Views20K
С переходом на новый проект на Unity с относительно большой командой разработчиков резко встала необходимость автоматической сборки и доставки приложения на устройства для тестирования. Вот как с этим обстояла ситуация, когда я пришел на проект (под iOS):
  1. На отдельной mac-машине проект вручную выкачивался из репозитория (Asset Sever).
  2. Вручную (File->Build Settings->Build & Run) запускалась сборка в xCode-проект.
  3. Далее в xCode делался архив (Archive).
  4. Архив экспортировался в ipa-файл, который вручную загружался в TestFlight.
  5. Далее, уже в TestFlight доступ предоставлялся нужным тестерам.

Все описанное выше автоматизируется с помощью так называемой непрерывной интеграции (англ. Continuous Integration, CI). На моих предыдущих проектах для этих целей использовался TeamCity от JetBrains (создателей удобного инструмента рефакторинга кода Resharper). TeamCity (TC) — очень мощный программный продукт, выполняющий цели, поставленные перед системой непрерывной интеграции, на все 100%. Он умеет даже больше. Но речь в статье пойдет не о нем (о нем уже есть статьи на хабре), а о новом сервисе Unity Cloud Build, специально для разработчиков на движке Unity.

UPD. Unity выпустила Unity Cloud Build в свет, а я обновил статью :) Об изменениях и нововведениях читайте ниже.
Читать дальше →

Балансировка нагрузки: основные алгоритмы и методы

Reading time11 min
Views203K
балансировка нагрузки

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

Приходится прибегать к кластеризации: несколько серверов объединяются в кластер; нагрузка между ними распределяется при помощи комплекса специальных методов, называемых балансировкой. Помимо решения проблемы высоких нагрузок кластеризация помогает также обеспечить резервирование серверов друг на друга.
Эффективность кластеризации напрямую зависит от того, как распределяется (балансируется) нагрузка между элементами кластера.

Балансировка нагрузки может осуществляться при помощи как аппаратных, так и программных инструментов. Об основных методах и алгоритмах и балансировки мы бы хотели рассказать в этой статье.
Читать дальше →

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

Reading time4 min
Views21K
В предыдущей статье мы начали изучение Ansible, популярного инструмента для автоматизации настройки и развертывания ИТ-инфраструктуры. Ansible был успешно установлен в InfoboxCloud, описаны принципы работы, базовая настройка. В завершении статьи мы показали как быстро установить nginx на несколько серверов.
Ansible InfoboxCloud
В этой статье мы продолжим изучение Ansible: разберем вывод playbook, научимся отлаживать их и разделять для удобства повторного использования.
Читать дальше →

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

Reading time7 min
Views89K
Ansible – популярный инструмент для автоматизации настройки и развертывания ИТ-инфраструктуры.

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



По сравнению с другими популярными инструментами автоматизации ит-инфраструктуры, Ansible не требует установки клиентских приложений на обслуживаемые сервера, что может сократить время настройки перед развертыванием инфраструктуры. Для работы Ansible подключается к обслуживаемым серверам по SSH.
Читать дальше →

Ограничение количества попыток ввода пароля в веб-форме авторизации при помощи Nginx или HAProxy на примере WordPress

Reading time3 min
Views17K
Рассмотрим на примере WordPress способ усиления безопасности при помощи ограничения количества HTTP-запросов к форме ввода пароля. Это позволит оградить опубликованный блог от брутфорса (поиска и взлома пароля путем перебора всех теоретически возможных вариантов из определенного набора символов или подбора по словарю распространенных паролей). Данный способ, в принципе, можно использовать и для защиты других веб-приложений.

Задача может быть реализована в Nginx с помощью модуля ngx_http_limit_req_module [1], выступающем в роли фронт-энда к Apache или веб-сервера FastCGI, или же с помощью HAProxy [2, 3], выступающем в роли балансировщика нагрузки перед веб-серверами.

В обоих случаях алгоритм работы следующий. При аутентификации браузер обращается по адресу, содержащему в себе подстроку "/wp-login.php". Необходимо отследить ее и ограничить количество запросов с одного IP не затрагивая обращения по всем остальным адресам. Параметры блокировки необходимо подобрать таким образом, чтобы не создавать неудобств обычным пользователями. Особенно внимательно следует настраивать блокировки в том случае, когда формой авторизации пользуется большое количество пользователей с одного IP-адреса.
Читать дальше →

Как и зачем мы делаем TLS в Яндексе

Reading time16 min
Views90K
Я занимаюсь в Яндексе продуктовой безопасностью и, кажется, сейчас самое время подробнее, чем уже было на YaC, рассказать на Хабре о том, как мы внедряем TLS.

Использование HTTPS-соединений является важной частью безопасного веб-сервиса, так как именно HTTPS обеспечивает конфиденциальность и целостность данных на этапе передачи их между клиентом и сервисом. Мы постепенно переводим все наши сервисы только на HTTPS-соединение. Многие из них уже работают исключительно по нему: Паспорт, Почта, Директ, Метрика, Такси, Яндекс.Деньги, а также все формы обратной связи, имеющие дело с персональными данными пользователей. Яндекс.Почта уже больше года даже обменивается данными с другими почтовыми сервисами по SSL/TLS, поддерживающими это.



Все мы знаем, что HTTPS — это HTTP, завернутый в TLS. Почему TLS, а не SSL? Потому что принципиально TLS — это более новый SSL, при этом название нового протокола наиболее точно характеризует его назначение. А в свете уязвимости POODLE можно официально считать, что SSL больше использовать нельзя.
Читать дальше →

Запуск Converse.js в связке с Bosh punjab на Apache 2.4 и удалённым сервером Openfire или как прикрутить к страничке jabber из коробки

Reading time3 min
Views5.3K
Решил написать эту статью, поскольку не нашел в русскоязычном интернете описание решения проблем, с которыми столкнулся в процессе установки и настройки всего описанного в заголовке. Формально говоря, про punjab на Хабре есть статья, но, к моему сожалению, она мне помогла не сильно. Статья рассчитана на человека, который не сильно сведущ в хитростях администрирования, Pyton`а и т.д. и т.п.

Итак, начнём. Моя система представляет собой сервер на Ubuntu 14.04 на котором работает Apache 2.4. Он хостит страничку, к которой возникло желание прикрутить Jabber-клиент. Выбор клиента пал на Converse.js, так как он требует минимальное количество настроек и работает из коробки. Jabber сервер — Openfire. Он расположен на удалённой машине в сети, доступ к которому я имею только как рядовой пользователь. Известны о нём мне было только IP адрес и порт.

Любой JS — Jabber (самописный, Strophe, converse) потребует от вас наличия BOSH-сервера. Грубо говоря, это эхо сервер, который пересылает сообщения от JS-Jabbera к jabber серверу и обратно. В качестве BOSH был взят Punjab .

С вводной частью закончили — поехали ставить.
Читать дальше →

Защита игр и мобильных приложений от взлома для чайников (Unity, C#, Mono)

Reading time8 min
Views73K
Всем снова здравствуйте! Дошли руки написать крутую статью на весьма важную тему для разработчиков игр. Итак, поговорим о защите ваших драгоценных игр и приложений, которые вы пилите на Unity в надежде заработать на буханку хлеба, от взлома злобными школьниками. Почему школьниками? Потому что надежной на 100% защиты априори быть не может. И кто захочет, все равно взломает. Вопрос лишь в том, сколько времени и сил он на это потратит. И как любят шутить безопасники — терморектальный криптоанализ никто не отменял.

Итак, в статье я постараюсь максимально доступно рассказать о 3 аспектах (и конечно, предложу реализацию):
  • защита данных приложения (сейвов)
  • защита памяти приложения
  • защита внутриигровых покупок (Google Play)

image
Читать дальше →

Выбор и настройка медиацентра на базе Android

Reading time10 min
Views64K

Вступление


Хотел бы поделиться опытом выбора и настройки медиацентра на базе Android'ных приставок. Сейчас их появилось очень много, все они чем-то отличаются, но в чем-то и похожи. Многие из моих знакомых, увидев у меня работающую систему, сознавались в том, что и сами о чем-то таком думали, но испугались сложностей. Кроме того, на форумах, где я иногда общаюсь, приходилось видеть гневные посты тех, кто, не зная, с чем сталкивается, купил такую приставку и сильно ей был разочарован. Итак, надеюсь, что эта статья будет вам полезна.

Для кого эта статья


Рассчитано на тех, кто, в принципе, владеет устройствами на базе Android, но никогда их не использовал для подключения к телевизору и организации медиацентра. Наличие «прямых рук» необходимым условием не является, достаточно обладать навыком втыкания проводков в соответствующие по размерам разъемы.
Читать дальше →

Observium — установка системы мониторинга

Reading time4 min
Views27K
Здравствуйте, уважаемые.

Что пробудило во мне интерес в написании данной статьи? То что бывает иногда появляется доказывать что нагрузка на систему возросла и необходимо показать сколько памяти было необходимо год назад и сколько жрет система сейчас. Для таких целей нужна система типа Observium чтобы держать историю по загрузке системы ну и конечно же мониторинг.

И так начнем.

Observium является PHP / MySQL системой мониторинга сети, ориентированной прежде всего на Cisco и Linux сети, но и включает поддержку широкого спектра сетевого оборудования и операционных систем.

Observium выросла из-за отсутствия простых в использовании NMSes. Она предназначена для обеспечения более нативного интерфейса управления. Разрабатан для быстрого сбора информации о устройствах и хранения истории изменений без ручного вмешательства

Observium является свободным программным обеспечением.
Тестовый стенд буду настраивать на CentOS 6 и Apache.
Читать дальше →

Как создать веб-сайт, используя видео с YouTube в качестве фона?

Reading time9 min
Views86K


Большие видео на заднем плане веб-сайтов — довольно популярный тренд в веб-дизайне. Умело примененные видео могут сделать веб-сайт более драматичным и привлекательным для пользователей.

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

Существуют компании, как, например, Powerhouse или Adidas, которые используют видео в качестве заднего плана сайта, чтобы донести до пользователя определенное сообщение или историю о продукте или услуге.

Хотя и наиболее популярным способом создания видео-фона является использование HTML5 видео тега вместе с некоторыми параметрами CSS, стоит также обратить внимание на альтернативные источники видео, например, YouTube. В этом случае, вам не придется переживать о медленном ответе сервера, потому что запрос будет отправляться напрямик в YouTube.

В этой статье, я покажу вам, как можно построить клевый сайт, использующий видео с YouTube в качестве фона. Мы будем использовать jQuery.mb.YTPlayer.js для редактирования и управления внешним видом нашего видео. Итак, приступим!

Скачать исходники
Демо
Читать дальше →

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity