Pull to refresh
19
0
Георгий Пичугин @Cresh

Главный Архитектор по ИТ Инфраструктуре

Send message

Highload++: Как помочь ERP-системе справиться с 500 000 запросов в секунду

Reading time11 min
Views19K
Мы в X5 обрабатываем много данных в ERP-системе. Есть мнение, что больше нас в SAP ERP и SAP BW в России не обрабатывает никто. Но есть еще один момент – число операций и нагрузка на эту систему увеличивается быстро. 3 года мы «сражались» за производительность нашего ERP-тяжеловеса, набили немало шишек, а какими методами их лечили, рассказываем под катом.

image
Читать дальше →
Total votes 36: ↑35 and ↓1+34
Comments32

Как мы учили машину говорить с миллионами людей

Reading time6 min
Views6.1K
Маркетинг в Х5 – это большие объемы данных. «Пятёрочка», например, отправляет более 30 млн коммуникаций каждый месяц, и это число постоянно растёт. Одному клиенту одновременно можно отправить несколько предложений, и важно правильно выбрать, какие именно. Акции магазина должны быть интересны клиенту и экономически обоснованы для ритейлера. В этом посте расскажем, как мы начали определять действительно востребованные предложения с помощью машинного обучения и исключать эффект спама.


Читать дальше →
Total votes 24: ↑13 and ↓11+2
Comments7

Базовый траблшутинг в среде VMware vSphere или что делать, если тормозит ВМ

Reading time6 min
Views58K
Что-то в последнее время технические статьи о виртуализации (да и не только о виртуализации) скатываются к формату «в новой версии ожидается такая фича». Складывается ощущение, что разбор механизмов и описание опыта, проблем и решений интересны только зарубежным экспертам. С другой стороны, есть такая проблема у экспертов — если что-то изучил, оно становится элементарным и воспринимается само собой разумеющимся, настолько, что писать об этом как-то глупо. Особенно если уже было кем-то описано где-то. Когда-то. На каком-то языке. Ниженаписанное — плод консолидации личных заметок, сначала предназначавшийся для личного упорядочивания мыслей, но наупорядочив значительный объём текста, подумал, что кому-то может пригодиться.

Типовая проблема «виртуализаторов» — владелец сервиса, заказчик или пользователь жалуется, что у него «тормозит» виртуальная машина. Так как виртуализация предполагает консолидацию большого количества ВМ на базе одного комплекта аппаратных ресурсов, переподписку (overprovision — когда мы предполагаем, что серверы не затребуют одновременно максимум своих ресурсов, а значит, например, в 40 ГБ физической памяти мы можем натолкать не 10 серверов по 4 ГБ RAM, а 15, используя Dynamic Memory), а кроме того, серверы могут тормозить и из-за ошибок в программных компонентах и их настройках, то каждый раз приходится решать за что хвататься и куда смотреть в первую очередь. Особенно, если с таким ёмким описанием проблемы, как «тормозит машина» не предоставлено никакой диагностической информации, как чаще всего и бывает. Под катом небольшое руководство для этого случая.
Читать дальше →
Total votes 18: ↑18 and ↓0+18
Comments4

Книга «HTML5 и CSS3. Разработка сайтов для любых браузеров и устройств. 2-е изд.»

Reading time5 min
Views40K
image Привет, Хаброжители! У нас вышло второе издание книги Бена Фрэйна:

Книга охватывает все важные особенности адаптивного веб-дизайна. Методология адаптивного веб-дизайна расширяется в ней за счет применения новейших, наиболее полезных технологий, предоставляемых HTML5 и CSS3, как никогда ранее повышающих компактность и облегчающих сопровождение создаваемых конструкций. В книге также даются объяснения самым востребованным и передовым методам написания и предоставления кода, изображений и файлов.

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

О чем эта книга


Глава 1 «Основы адаптивного веб-дизайна» представляет собой краткий обзор ключевых составляющих в создании программных продуктов, отвечающих требованиям адаптивного веб-дизайна.
Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments15

Как понять, что Agile работает

Reading time13 min
Views30K
Асхат Уразбаев

Асхат Уразбаев (ScrumTrek)


Прежде, чем начнем говорить, как это все выглядит изнутри, с какими проблемами мы сталкиваемся, когда тренируем команду, вопрос: те, кто работает по Agile, что для вас значит, что Agile команда является Agile командой? Как вы это определяете?
Total votes 35: ↑27 and ↓8+19
Comments12

PHP 7.1: Обзор новых возможностей

