Горизонтальное масштабирование. Что, зачем, когда и как?
Александр Макаров ( SamDark )
Здравствуйте! Я Александр Макаров, и вы можете меня знать по фреймворку «Yii» — я один из его разработчиков. У меня также есть full-time работа — и это уже не стартап — Stay.com, который занимается путешествиями.
Сегодня я буду рассказывать про горизонтальное масштабирование, но в очень-очень общих словах.
Что такое масштабирование, вообще? Это возможность увеличить производительность проекта за минимальное время путем добавления ресурсов.
Обычно масштабирование подразумевает не переписывание кода, а либо добавление серверов, либо наращивание ресурсов существующего. По этому типу выделяют вертикальное и горизонтальное масштабирование.
Вертикальное — это когда добавляют больше оперативки, дисков и т.д. на уже существующий сервер, а горизонтальное — это когда ставят больше серверов в дата-центры, и сервера там уже как-то взаимодействуют.
Самый классный вопрос, который задают, — а зачем оно надо, если у меня все и на одном сервере прекрасно работает? На самом-то деле, надо проверить, что будет. Т.е., сейчас оно работает, но что будет потом? Есть две замечательные утилиты — ab и siege, которые как бы нагоняют тучу пользователей конкурента, которые начинают долбить сервер, пытаются запросить странички, послать какие-то запросы. Вы должны указать, что им делать, а утилиты формируют такие вот отчеты:
и
Главные два параметра: n — количество запросов, которые надо сделать, с — количество одновременных запросов. Таким образом они проверяют конкурентность.
На выходе получаем RPS, т.е. количество запросов в секунду, которое способен обработать сервер, из чего станет понятно, сколько пользователей он может выдержать. Все, конечно, зависит от проекта, бывает по-разному, но обычно это требует внимания.
Есть еще один параметр — Response time — время ответа, за которое в среднем сервер отдал страничку. Оно бывает разное, но известно, что около 300 мс — это норма, а что выше — уже не очень хорошо, потому что эти 300 мс отрабатывает сервер, к этому прибавляются еще 300-600 мс, которые отрабатывает клиент, т.е. пока все загрузится — стили, картинки и остальное — тоже проходит время.
Бывает, что на самом деле пока и не надо заботиться о масштабировании — идем на сервер, обновляем PHP, получаем 40% прироста производительности и все круто. Далее настраиваем Opcache, тюним его. Opcache, кстати, тюнится так же, как и APC, скриптом, который можно найти в репозитории у Расмуса Лердорфа и который показывает хиты и мисы, где хиты — это сколько раз PHP пошел в кэш, а мисы — сколько раз он пошел в файловую систему доставать файлики. Если прогнать весь сайт, либо запустить туда какой-то краулер по ссылкам, либо вручную потыкать, то у нас будет статистика по этим хитам и мисам. Если хитов 100%, а мисов — 0%, значит, все нормально, а если есть мисы, то надо выделить больше памяти, чтобы весь наш код влез в Opcache. Это частая ошибка, которую допускают — вроде Opcache есть, но что-то не работает…
Еще часто начинают масштабировать, но не смотрят, вообще, из-за чего все работает медленно. Чаще всего лезем в базу, смотрим — индексов нет, ставим индексы — все сразу залетало, еще на 2 года хватит, красота!
Ну, еще надо включить кэш, заменить apache на nginx и php-fpm, чтобы сэкономить память. Будет все классно.
Все перечисленное достаточно просто и дает вам время. Время на то, что когда-то этого станет мало, и к этому уже сейчас надо готовиться.
Как, вообще, понять, в чем проблема? Либо у вас уже настал highload, а это не обязательно какое-то бешеное число запросов и т.д., это, когда у вас проект не справляется с нагрузкой, и тривиальными способами это уже не решается. Надо расти либо вширь, либо вверх. Надо что-то делать и, скорее всего, на это мало времени, что-то надо придумывать.
Первое правило — никогда ничего нельзя делать вслепую, т.е. нам нужен отличный мониторинг. Сначала мы выигрываем время на какой-то очевидной оптимизации типа включения кэша или кэширования Главной и т.п. Потом настраиваем мониторинг, он нам показывает, чего не хватает. И все это повторяется многократно – останавливать мониторинг и доработку никогда нельзя.
Что может показать мониторинг? Мы можем упереться в диск, т.е. в файловую систему, в память, в процессор, в сеть… И может быть такое, что, вроде бы, все более-менее, но какие-то ошибки валятся. Все это разрешается по-разному. Можно проблему, допустим, с диском решить добавлением нового диска в тот же сервер, а можно поставить второй сервер, который будет заниматься только файлами.
На что нужно обращать внимание прямо сейчас при мониторинге? Это:
- доступность, т.е. жив сервер, вообще, или нет;
- нехватка ресурсов диска, процессора и т.д.;
- ошибки.
Как это все мониторить?
Вот список замечательных инструментов, которые позволяют мониторить ресурсы и показывать результаты в очень удобном виде:
Первые 4 инструмента можно поставить на сервер, они мощные, классные. А ServerDensity хостится у кого-то, т.е. мы за нее платим деньги, и она может собирать с серверов все данные и отображать их для анализа.
Обычно мы мониторим ошибки так — либо пишем все в лог и потом смотрим его, либо дополнительно к этому начинаем email’ы или смс-ки слать разработчикам. Это все нормально, но как только у нас набегает туча народа на сервис, и есть там какая-то ошибка, она начинает повторяться очень большое количество раз, начинает бешено спамить email либо он, вообще, переполняется, или же у разработчика полностью теряется внимание и он начинает письма игнорировать. Вышеуказанные сервисы берут и ошибки одного и того же типа собирают в одну большую пачку, плюс они считают, сколько раз ошибки произошли за последнее время и в приоритетах автоматом поднимают все это дело.
Sentry можно поставить к себе на сервер, есть исходник, а Rollbar — нет, но Rollbar лучше, потому что он берет деньги за количество ошибок, т.е. стимулирует их исправлять.
Про нотификации повторю, что спамить не стоит, теряется внимание.
Что, вообще, надо анализировать?
RPS и Responce time — если у нас начинает время ответа падать, то надо что-то делать.
Количество процессов, потоков и размеры очередей — если это все начинает плодиться, забиваться и т.д., то что-то здесь опять не так, надо анализировать более детально и как-то менять инфраструктуру.
Также стоит смотреть на бизнес-анализ. Google Analytics для сайтовых типов отлично подходит, а mixpanel — для логирования ивентов, он работает на десктопных приложениях, на мобильных, на веб. Можно и на основе каких-то своих данных писать, но я бы советовал готовые сервисы. Смысл в том, что наш мониторинг может показывать, что сервис жив, что все работает, что общий Responce time нормальный, но когда мы, допустим, регистрацию в mixpanel’е начинаем трекать, он показывает, что их как-то маловато. В этом случае надо смотреть, насколько быстро отрабатывают определенные ивенты, страницы, и в чем состоят проблемы. Проект всегда должен быть «обвешан» анализом, чтобы всегда знать, что происходит, а не работать вслепую.
Нагрузка, вообще, возникает или запланировано, или нет, может возникать постепенно, может не постепенно:
Как бороться с нагрузкой? Решает все бизнес, и важна только цена вопроса. Важно:
- чтобы сервис работал,
- чтобы это было не сильно дорого, не разорило компанию.
Остальное не очень важно.
Если дешевле попрофайлить, оптимизировать, записать в кэш, поправить какие-то конфиги, то это и надо делать, не задумываясь пока о масштабировании и о том, чтобы докупать «железо» и т.д. Но бывает, что «железо» становится дешевле, чем работа программиста, особенно, если программисты очень подкованные. В этом случае уже начинается масштабирование.
На рисунке синяя штука — это Интернет, из которого идут запросы. Ставится балансировщик, единственная задача которого — распределить запросы на отдельные фронтенды-сервера, принять от них ответы и отдать клиенту. Смысл тут в том, что 3 сервера могут обработать (в идеале) в 3 раза больше запросов, исключая какие-то накладные расходы на сеть и на саму работу балансировщика.
Что это нам дает? Указанную выше возможность обработать больше запросов, а еще надежность. Если в традиционной схеме валится nginx или приложение, или в диск уперлись и т.п., то все встало. Здесь же, если у нас один фронтенд отвалился, то ничего страшного, балансировщик, скорее всего, это поймет и отправит запросы на оставшиеся 2 сервера. Может, будет чуть помедленнее, но это не страшно.
Вообще, PHP — штука отличная для масштабирования, потому что он следует принципу Share nothing по умолчанию. Это означает, что если мы возьмем, допустим, Java для веба, то там приложение запускается, читает весь код, записывает по максимуму данных в память программы, все там крутится, работает, на request уходит очень мало времени, очень мало дополнительных ресурсов. Однако есть засада — т.к. приложение написано так, что оно должно на одном инстансе работать, кэшироваться, читать из своей же памяти, то ничего хорошего у нас при масштабировании не получится. А в PHP по умолчанию ничего общего нет, и это хорошо. Все, что мы хотим сделать общим, мы это помещаем в memcaсhed, а memcaсhed можно читать с нескольких серверов, поэтому все замечательно. Т.е. достигается слабая связанность для слоя серверов приложений. Это прекрасно.
Чем, вообще, балансировать нагрузку?
Чаще всего это делали Squid’ом или HAProxy, но это раньше. Сейчас же автор nginx взял и партировал из nginx+ балансировщик в nginx, так что теперь он может делать все то, что раньше делали Squid’ом или HAProxy. Если оно начинает не выдерживать, можно поставить какой-нибудь крутой дорогой аппаратный балансировщик.
Проблемы, которые решает балансировщик — это как выбрать сервер и как хранить сессии? Вторая проблема — чисто PHP’шная, а сервер может выбираться либо по очереди из списка, либо по географии каких-то IP’шников, либо по какой-то статистике (nginx поддерживает least-connected, т.е. к какому серверу меньше коннектов, на него он и будет перекидывать). Можем написать для балансировщика какой-то код, который будет выбирать, как ему работать.
Вот, по этой ссылке описан балансировщик, свежепартированный в nginx:
Всем рекомендую, там очень простые конфиги, все максимально просто.
Что, если мы упремся в балансировщик?
Есть такая штука как DNS Round robin — это замечательный трюк, который позволяет нам не тратиться на аппаратный балансировщик. Что мы делаем? Берем DNS-сервер (обычно DNS-сервера у себя никто не хостит, это дорого, несильно надежно, если он выйдет из строя, то ничего хорошего не получится, все пользуются какими-то компаниями), в А-записи прописываем не один сервер, а несколько. Это будут А-записи разных балансировщиков. Когда браузер туда идет (гарантий, на самом деле, нет, но все современные браузеры так действуют), он выбирает по очереди какой-нибудь IP-адрес из А-записей и попадает либо на один балансировщик, либо на второй. Нагрузка, конечно, может размазываться не равномерно, но, по крайней мере, она размазывается, и балансировщик может выдержать немного больше.
Что делать с сессиями?
Сессии у нас по умолчанию в файлах. Это не дело, потому что каждый из серверов-фронтендов у нас будет держать сессии в своей файловой системе, а пользователь может попадать то на один, то на второй, то на третий, т.е. сессии он будет каждый раз терять.
Возникает очевидное желание сделать общую файловую систему, подключить NFS. Но делать так не надо — она до жути медленная.
Можно записать в БД, но тоже не стоит, т.к. БД не оптимальна для этой работы, но если у вас нет другого выхода, то, в принципе, сойдет.
Можно писать в memcached, но очень-очень осторожно, потому что memcached — это, все-таки, кэш и он имеет свойство вытираться, как только у него мало ресурсов, или некуда писать новые ключи — тогда он начинает терять старые без предупреждения, сессии начинают теряться. За этим надо либо следить, либо выбрать тот же Redis.
Redis — нормальное решение. Смысл в том, что Redis у нас на отдельном сервере, и все наши фронтенды ломятся туда и начинают с Redis’а свои сессии считывать. Но Redis однопоточный и рано или поздно можем хорошенько упереться. Тогда делают sticky-сессии. Ставится тот же nginx и сообщается ему, что нужно сделать сессии так, чтобы юзер, когда он пришел на сервер и ему выдалась сессионная cookie, чтобы он впоследствии попадал только на этот сервер. Чаще всего это делают по IP-хэшу. Получается, что если Redis на каждом инстансе, соответственно, сессии там свои, и пропускная способность чтения-записи будет гораздо лучше.
Как насчет cookies? Можно писать в cookies, никаких хранилищ не будет, все хорошо, но, во-первых, у нас все еще куда-то надо девать данные о сессии, а если мы начнем писать в cookies, она может разрастись и не влезть в хранилище, а, во-вторых, можно хранить в cookies только ID, и нам все равно придется обращаться к БД за какими-то сессионными данными. В принципе, это нормально, решает проблему.
Есть классная штука — прокси для memcached и Redis:
Они, вроде как, поддерживают распараллеливание из коробки, но делается это, я не сказал бы, что очень оптимально. А вот эта штука — twemproxy — она работает примерно как nginx с PHP, т.е. как только ответ получен, он сразу отправляет данные и в фоне закрывает соединение, получается быстрее, меньше ресурсов потребляет. Очень хорошая штука.
Очень часто возникает такая ошибка «велосипедирования», когда начинают писать, типа «мне сессии не нужны! я сейчас сделаю замечательный токен, который будет туда-сюда передаваться»… Но, если подумать, то это опять же сессия.
В PHP есть такой механизм как session handler, т.е. мы можем поставить свой handler и писать в cookies, в БД, в Redis — куда угодно, и все это будет работать со стандартными session start и т.д.
Сессии надо закрывать вот этим замечательным методом.
Как только мы из сессии все прочитали, мы не собираемся туда писать, ее надо закрыть, потому что сессия частенько блокируется. Она, вообще-то, должна блокироваться, потому что без блокировок будут проблемы с конкурентностью. На файлах это видно сразу, на других хранилищах блокировщики бывают не на весь файл сразу, и с этим немного проще.
Что делать с файлами?
С ними можно справляться двумя способами:
- какое-то специализированное решение, которое дает абстракцию, и мы работаем с файлами как с файловой системой. Это что-то вроде NFS, но NFS не надо.
- «шардирование» средствами PHP.
Специализированные решения из того, что действительно работает, — это GlusterFS. Это то, что можно поставить себе. Оно работает, оно быстрое, дает тот же интерфейс, что NFS, только работает с нормальной терпимой скоростью.
И Amazon S3 — это, если вы в облаке Amazon’а, — тоже хорошая файловая система.
Если вы реализуете со стороны PHP, есть замечательная библиотека Flysystem, покрытая отличными тестами, ее можно использовать для работы со всякими файловыми системами, что очень удобно. Если вы сразу напишете всю работу с файлами с этой библиотекой, то потом перенести с локальной файловой системы на Amazon S3 или др. будет просто — в конфиге строчку переписать.
Как это работает? Пользователь из браузера загружает файл, тот может попадать либо на фронтенд и оттуда расползаться по файловым серверам, либо на каждом файловом сервере делается скрипт для аплоада и файл заливается сразу в файловую систему. Ну и, параллельно в базу пишется, какой файл на каком сервере лежит, и мы читать его можем непосредственно оттуда.
Лучше всего раздавать файлы nginx’ом или Varnish’ем, но лучше все делать nginx’ом, т.к. мы все его любим и используем — он справится, он хороший.
Что у нас происходит с базой данных?
Если у вас все уперлось в код PHP, мы делаем кучу фронтендов и все еще обращаемся к одной БД — она справится достаточно долгое время. Если нагрузка не страшная, то БД живет хорошо. Например, мы делали JOIN’ы по 160 млн. строк в таблице, и все было замечательно, все бегало хорошо, но там, правда, оперативки надо больше выделить на буферы, на кэш…
Что делать с БД, если мы уперлись в нее? Есть такие техники как репликация. Обычно делается репликация мастер-слэйв, есть репликация мастер-мастер. Можно делать репликацию вручную, можно делать шардирование и можно делать партицирование.
Что такое мастер-слэйв?
Выбирается один сервер главным и куча серверов — второстепенными. На главный пишется, а читать мы можем с мастера, а можем и со слэйвов (на картинке красные стрелочки — это то, что мы пишем, зеленые — то, что мы читаем). В типичном проекте у нас операций чтения гораздо больше, чем операций записи. Бывают нетипичные проекты.
В случае типичного проекта большое количество слэйвов позволяет разгрузить как мастер, так и, вообще, увеличить скорость чтения.
Также это дает отказоустойчивость — если упал один из слэйвов, то делать ничего не надо. Если упал мастер, мы можем достаточно быстро сделать один из слэйвов мастером. Правда, это обычно не делается автоматически, это внештатная ситуация, но возможность есть.
Ну, и бэкапы. Бэкапы базы все делают по-разному, иногда это делается MySQL-дампом, при этом он фризит весь проект намертво, что не очень хорошо. Но если делать бэкап с какого-нибудь слэйва, предварительно остановив его, то пользователь ничего не заметит. Это прекрасно.
Кроме этого, на слэйвах можно делать тяжелые вычисления, чтобы не затронуть основную базу, основной проект.
Есть такая штука как read/write split.Делается 2 пула серверов — мастер, слэйв, соединение по требованию, и логика выбора соединения варьируется. Смысл в том, что если мы будем всегда читать со слэйвов, а писать всегда в мастер, то будет небольшая засада:
т.е. репликация выполняется не немедленно, и нет гарантий, что она выполнилась, когда мы делаем какой-либо запрос.
Есть два типа выборок:
- для чтения или для вывода;
- для записи, т.е., когда мы что-то выбрали и потом это что-то надо изменить и записать обратно.
Если выборка для записи, то мы можем либо всегда читать с мастера и писать на мастер, либо мы можем выполнить «SHOW SLAVE STATUS» и посмотреть там Seconds_Behind_Master (для PostgreSQL тоже супер-запрос есть на картинке) — он покажет нам число. Если это 0 (нуль), значит, все у нас уже реплицировалось, можно смело читать со слэйва. Если число больше нуля, то надо смотреть значение — либо нам стоит подождать немного и тогда прочитать со слэйва, либо сразу читать с мастера. Если у нас NULL, значит еще не реплицировали, что-то застряло, и надо смотреть логи.
Причины подобного лага — это либо медленная сеть, либо не справляется реплика, либо слишком много слэйвов (больше 20 на 1 мастер). Если медленная сеть, то понятно, ее надо как-то ускорять, собирать в единые дата-центры и т.д. Если не справляется реплика, значит надо добавить реплик. Если же слишком много слэйвов, то надо уже придумывать что-то интересное, скорее всего, делать какую-то иерархию.
Что такое мастер-мастер?
Это ситуация, когда стоит несколько серверов, и везде и пишется, и читается. Плюс в том, что оно может быть быстрее, оно отказоустойчивое. В принципе, все то же, что и у слэйвов, но логика, вообще, простая — мы просто выбираем рандомное соединение и с ним работаем. Минусы: лаг репликации выше, есть шанс получить какие-то неконсистентные данные, и, если произошла какая-нибудь поломка, то она начинает раскидываться по всем мастерам, и никому уже неизвестно, какой мастер нормальный, какой поломался… Это все дело начинает реплицироваться по кругу, т.е. очень неслабо забивает сеть. Вообще, если пришлось делать мастер-мастер, надо 100 раз подумать. Скорее всего, можно обойтись мастер-слэйвом.
Можно делать репликацию всегда руками, т.е. организовать пару соединений и писать сразу в 2, в 3, либо что-то делать в фоне.
Что такое шардирование?
Фактически это размазывание данных по нескольким серверам. Шардировать можно отдельные таблицы. Берем, допустим, таблицу фото, таблицу юзеров и др., растаскиваем их на отдельные сервера. Если таблицы были большие, то все становится меньше, памяти ест меньше, все хорошо, только нельзя JOIN’ить и приходится делать запросы типа WHERE IN, т.е. сначала выбираем кучу ID’шников, потом все эти ID’шники подставляем запросу, но уже к другому коннекту, к другому серверу.
Можно шардировать часть одних и тех же данных, т.е., например, мы берем и делаем несколько БД с юзерами.
Можно достаточно просто выбрать сервер — остаток от деления на количество серверов. Альтернатива — завести карту, т.е. для каждой записи держать в каком-нибудь Redis’е или т.п. ключ значения, т.е. где какая запись лежит.
Есть вариант проще:
Сложнее — это когда не удается сгруппировать данные. Надо знать ID данных, чтобы их достать. Никаких JOIN, ORDER и т.д. Фактически мы сводим наш MySQL или PostgreSQL к key-valuе хранилищу, потому что мы с ними ничего делать не можем.
Обычные задачи становятся необычными:
- Выбрать TOP 10.
- Постраничная разбивка.
- Выбрать с наименьшей стоимостью.
- Выбрать посты юзера X.
Если мы зашардировали так, что все разлетелось по всем серверам, это уже начинает решаться очень нетривиально. В этой ситуации возникает вопрос — а зачем нам, вообще SQL? Не писать ли нам в Redis сразу? А правильно ли мы выбрали хранилище?
Из коробки шардинг поддерживается такими штуками как:
- memcache;
- Redis;
- Cassandra (но она, говорят, с какого-то момента не справляется и начинает падать).
Как быть со статистикой?
Часто статистику любят считать с основного сервера — с единственного сервера БД. Это прекрасно, но запросы в статистике обычно жуткие, многостраничные и т.д., поэтому считать статистику по основным данным — это большая ошибка. Для статистики в большинстве случаев realtime не нужен, так что мы можем настроить мастер-слэйв репликацию и на слэйве эту статистику уже посчитать. Или мы можем взять что-нибудь готовое — Mixpanel, Google Analytics или подобное.
Это основная идея, которая помогает раскидывать все по разным серверам и масштабировать. Во-первых, от этого сразу виден профит — даже если у вас один сервер и вы начинаете в фоне что-то выполнять, юзер получает ответ гораздо быстрее, но и впоследствии размазывать нагрузку, т.е. мы можем перетащить всю эту обработку на другой сервер, можно обрабатывать даже не на PHP. Например, в Stay.com картинки ресайзятся на Go.
Как?
Можно сразу взять Gearman. Это готовая штука для обработки в фоне. Есть под PHP библиотеки, драйвера… А можно использовать очереди, т.е. ActiveMQ, RabbitMQ, но очереди пересылают только сообщения, сами обработчики они не вызывают, не выполняют, и тогда придется что-то придумывать.
Общий смысл всегда один — есть основное ПО, которое помещает в очереди какие-то данные (обычно это «что сделать?» и данные для этого), и какой-то сервис – он либо достает, либо ему прилетают (если очередь умеет активно себя вести) эти данные, он все обрабатывает в фоне.
Перейдем к архитектуре.
Самое главное при масштабировании — это в проекте сделать как можно меньше связанности. Чем меньше связанности, тем проще менять одно решение на другое, тем проще вынести часть на другой сервер.
Связанность бывает в коде. SOLID, GRASP — это принципы, которые позволяют избежать связанности именно в коде. Но связанность в коде на разнос по серверам, конечно, влияет, но не настолько, насколько связанность доменного слоя с нашим окружением. Если мы в контроллере пишем много-много кода, получается, что в другом месте мы это использовать, скорее всего, не сможем. Нам непросто будет все это переносить из веб-контроллера в консоль и, соответственно, сложнее переносить на другие сервера и там обрабатывать по-другому.
Service-oriented architecture.
Есть 2 подхода разбиения систем на части:
- когда бьют на технические части, т.е., например, есть очередь, вынесли сервис очередей, есть обработка изображений, вынесли и этот сервис и т.д.
Это хорошо, но когда эти очереди, изображения и т.п. взаимодействуют в рамках двух доменных областей… Например, в проекте есть область Sales и область Customer — это разные области, с ними работают разные пользователи, но и у тех, и у тех есть разные очереди. Когда все начинает сваливаться в кучу, проект превращается в месиво;
- правильное решение — бить на отдельные логические части, т.е. если в областях Sales и Customer используется модель user, то мы создаем 2 модели user. Они могут читать одни и те же данные, но представляют они их немного по-разному. Если разбить систему таким образом, то все гораздо лучше воспринимается и намного проще все это раскидать.
Еще важно то, что части всегда должны взаимодействовать через интерфейсы. Так, в нашем примере, если Sales с чем-то взаимодействует, то он не пишет в БД, не использует общую модель, а с другими областями «разговаривает» через определенный контракт.
Что с доменным слоем?
Доменный слой разбивается на какие-то сервисы и т.п. — это важно для разработки приложения, но для масштабирования его проектирование не очень-то и важно. В доменном слое сверхважно отделить его от среды, контекста, в котором он выполняется, т.е. от контроллера, консольного окружения и т.д., чтобы все модели можно было использовать в любом контексте.
Есть 2 книги про доменный слой, которые всем советую:
- «Domain-Driven Design: Tackling Complexity in the Heart of Software» от Eric Evans,
- «Implementing Domain-Driven Design, Implementing Domain-Driven Design».
Также советую сходить по ссылкам:
В архитектуре, опять же, стоит придерживаться принципа share nothing, т.е. если вы хотите что-то сделать общим, делайте это всегда сознательно. Логику предпочтительно закидывать на сторону приложения, но и в этом стоит знать меру. Никогда не стоит, допустим, делать хранимые процедуры в СУБД, потому что масштабировать это очень тяжело. Если это перенести на сторону приложения, то становится проще — сделаем несколько серверов и все будет выполняться там.
Не стоит недооценивать браузерную оптимизацию. Как я уже говорил, из тех 300-600 мс, которые запросы выполняются на сервере, к ним прибавляется 300-600 мс, которые тратятся на клиенте. Клиенту все равно, сервер ли у нас быстрый, или это сайт так быстро отработал, поэтому советую использовать Google PageSpeed и т.д.
Как обычно, абстракция и дробление совсем не бесплатны. Если мы раздробим сервис на много микросервисов, то мы больше не сможем работать с новичками и придется много-много платить нашей команде, которая будет во всем этом рыться, все слои перебирать, кроме этого сервис может начать медленнее работать. Если в компилируемых языках это не страшно, то в PHP, по крайней мере, до версии 7, это не очень…
Никогда не действуйте вслепую, всегда мониторьте, анализируйте. Вслепую практически все решения по умолчанию неправильные. Думайте! Не верьте, что существует «серебряная пуля», всегда проверяйте.
Еще немного ссылок полезных:
На ruhighload.com в супердоступной форме расписаны практически все принципы, очень поверхностно, но классно, с рисунками и т.д. Советую там посмотреть обзоры того, как различные большие компании находили классные решения.
В англоязычном Интернете не знают слова «highload», поэтому там ищите по слову «sclability».
Часто это пробуют на живых серверах. Делать этого ни в коем случае не надо, есть такие классные штуки как DigitalOcean и Linode, где можно поднять ноду, развернуть там любое окружение, любой сервер, все потестить, заплатив за это 1-2 бакса, максимум.
P.S. Полные слайды этого выступления см. на slides.rmcreative.ru/2015/horizontal-scaling-highload/ и в блоге rmcreative.ru.
Контакты
» SamDark
Этот доклад — расшифровка одного из лучших выступлений на обучающей конференции разработчиков высоконагруженных систем HighLoad++ Junior за 2015 год.— Старьё! — скажите вы.
— Вечные ценности! — ответим мы.Также некоторые из этих материалов используются нами в обучающем онлайн-курсе по разработке высоконагруженных систем HighLoad.Guide — это цепочка специально подобранных писем, статей, материалов, видео. Уже сейчас в нашем учебнике более 30 уникальных материалов. Подключайтесь!
Ну и главная новость — мы начали подготовку весеннего фестиваля «Российские интернет-технологии», в который входит восемь конференций, включая HighLoad++ Junior.
Горизонтальное и вертикальное письмо в языках Восточной Азии — Википедия
Каллиграфия Су Ши. Читается по колонкам справа налево.Письмо многих языков Восточной Азии допускает как вертикальные, так и горизонтальные строки. Китайское, японское и корейское письма состоят из отдельных слоговых символов, каждый из которых занимает отдельный квадратный блок места. Традиционные письменности, родственные старомонгольской (тодо-бичиг и маньчжурское письмо) пишутся только вертикально.
Горизонтальное письмо называется (кит. трад. 橫排, упр. 横排, пиньинь: héngpái, палл.: хэнпай по-китайски; ёкогаки (яп. 横書き) или ёкогуми (яп. 横組み) по-японски и кароссыги 가로쓰기 или хинсо кор. 횡서?, 橫書? по-корейски.
Вертикальное письмо, соответственно, носит названия шупай кит. трад. 竪排, упр. 竖排, пиньинь: shùpái; татэгаки (яп. 縦書き) или татэгуми (яп. 縦組み); сероссыги 세로쓰기 или чонсо кор. 종서?, 縱書?.
Древние китайские, корейские и японские тексты записывались в вертикальные колонки, идущие справа налево. Порядок написания черт в иероглифах (ханьцзы, кандзи и ханча) предполагает именно такое ориентирование текста[источник?]. Вертикально писали на горизонтальных свитках, постепенно разворачивая его левую часть. Сегодня указанные языки чаще пользуются горизонтальным письмом слева направо. Переход на это направление письма осуществлялся в XIX—XX веках под влиянием европейских языков.
Императорский трон в Запретном городе в Пекине. На табличке наверху написано «正大光明» справа налево, а на остальных табличках текст ориентирован вертикально.Орфография при вертикальном письме немного различается. В горизонтально написанном тексте обычно пользуются арабскими, а в вертикальном — китайскими цифрами. Относительное расположение знаков препинания в вертикальном и горизонтальном тексте также различается: запятые и точки в вертикальном письме располагаются в верхнем правом углу условного квадрата, в который вписывают иероглифы, а в горизонтальном — в нижнем левом. Тире, скобки, вопросительный и восклицательный знаки, одоридзи и тёон поворачиваются при вертикальном написании на 90°.
Книги, в которых используется горизонтальное письмо, печатаются в привычном европейцам формате: обложка открывается справа налево. Вертикально написанные книги печатаются иначе: обложка открывается слева направо.
Мелкие надстрочные символы, например, японская фуригана или тайваньский чжуинь, указывающие чтение иероглифов, следуют направлению основного текста. В примере ниже фуригана приведена зелёным цветом.
Фестивальная палатка в Хаконе. Слово кастелла (カステラ) написано справа налево.Если в вертикальном тексте встречается неиероглифический текст, его печатают горизонтально или переворачивают так, чтобы низ букв был слева.
Горизонтальное письмо справа налево[править | править код]
Горизонтальное письмо раньше использовалось только при необходимости поместить буквы в горизонтальную линию, например, на вывесках. Горизонтальное письмо справа налево, таким образом, это просто вертикальное письмо, в котором колонки состоят из единственного символа.
Сегодня такое направление письма используется редко под влиянием европейских языков из-за трудностей с компьютерной поддержкой. Однако знаки и вывески зачастую пишут справа налево для придания оттенка архаичности и традиционности.
Китай[править | править код]
Первой печатной книгой c китайским текстом, набранным горизонтально, стал многотомный «Словарь китайского языка» Роберта Моррисона, опубликованный в 1815—1823 в Макао. Первое широко известное периодическое издание, использовавшее горизонтальные строчки, — журнал «Кэсюэ» (кит. трад. 科學, пиньинь: kēxué, буквально: «Наука»). В первом номере за январь 1915 года помещено объяснение:
Оригинальный текст (кит.)
本雜誌印法,旁行上左,並用西文句讀點之,以便插寫算術及物理化學諸程式,非故好新奇,讀者諒之。
Этот журнал напечатан слева направо и в нём используется западная пунктуация. Такой формат облегчает введение в текст математических и физических формул, а не избран в целях погони за модой. Мы просим прощения у наших читателей.
— 科學
В следующие десятилетия в печати встречалось всё больше слов европейских языков (в основном, английского), и читатели оценили удобство горизонтального текста, не требующего постоянного вращения листа с текстом. Это ускорило принятие горизонтального письма.
Текст на машинах Почты Китая (как китайский, так и английский!) с обеих сторон идёт от капота к дверям, слева направо на левой стороне машины и справа налево на правой стороне.С распространением горизонтального текста оба типа письма стали сосуществовать. Сторонники горизонтального письма аргументировали свою позицию тем, что при письме вертикально справа налево можно легко смазать написанное рукой. Кроме того, чтение вертикального текста более утомительно для глаз. Сторонники вертикального текста считали горизонтальное письмо отступлением от традиций древности.
После победы коммунистической революции в 1949 году правительство КНР приняло решение о переходе на горизонтальное письмо. Все газеты Китая сменили направление письма первого января 1956 года. В книгах используется горизонтальное письмо, хотя названия книг на переплётах и заголовки некоторых газет пишутся вертикально. Таблички с названиями государственных организаций всё ещё пишутся вертикально.
В Сингапуре вертикальное письмо тоже потеряло популярность. На Тайване, в Гонконге, Макао и среди пожилых китайцев-эмигрантов горизонтальное письмо становилось всё популярнее с 1990-х. К началу 2000-х, большинство газет в указанных странах и обществах поменяли направление текста на горизонтальное (слева направо), либо полностью, либо только в заголовках (текст при этом вертикальный).
В 2011 году официальные документы на китайском языке пишутся вертикально только на Тайване.
Япония[править | править код]
Горизонтальное письмо пришло в Японию в период Мэйдзи, когда японцы начали печатать словари европейских языков. Вначале книги печатались на смеси горизонтального европейского и вертикального японского текста, что предполагало постоянное вращение книги на 90° при чтении. Эта система была громоздкой, идея горизонтального письма постепенно принималась. Одна из первых публикаций, частично использовавших «ёкогаки» — Карманный иллюстрированный немецко-японский словарь (яп. 袖珍挿図独和辞書 сю:тинсо:дзу докува дзисё), опубликованный в 1885 году.
В начале перехода на горизонтальное письмо в период Мэйдзи в Японии недолго существовала форма миги ёкогаки (яп. 右横書き, дословно «правое горизонтальное письмо»), в котором знаки шли справа налево. Сегодня стандартом является хидари ёкогаки (яп. 左横書き, «левое горизонтальное письмо»). Миги ёкогаки была похожа на письмо по-арабски, в котором строка кончалась слева. Возможно, это была попытка адаптации традиционного написания строк справа налево, однако широкого распространения она так и не получила.
Корейский[править | править код]
Традиционные корейские тексты записывались вертикально справа налево. В 1980-е модным стало горизонтальное письмо слева направо.
В 1988 году Ханкёре стала первой корейскоязычной газетой, в которой использовалось горизонтальное письмо. Спустя несколько лет все крупные газеты стали печататься так же.
Упрощённый китайский[править | править код]
Лозунги на площади Тяньаньмэнь («Да здравствует Китайская Народная Республика!» и «Да здравствует дружба народов мира!») написаны упрощёнными китайскими иероглифами слева направо.В КНР после проведения реформы и принятия упрощённых форм иероглифов вертикальное письмо встречается очень редко, большинство книг печатают горизонтально слева направо, исключения — двуязычные словари и книги с арабским письмом, где китайский текст, написанный справа налево, может служить единству оформления. Написание справа налево встречается на правой стороне туристских автобусов и служебного транспорта, так как традиция предписывает помещать текст по направлению от капота к багажнику.
Вертикальный текст используется для создания традиционной атмосферы, например, в логотипах и на обложках книг; в работах по классической китайской литературе. Также вертикально записывается текст на узких знаках, например, табличках с названием школы, офиса полиции или государственных учреждений. Каллиграфия записывается только вертикально, вне зависимости от типа иероглифов. Вертикально может быть написано личное письмо или контактная информация на визитной карточке.
Японский и традиционный китайский[править | править код]
В странах, где используются традиционные формы иероглифов — Японии, Гонконге, Макао и Тайване — используется как вертикальный, так и горизонтальный текст. Полные формы иероглифов встречаются и в КНР: в книгах по древнекитайской литературе и на вывесках; в этих случаях также используется как вертикальное, так и горизонтальное письмо.
Пример газеты, напечатанной вертикально традиционными иероглифами, с горизонтальным заголовком слева направо. Обратите внимание на поворот латинского текста и арабских цифр.Вертикальное письмо обычно используется при печати художественной литературы, газет, манги и так далее. Названия книг на переплётах делаются только вертикально. Некоторые газеты печатают текст статей вертикально, а заголовки — горизонтально. Ноты для некоторых японских музыкальных инструментов (например, сякухати) записываются вертикально.
Научные тексты и учебники записываются горизонтально. Книги, в которых европейские языки используются параллельно с японским, могут быть напечатаны как вертикально, так и горизонтально. Компьютерные тексты обычно печатаются горизонтально.
Визитки (яп. 名刺 мэйси) часто печатают по-японски, вертикально с одной стороны и по-английски, горизонтально — с другой. На открытках и в письмах используются оба направления, но чем формальнее письмо, тем более вероятно, что его напишут вертикально. Адрес на конвертах обычно пишется вертикально: адрес отправителя справа, адрес получателя в центре.
Корейский[править | править код]
В Корее вертикальное письмо используется редко. Обычное направление письма — слева направо горизонтально. Вертикально пишутся только тексты, расположенные на узких поверхностях, в частности, названия книг на переплётах. При локализации на корейский западных фильмов корейские субтитры иногда располагаются в правой стороне экрана вертикально.
Литературный стандарт Южной Кореи предписывает использование разных знаков пунктуации для разных направлений письма. Западная пунктуация используется в горизонтальном тексте, а иероглифическая — в вертикальном. Иногда западная пунктуация встречается и в вертикальном тексте.
Вьетнамский[править | править код]
В современном Вьетнаме вертикальное письмо используется редко. Вьетнамский язык больше не записывается иероглифами (тьы-ном), а пишется латиницей «куок нгы». Исторически вертикальное письмо использовалось только для тьы-ном и китайских иероглифов (тьы-ньо). До исчезновения тьы-ном и тьы-ньо записывались горизонтально в обоих направлениях.
В орфографической системе тьы-нома и тьы-ньо не было символов пунктуации.
Монгольский[править | править код]
Письменность старомонгольского языка и её потомки, в том числе маньчжурское письмо, пишутся только вертикально слева направо. Иностранный текст, написанный алфавитом, разворачивается на 90°.
Каллиграфия[править | править код]
Восточноазиатская каллиграфия записывается почти исключительно вертикально.
Комиксы[править | править код]
Манга обычно печатается с вертикальным текстом. Повествование идёт справа налево, страницы листаются слева направо. Горизонтальный текст в манге может указывать на то, что персонаж говорит по-английски.
Некоторые локализаторы манги (например, Shonen Jump) сохраняют оригинальный порядок страниц, другие же отзеркаливают страницы для того, чтобы они шли так же, как в европейских книгах.
Первые компьютеры могли поддерживать только горизонтальное письмо слева направо, причём только латиницей. Сегодня большинство текстовых редакторов всё ещё не позволяет полноценно поддерживать вертикальное письмо.
Хотя отображение вертикального текста всё ещё не получило должного распространения, операционные системы, локализованные в Восточной Азии, поддерживают его печать. Шрифты для вертикального текста начинаются со знака @[1]. Пользователи редактируют документ как горизонтальный текст, а при печати он сам сориентируется вертикально.
- Нихонго дайхакубуцукан (яп. 日本語大博物館), автор Дзюнъитиро Кида (яп. 紀田順一郎 Кида Дзюнъитиро:), издатель: Just System (яп. ジャストシステム дзясуто сисутэму), ISBN 4-88309-046-9 (на японском), глава 9, описывает переход на горизонтальное письмо в современной Японии.
Горизонтальная и вертикальная интеграция в компаниях 2019
Если вы — владелец бизнеса и планируете вступить в крупный холдинг или альянс, эта статья непременно заинтересует вас. Я постаралась собрать в ней всю информацию о возможных выгодах и рисках вертикальной и горизонтальной интеграции компаний.
Горизонтальная интеграция
О ней говорят в том случае, если происходит объединение двух или нескольких предприятий внутри одной отрасли, производящих схожий продукт.
Основной целью такого объединения выступает поглощение фирм-конкурентов или установление контроля над ними и усиление тем самым позиций головной организации. Пример — поглощение одного производителя автомобилей другим.
Горизонтальная интеграция позволяет также снизить затраты на производственный процесс, расширить ассортимент, увеличить эффективность деятельности в целом. Есть и другие преимущества, например:
- Отсутствие необходимости расширения собственного производства, снижение себестоимости товаров, повышение их качества, рост производительности труда.
- Хорошая возможность продать предприятие тому, кто разбирается в производственном процессе данного типа. Многие предприниматели целенаправленно открывают компании, стимулируют конкуренцию, а затем выгодно их продают.
- Интеграция в горизонтальном направлении помогает предприятиям справляться со сложностями экономической трансформации.
Последствия горизонтальной интеграции
Объединение предприятий внутри отрасли может иметь ряд последствий, как положительных, так и негативных.
Уменьшение числа производителей
Как известно, чем больше количество продавцов на рынке, тем меньше каждый из них может влиять на ценообразование. При масштабной горизонтальной интеграции самостоятельных участников рынка остается немного. И здесь возможны два варианта:
- При низких входных барьерах стремление производителей поднять цены на товар сдерживается большой вероятностью появления новых конкурентов.
- Высокие барьеры входа на рынок с небольшим количеством производителей могут привести к появлению монополии, в руках которой окажется контроль над ценами и объемом выпуска продукции.
Таким образом, горизонтальная интеграция может стать причиной возникновения монополистов в той или иной отрасли, что является нежелательным последствием для экономики.
Синергический эффект
В результате объединения общий экономический эффект образовавшейся компании значительно превышает результаты деятельности каждого из предприятий в отдельности. Это происходит за счет снижения издержек на производственный процесс.
Снижение влияния на рынок поставщиков и потребителей
При большом количестве производителей и потребителей первым приходится бороться за крупные заказы. Это можно сделать только за счет снижения цен. Чтобы сохранить стоимость совей продукции на прежнем уровне, производителям необходимо укрупняться. И здесь помогает горизонтальная интеграция.
Аналогичная ситуация складывается и с поставщиками. В результате горизонтальной интеграции предприятий потребителей ресурсов на рынке становится меньше, конкуренция между поставщиками возрастает, что приводит к снижению цен на ресурсы и ТМЦ.
Получение конкурентных преимуществ
Подобные преимущества позволяют предприятиям реализовывать свою продукцию быстрее, чем конкуренты. Их создание сопряжено с использованием новейших технологий, наращиванием научно-технического потенциала. И то, и другое требует инвестиций на исследовательские работы, приобретение нового оборудования и т.п. Все это побуждает компании к горизонтальной интеграции.
Часто для увеличения уровня продаж требуется выходить на новые рынки в других регионах. Размещение филиалов и обособленных подразделений требует немалых вложений. Снизить издержки в этом случае также помогает интеграция.
Снижение уровня риска
Горизонтальная интеграция позволяет компаниям в значительной степени снизить уровень неопределенности на рынке. Поскольку фирмы, вступающие в объединение, сознательно отказываются от конкурентного противостояния, чтобы защитить свой производственный процесс и обеспечить стабильность своего положения.
Кроме того, термин «объединение» говорит о намерении оказывать друг другу помощь и поддержку. Поэтому, объединяясь в альянсы и холдинги, фирмы преследуют одну и ту же цель — обеспечить свою безопасность за счет коллективных действий.
Следует отметить, что в реальности интеграция приводит порой к иному результату — ослаблению одних членов альянса и выгоде другого. Зачастую здесь имеет место соперничество в рамках сотрудничества, которое проявляется в двух вариантах:
- Стремление участников объединения перенаправить прибыль из общей структуры себе.
- Желание усилить свои рыночные позиции за счет ослабления партнеров путем овладения информацией, переманивания специалистов и пр.
Поэтому при создании интегрированного предприятия важное значение приобретает разработка механизмов, позволяющих сдерживать соперничество, носящее деструктивный характер.
Рост затрат на систему управления
Когда организация действует на рынке самостоятельно, она сама принимает решения, от которых зависит величина прибыли.
При интеграции возникает объединенная структура, где управляющая компания дает указания остальным. И размер дохода членов объединения зависит от решений головной организации, что ведет к снижению заинтересованности первых в результативности своей работы.
В итоге возникает потребность создания дополнительных отделов и подразделений, занимающихся вопросами контроля и управления. А это сопряжено с дополнительными расходами.
Вертикальная интеграция компаний
Такая интеграция происходит за счет включения в структуру предприятия новых компаний, входящих в технологическую цепочку выпуска продукции.
Вертикально интегрированная компания — это объединение, все организации-члены которого контролируются общим владельцем, и каждая из них отвечает за производство конкретного продукта или услуги в рамках единого технологического процесса.
Вертикальная интеграция может происходить по направлению к поставщикам — «назад» или к потребителю товара — «вперед».
Интеграция «назад» означает, что компания стремится контролировать производителей сырья и ресурсов, необходимых для технологического процесса. Такой контроль дает возможность в срок получать сырье должного качества и по приемлемым ценам. Иначе она называется восходящей интеграцией. Пример — пекарня присоединяет к себе мукомольное предприятие.
Интеграция «вперед» подразумевает установление контроля над компаниями, находящимися ближе к конечному потребителю. Другое название такой интеграции — нисходящая. Пример — пекарня присоединяет к себе розничный магазин.
Последствия вертикальной интеграции
Так же, как и в отношении горизонтальной интеграции, влияние вертикальной на рынок и его функционирование может быть различным. С одной стороны, она позволяет эффективнее использовать ресурсы, а с другой — ограничивает конкуренцию.
Для конкретной организации вертикальная интеграция полезна тем, что она снижает издержки на производство и сбыт путем включения этих стадий в единый технологический процесс. Также она позволяет приобрести надежные каналы поставки ресурсов и сбыта готовой продукции.
Экономия от соединения этапов производства
Получая контроль над поставщиками, фирма приобретает возможность уменьшить издержки на хранение запасов сырья, поскольку поставки приобретают стабильный характер.
Структуры с вертикальной интеграцией имеют возможность сэкономить при покупке сырья у внешних поставщиков, а также при заключении сделок с рекламными и торговыми агентствами за счет внутрифирменных транзакций.
При наличии единой административной системы появляется экономия на управлении. Снижение финансовых издержек возникает при использовании выгодных оптовых скидок.
Антиконкурентные последствия
Нисходящая интеграция, с одной стороны, дает эффективность сбыта, а с другой — ограничивает доступ на рынок конкурентов. Аналогичное явление характерно для восходящей интеграции. Она гарантирует стабильность поставок сырья, но не позволяет сотрудничать с этим поставщиком другим компаниям.
Отсутствие доступа к рынкам сбыта или источникам сырья образует барьер входа на рынок для потенциальных конкурентов.
Заключение
- Вертикальная и горизонтальная интеграция — это два способа получения компаниями конкурентных преимуществ и обеспечения себе стабильного положения на рынке.
- Горизонтальная интеграция подразумевает поглощение одним производителем другого, функционирующего в той же отрасли и находящегося на том же уровне производственного процесса. Вертикальная интеграция предполагает присоединение компаний, являющихся различными звеньями процесса выпуска конечного продукта.
- Оба вида интеграции имеют различные последствия как для фирм-участников, так и для рынка в целом. Наиболее негативной ситуацией, которая может сложиться на рынке в результате объединения компаний, является ограничение конкуренции и появление предприятия-монополиста.
- Участники интеграционных объединений, как правило, менее подвержены влиянию рыночных колебаний, имеют меньшие издержки на производство и больше воможностей сбыта конечного продукта.
Вертикально-горизонтальная иллюзия — Википедия
Материал из Википедии — свободной энциклопедии
Вертикально-горизонтальная иллюзияВертикально-горизонтальная иллюзия — это тенденция наблюдателей переоценивать длину вертикальной линии относительно горизонтальной линии такой же длины[1]. Она включает отрезок, поделённый пополам, который заставляет биссектрису отрезка казаться длиннее, чем разделённый отрезок. Люди часто переоценивают или недооценивают длину биссектрисы по сравнению с разделённым пополам отрезком такой же длины[2]. Это происходит, даже если люди знают, что линии имеют одинаковую длину.
Отмечены межкультурные различия в восприятии вертикально-горизонтальной иллюзии. Люди из западных культур и люди, живущие в городских ландшафтах, проявляют большую восприимчивость[прояснить], чем люди, живущие в восточных или открытых ландшафтах[3].
Типы вертикально-горизонтальных иллюзий[править | править код]
Существует несколько разных конфигураций вертикально-горизонтальной иллюзии. Три конфигурации, которые создают наибольшую величину иллюзии, — это конфигурация L, конфигурация плюс (+) и конфигурация с перевернутой буквой Т. Из этих трех конфигурация перевернутая буква T создаёт наибольшую величину иллюзии. Когда линия биссектрисы Т-иллюзии построена горизонтально, величина иллюзии уменьшается[4].
Постепенное уменьшение погрешности вертикально-горизонтальных иллюзий происходит по мере того, как возраст участников увеличивается с восьми до четырнадцати лет[5]. Гоф и Мешьери объясняют это уменьшение ошибки улучшенной способностью ребёнка обнаруживать и децентрировать свое внимание на визуальном дисплее, то есть позиционировать свое тело по-другому, чтобы получить другие перспективы[6] Дети, которые проявили большую личную независимость, речевое развитие и способность к визуальному сканированию, оказались более эффективными и находчивыми в своей способности оценивать вертикальные и горизонтальные иллюзии.[7].
Кросс-культурные различия в восприимчивости к вертикально-горизонтальной иллюзии были отмечены в нескольких исследованиях. Люди, живущие в развитых городских агломерациях, проявляют большую восприимчивость, чем люди, живущие в сельской местности[8]. Объяснение возможно заключается в том, что жители сельской местности больше привыкли жить в круглых домах на плоских равнинах или в кустарниковых степях. Сельские люди живут на более свободных расстояниях, чем люди, живущие в высокоразвитых, коммерциализированных культурах. Однако различия в силе вертикально-горизонтальной иллюзии или связанной с ними иллюзии Мюллера-Лайера для этих групп в лучшем случае противоречивы[9].
Участникам с односторонним пространственным игнорированием было труднее воспринимать равенство линий в вертикально-горизонтальной иллюзии по сравнению с таковыми в контрольной группе. Исследование Монталамбера, среди прочего, утверждает, что мы воспринимаем эти типы иллюзий, используя левое полушарие нашего мозга[10].
Гендерные различия также были обнаружены в отношении вертикально-горизонтальных иллюзий. Исследование Расму в 1999 году показало, что мужчины превосходят женщин в восприятии вертикально-горизонтальной иллюзии. Результаты этого изменения возможно связаны с асимметрией полушарий и/или биологических различий между мозгом мужчин и женщин[11]. Хотя было установлено, что женщины имеют более высокий уровень иллюзии при выполнении упражнений с вертикально-горизонтальной иллюзии, это не означает, что мужчины лучше судят о расстоянии, чем женщины, поскольку исследования по этой теме были минимальными. Необходимы дополнительные исследования, чтобы установить значительную связь между величиной иллюзии и реальными задачами. Эти различия также могут быть связаны с различиями в социальном обучении мужчин и женщин.
Существуют функциональные применения вертикально-горизонтальной иллюзии. Эллиот и соавторы изучали эффекты горизонтально-вертикальной иллюзии и то, как воспринимаемая иллюзия может влиять на зрительно-моторную координацию, то есть двигательную активность, зависящую от зрения[12]. Исследование было специально сфокусировано на том, как воспринимаемая высота ступеньки, управляемая вертикально-горизонтальной иллюзией, влияла на стратегию шага, как показано по подъёму пальцев стопы при прохождении ступеньки. Их результаты показали повышенный подъём пальцев стопы в условиях, когда иллюзия была воспринята, что привело их к выводу о наличии корреляции между визуальной иллюзией и зрительно-моторной координацией. Это наблюдение может найти применение в реальном мире путем разработки более эффективных стратегий безопасности в таких местах, как дома престарелых.
- ↑ Robinson, J.O. The psychology of visual illusion (неопр.). — Courier Dover Publications, 1998. — С. 96. — ISBN 978-0-486-40449-3.
- ↑ de Montalembert, M., & Mamassian, P. (2010). The Vertical-Horizontal Illusion in Hemi-Spatial Neglect. Neuropsychologia, 48(11), 3245-3251. DOI:10.1016/j.neuropsychologia.2010.07.002
- ↑ Shiraev, E., & Levy, D. (2007). Cross-Cultural Psychology, Third Edition. Pearson Education, Inc., page 110
- ↑ Wolfe, U., Maloney, L.T., & Tam, M. (2005). Distortions of perceived length in the frontoparallel plane: Tests of perspective theories. Perception & Psychophysics, 67(6), 967—979.
- ↑ Winch, W.H. (1907). The Vertical-Horizontal Illusion in School Children. British Journal of Psychology II, 220—225
- ↑ Gough, Harrison & Meschieri, Luigi (1971). Cross-Cultural Study of Age-Related Differences in Perceptual Acuity. Journal of Consulting and Clinical Psychology, 37(1), 135—140.
- ↑ Gough, Harrison & Meschieri, Luigi (1971). Cross-Cultural Study of Age-Related Differences in Perceptual Acuity. Journal of Consulting and Clinical Psychology, 37(1), 135—140
- ↑ Mast, F.W., & Oman, C.M. (2004). Top-Down Processing and Visual Reorientation Illusions in a Virtual Reality Environment. Swiss Journal of Psychology, 63(3), 143—149. DOI:10.1024/1421-0185.63.3.143
- ↑ Robinson, J.O. (1972). The Psychology of Visual Illusion. Oxford, England: Hutchinson University Library.
- ↑ Rasmjou, S., Hausmann, M., & Güntürkün, O. (1999). Hemispheric Dominance and Gender in the Perception of an Illusion. Neuropsychologia, 37(9), 1041—1047. DOI:10.1016/S0028-3932(98)00154-7
- ↑ Rasmjou, S., Hausmann, M., & Güntürkün, O. (1999). Hemispheric Dominance and Gender in the Perception of an Illusion. Neuropsychologia, 37(9), 1041—1047. DOI:10.1016/S0028-3932(98)00154-7
- ↑ Elliott, D.B., Vale, A., Whitaker, D., & Buckley J.G. (2009). Does My Step Look Big In This? A Visual Illusion Leads To Safer Stepping Behaviour. PLoS ONE 4(2): e4577. DOI:10.1371/journal.pone.0004577
Горизонтальное и вертикальное развитие карьеры
29 май 2015Наиболее распространенное определение «карьеры» — продвижение вперед в определенной сфере деятельности, например, получение больших полномочий, более высокого статуса, престижа и т.д. Под словосочетанием «сделать карьеру» понимается также достижение престижного положения в обществе и высокого уровня дохода.
Для каждого человека решение строить карьеру – это серьезный и ответственный шаг. Встав на этот путь, человек стремиться к накоплению знаний, практического опыта и навыков. Потребность в самоутверждении будет расти и появится желание достигнуть более высокого статуса, еще большей независимости. Без планирования здесь не обойтись.
И в подобной ситуации необходимо грамотно оценивать свои потребности и социально-эконом
Поэтому очень важным для сотрудника является понимание того, как он будет продвигаться в системе должностей и рабочих мест. А чтобы не оказаться в плену собственных заблуждений и неведения на помощь приходят такие понятия, как «вертикаль и горизонталь». Что же это такое?
Вертикаль и горизонталь
Часто кандидаты на вопрос рекрутера «Почему Вы хотите работать именно в нашей компании?» отвечают: «У Вас есть ,необходимая мне, перспектива карьерного роста». Аналогичный ответ можно услышать и на вопрос, касающийся причин ухода кандидата с предыдущего места работы: «отсутствие карьерных перспектив». Далее следует вполне логичный вопрос: «Каким образом Вы планируете карьерный рост?». И вот тут многие соискатели начинают теряться и не могут дать четкого ответа. Конечно же есть шаблонные ответы , такие как «хочу руководить отделом», «хочу быть директором». Здесь важно помнить , что «карьера» подразумевает самые разнообразные варианты профессиональног
Горизонтальная карьера
Далеко не всем интересна должность руководителя, многие люди хотят просто совершенствовать
Чаще всего карьера вширь характерна для экспертов, научных сотрудников, консультантов, профильных специалистов, которые являются лучшими в своей области. Нередко они совмещают такую свою деятельность с работой в другой компании или в последующем открывают свои собственные фирмы.
«Активно зарекомендовали себя» в горизонтальной карьере и дизайнеры, программисты, журналисты, копирайтеры и др. Эти специалисты профессионально совершенствуется в рамках своей должности, но кресло начальника в ближайшем будущем они, как правило, занимать не собираются.
Плюсы горизонтального развития карьеры
-
возможность по совместительству руководить проектом или преподавать
-
вхождение в круг собственников фирмы
-
Горизонтальная карьера подразумевает и расширение полномочий, ответственности, повышение статуса, увеличение бонусов и прямой оплаты труда
Вертикальная карьера движение вверх по служебной лестнице
Вертикальная карьера — это повышение в должности с повышением уровня оплаты труда. Подобная схема вида карьеры достаточно проста, но таит в себе ряд нюансов. Среди самых распространённых трудностей стоит отметить : готовность «идти по головам», пренебрежение к личной жизни, явное и тайное подхалимство перед вышестоящим руководителем и т.д. Именно вертикальная карьера неразделима с понятием «карьерная лестница».
Пример вертикальной карьеры финансиста
-
Выпускник финансового института работает некоторое время помощником бухгалтера
-
Бухгалтер
-
главным бухгалтером
-
финансовым директором заместителем генерального директора
-
генеральным директором
Для вертикальной карьеры обязательными являются следующие качества:
— Энергичность
— Способность быстро ориентироваться в новой информационной среде;
— Умение учитывать мелочи;
— Умение выделять главное;
— Заинтересованнос
— Умение принимать решения и нести за них ответственность;
— Коммуникабельнос
— Лидерские и управленческие способности.
Стремящийся к вертикальной карьере работник должен наращивать как профессиональные
Стоит отметить что, эти два понятия индифферентны по отношению друг к другу, и созданы для помощи более четкого осознания , чем именно вы хотите заниматься в жизни. Важно четко осознать профессиональные способности , личные качества и амбиции. И каждый тут решает для себя самостоятельно «вширь» или «ввысь»?
Однако хотелось добавить, что что горизонтальная карьера на определенном этапе Вашей профессиональной деятельности может послужить отличным «трамплином» к восхождению по вертикале. Ведь опыт, умения, знания приобретаются и совершенствуются не количеством «повышений», а качеством работы по данной специальности.
«Вертикальное» и «горизонтальное» управление действиями.
Выполнять обязанности, проекты и действия можно двумя способами — «горизонтальным» и «вертикальным». «Горизонтальный» контроль подразумевает связь всех процессов, в которых вы участвуете.
Представьте, что ваше сознание постоянно сканирует окружающий мир, как полицейский радар — он может задержаться на одной из тысяч разных позиций, привлекающих или требующих вашего внимания в течение суток: аптека, домработница, тетушка Марта, стратегическое планирование, обед, завядшее комнатное растение, недовольный заказчик, нечищеные туфли. Вам надо купить марки, заказать номер в гостинице, отменить совещание, посмотреть вечером кино. Вы, быть может, удивитесь, какое количество вещей постоянно занимают ваш мозг и какое количество вещей вы должны сделать в один день. Вам нужна удобная система, которая будет содержать цепочку этих действия, информацию о каждом из них, предоставлять эту информацию по требованию и позволять вам переключаться с одного действия не другое легко и просто.
«Вертикальный» контроль, напротив, управляет движением вниз и вверх по цепочке индивидуальных задач и проектов. Например, ваш внутренний «полицейский радар» наталкивается на ваш следующий отпуск, который вы обсуждали с супругой за обедом: куда и когда вы поедете, что вы будете там делать, как подготовиться к путешествию и т.д.; или же вы с начальником собираетесь провести некоторую реорганизацию отдела; или вы хотите собраться с мыслями перед предстоящим телефонным разговором с заказчиком. Это и есть «планирование задач» в широком смысле. это фокусировка на одной единственной цели, ситуации, персоне и конкретизация всего, что с этим так или иначе связано, будь то идеи, приоритеты, детали или последовательность обстоятельств — словом, все, что вам может понадобиться для решения проблемы.
Цель горизонтального и вертикального управления одна и та же: очистить сознание и выполнить задачи. Правильное управление помогает вам чувствовать себя в водовороте работы и жизни комфортно, а правильная концентрация помогает вам прояснять ситуацию и все сопутствующие детали.
Основное изменение: выкинуть все это из головы.
Невозможно достичь чувства расслабленности и спокойствия, которые я тут наобещал, если держать все дела в голове. Как вы увидите далее, индивидуальные линии поведения, описанные в этой книге — это то, что вы уже делаете. Разница между тем, что делаю я, и тем, что делают другие в том, что я организую сто процентов «разного», используя инструменты организации, которые у меня под рукой, а не в голове. И это правило распространяется на все дела — мелкие или крупные, личные или профессиональные, срочные или несрочные. На все.
Как правило, то, что вы напридумывали, находится в ужасающей диспропорции с тем, что уже сделано.
Я уверен, что рано или поздно, в вашем проекте или в жизни наступит ситуация, когда вам придется засесть с ручкой и бумагой и составить список. Если так оно и произошло, то вот вам и точка отсчета, о которой я толкую. Однако большинство людей усаживаются за составление списка, только тогда, когда дел навалилось невпроворот и надо, в конце концов, хоть что-то сделать. Они составляют список, охватывающий только какую-то отдельную область, которая их более всего беспокоит. Если вы все же составили список, охватывающий всю картину работы или жизни целиком (а не только по самым срочным делам), то это стиль управления «черный пояс» (зона).
Нет никакого смысла думать одну и ту же мысль дважды. Если только вам не доставляет удовольствие сам процесс.
Я стараюсь принять интуитивные решения, основываясь на имеющихся аргументах, а не раздумывать над самими аргументами. Мне необходимо один раз заранее хорошенько все обдумать, а потом уж я принимаю решение в один момент. Я не люблю тратить время, обдумывая вещи больше, чем единожды. Это просто неэффективное использование творческой энергии, источник усталости и неудовлетворенности.
И подделать обдумывание вы тоже не сможете. Ваш разум будет продолжать работать над тем, что находится в подвешенном состоянии. Но есть и границы того, сколько нерешенных проблем могут крутиться в мозгу до тех пор, пока он не взорвется.
Часть вашего сознания, называемая краткосрочной памятью — это та часть, которая умудряется удержать все недоделанные дела: непринятые решения и неорганизованное «разное» — работает почти как RAM (Random Access Memory) вашего компьютера. Ваш разум, как и монитор компьютера — это всего лишь инструмент концентрации, а не хранилище данных. Вы можете думать только о двух или трех вещах одновременно. Но незаконченные дела будут сохранены в пространство краткосрочной памяти. также, как и RAM, разум обладает ограниченными возможностями. Многие люди держат RAM во взрывоопасном состоянии. Они совершенно обезумели, способность концентрироваться нарушена из-за их же собственной умственной перегрузки.
Например, переключался ли за последние несколько минут ваш мозг на что-то, не имеющее никакого отношения к тому, о чем вы здесь читаете? Возможно. На что именно? Скорее всего на какую-то дыру, на какое-то неоконченное дело. И вот это самое неоконченное дело выбралось из глубин сознания и наорало на вас, напоминая о себе — вот и все. Что вы можете с этим поделать? Ну, хотя бы записать это дело и поставить для него напоминание — и это гораздо полезнее, чем переживатьза него. Правда, это не самая эффективная линия поведения: никакого прогресса.
Непросто вести войну с тем, у кого аванпост в вашей голове. Салли Кемптон.
Действительно серьезная проблема заключается в том, что ваше сознание не перестает напоминать вам о делах тогда, когда вы все равно ничего не можете с этим поделать. Как только вы поставите перед собой задачу и поместите её в RAM, какая то часть вас будет постояннооб этом думать. Поэтому задачу, которую вы ставите себе, нужно сделатьпрямо сейчас. Строго говоря, как только у вас в памяти появляются 2 задачи, то это уже ваша личная ошибка — вы же не можете выполнить их обе одновременно. Это порождает фактор всепроникающего стресса и никак от его не избавиться. Но многие люди так долго пребывали в этом состоянии, что оно стало для них нормой. Оно постоянно, как сила притяжения — те, кто подвержены такому стрессу, даже не подозревают о нем. Единственная возможность узнать, какому сильному давлению они были подвержены — это избавиться от него и почувствовать себя совсем иначе. Можете ли вы избавиться от такого стресса? Спорим? Оставшаяся часть книги расскажет как.
виды и примеры. Вертикальная и горизонтальная мобильность
Что такое социальная мобильность
Социальная мобильность — это перемещение отдельных людей и групп в социальной структуре общества, изменение их социального статуса.
Перемещение из одного социального слоя в другой называют вертикальной мобильностью. Например, повышение или понижение в должности.
Перемещение в пределах одного и того же социального слоя — горизонтальной мобильность. Например, переезд в другой город с сохранением должности и доходов.
Основоположник теории социальной мобильности — русско-американский социолог Питирим Сорокин.
Питирим Сорокин (1889-1868). Фото 1917 года
Социальная мобильность может быть высокой или низкой. В традиционных обществах она сильно ограничена — люди привязаны к наследственным сословиям или кастам, перейти в другой слой почти невозможно. В условиях индустриального общества мобильность резко возрастает, место в социуме все больше определяется способностями и усилиями самого человека: образованием, заработком, деловой хваткой.
Показатели, позволяющие сравнить уровень социальной мобильности в разных обществах — это:
Скорость социальной мобильности — вертикальная «дистанция», которую индивид проходит вверх или вниз за определенное время.
Интенсивность социальной мобильности — число индивидов, меняющих вертикальные и горизонтальные позиции за определенное время.
Социальная мобильность может сопровождаться появлением маргиналов — людей, не относящихся к определенной группе, находящихся в промежуточном положении.
Вертикальная социальная мобильность. Примеры
Вертикальная социальная мобильность — это движение вверх или вниз по социально-экономической шкале, смена места в социальной иерархии.
- Восходящая мобильность — это движение вверх. Например, продвижение менеджера по карьерной лестнице, повышение статуса бизнесмена вместе с ростом доходов, получение очередного воинского звания офицером и т.п.
- Нисходящая мобильность — это движение вниз. Например, понижение в звании или должности, разорение и т.п. В крайних случаях нисходящая мобильность ведет к люмпенизации — превращению человека в деклассированный элемент.
Depositphotos
Горизонтальная социальная мобильность. Примеры
Горизонтальная социальная мобильность — это географическое перемещение или смена позиций на одном социально-экономическом уровне, без изменения статуса. Например, переход IT-специалиста на работу из одной компании в другую или переезд в другой город с сохранением должности и уровня дохода.
Одна из форм горизонтальной мобильности — миграция. Миграция — это перемещение людей из одного региона или страны в другой регион или страну. Например, трудовая миграция из Средней Азии в Россию в поисках более выгодной работы.
Рабочий-мигрант в Москве. Фото: РИА Новости / Михаил Воскресенский
Типы социальной мобильности
Помимо вертикальной и горизонтальной, социальную мобильность можно делить на виды по другим критериям:
Индивидуальная мобильность — это перемещение одного человека. Например, отъезд студента на стажировку за границу или присвоение ученого звания.
Групповая мобильность — это перемещение целого коллектива. На мобильность больших социальных групп могут влиять революции, войны, смена политического режима и т.п. Например, в Советской России после 1917 года резко упал статус бывших дворян, купцов, священнослужителей.
Межпоколенная мобильность — это сравнительное изменение статуса у представителей разных поколений. Например, если сын рабочего становится профессором — это межпоколенная мобильность.
Внутрипоколенная мобильность — это смена статуса в рамках одного поколения. Например, когда бывший рабочий получает высшее образование и становится инженером.
Организованная социальная мобильность — это перемещения человека и групп под управлением государства. Например, раскулачивание в Советском Союзе — разорение и уничтожение богатых крестьян. Или наоборот — создание рабфаков для обучения пролетариев в университетах.
Структурная социальная мобильность вызывается изменениями в структуре экономики, происходит помимо воли отдельных индивидов. Например, автоматизация производства приводит к тому, что неквалифицированные заводские рабочие становятся безработными, вынуждены менять профессию.
Каналы социальной мобильности: социальные лифты и их виды
Пути, по которым перемещаются люди из одних социальных групп в другие, называют каналами социальной мобильности или социальными лифтами. В открытых обществах существует большое количество социальных лифтов. В закрытых обществах смена статуса не поощряется, существуют барьеры на этом пути.
Питирим Сорокин выделял восемь лифтов вертикальной мобильности:
Армия
Церковь, религиозные организации
Школа, образование и наука
Политика: правительственные группы, политические партии
Искусство, шоу-бизнес, спорт
СМИ: пресса, телевидение, радио
Экономические организации: собственность, бизнес
Семья и брак
Картина Павла Федотова «Сватовство майора». Герой картины — небогатый дворянин-офицер, который хочет жениться на купеческой дочке и тем самым поправить дела.
Выберите верные суждения о социальной мобильности
Чтобы успешно сдать ЕГЭ по обществознанию, необходимо понимать суть социальной мобильности, отличать вертикальную мобильность от горизонтальной, уметь привести примеры. Разберем ряд заданий из тестов ЕГЭ прошлых лет.
Задание 1. Выберите верные суждения о видах социальной мобильности и запишите цифры, под которыми они указаны.
1) Внутрипоколенная мобильность предполагает изменение социального статуса от одного поколения к другому.
2) Наряду с индивидуальной мобильностью существует и групповая мобильность.
3) Повышение человека в должности служит примером горизонтальной восходящей мобильности.
4) С переходом к индустриальному обществу социальная мобильность возрастает.
5) Неоднократное изменение человеком на протяжении жизни своего социального статуса служит проявлением межпоколенной мобильности.
Ответ: 24
Задание 2. Выберите верные суждения о видах и особенностях социальной мобильности и запишите цифры, под которыми они указаны.
1) Перемещение человека из одной социальной группы в другую без изменения статуса служит проявлением горизонтальной социальной мобильности.
2) Социальная мобильность выражается в изменении индивидом своего общественного положения.
3) Вертикальная социальная мобильность всегда ведет к повышению социального статуса личности.
4) Различают два вида социальной мобильности: горизонтальную и восходящую.
5) Средневековому обществу была присуща низкая социальная мобильность.
Ответ: 125
Задание 3. Аналитик коммерческого банка А. уехал из Москвы в Париж на двухлетнюю стажировку в известной французской финансовой компании. А. будет во Франции работать в той же должности, что и в Москве, получать примерно такую же зарплату. Выберите в приведённом ниже списке характеристики социальной мобильности, относящиеся к данному примеру, и запишите эти цифры, под которыми они указаны.
1) индивидуальная
2) восходящая
3) миграция
4) горизонтальная
5) нисходящая
6) межпоколенная
Ответ: 134
Задание 4. Студент работает над рефератом о вертикальной социальной мобильности. Какие примеры из перечисленных ниже он может рассмотреть в своей работе? Запишите цифры, под которыми эти примеры указаны.
1) переход человека с должности рядового школьного учителя на должность директора школы
2) переход человека из квалифицированных рабочих («синих воротничков») в представители среднего класса («белые воротнички»)
3) смена профессии отца на другую профессию, без улучшения или ухудшения его социально-экономического статуса
4) отток рабочей силы из производства в сферу обслуживания
5) рост числа людей, работающих в нескольких местах
6) достижение человеком высокого положения в обществе благодаря службе в армии
Ответ: 126
Задание 5. Выберите верные суждения о каналах вертикальной социальной мобильности и запишите цифры, под которыми они указаны.
1) Каналы вертикальной социальной мобильности стабильны и не зависят от развития общества.
2) Основным каналом вертикальной социальной мобильности в современном обществе является образование.
3) В качестве каналов вертикальной социальной мобильности могут выступать политические партии.
4) Каналы вертикальной социальной мобильности позволяют людям достигать более высокого социального статуса независимо от личных усилий.
5) Функционирование каналов социальной мобильности снижает чувство социальной несправедливости и обеспечивает стабильность общества.
Ответ: 235
Задание 6. Назовите любые три «лифта» вертикальной социальной мобильности и проиллюстрируйте примером каждый из них. (Каждый пример должен быть сформулирован развернуто).
Ответ:
1) Брак с представителем более высокой социальной страты. Например, бедный студент женится на богатой вдове, его социальный статус повышается.
2) Профессиональный лифт (карьера). Например, успешный сотрудник банка становится главой отделения.
3) Армия. Например, рядовой после года службы получил звание сержанта, назначен командиром отделения.