Рубрика «архитектура» - 31

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

Компания Тима Кука, как известно, планирует грандиозную постройку нового кампуса в Купертино. По задумке Стива Джобса, создателя iPhone и iPad, четырехэтажный белоснежный офис с просторными конференц-залами и коридорами должен выглядеть как космический корабль, приземлившийся на Землю. При возведении круглого белоснежного здания должны быть задействованы самые современные материалы и технологии, а само архитектурное сооружение должно напоминать футуристическую космическую тарелку.
image
В сети можно найти множество слухов о постройке грандиозного по своим масштабом архитектурного сооружения Apple. Многие говорят чуть ли не о драконовских планах Apple. Архитектурный макет, на реализацию которого будет потрачено более $5 млрд,, недавно был продемонстрирован главным финансовым директором Apple Питером Оппенгеймером. Белоснежным шедевром с просторными конференц-залами и коридорами Apple готовит задать новый стандарт в дизайне интерьера офиса «космических» архитектурных сооружений. Читать полностью »

(Дата оригинала — 7.10.2013. У оригинала — очень оживлённая дискуссия в комментариях)

Фронтенд-разработчики имеют довольно долгую и сложную историю в программировании. Долгое время отправляемое в браузер было так легко отобразить, что не было настоящей потребности в этой специализации. Многие считали, что они были просто графическими дизайнерами с немного другими выразительными средствами. Мысль о том, что они могли в один прекрасный день специализироваться в веб-технологиях, HTML, CSS, Javascript — была смехотворной; в лучшем случае — пользовательский интерфейс их удел или, в конце концов, кто-то мог специализироваться на том и другом и иметь эту работу.
Читать полностью »

The Good, the Bad and the Ugly code
Хороший код или плохой? Лично для меня хороший код обладает следующими качествами:

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

Несмотря на короткое описание, о том, как добиться выполнения трех этих условий, написано много толстых книг.

Почему именно эти критерии? Сразу оговорюсь, речь сейчас идет о разработке ПО для бизнеса (enterprise application). Критерии оценки кода для систем реального времени, самолетов, систем жизнеобеспечения и МКС отличаются.
Читать полностью »

У нас в Самаре построили новый торговый центр. Большой, красивый и с большим количеством металла в конструкциях. Внутри 6 здоровенных торговых этаже и 27 офисных, плюс паркинг. Мы походили с измерительным прибором по нему и получили вот такую удручающую картину покрытия:

Как мы делали сотовое покрытие внутри большого здания со множеством металлоконструкций
Красный – RX менее -95 dBm, зелёный -85

Проще говоря, внутри ТЦ наше сотовое покрытие было уверенным только в галерее напротив крупного окна. При этом на улице в сантиметре от стены покрытие 100%.

Поставлена задача – обеспечить хорошее покрытие 2G и 3G по всему зданию. Из дополнительных условий – металл даже в стёклах (они тонированы), сложная конфигурация шахт. И ещё законченная отделка внутри практически исключает прокладку чего-то более-менее серьёзного. Ниже – как мы решали эту задачу и что получили в итоге. Читать полностью »

Про InfiniBand: как мы уменьшали пинг с 7 мкс до 2,4 мкс (и результаты тестов)
InfiniBand-свитч SX6005. 12 FDR 56Gb/s портов на одном юните, коммутация 1.3Тб/с.

Многие считают, что InfiniBand — это «космос». То есть считается, что дорого и нужно только для «суперкомпьютеров» (HPC) производительностью в 1-2 Петафлопа и с гиганскими объмами обрабатываемых данных. Тем не менее, с помощью этой технологии можно организовывать не только самые скоростные межсистемные соединения в кластерах, но и радикально снижать задержки в работе критичных приложений. Конкретно – делать то, что может решаться и с помощью Ethernet, но экономичнее и быстрее. Вот пример.

Задача

У одного нашего крупного заказчика из финансовой сферы была проблема в скорости работы двух приложений. Специфика приложений заключалась в том, что необходимо было обрабатывать большое количество транзакций с минимальной задержкой. 6-7 мкс latency – это лучшие результаты, которые они достигли путем апгрейда серверов и максимальной софтверной доработкой. Дальнейшие возможные оптимизации сулили улучшения на уровне 0,3-0,5 мкс. Мы же пришли и сообщили, что сможем уменьшить задержки в два раза. Читать полностью »

Наконец собрался написать вторую часть как и обещал в первой. В этой части хочется рассказать о клиентской стороне проекта.

Что используется:

Как говорил раньше проект полностью написан на Python (со вставками Cython'а). Вся информация о изображениях, пользователях, статистики — хранится в БД MySQL.

Для поиска (основного) и фильтра используется Sphinx-сервер. Клиент написанный для twisted txsphinx.

Для «лайков», кол-во просмотров изображения и кол-во скачиваний используется Redis. Так-же в Redis-е хранится топ-изображений (главная страница) и «похожие изображения» (страница самого изображения). Для twisted клиент txredis, найденный на просторах и немного доработанный под себя (пока не в паблике).

Веб: TwistedWeb с шаблонизатором Jinja2, рисуется все Bootsrap'ом и Jquery. Конец цепочки это Nginx. Читать полностью »

Летающий робот к конкурсу и куча грабель с ним
Платформа

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

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

Первый раз мы взяли робота в руки летом 2012 года, когда посылка приехала из бельгийского интернет-магазина. Кстати, нам повезло — робот шел всего 3 недели. Часть команд снялась с конкурса из-за того, что их платформы не успели вовремя приехать.

Это было первое и последнее везение в подготовке. С этого момента началась история грабель длиной в несколько месяцев. Читать полностью »

Бесплатный вебинар из цикла «Основы архитектуры современных серверов»

Вниманию системных инженеров и технических специалистов!

• На этом вебинаре вы сможете получить хорошее представление об основных составляющих современного сервера и их влиянии на производительность системы.
• Изучить методы управления сервером, рассмотреть вопрос установки операционной системы на отдельном сервере. И понять принципы мониторинга инфраструктуры.
• Данный цикл вебинаров является дальнейшим развитием концепции разработанного в УЦ МУК одноименного курса.

Вебинар проводится 26 июня, с 10:00 до 12:00 по киевскому времени.
Язык проведения – русский.

Программа Читать полностью »

Напоминаем, что в эту пятницу 14 июня пройдет DevConf 2013, а в субботу - 6 эксклюзивных мастер-классов:
devconf.ru/mk

image
— Разработка крупного масштабируемого web 2.0 проекта с нуля (соц.сеть на 100 млн пользователей)
— Основы построения масштабируемых высоконагруженных веб-проектов
— Performance Schema для отладки MySQL приложений
— Оптимизация запросов при помощи EXPLAIN
— Sphinx Search — для профи
— Захват лидерства в команде — продвинутые навыки коммуникации
— Ваш первый проект на AngularJS

Программа готова — 60 интересных докладов
devconf.ru/programm/
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js