Slider Background

2015

Подрепозитории

Принцип DRY в действии

При разработке новых проектов очень часто приходится сталкиваться с необходимостью повторного использования наработок других проектов. Когда такого общего кода было немного, то переносить файлы с одного проекта на другой казалось несложно. Но как и любой Copy-Paste, даже самое небольшое дублирование кода всегда ведет к проблемам.

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

Какие у нас альтернативы

Использовать общий код в проектах можно в скомпилированном виде или в виде исходных файлов.

  • Для подключения общего кода в виде dll удобно использовать менеджер пакетов Nuget. Так же с его помощью можно поставлять отладочную информацию. Но он работает только для .NET, а в нашей фирме есть проекты на других платформах. 
  • Использование исходного кода позволяет производить отладку интерактивно с возможностью модификации. И у нас часто возникает необходимость изменения общего кода при работе в рамках проекта.
    Эти способы не исключают друг друга. Всегда можно одну и ту же общую сборку использовать в одних проектах одним способов, а в других - другим. Все определяется описанными различиями.

    Для подключения к проекту общего кода в виде исходных файлов удобно использовать подрепозитории.

    Как это работает

    Идея - главный репозиторий хранит в себе ссылки на  используемые подрепозитории и на нужные их версии.

    Давайте рассмотрим механизм работы подрепозиториев. За работу с ними отвечает всего 2 файла: .hgsub и .ghsubstate, которые так же хранятся с основном репозитории. Пример файла .hgsub:
    Commons/Common = http://src/Common
    Commons/CommonSys = http://src/CommonSys
    Слева относительный путь до подрепозиториев на диске, справа - адреса их родителей. Файл .hgsubstate хранит состояние подрепозиториев, а именно - ревизии, на которую обновлены подрепозитории. Вручную обычно не редактируется. Выглядит она примерно так:
    a33509b3d9464c9a99b5c17759d6fb23e307ccc6 Commons/Common
    2c38e78a41aa2f1e2825bb0bbae624a61363e2ba Commons/Common
    При работе с основным репозиторием мы всегда видим изменения в подрепозиториях.


    Рис. 1 Отображение изменений в подрепозитории.

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

    Схема использования

    Вот преимущества использования подрепозиториев:
    • Каждый репозиторий может быстро переключаться между версиями подрепозиториев;
    • Мы всегда имеем непосредственный доступ к исходникам общего кода, которые можно напрямую включить в наш проект;
    • При затягивании репозитория с сервера вместе с ним затягиваются все подрепозитории (в т.ч. и подрепозитории подрепозиториев, если такие есть)
    Общая схема выглядит так:

    Но что, если “Общий код 1” использует “Общий код?”



    На клиентской машине налицо дублирование кода, ни к чему хорошему не приведёт. Поэтому мы можем убрать ссылку из “Нашего проекта” на “Общий код” и перенастроить ссылки на проекты “Общего кода”, находящихся в составе “Общего кода 1”:


    В конечном итоге получается довольно большая вложенность подрепозиториев. При внесении изменений и последующем использовании Rebase в подрепозиториях возникают проблемы с появлением ссылок на несуществующие ревизии [более подробное описание в статье по Rebase], а также поддержка такой вложенности непроста.
    Разработчики Mercurial рекомендует использование тонких репозиториев, которые служат только для хранения остальных репозиториев в качестве подрепозиториев:

    Тонкий репозиторий всего лишь хранит информацию о связи разных версий подрепозиториев.
     

    Создаём свой первый подрепозиторий

    Чтобы Mercurial правильно определил текущую ревизию подрепозиториев, давайте определим последовательность действий:
    1. Копируем репозитории, которые хотим сделать подрепозиториями, в нужное место каталога основного репозитория.
    2. Добавляем папку через меню в черепахе (см. рисунок 2).
    3. В создавшемся файле .hgsub путь родительского репозитория нового подрепозитория будет совпадать с относительным путём до него, исправляем на действительный путь до родителя. 
    4. Пункты 2 и 3 можно сделать через командную строку или просто добавлением файла .hgsub, тогда не придётся его исправлять, сразу создаём правильный:
      $ echo "ПодРепа1 = http://src/Subrepo1" > .hgsub
      $ hg add .hgsub
    5. Всё, можно фиксировать изменения.

    Рис. 2 Добавление подрепозитория.

    Особенности использования
    1. Создание ветки в основном репозитории никак не повлияет на подрепозитории и наоборот.
    2. Если кто-то другой внесёт изменения в подрепозитории, версия нашего подрепозитория не изменится, если мы не обновимся в нём на новую версию или если кто-то не сделает это за нас и не внесёт изменения  в файл .hgsubstate в основном репозитории.

    Чего мы лишаемся без подрепозиториев?

    Можно задаться вопросом, зачем нам именно такая технология? Что нам мешает просто клонировать репозитории общего кода рядом с репозиторием проекта и не использовать подрепозитории? Мы так же будем выбирать нужную нам версию. Чего мы лишаемся:
    • Никто кроме нас не будет знать, какую версию общего кода мы используем;
    • Не сможем централизованно следить за незафиксированными изменениями;
    • Новый сотрудник должен будет предварительно узнать, какие репозитории необходимо получить и на какие ревизии обновиться, чтобы начать работу с проектом.
    • В конфигурации билд-сервера необходимо настраивать работу со всеми репозиториями, вместо одного.
    В любом случае нет универсального решения. Выбор нужно осуществлять, исходя из ваших потребностей. Надеюсь, описанный способ поможет сделать правильный выбор.
    Подробнее

    Внедрение АСУРЭО на Туапсинском НПЗ

    Туапсинский НПЗ в Краснодарском крае является частью НК «Роснефть» с момента ее основания. Это единственный российский НПЗ, расположенный на побережье Черного моря, а также один из старейших: он был введен в эксплуатацию в 1929 году.

    Внедрение АСУРЭО позволит автоматизировать процесс создания и рассмотрения оперативно-диспетчерских заявок службами предприятия и упростит их согласование с Системным Оператором.

    Подробнее

    Когда удобно использовать Rebase?

    Rebase - это Расширение Mercurial, позволяющее нам менять непропушенную часть дерева изменений в репозитории. Мы можем менять родителей непропушенных коммитов. В идеале мы должны получить вытянутую в одну линию цепочку изменений без ветвления в рамках одной ветки.

    Как это работает

    Когда мы хотим протолкнуть наш коммит, но обнаруживаем, что кто-то до нас успел протолкнуть что-то ещё, мы не сможем этого сделать, поэтому мы обновляемся и видим следующую картину:



    Делая перебазирование нашего коммита, мы меняем родителся с “Пятый коммит” на “Чей-то коммит”, тем самым убирая ветвление:


    Следует заметить, что происходит не перемещение коммита в другое место, а удаление и создание нового, это видно по тому, что изменяется идентификатор узла нашего коммита. В связи с этим возникает проблема при работе с подрепозиториями, о которой поведаем в следующем разделе.

    На что следует обратить внимание

    При использовании подрепозиториев, нам нужно внимательнее делать Rebase в них. Допустим, репозиторий ссылается на состояние С подрепозитория:

    Мы перебазируем С на D и получаем ссылку на несуществующее состояние:

    Если пропушить такое состояние репозитория, то потом при обновлении на это состояние будут возникать критичные ошибки, мешающие дальнейшей работе. Поэтому Rebase следует проводить последовательно начиная от самых глубоковложенных подрепозиториев и заканчивая корневыми. Эта проблема пропадает при использовании тонких репозиториев (описано в статье про подрепы).

    Rebase или Merge?

    Мы можем действовать стандартным способом и при возникновении подобных ситуаций делать слияние:

    Но при большой команде разработки вскоре дерево принимает подобный вид:

    В таком дереве двоичным поиском сложней найти сбойную ревизию, да и вообще трудно разобраться в последовательности изменений.
    Итак, какой же способ ведения дерева нам выбрать? Если для нас критична история и действительное время коммитов, то мы используем Merge, если же для нас важна простота изучения истории и красота дерева, то выбираем Rebase.
    Нужно отметить, что при многопользовательской правки одних и тех же файлов было замечено, что Rebase хуже справляется со слиянием, требуется больше времени, чтобы завершить все изменения.

    Насколько Rebase должен упростить нам жизнь?

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


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


    Как мы можем обойтись без Rebase?

    В принципе, можно сохранить прямое дерево изменений, если перед каждым коммитом обновляться на последнюю ревизию, улаживать конфликты, коммитить и сразу проталкивать изменения. Я сам так всегда делал до того, как узнал про Rebase.
    Конечно же, есть положительные и отрицательные стороны подхода:
    Положительные:
    • Мы-таки сохраняем дерево стройным и красивым
    Отрицательные:
    • При неудачном слиянии можно безвозвратно потерять свои незакоммиченные изменения
    • Не получится разбить задачу на несколько коммитов, сохранив их рядом друг с другом
    Хочу отметить, что если задача состоит из нескольких коммитов и имеет довольно большой срок разработки (больше недели), то следует создать отдельную ветку для реализации и потом слить её с рабочей веткой, чтобы обособить масштабные изменения от других правок.
    Подробнее

    AnalystDays 2015

    В конце прошлой недели мы с Олей Паламарчук отправились в Республику Беларусь, в Минск на конференцию Analyst Days 2015.
    Впечатлений привезли из поездки очень много: новая страна, новый город, новые люди. И много новой, вкусной и полезной информации!
    Расскажем про те доклады, которые нам оказались наиболее интересны.

    "Как решить проблему, о которую уже все копья сломаны" Светланы Гончар

    И в жизни, и в работе часто бывают проблемы, с которыми бьемся, бьемся, и победить не можем. Автор предложил нам довольно простой диагностический инструмент, который позволяет взглянуть на проблему под другим углом. Инструмент этот - интегральные карты Уилбера. Используем матрицу 2х2, внешнее/внутреннее, индивидуальное/коллективное. Определяем квадрат, в котором возникла проблема (по умолчанию считаем, что в рамках этого квадрата проблема не решается), и ищем способы влияния на нее из других квадратов.
    Метод не дает гарантированного результата в виде решения проблемы (яблоко на голову не свалится), но мы получаем более полную картину самой проблемы, с которой уже что-то можем сделать.

    "Управление рисками в реальном времени" Юрия Дайбова

    Очень кратко, но ярко, с живыми примерами Юрий рассказал об управлении рисками. Про проактивное (превентивное управление рисками) и реактивное (устранение последствий реализовавшихся рисков). Что примечательно, никого не призывал управлять рисками. Но к концу доклада все были стопроцентно убеждены, что рисками управлять можно и нужно. Коротко рассказал о способах выявления рисков, об их анализе, отсеве маловероятных рисков (управлять можно рисками в количестве от 3 до максимум 7, попытка управления большим количеством рисков - уже именно попытка, а не управление), об основных стратегиях управления рисками.

    "Сколько стоит идея шефа, или инвестиционный доход для менеджеров" Ольги Павловой

    Как обычно, доклад собаки Павловой был очень живым и увлекательным. Ольга проводила параллели между законами макро- и микроэкономики и типовыми ситуациями в IT. Наиболее яркое впечатление на меня произвел график (слайд 30) с постулатом "соотношение количества хорошего и плохого кода по мере приближения даты релиза - чем ближе релиз, тем больше "плохого кода". Нет смысла оттягивать дедлайн, ничего хорошего уже не накодим".
    Рассмотрели еще несколько ситуаций в режиме Myth Busters, из наиболее запомнившегося:
    • не успеваете к сроку? Возьмите еще людей в команду;
    • пираты ни у кого ничего не крадут;
    • не до интерфейсов, главное - функционал!

    "Способ превращения горстки неинтересных задач в успешный проект" Алексея Маризы

    По моему мнению, лучший доклад из всех тех, которые я слушала. Основной посыл: сотрудники - это в первую очередь люди. Пойми коллегу и сможешь найти и поставить ему любую задачу, которую тот выполнит качественно и с удовольствием. А если задача ему не подходит, но поручить ее все равно нужно, то - магия! - как преподнести задачу так, чтобы загорелись глаза.Презентация: http://www.analystdays.com/ru/talk/33435

    "Метод VCM+ для выявления противоречий в требованиях заинтересованных лиц", Андрей Курьян

    Одна из основных идей доклада в том, что в каждой системе есть антисистема. В то время как система приносит пользу заинтересованным лицам, антисистема создает нежелательные эффекты. Каждое решение, которое удовлетворяет требованию, как правило, порождает нежелательный эффект. В докладе Андрей рассказывал про метод инверсии требования для снижения нежелательного эффекта и улучшения тем самым решения. Метод инверсии требования предполагает выявление основного параметра требования, инвертирование значения этого параметра (выявление инвертированного требования) и поиск потенциальных заинтересованных лиц для получившегося инвертированного требования. После выявления заинтересованных лиц антитребования предполагается, согласно докладу, решение получившегося противоречия инструментами ТРИЗ. К сожалению, алгоритмы решения в докладе не освещались, но о них можно почитать отдельно (ссылки и методы в презентации представлены). Кроме того, выбор "проблемных" требований, которые порождают антисистему, из всего скоупа требований остается на опыте аналитика.

    "Шаблонизируй это. Как паттерны требований облегчают жизнь аналитика", Виталий Мальцев

    Часто одни и те же требования к функции или компоненту системы от одной системы к другой очень похожи, а иногда и вовсе одинаковы. При этом описание требований к функционалу необходимо описывать каждый раз. Со временем функционал кажется понятным (это же очевидно!) и либо не описывается совсем (после чего работать начинает совсем не очевидно), либо разного рода уточнения забываются, не переносятся (не копируются) из другой спецификации, либо не находится спецификация, где это уже описано и надо описать снова (наступаем на те же грабли, что и при первом описании данного функционала).
    Виталий рассказывал в докладе о том, как упростить описание однообразного функционала путем создания шаблонов, в которых будут описаны все-все накопленные требования для определенной функции и при следующем ее описании достаточно взять шаблон и в пропуски вставить нужные уточнения (если это необходимо).
    Мне идея понравилась, по возможности постараюсь ее применить (проблема в том, что на написание и поддержание шаблона в актуальном состоянии требуется время).
    Презентация: http://www.analystdays.com/ru/talk/33401

    "Customer Journey Mapping для бизнес-аналитиков и не только", Юрий Веденин

    Данный доклад был вместо доклада "Анализ требований с точки зрения UX", автор которого не смог присутствовать на конференции.
    Юрий рассказывал про метод построения карты путешествия потребителей для улучшения UX интерфейсов. Пользователь совершает определенные действия в системе, результат каждого действия вызывает какую-либо эмоцию у пользователя. Для создания "хорошего" интерфейса нужно предугадать желания пользователей, быть внимательными к мелочам (именно они часто создают эмоциональную окраску). В докладе приводится пример про Саху, которая заказывает пиццу. Например, факт того, что пиццу привезли не вызывает яркой эмоциональной окраски (ну ок, Саха заказала пиццу, пиццу привезли, ничего необычного). Тогда как мелочи (Саха заказывала не острую пиццу, а привезли острую или пиццу привезли раньше обещанного времени) вызывают определенную эмоциональную реакцию, от которой, как правило, зависит захочет ли пользователь снова воспользоваться системой.
    Метод карты путешествия потребителя позволяет наглядно представить действия пользователя, его реакцию на те или иные особенности работы системы, предположить его мысли, выявить проблемы и придумать возможные решения этих самых проблем. Карта может быть представлена различными способами: табличными, круговыми, линейными. Например, таблица: каждый столбец представляет этап выполнения процесса (время), в строках для каждого этапа описываются цели пользователя и бизнеса, точки контакта (время, место, канал соприкосновения с системой), мысли, чувства, эмоции пользователя, проблемы, идеи устранения проблем. Первично карту можно построить на основе знаний команды, а потом общение, исследования, тестирования, изучения конкурентов и т.д.
    Доклад был очень живым. Юрий рассказывал веселые и поучительные истории из жизни (в презентации представлены). Метод мне показался интересным, но, на мой взгляд, больше подходящим сервисам, нежели крупным заказным проектам. Хотя все зависит от возможностей и желаний команды.
    Презентация: http://www.analystdays.com/ru/talk/36027

    Лиричное отступление

    И немного фотографий Минска, каким увидели его мы.
    Троицкое предместье

    Вид на Минск со смотровой площадки Белорусской национальной библиотеки

    И снова со смотровой площадки библиотеки
    Видео с конференции: https://www.facebook.com/analystdays

    Фото с конференции: Альбом "Analyst Days 4"
    Подробнее

    Основные принципы организации производства и потребления электроэнергии в России

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

    Энергетика - зачем?

    Энергетический сектор является одним из важнейших сегментов экономики.
    Российская энергетика – одна из крупнейших в мире: ей, согласно данным Международного энергетического агентства, принадлежит четвертое место после США, Китая и Японии.

    Предприятия электроэнергетики производят:
    • электрическую энергию (или электроэнергию) в виде электричества;
    • тепловую энергию (или теплоэнергию) в виде тепла (отопление), горячей воды и пара.

    Из-за сурового климата 40% всей российской энергии потребляется в виде тепла.
    При этом примерно половину всей производимой электроэнергии в России потребляет промышленность, еще около половины – ЖКХ.


    Где рождается энергия

    Основную часть электрической и тепловой энергии в России производят:
    • тепловые электростанции (ТЭС) – около 68%;
    • атомные электростанции (АЭС) – 24%;
    • гидроэлектростанции (ГЭС) – около 8%.
    Такое неравенство в соотношениях выработки объясняется тем, что ТЭС, в отличие от ГЭС и АЭС, не требует специальных условий.
    ГЭС строятся в местах скопления подвижных водных ресурсов, что накладывает определенные ограничения на географическое расположение и мощность станции.
    Строительство АЭС сопряжено с необходимостью исполнения ряда требований и регламентов безопасности.

    Рассмотрим типы электростанций чуть подробнее.

    Гидроэлектростанция (ГЭС) — электростанция, в качестве источника энергии использующая энергию водного потока. Гидроэлектростанции обычно строят на реках, сооружая плотины и водохранилища.

    АЭС, соответственно, использует энергию реактора на основе ядерного топлива.

    Тепловые электростанции (ТЭС) работают на газе, угле, мазуте и другом сырье.

    В России наиболее распространены тепловые электростанции (ТЭС) двух видов: ГРЭС (государственная районная электростанция, обычно то же, что и КЭС) и ТЭЦ.

    Конденсационная электростанция (КЭС) — тепловая электростанция, производящая только электрическую энергию. Своим названием этот тип электростанций обязан особенностям принципа работы.

    Теплоэлектроцентраль (ТЭЦ) — разновидность тепловой электростанции, которая производит не только электроэнергию, но и является источником тепловой энергии в централизованных системах теплоснабжения (в виде пара и горячей воды, в том числе, для обеспечения горячего водоснабжения и отопления жилых и промышленных помещений) .

    Крупные ТЭЦ также иногда называются ГРЭС. В таких случаях ГРЭС производят и электроэнергию, и тепловую энергию.

    Транспортировка энергии

    От производителей к потребителям электроэнергия доставляется по электрическим сетям (тепловая энергия направляется в тепловые сети), которые в совокупности образуют энергетическую транспортную систему.

    Электрические сети, в свою очередь, подразделяются на магистральные электрические сети и распределительные электрические сети.

    К магистральным сетям относятся все высоковольтные линии электропередач (ЛЭП), к распределительным – ЛЭП мощностью ниже 110 кВ.

    Сети связаны между собой трансформаторными и распределительными подстанциями.

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

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

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

    Энергетика России до проведения реформы

    По такой схеме работают и работали компании электроэнергетики, которые после распада СССР были объединены в супер-энергохолдинг РАО «ЕЭС России».
    Независимо от РАО функционировали четыре «АО-энерго»:

    • «Иркутскэнерго»;
    • «Татэнерго»;
    • «Башкирэнерго»;
    • «Новосибирскэнерго».

    РАО «ЕЭС» имело территориальные подразделения (72 АО-энерго) по всей стране.

    До реформы внутри одного подразделения были объединены функции:

    • выработки (генерации) электроэнергии;
    • передачи и распределения электроэнергии;
    • продажи (сбыта) электроэнергии.

    Компании диспетчеризации осуществляли координацию и управление генерирующими единицами и сетями.

    Покупка/продажа электроэнергии происходила по регулируемым ценам (тарифам), которые устанавливались государством.

    Однако вскоре энергохолдинг РАО столкнулся с проблемой устаревания оборудования при неизменно растущем росте потребления электроэнергии.

    Мощности нуждались в огромных инвестициях, и единственным способом привлечь их без помощи государства была реформа отрасли.

    Реформа энергетики

    Реформа РАО предполагала разделение бизнеса на части:

    • производственную - генерация (электростанции);
    • сетевую (сети по передаче и распределению энергии);
    • сбытовую.

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

    В результате реформы были выделены компании, осуществляющие торговлю по свободным (рыночным) ценам и по регулируемым ценам (тарифам).

    Для участия в торговле по рыночным ценам к участникам предъявляется ряд правил Оптового рынка, а также накладываются обязательства по приобретению/реализации мощности.

    Рассмотрим подробнее каждую часть РАО «ЕЭС» после реформы.

    Оптовые генерирующие компании


    Генерирующие компании оптового рынка электроэнергии (оптовые генерирующие компании, ОГК) — семь экстерриториальных энергокомпаний, выделенных из РАО ЕЭС в процессе его реформирования.

    Экстерриториальная компания – компания, не привязанная к региону и территории, на которой она располагается, то есть компания, имеющая государственное значение.

    Состав ОГК подобран таким образом, чтобы они имели сопоставимые стартовые условия на рынке:

    • по установленной мощности;
    • стоимости активов;
    • средней величине износа оборудования.

    Каждая ОГК объединяет станции, находящиеся в различных регионах страны, благодаря чему минимизированы возможности монопольных злоупотреблений.

    Тепловые ОГК, будучи независимыми друг от друга, являются основными конкурентами на оптовом рынке электроэнергии.
    Шесть тепловых ОГК  объединяют подавляющее большинство крупных ТЭС (в каждую ОГК входит несколько электростанций, общая мощность каждой ОГК составляет около 9 ГВт).

    В РусГидро (ранее называлось ГидроОГК) объединены практически все подконтрольные РАО ЕЭС гидроэлектростанции (за исключением каскадов малых ГЭС в Карелии и Мурманской области, отошедших к ТГК-1).

    ОАО «Концерн Росэнергоатом» объединяет 10 атомных станций России. Основным видом деятельности ОАО «Концерн Росэнергоатом» является производство электрической и тепловой энергии атомными станциями и выполнение функций эксплуатирующей организации ядерных установок.

    Одной из стратегических целей ОАО «Концерн Росэнергоатом» является эффективное обеспечение страны электроэнергией, производимой на АЭС.

    На все ОГК приходится около трети общих энергогенерирующих мощностей России.

    Территориальные генерирующие компании

    Территориальные генерирующие компании (ТГК) — компании, объединяющие электростанции нескольких соседних регионов, не вошедшие в ОГК, – преимущественно теплоэлектроцентрали, вырабатывающие не только электричество, но и тепло.

    ТГК продают электроэнергию, а также снабжают теплом потребителей своих регионов. ТГК сформированы на основе следующих базовых принципов:

    • создание крупных компаний;
    • минимизация монополии;
    • объединение электростанций по территориальному признаку;
    • снижение доли государственного контроля над генерацией электроэнергии.

    Функцией территориальных генерирующих компаний является производство электроэнергии для местных потребителей.
    В процессе реформирования РАО ЕЭС было создано 14 ТГК.

    В среднем, каждая ТГК имеет установленные генерирующие электрические мощности около 3 ГВт, причем крупных электростанций и ТЭЦ (мощностью 1 ГВт и более) в их составе, как правило, нет.

    В целом на долю ТГК приходится около четверти всех установленных энергомощностей России и около трети тепловой генерации.

    Реформа электрических сетей

    После реформы энергетической отрасли все магистральные сети, которые входят в единую энергетическую систему России и составляют Единую национальную электрическую сеть России (ЕНЭС) , вошли в состав Федеральной сетевой компании (ОАО «ФСК ЕЭС»).

    Все же остальные сети, не включенные в ЕНЭС и относящиеся к распределительным сетям, в итоге были включены в состав одиннадцати межрегиональных распределительных сетевых компаний (МРСК) по территориальному принципу. В 2013 году ОАО «Холдинг МРСК» было переименовано в ОАО «Россети». В настоящее время ОАО «Россети» также владеет более чем 80% акций ОАО «ФСК ЕЭС».

    Рассмотрим типичное распределение зон ответственности ФСК и МРСК при транспортировке электроэнергии от поставщиков к потребителям.



    Электроэнергия, выработанная на электростанции, попадает в магистральные сети, где под высоким напряжением осуществляется ее транспортировка к потребителям. При этом из магистральных сетей электроэнергия может поступить как напрямую к крупным потребителям, так и через трансформаторные подстанции – в распределительные сети. Из распределительных сетей, в свою очередь, электроэнергия может быть доставлена крупным потребителям, либо через распределительную подстанцию попасть к мелким и средним потребителям.
    В зоне ответственности ФСК, таким образом, находятся магистральные сети и трансформаторные подстанции, МРСК же заведует распределительными сетями и распределительными подстанциями.

    Однако существует ряд особенностей при транспорте электроэнергии:

    1. В реальности при передаче электроэнергии от электростанций в магистральные сети зачастую используются трансформаторные подстанции.
    2. Электроэнергия может попадать напрямую в распределительные сети, минуя магистральные сети.
    3. Часть потребителей (как крупных, так и средних и мелких) обладают собственными генерирующими единицами, которые питают их мощности практически напрямую (без участия сетевых организаций).

    Россети

    Открытое акционерное общество «Российские сети» (ОАО «Россети») – оператор энергетических сетей в России – является одной из крупнейших электросетевых компаний в мире. 

    Имущественный комплекс ОАО «Россети» включает в себя дочерние и зависимые общества, в том числе межрегиональные и магистральные сетевые компании. Контролирующим акционером является государство.

    В настоящее время ОАО «Россети» - одна из крупнейших электросетевых компаний в мире по числу потребителей и протяжённости сетей напряжения до 110 кВ.

    ОАО «Россети» также является агентом государства по управлению российским электрораспределительным сетевым комплексом.

    Дочерняя компания ОАО «Россети» - «ФСК ЕЭС» - получает выручку не только от оплаты услуг за передачу электроэнергии, но и за подключение к своим сетям.


    В структуру ОАО «Федеральная сетевая компания Единой энергетической системы» входят:

    • филиалы «Магистральные электрические сети» (МЭС);
    • филиалы «Предприятия магистральных электрических сетей» (ПМЭС);
    • филиал «Специализированная производственная база «Белый Раст».

    Задачи филиалов ОАО «ФСК ЕЭС» – МЭС:

    • оказание услуг по передаче и распределению электрической энергии;
    • оказание услуг по присоединению к электрическим сетям;
    • оказание услуг по сбору, передаче и обработке технологической информации, включая данные измерений и учета;
    • эксплуатация электрических сетей и технологическое управление ими;
    • развитие электрических сетей и иных объектов электросетевого хозяйства.

    В настоящее время филиалы ОАО «ФСК ЕЭС» обеспечивают функционирование 131,6 тыс. км линий электропередачи и 891 подстанций общей трансформаторной мощностью более 322,5 тысяч МВА напряжением 110-1150 кВ.

    Сбыт


    На оптовом рынке продавцами и покупателями являются генерирующие компании, операторы экспорта/импорта электроэнергии, сбытовые организации, сетевые компании (в части приобретения электроэнергии для покрытия потерь), крупные потребители.

    Сбыт электроэнергии конечным потребителям осуществляют сбытовые компании: гарантирующие поставщики, энергосбытовые (энергоснабжающие) организации, а также производители электрической энергии (мощности) на розничных рынках.

    Гарантирующий поставщик (ГП) – сбытовая компания, обязанная заключить с любым обратившимся к ней лицом, находящимся в зоне его деятельности, договор энергоснабжения.
    Наличие ГП в конструкции розничного рынка гарантирует, что конечный потребитель не окажется в ситуации, когда с ним отказались заключать договор все сбытовые организации.
    Гарантирующий поставщик действует в рамках определенной зоны деятельности. Зоны деятельности гарантирующих поставщиков не пересекаются.
    Гарантирующий поставщик продает на розничном рынке электрическую энергию (мощность), приобретенную им на оптовом рынке с использованием группы точек поставки, а также на розничных рынках - приобретенную у энергосбытовых организаций и производителей электрической энергии/мощности на розничном рынке.

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

    Оптовые потребители-перепродавцы (далее – ОПП) также как и региональные энергетические компании (АО-энерго) должны осуществить разделение по видам деятельности (сбыт и передача электроэнергии).
    В частности, когда ОПП расположены в территориальных технологически изолированных энергосистемах или вообще не имеют электрической связи с Единой энергетической системой или какой-либо из технологически изолированных энергосистем.

    Диспетчеризация оборудования и сетей


    Открытое акционерное общество «Системный оператор Единой энергетической системы» (Системный оператор) — осуществляет централизованное оперативно-диспетчерское управление технологическим режимом Единой энергетической системы России на территории субъектов Российской Федерации.

    В соответствии с принципами функционирования единой вертикали оперативно-диспетчерского управления, подразделения Системного оператора организованы в трехуровневую иерархическую структуру:

    • Исполнительный аппарат (г. Москва);
    • Филиалы - Объединенные диспетчерские управления (ОДУ) энергообъединениями;
    • Филиалы - региональные диспетчерские управления (РДУ) энергосистемами одного или нескольких субъектов Российской Федерации.

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

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

    Системный оператор участвует в обеспечении функционирования оптового рынка электроэнергии и мощности:

    • осуществляет актуализацию расчетной модели, на основе которой Коммерческий оператор производит расчет объемов и цен торговли на оптовом рынке электроэнергии;
    • проводит конкурентный отбор мощности (КОМ);
    • обеспечивает функционирование балансирующего рынка – торговли отклонениями от плановых объемов производства и потребления электроэнергии.

    Структура рынка


    Подписание Договора о присоединении и вступление в саморегулируемую организацию участников оптового рынка электроэнергии и мощности (Некоммерческое партнерство «Совет рынка») является обязательным условием участия в купле-продаже электроэнергии и мощности на оптовом рынке.

    Организация торговли и обеспечение расчетов между участниками оптового рынка электроэнергии является функцией Коммерческого оператора – ОАО «Администратор торговой системы», 100% дочерней компании Некоммерческого партнерства «Совет рынка».

    Дочерняя организация ОАО «АТС» и НП «Совет рынка» - ОАО «Центр финансовых расчетов», выступает унифицированной стороной по сделкам купли-продажи электроэнергии и мощности, осуществляет расчет требований и обязательств по договорам купли-продажи электроэнергии и мощности.

    Стоимость услуг Коммерческого оператора контролируется государством.

    Совет рынка

    Целями создания некоммерческого партнерства «Совет рынка» являются:

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

    НП «Совет рынка» выполняет следующие функции:
    Приоритетными направлениями работы НП «Совет рынка» являются:

    • совершенствование модели и организации функционирования оптового рынка электрической энергии и мощности;
    • организация функционирования розничного рынка электрической энергии;
    • мониторинг контроля за соблюдением субъектами оптового рынка правил и регламентов оптового рынка, также урегулирования споров между участниками оптового рынка;
    • информационное обеспечение Членов Партнерства и органов власти по функционированию рынков электроэнергии в России и за рубежом, а также обеспечение коммуникаций между участниками рынков электроэнергии.


    АТС

    Основными задачами ОАО «АТС» являются:

    • организация торговли на оптовом рынке электроэнергии и мощности;
    • обеспечение расчетов за поставляемую электроэнергию и услуги, оказываемые участникам оптового рынка;
    • обеспечение равных условий для участников оптового рынка электроэнергии;
    • разработка правил рынка и контроля над их соблюдением;
    • организация системы досудебного урегулирования споров между участниками оптового рынка;
    • контроль над действиями системного оператора (СО ЕЭС).

    ЦФР

    Основной задачей ОАО "ЦФР" является оказание комплексной услуги по расчету требований и обязательств участников оптового рынка электроэнергии и мощности и ФСК и проведению финансовых расчетов между ними.

    Общество выступает на оптовом рынке унифицированной стороной по сделкам и заключает на оптовом рынке электрической энергии (мощности) от своего имени договоры, обеспечивающие оптовую торговлю электрической энергией и мощностью.

    При оказании комплексной услуги по расчету требований и обязательств участников оптового рынка и ФСК, Общество осуществляет на оптовом рынке электроэнергии одно или несколько из следующих действий, обеспечивающих проведение финансовых расчетов между участниками оптового рынка:

    • осуществление расчета требований и обязательств участника оптового рынка при покупке/продаже электрической энергии;
    • формирование схемы платежей для участников оптового рынка, находящихся на территориях субъектов Российской Федерации, не объединенных в ценовые зоны оптового рынка (неценовые зоны);
    • формирование на основании информации, получаемой от АТС и участников оптового рынка, и направление участнику оптового рынка документа, содержащего информацию о стоимости и объемах электрической энергии/мощности, купленной или проданной на оптовом рынке;
    • участие в проведении финансовых расчетов участника оптового рынка с другими участниками оптового рынка.

    Подведем итоги

    Таким образом, энергетику как систему можно рассматривать в разрезе двух структур - технологической и рыночной.

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

    Рыночная цепочка описывает взаимодействие субъектов рынка при продаже/приобретении электроэнергии.

    Технологическая цепочка


    Технологическая цепочка включает генерацию электроэнергии и ее последующую передачу по сетям потребителям.

    Системный Оператор Единой Энергетической Системы (ОАО «СО ЕЭС») осуществляет контроль за соблюдением технологических параметров системы, принимает участие в управлении сетями.

    ФСК и МРСК управляют магистральными и распределительными сетями, по которым электроэнергия поступает потребителям.

    Рыночная цепочка

    Рыночная цепочка включает два сегмента – оптовый и розничный рынок электроэнергии.

    Оптовый рынок


    Субъектами оптового рынка являются:

    • генерирующие компании;
    • сбытовые компании;
    • сетевые организации;
    • потребители.

    Администрирование процессов оптового рынка электроэнергии осуществляет ОАО «АТС» (Администратор Торговой Системы).

    Расчеты между участниками рынка реализует ОАО «ЦФР» (Центр Финансовых Расчетов).


    Розничный рынок


    В рамках розничных рынков электрической энергии реализуется электроэнергия, приобретенная на оптовом рынке электроэнергии и мощности, а также электроэнергия генерирующих компаний, не являющихся участниками оптового рынка.

    Субъектами розничных рынков являются:

    • потребители;
    • гарантирующие поставщики;
    • энергосбытовые, энергоснабжающие организации;
    • производители электрической энергии (мощности) на розничных рынках;
    • сетевые организации.

    Гарантирующие поставщики на розничных рынках могут выступать как продавцами электрической энергии, так и покупателями.

    Производители электрической энергии/мощности на розничных рынках в случаях приобретения ими электрической энергии/мощности для собственных производственных нужд выступают как потребители.

    Сетевые организации приобретают электрическую энергию/мощность на розничных рынках в целях компенсации потерь электрической энергии и выступают как потребители.
    Подробнее

    Поздравляем с днём влюблённых!


     Друзья!

    Не так важно кто во что верит, важно то, что человеку нужен человек. Человеку нужна любовь.
    А любовь – это…

    Любовь… Это чувство как сладкий нектар,
    Любовь – это в сердце пылает пожар,
    Любовь – это мелом на стенах писать,
    Любовь – это вновь на ромашках гадать.

    Любовь – это пламя горящей свечи,
    Любовь – это звезды в бессонной ночи,
    Любовь – это нежный полуночный бриз,
    Любовь – это твой неожиданный приз.

    Любовь – это вновь полной грудью дышать,
    Любовь – значит счастье не нужно искать.
    Любовь – это дверь и замочек с ключом,
    Любовь – никогда не жалеть ни о чем.

    Любовь – это там, где тебя всегда ждут.
    Это встретились взгляды на пару минут.
    Любовь – это всё отдавать до конца,
    Без слов в её песне сольются сердца.

    Любовь – это тайна мятежной души,
    Любя, ты пойдешь хоть до края земли.
    Любовь – это значит понять и простить.
    Любовь – это Верить, Надеяться, Жить.

    Любовь – столько слов невозможно сказать.
    О ней я могу бесконечно писать.
    Прекраснее нет на Земле ничего!
    Любовь – это Дар. Берегите его!

    Подробнее