Reading time7 min
Views69K
image На Хабре уже был перевод с обзором несколько месяцев назад, но недавно вышел первый релиз-кандидат PHP 7.1, а значит никаких существенных изменений больше не будет и можно сказать, какие точно изменения будут в релизе. Я решил немного оживить сухой “changelog” своим вольным переводом изменений, которые принесет нам новая минорная версия 7.х ветки.
Хочу узнать
Total votes 46: ↑46 and ↓0+46
Comments58

Выход «в поле»: Как мы делали мобильное приложение для повышения эффективности выездных работников

Reading time5 min
Views12K
image

Сервис для управления выездными сотрудниками (field management software) обычно состоит из веб-части, которой пользуются менеджеры в офисе, и мобильного приложения для работников, выезжающих на заказы к клиентам. Сегодня мы расскажем о разработке такого приложения.
Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments25

Демоны на PHP

Reading time4 min
Views75K
Памятка начинающему экзорцисту.

Прежде, чем начать: я знаю, что такое phpDaemon и System_Daemon. Я читал статьи по этой тематике, и на хабре тоже.

Итак, предположим, что вы уже определились, что вам нужен именно демон. Что он должен уметь?
  • Запускаться из консоли и отвязываться от неё
  • Всю информацию писать в логи, ничего не выводить в консоль
  • Уметь плодить дочерние процессы и контролировать их
  • Выполнять поставленную задачу
  • Корректно завершать работу

Отвязываемся от консоли


// Создаем дочерний процесс
// весь код после pcntl_fork() будет выполняться двумя процессами: родительским и дочерним
$child_pid = pcntl_fork();
if ($child_pid) {
    // Выходим из родительского, привязанного к консоли, процесса
    exit();
}
// Делаем основным процессом дочерний.
posix_setsid();

// Дальнейший код выполнится только дочерним процессом, который уже отвязан от консоли

Читать дальше →
Total votes 188: ↑167 and ↓21+146
Comments125

Полный перевод Unix-коанов на русский язык

Reading time16 min
Views75K


Представляю на ваш суд ещё один перевод коанов о Мастере Фу на русский язык. В данный сборник вошли все коаны, на данный момент опубликованные на сайте Эрика Реймонда. Надо сказать, что сам Эрик личность весьма неординарная, но упоминания в данной статье стоящая. Помимо холиваров в списках рассылки всевозможных проектов за его авторством также несколько серьёзных трудов о Unix — в том числе и о сообществе, без которого экосистема современных открытых проектов не была бы возможной (полный список книг). Идея перевести коаны в очередной раз пришла мне в голову во время чтения одного из таких трудов, а именно «The Art of Unix Programming», поскольку многое из скрытого смысла коанов становится ясно только после прочтения очередной главы оттуда.

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

Итак
Total votes 126: ↑123 and ↓3+120
Comments65

400 потрясающих бесплатных сервисов

Reading time16 min
Views718K

Рад представить дополнение оригинального списка из 300 потрясающих бесплатных сервисов. Автор оригинальной статьи Ali Mese добавил ещё +100 новых сервисов, которые помогут найти все — от источников вдохновения и редакторов фотографий до создания опросов и бесплатных иконок.

И еще подборку +500 инструментов от 10 марта 2017 г. смотрите здесь.



A. Бесплатные веб-сайты

  • HTML5 UP: Адаптивные шаблоны HTML5 и CSS3.
  • Bootswatch: Бесплатные темы для Bootstrap.
  • Templated: Коллекция 845 бесплатных шаблонов CSS и HTML5.
  • Wordpress.org | Wordpress.com: Бесплатное создание веб-сайта.
  • Strikingly: Конструктор веб-сайтов.
  • Layers: Создание сайтов на WordPress (new).
  • Bootstrap Zero: Самая большая коллекция бесплатных шаблонов Bootstrap (new).
  • Landing Harbor:  Продвижение мобильного приложения c помощью бесплатного лендинга (new).
Читать дальше →
Total votes 108: ↑89 and ↓19+70
Comments38

Где мои файлы, ROBOCOPY?

Reading time2 min
Views76K

Каждому администратору Wintel знакома утилита Robocopy. Еще со времен Windows NT4 она вошла в Resource Kit, а начиная с Windows Vista — в состав операционной системы.
Зачем нужна Robocopy? Для того чтобы копировать файлы. Много файлов. В основном мы используем ее для миграции файловых серверов или резервного копирования.
Есть много интересных вариантов миграции файловых серверов, например, с использованием DFS-R. Но нет ничего проще и надежнее запуска

