НовостиОбзорыСобытияIT@WorkРеклама
Идеи и практики автоматизации:

Блог

Феникс-серверы и Pig вместо SQL

Очередной облачный тренд -- устойчивые серверы (immutable servers; еще их по понятным причинам называют "феникс"-серверы), очевидный ответ растущему корпоративному спросу в этой сфере: сервисы IaaS и PaaS предоставляются в режиме автоматического масштабирования под меняющуюся нагрузку, а также включается множество фич, специфичных для развертывания и сопровождения крупных систем.

[spoiler]Продолжение обзора по ИТ-архитектуре.

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

Hadoop постепенно обрастает сторонними разработками, упрощающими расширение ее функционала. Платформа Apache Pig предназначена для анализа слабоструктурированных Больших данных и позволяет выполнять SQL-подобные запросы к распределенным наборам данных в кластере Hadoop. Для этого предлагается язык Pig Latin, который компилируется в оптимизированные MapReduce-программы, которые вручную на Java кодировать трудновато, а также расширяется другими языками (JavaScript, Python, Ruby).

Еще один серверный тренд -- встраиваемые контейнеры сервлетов; WebBit и simpleweb.org, оригинальные "сырые" HTTP-серверы, предоставляющие нужную функциональность без излишне усложненной поддержки спецификации Java Servlet.

JavaScript по-прежнему остается первоклассным языком на самом передовом крае развития веб-систем. Jasmine, поддерживающая методику behaviour driven development, предназначена для тестирования JS-кода на клиентской и серверной сторонах.

Замечательный JavaScript-интерфейс для построения красивых и сложных графиков (включая генерацию кода на сервере) предлагает HighCharts. Кто только ей ни пользуется: IBM, NASA, Siemens, HP, Hitachi, Ericsson, BMW, Nissan, Sony, Fujitsu, Rabobank, Financial Times, MasterCard…

d3js.org -- JavaScript-либа для обработки документов, связанных с данными (например, из БД). На базе Document Object Model, поддерживает CSS3, HTML5 и SVG, предлагает самые разные графические схемы визуализации -- всевозможные деревья, карты, графы итп.

Что касается визуализации зависимостей, то продолжается рост интереса к матрицам структур зависимостей (Dependency Structure Matrix). Они в частности позволяют представлять в наглядном виде связи между модулями программной системы и перемещаться по элементам сети. Поддерживается инструментом NDepend, расширяющим возможности Visual Stidio, а главное, он "заточен" именно под программную архитектуру (в рамках концепции эволюционной архитектуры), в которой мастерски выявляет погрешности (излишне сильные связи).
Реализована DSM в IntelliJ IDEA и ADePT,  есть опенсорсная реализация dtangler для Java.

В автоматизации тестирования масштабных распределенных систем поможет Locust, где тесты пишутся на Python, а отчеты предоставляются в реальном времени через веб-интерфейс. Хорошо моделирует действия пользователя, а не только "хиты".

Что касается тестирования производительности множества географически распределенных компьютеров, то наконец появляются готовые SaaS-сервисы подходящей мощности: Blitz.io и TeaLeaf, которую в прошлом году купила IBM с целью подбавить аналитики в свои веб-продукты.