понедельник, 26 ноября 2012 г.

Добавим к C# немного PowerShell`а

Как я уже описывал тут и тут, мы избрали PowerShell в качестве языка для разработки сценариев управления инфраструктурой. Дело осталось за малым – научиться вызывать PowerShell скрипты из серверного приложения, написанного на C#.

понедельник, 3 сентября 2012 г.

Особенности управления крупной инфраструктурой. Переход

Замена ключевого компонента системы никогда не бывает безболезненным: всегда приходится идти на компромиссы, чем-то жертвовать, что-то доделывать. Принимаемые решения всегда балансируют между двумя противоположными целями: сделать правильно и добиться обратной совместимости, чтобы минимизировать потери времени и не навредить стабильности продукта. В итоге новый компонент частично обретает черты старого, где-то вынужденно повторяет его ошибки. Это неизбежная плата за возможность наиболее безболезненным образом исправить некоторый фатальный недостаток старого компонента, из-за которого и был затеян весь переход. Не стал исключением и наш Windows Provisioning Engine, о котором я начал рассказывать в прошлый раз. Если сравнить его с Microsoft Provisioning System, то можно обнаружить много общего.

четверг, 9 августа 2012 г.

Современные подходы к параллельной разработке

В разработке современных приложений параллельное программирование играет наиважнейшую роль не только на стороне серверного, но и на стороне клиентского ПО. Писать многопоточные приложения могут многие, многозадачные - единицы. Лекция посвящена обзору основных техник и шаблонов параллельной разработки, применяемых в промышленном программировании, и немного облегчающих рядовому программисту задачу написания эффективных многозадачных приложений.
Именно этой теме была посвящена моя очередная лекция на летней школе Parallels. И хотя она составлена по мотивам более ранних заметок из этого блога, возможно кому-нибудь подобная комиляция материала может показаться весьма поленой.

вторник, 3 июля 2012 г.

Особенности управления крупной инфраструктурой. Начало

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

среда, 18 апреля 2012 г.

Асинхронно в WinAPI. Продолжение

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

понедельник, 19 марта 2012 г.

Асинхронно в WinAPI. Начало

Различные средства параллельного программирования от библиотек вроде Concurrency Runtime до специализированных языков вроде Erlang предоставляют такую типовую операцию, как отправка асинхронного сообщения потоку. А каким образом можно реализовать эту возможность, опираясь только функционал WinAPI. Попробуем разобраться.

среда, 18 января 2012 г.

MapReduce и Erlang – лучше когда вместе

Пришла пора добавить немного кода к рассказанной в прошлый раз теории. Вот только идея написать MapReduce на C++ или C# мне показалась слишком банальной и тривиальной. Захотелось немного экзотики. Если уж реализовывать "супер распределённый" алгоритм, то только на языке, который считается одним из наиболее приспособленных к параллельным вычислениям. Я говорю об Erlang`е.