robocopy \\SERV\D$ F:\ /e /copyall /zb /mt:8 /r:1 /W:5 /V /TS /FP /ETA /TEE /LOG:c:\temp\robocopy.txt


В финале можно закрыть пользовательский доступ к ресурсу и создать инкрементальную копию, добавив ключ /MIR.
Но так ли хороша Robocopy? Хороша ли она настолько, чтобы доверить ей миграцию самых важных файлов?
Читать дальше →
Total votes 42: ↑37 and ↓5+32
Comments18

Такое не забывается — Oracle Database In-Memory

Reading time11 min
Views66K
Объемы баз данных и сложность запросов к ним всегда росли быстрее, чем скорость их обработки. Поэтому лучшие умы человечества много лет думали о том, что произойдет, когда оперативной памяти станет столько, что можно будет всю базу данных взять и поместить в кэш оперативной памяти.

В последние годы логический момент для этого, казалось бы, настал. Стоимость оперативной памяти падала, падала, и упала совсем. Еще в начале века казалось, что 256 МБ памяти для сервера — это нормально, и даже много. Сегодня нас не удивишь параметром 256 ГБ оперативной памяти на сервере начального уровня, а с промышленными серверами вообще настал полный коммунизм, любой благородный дон может набрать хоть терабайт оперативной памяти на сервере, если захочет.
Читать дальше →
Total votes 24: ↑22 and ↓2+20
Comments28

USB MIDI-контроллер на Arduino

Reading time4 min
Views100K
image

В очередной раз играя на гитаре и управляя звуком через Peavey ReValver и прочие Amplitube, задумался о приобретении MIDI-контроллера. Фирменные устройства, вроде Guitar Rig Kontrol 3, стоят около 13 000 рублей, и обладают только напольным исполнением. То есть оперативно менять положения нескольких регуляторов весьма проблематично.

Различные контроллеры DJ направленности выглядели интереснее за счет обилия фейдеров и энкодеров. Решено было совместить приятное с полезным и сделать MIDI-контроллер самому.
Читать дальше →
Total votes 38: ↑37 and ↓1+36
Comments49

Как построить масштабируемую инфраструктуру на Storage Spaces

Reading time12 min
Views14K
Мы часто писали про кластеры в коробке и Windows Storage Spaces и самый частый вопрос — как выбрать правильную конфигурацию дисков?

Традиционный вопрос обычно выглядит так:

— Хочу 100500 IOPS!

или:

— Хочу 20 терабайт.

Потом выясняется, что IOPS на самом деле нужно не так много и можно обойтись несколькими SSD, а с 20 терабайт (4 диска по нынешним временам) хотят снять весьма прилично, и в реальности это получится многоуровневое хранилище.

Как подойти к этому правильно и спланировать заранее?

Нужно последовательно ответить на несколько ключевых вопросов, например:
  • Приоритет защиты целостности данных (например при сбое диска).
  • Требуется производительность, но не ценой защиты.
  • Умеренные требование к ёмкости.
  • Размер бюджета для построения смешанного решения.
  • Удобство управления и мониторинга.


Читать дальше →
Total votes 12: ↑10 and ↓2+8
Comments13

Актуализируем учетные данные Active Directory

Reading time10 min
Views81K
Многие помнят то чувство, когда компания расширяется до тех размеров, когда рабочих групп недостаточно, и поднимается первый домен Active Directory: «О, уж теперь-то все будет как следует!» Ан нет, домен потихонечку разрастается, создаются новые учетки, блокируются старые, добавляются, удаляются компьютеры, девушки выходят замуж, меняют фамилии и, в конце концов, база данных службы каталогов выглядит, как полный швах. В этом топике мы наладим связь между базой Active Directory и кадровой системой предприятия, а также создадим механизм для поддержания данных сотрудников в AD в актуальном состоянии.
С чего начать?
Total votes 30: ↑29 and ↓1+28
Comments21

Контроллер Wi-Fi точек доступа на Mikrotik

Reading time5 min
Views196K

Введение


