» » Анализ и проектирование систем

 

Инфраструктура онлайн игры

Автор: admin от 16-01-2017, 12:50, посмотрело: 13

Инфраструктура онлайн игры


Здравствуйте, меня зовут Александр Зеленин, и я на дуде игрец веб-разработчик. Полтора года назад я рассказывал о разработке онлайн игры. Так вот, она немного разрослась… Суммарный объём исходного кода превысил «Войну и мир» вдвое. Однако в данной статье я хочу рассказать не о коде, а об организации инфраструктуры проекта.

Неужели всё так сложно?

Категория: Программирование, Веб-разработка, Информационная безопасность

 

Горизонтальное масштабирование. Что, зачем, когда и как?

Автор: admin от 14-01-2017, 18:35, посмотрело: 20

Горизонтальное масштабирование. Что, зачем, когда и как?

Александр Макаров ( SamDark )


Здравствуйте! Я Александр Макаров, и вы можете меня знать по фреймворку «Yii» — я один из его разработчиков. У меня также есть full-time работа — и это уже не стартап — Stay.com, который занимается путешествиями.

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

Что такое масштабирование, вообще? Это возможность увеличить производительность проекта за минимальное время путем добавления ресурсов.

Обычно масштабирование подразумевает не переписывание кода, а либо добавление серверов, либо наращивание ресурсов существующего. По этому типу выделяют вертикальное и горизонтальное масштабирование.

Категория: Программирование » Веб-разработка

 

Динамическое перенаправление сетевого трафика

Автор: admin от 13-01-2017, 07:00, посмотрело: 12

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


Корни вопроса начали расти из предыдущего проекта socmetr.ru, где понадобилось собирать большой объем информации из социальных сетей, и таким образом забивая единственный канал с интернетом. Анализ показал, что даже при наличии сжатия, объем поступающей информации так велик, что происходит его блокировка, при этом мощности CPU и Memory не задействованы и на 20%, а дисковая подсистема почти все время простаивает, то есть мы упёрлись в ширину канала, которую нам предоставляет провайдер.


Первая мысль была пойти экстенсивным путём и просто увеличить его возможности, немного остыв и призадумавшись, поняли, что перекладываем проблему на будущее. Само собой, возник вопрос: "Каким путём пойдем товарищи?". В результате реализовали следующую идею:


Динамическое перенаправление сетевого трафика

Категория: Программирование

 

Повышаем производительность кода: сначала думаем о данных

Автор: admin от 11-01-2017, 15:50, посмотрело: 16

Повышаем производительность кода: сначала думаем о данных

Занимаясь программированием рендеринга графики, мы живём в мире, в котором обязательны низкоуровневые оптимизации, чтобы добиться GPU-фреймов длиной 30 мс. Для этого мы используем различные методики и разработанные с нуля новые проходы рендеринга с повышенной производительностью (атрибуты геометрии, текстурный кеш, экспорт и так далее), GPR-сжатие, скрывание задержки (latency hiding), ROP…

В сфере повышения производительности CPU в своё время применялись разные трюки, и примечательно то, что сегодня они используются для современных видеокарт ради ускорения вычислений ALU (Низкоуровневая оптимизация для AMD GCN, Быстрый обратный квадратный корень в Quake).

Повышаем производительность кода: сначала думаем о данных
Быстрый обратный квадратный корень в Quake

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

Эта статья — не исчерпывающее хардкорное руководство по железу. Это всего лишь введение, напоминание, свод базовых принципов написания эффективного кода для CPU. Я хочу «показать, что низкоуровневое мышление сегодня всё ещё полезно», даже если речь пойдёт о процессорах, которые я мог бы добавить.

В статье мы рассмотрим кеширование, векторное программирование, чтение и понимание ассемблерного кода, а также написание кода, удобного для компилятора.

Категория: Программирование » Веб-разработка

 

Сравнительный анализ методов балансировки трафика

Автор: admin от 11-01-2017, 03:30, посмотрело: 16

Сравнительный анализ методов балансировки трафика

Сергей Зубов (CDNvideo)


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

Сравнительный анализ методов балансировки трафика

Категория: Программирование » Веб-разработка

 

Инфраструктура простой электронной подписи. Часть 3: Системы обработки персональных данных

Автор: admin от 9-01-2017, 02:20, посмотрело: 19

Инфраструктура простой электронной подписи. Часть 3: Системы обработки персональных данных

В первой и второй частях была рассмотрена инфраструктура

Категория: Программирование » Веб-разработка

 

Инфраструктура простой электронной подписи. Часть 2: Моделирование целевой системы

Автор: admin от 9-01-2017, 02:20, посмотрело: 23

Инфраструктура простой электронной подписи. Часть 2: Моделирование целевой системы
В предыдущей части была построена диаграмма использующих систем в проектируемой инфраструктуре

Категория: Программирование » Веб-разработка

 

Инфраструктура простой электронной подписи. Часть 1: Моделирование использующих систем

Автор: admin от 5-01-2017, 15:20, посмотрело: 33

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

Категория: Программирование » Веб-разработка

 

Информационные технологии в новогоднем мюзикле «Чародеи»

Автор: admin от 2-01-2017, 16:30, посмотрело: 30

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

«Что все эти размышления делают на Хабре?» — спросите вы. Ну, во-первых, на дворе Новый Год, а во-вторых, «Понедельник начинается в субботу» — это книга для программистов («Сказка для научных сотрудников младшего возраста») и о программистах (профессия главного героя книги). Уже на первой странице книги мы видим, например,



Фильм тоже показывает нам волшебство как результат сложной и наукоёмкой деятельности простых, в общем-то, людей. Никаких тут тебе „ты был рождён в семье волшебников и унаследовал дар...“ и прочих философских камней и корня мандрагоры. Лаборатория Абсолютных Неожиданностей в фильме выглядит как классический вычислительный центр любого НИИ тех лет:

Информационные технологии в новогоднем мюзикле «Чародеи»

А теперь я хочу рассказать об одном вопросе, связанном с информационными технологиями в данном фильме, который интересовал меня уже много лет и для решения которого я даже писал письмо Борису Стругацкому, когда он был ещё жив (хотя и не получил ответа). При каждом из многочисленных просмотров фильма „Чародеи“ меня удивлял в нём один эпизод (осторожно, под катом будут спойлеры!).

Категория: Программирование, Системное администрирование

 

Методы защиты от CSRF-атаки

Автор: admin от 29-12-2016, 14:55, посмотрело: 24

Что такое CSRF атака?


Ознакомиться с самой идеей атаки CSRF можно на классических ресурсах:



  • OWASP

  • Acunetix

  • Отличный ответ на SO


Выдержка из ответа на SO:

Причина CSRF кроется в том, что браузеры не понимают, как различить, было ли действие явно совершено пользователем (как, скажем, нажатие кнопки на форме или переход по ссылке) или пользователь неумышленно выполнил это действие (например, при посещении bad.com, ресурсом был отправлен запрос на good.com/some_action, в то время как пользователь уже был залогинен на good.com).


Как от нее защититься?


Эффективным и общепринятым на сегодня способом защиты от CSRF-Атаки является токен. Под токеном имеется в виду случайный набор байт, который сервер передает клиенту, а клиент возвращает серверу.


Защита сводится к проверке токена, который сгенерировал сервер, и токена, который прислал пользователь.

Категория: Веб-разработка, Информационная безопасность

 
Назад Вперед