В последней версии операционной системы Mikrotik RouterOS под номером 6.11 была добавлена экспериментальная функция, позволяющая использовать роутер на этой платформе в качестве контроллера Wi-Fi точек доступа. К сожалению, так как данный функционал только что появился и находится в статусе бэта, информация о нём ограничевается довольно скучной статьёй на в Wiki-справочнике Mikrotik'а. Пошаговой инструкции по настройке мне найти не удалось, поэтому, решено было попытаться всё настроить методом научного тыка. В данном посте я рассматриваю простую настройку контроллера (не углубляясь в дебри настроек, коих очень много) обеспечивающую следующую конфигурацию (по сути, аналогичную той, что была бы настроена на простом SOHO-роутере уровня D-Link DIR-620 с родной прошивкой, и используемую в домашних условиях):

  • Два Wi-Fi роутера Mikrotik RouterBoard
    • Routerboard RB951G-2HnD — основной, является контроллером Wi-Fi, точкой доступа, маршрутизатором, DHCP- и DNS-сервером. Далее буду именовать его контроллером
    • Routerboard RB951Ui-2HnD — дополнительный, является только точкой доступа Wi-Fi и свитчём на 3 порта (POE in и out порты не включены в свитч и зарезервированы на будущее). Далее буду именовать его точкой доступа или точкой
  • WPA/WPA2-PSK аутентификация с AES-шифрованием
  • Строго определённый канал, с шириной 20МГц
  • Единственный SSID, не скрытый
  • Клиенты не изолированны друг от друга и проводной сети (действительно, зачем это дома?)

Заинтересовавшимся, предлагаю продолжить чтение под катом. Внимание, трафик!
Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments22

Обработка и оформление отчетов в Excel на PHP

Reading time16 min
Views251K

Не редко при разработке некоего проекта, возникает необходимость в формировании отчетной статистики. Если проект разрабатывается на Delphi, C# или к примеру, на С++ и под Windows, то тут проблем нет. Всего лишь необходимо воспользоваться COM объектом. Но дела обстоят иначе, если необходимо сформировать отчет в формате excel на PHP. И чтобы это творение функционировало на UNIX-подобных системах. Но, к счастью, не так все плохо. И библиотек для этого хватает. Я свой выбор остановил на PHPExcel. Я уже пару лет работаю с этой библиотекой, и остаюсь доволен. Поскольку она является кроссплатформенной, то не возникает проблем с переносимостью.


PHPExcel позволяет производить импорт и экспорт данных в excel. Применять различные стили оформления к отчетам. В общем, все на высоте. Даже есть возможность работы с формулами. Только необходимо учитывать, что вся работа (чтение и запись) должна вестись в кодировке utf-8.

Читать дальше →
Total votes 40: ↑33 and ↓7+26
Comments28

Напоминаем всем в офисе поздравить Сисадмина

Reading time2 min
Views53K
Как Вы уже знаете сегодня день системного администратора, но вот в офисе моем об этом не все знают. Чтобы исправить это я соорудил небольшую шуточную напоминалку для коллег. Так как у нас используют оборудование фирмы Mikrotik, то на нем и все реализовал.

image
Кому интересно прошу...
Total votes 59: ↑34 and ↓25+9
Comments34

Mikrotik + IPSec + Cisco. Часть 2. Тоннель на «сером» IP

Reading time3 min
Views48K
В продолжение к посту.
В прошлый раз я рассматривал соединение, когда со стороны циски и микрота были реальные IP'ы.
Здесь рассмотрю пример «серого реальника», т.е серый IP, который провайдер маскирует у себя под внешний с безусловной переадресацией (binat).

Техническая задача: организовать ipip-тоннель между офисами, с шифрованием ipsec, при помощи Mikrotik RB450G и Cisco 2821.



Ньюансы

на циске внешний IP, а на микротике серый, который маскируется провайдером под внешний, с безусловной переадресацией (обращения к этому внешнику из интернета редиректятся на интерфейсный, серый «IP»).
Схема:

Читать дальше →
Total votes 6: ↑6 and ↓0+6
Comments1

Создание отказоустойчивого шлюза на основе Mikrotik RouterOS

Reading time6 min
Views109K
Стояла задача обеспечить отказоустойчивость работы сетевого маршрутизатора, который должен был поддерживать несколько локальных сетей, три канала в интернет от разных провайдеров, DMZ и десяток VPN соединений для удаленных пользователей.

Под отказоустойчивостью подразумевалась мгновенная замена оборудования в случае выхода из строя. Я остановил выбор на Mikrotik RouterOS, так как имел положительный опыт эксплуатации данной ОС. Так же на выбор повлияло удобство настройки и администрирования благодаря утилите Winbox.

Данный пример отказоустойчивости работает в боевых условиях несколько лет и себя оправдал. За время эксплуатации конфигурация несколько раз переделывалась, но вариант, который ниже, в моих условиях оказался оптимальным. Сейчас выключение одного из роутеров не влияет на работу, они полностью взаимозаменяемы.
Читать дальше →
Total votes 22: ↑19 and ↓3+16
Comments7
1
23 ...

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity