Диагональ ноутбука около 4 чего учи ру

Обновлено: 04.07.2024

16 ноября стартанула интересная олимпиада по программированию.

Продлится пробный тур до 29.11.21.

Времени немного для тренировки, впереди основной тур и финал.

Заданий для ребят младших классов всего три.

Первое задание называется Лабиринт

Разберем обучающие задачи.

Первые шаги: необходимо помочь Грише собрать три звезды. Для того, чтоьы Гриша перемещался, необходимо использовать стрелки на клавиатере (вперёд, влево, вправо).

Итак, исходно Гриша стоит вначале посередине на серой клетке. Чтобы собрать все звезды пошаговый путь героя такой: поворачиваем налево, времед на одну клетку, ещё вперед, так по прямой доходим до первой звезды, далее поворот направо, два шага, теперь вперед две клетки, там находится вторая звезда, теперь по прямой три клетки и поворот налево, две клетки и на финиш, там третья звезда.

Это мой путь, но вариантов собрать звезды предостаточно.

Садимся в машину: также собираем звезды. Но перемещаться на машине можно только по серой дорожке. Машина едет по написанному коду.

Итак, Гришу садим в машину, едем по серой дорожке, собираем звезду, далее, перед белой дорожкой, оставляем машину и идем пешком, собирая звезду.

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

Через парковку: напишем код для машины, добравшись до финишной звезды, при этом соберём все звёзды.

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

Для 3, 4 классов:

Для 1, 2 классов


Второе задание называется Добраться, экономя ресурсы

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

Пишем правильный код, он должен быть таким для 3, 4 классов

Для 1, 2 классов


Третье задание Препятствия для Заврио

Необходимо добавить на поле 12 препятствий таким образом, чтобы путь Заврио до сокровищ был не короче 27 клеток.

Правильно выполненное задание для 1, 2, 3, 4 кл. выглядит следующим образом, смотри скриншот на сайте Знайка Учит.ру


Образовательный портал Учиру. Есть ли смысл покупать полную версию? Весомые проблемы, с которыми мы столкнулись после прикрепления к классу.


На образовательном портале [ссылка] я зарегистрировала сына в мае 2020 года, в 6 лет, он тогда еще не ходил в школу. Этому поспособствовал карантин - если первый месяц "свободы" от кружков, в которые ходил сын, было еще радостно, то потом ребенок заскучал.

Моих педагогических навыков откровенно не хватало, чтобы его полноценно занять дома. И я решила поискать среди онлайн-платформ чего-то такого, чтобы ребенку было и интересно, и познавательно.

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


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

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

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


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


Базовый курс на год по основным предметам обошелся в 3390 р со скидкой. В эту стоимость вошли следующие предметы:


Но это для 1-го класса, с 5-го есть дополнительно география, биология, физика, химия, обществознание и история.

А также мультфильм Заврики - очень познавательный, развивающие игры, где надо не просто тупо зависать в монитор, а проводить какие-то вычисления и включать голову.


На портале регулярно проводятся олимпиады, за которые можно получить награды в виде дипломов (они, конечно, не играют никакой роли, но ребенок радуется), доступа к дополнительным играм и приятное для родителей - скидку для дальнейшей оплаты.

Есть и видеоуроки.

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

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


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


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

Пример такой задачки:


Сына очень увлекло программирование - это и вправду интересно. В этом курсе требуется реально написание программ - причем они так усложняются, что я сама, помогая ему, не могла с первого раза правильно написать задачу.


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

Но вот английский, я заметила, ему не очень интересен. И он просто механически нажимает на кнопки, не вникая, не повторяя вслух - грош цена, конечно, таким самостоятельным занятиям. И с русским та же история.

Пример карточки английского языка:


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

Каждый раздел поделен на подразделы:


Те карточки, которые ребенок прошел, будут цветные, непрошедшие - бесцветные, поэтому не запутаетесь.


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

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

Плавно перешли к проблемам.

С ними я столкнулась, когда ребенок пошел в 1-й класс. Мы продолжали заниматься, уже по программе второго класса.

Проблема номер раз

В октябре первоклассники ушли на каникулы. До этого речи об учиру не было. И во время каникул учительница присылает логин и пароль - она зарегистрировала каждого ученика, за что спасибо ей огромное. Но дело в том, что у нас уже был аккаунт, причем с купленной программой. А в том аккаунте, который создала учительница есть ограничение - опять эти быстротечные бесплатные 20 заданий. А потом все - нужно покупать доступ.

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

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

Но и мне обидно - ведь я уже заплатила за годовой доступ.

Месяц я просила код для прикрепления к классу - не знаю, почему-то учительница долго не могла понять, как прикрепить ребенка. А без нее и этого кода другим способом это сделать невозможно. Но в итоге получилось - и мы перешли с аккаунта с купленной годовой подпиской в класс.

Проблема номер два

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

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

Вся программа изменилась опять на первый класс, который мы уже прошли. И теперь, как родитель, я не могу поменять ее. То есть если ребенок не прикреплен к классу, вы можете сами менять программу. А вот если прикреплен - не можете. И служба поддержки не может. Это может только учитель.

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

Единственное - я сама могу изменить только английский язык, но сыну надоедает решать только его, тем более он его не очень-то любит. Поэтому желания садиться за [ссылка] все меньше и меньше.

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

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

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

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

UPD

Программу все же удалось сменить на второй класс - служба поддержки после третьего письма все же сами сменили класс, и теперь ребенок может проходить марафон.

Но вообще учиру здорово подготовил ребенка к школе - он дал базовые знания, ориентацию по предметам. Я вижу, что ребенок лучше справляется с программой и не испытывает затруднений. но одновременно ему и не скучно - за это жирный плюс.

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

Пандемия – это совсем не каникулы. А шанс неплохо заработать для обучающих интернет-платформ. И для тех, кто за ними стоит.

С 23 марта все российские школы перешли на дистанционное обучение, и вместо того, чтобы горбиться за партами, дети портят зрение за планшетами. Что хуже – тут сложно сказать, но, хотя коронавирус подкрался незаметно, практически все регионы к такой модернизации уже оказались готовы.

Фото: Global Look Press

На платформу интерактивного обучения «Учи.ру», например, тут же перешли Владивосток и Южно-Сахалинск. Именно этот портал в первую очередь порекомендовал для учеников начальной школы и комитет общего и профессионального образования Ленинградской области. К сервису присоединились Удмуртия и Брянск. А еще Алтай, Кузбасс, Крым, Омск, Адыгея, Курган.

Конечно, такое синхронное взаимодействие нарисовалось не вдруг. Школы всей страны уже не первый год подключают детей к этой платформе, в добровольно-принудительном порядке, как обычно. Причем если на уроках ученики сидят на сайте бесплатно, то за полноценное прохождение курсов в свободное время нужно платить. И многие учителя (чуть позже вы поймете, почему) вынуждают детей это делать.

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

Понравился проект и Владимиру Путину. Настолько, что летом 2017 года на круглом столе с представителями социально ориентированных организаций президент даже сказал сооснователю и гендиректору сервиса Ивану Коломоецу:

– Так интересно и неожиданно. Кстати говоря, знаете, о чем я сейчас подумал? У нас будет сейчас саммит БРИКС, я, пожалуй, всем расскажу о вашей практике.

Коломоец: – Мы будем очень признательны.

Путин: – Правда-правда, я расскажу всем. Я думаю, может быть, и другие страны заинтересуются, а там и Китай, и Индия.

Коломоец: – Если бы вы и с Китаем, и с Индией нам помогли.

Путин: – Там есть где развернуться.

И «Учи.ру» с такой поддержкой развернулся.

После того как сам президент выразил свои симпатии «Учи.ру», была запущена международная олимпиада для учащихся из стран БРИКС (Россия, Бразилия, ЮАР, Индия, Китай). Естественно, внутри страны платформу тоже стали продвигать, и весьма агрессивно, подчас заводя учащимся младших классов аккаунты даже без согласия родителей (что в данном случае незаконно).

Такой лоббизм объясняется просто: образовательный сервис приглянулся Управлению делами президента.

Сегодня ООО «Учи.ру» руководит уже не Коломоец, а Илья Паршин, бывший гендиректор и соучредитель компании «Датаманки», дочерней структуры Фонда развития интернет-инициатив. Это российский фонд венчурных инвестиций, учрежденный Агентством стратегических инициатив по предложению лично Владимира Путина (ФРИИ помогает деньгами «общественно значимым интернет-проектам»).

Само Агентство стратегических инициатив хоть и создано правительством, но находится под крылом администрации президента. Его наблюдательный совет возглавляет сам Путин (еще туда входят Греф, Дюмин, Собянин и Ко), а среди экспертов (загибайте пальцы): Игорь Шувалов, Владимир Груздев, Аркадий Дворкович, Валерия Касамара, Кирилл Клеймёнов, Маргарита Симоньян, Наталья Тимакова, Валерий Фадеев, Нюта Федермессер.

С такой авторитетной поддержкой никакой коронавирус «Учи.ру» не страшен. Напротив, объявленное дистанционное обучение только прибавляет новых пользователей. А значит, и прибыль от потенциальных клиентов.

Но почему из всех схожих платформ Владимир Путин оценил только эту? Есть причина.

Если поначалу это был просто успешный стартап, то сейчас уже – перспективный инвестпроект. Среди нынешних владельцев платформы – Владимир Зубрилин, который еще в 2006 году создал Фонд благодарных выпускников международно-правового факультета МГИМО.

Катерина Тихонова защищала кандидатскую с наушниками в ушах?

Катерина Тихонова на защите диссертации

Р.S. На прошлой неделе для педагогов из России, Индии, Китая и Бразилии провели международную онлайн-конференцию «Учи.ру» и лучшие образовательные практики в России и за рубежом». Мероприятие прошло при поддержке президентской платформы «Россия – страна возможностей» (в Наблсовете – тот же Путин, Сергей Кириенко, глава фонда «Талант и успех» Елена Шмелева).

«Учи.ру» нравится Путину. Им владеет человек, связанный с его дочерью. Руководит человек, связанный с кремлевской администрацией. И продвигают его в школах зависимые от президента чиновники. А кто на этом всем зарабатывает?

– На данный момент нам оказывается информационная поддержка, но Владимир Зубрилин – частный инвестор, который инвестирует от своего имени, а Илья Паршин никак не связан со структурами Агентства стратегических инициатив. На прошлой неделе мы зафиксировали небывалое количество новых пользователей. Ожидаем, что рост показателей продолжится и, возможно, побьет рекорды».

Увеличилось ли число ваших пользователей в связи с переходом школ на онлайн-образование? Если да, то насколько, и каковы прогнозы?

– На неделе с 16 по 22 марта на платформу зашло на 62% больше школьников, чем на предыдущей неделе. При этом они проводили на сайте больше времени, чем обычно. Мы зафиксировали небывалое количество новых пользователей. На платформе регистрировалось почти в 10 раз больше новых учителей, чем на предыдущей неделе, а также в 9 раз больше учеников. Родители и сами активнее регистрируют своих детей - в 4,4 раза чаще.

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

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

На данным момент функционал выдачи домашних заданий есть у всех учителей в личных кабинетах.

При этом для самостоятельных занятий (речь НЕ идет о выданных заданий в личном кабинете учителя) - после 16:00 по местному времени — ученикам доступно по 20 заданий каждый день. Если ребенок хочет заниматься больше, родитель может приобрести подписку.

Оказывается ли вам поддержка со стороны местных и федеральных властей во взаимодействии со школами?

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

Новый гендиректор платформы Илья Паршин был связан со структурами Агентства стратегических инициатив. Каковы ваши отношения с АСИ?

– Это неправда. Илья Паршин никак не связан со структурами Агентства стратегических инициатив.

Учи.ру имеет статус лидерского проекта Агентства стратегических инициатив в сфере образования с 2016 года.

Один из учредителей сервиса Владимир Зубрилин прежде был связан с Катериной Тихоновой. В ООО он представляет свои или ее интересы?

– Это неправда. Владимир Зубрилин — частный инвестор, который инвестирует от своего имени.

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

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


«Геометрическое совершенство монолита воспринималось людьми как некий безмолвный вызов, оно поражало не меньше, чем другие свойства загадочной находки».

Артур Чарльз Кларк. 2001: Космическая одиссея (1968)

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

Актуальная схема Учи.ру и распределение сервисов

Актуальная схема Учи.ру и распределение сервисов

Начиналось же все с маленького сайта около десяти лет назад.

С чего все начиналось

Эра мини-монолитов

Первые версии Учи.ру появились в начале второго десятилетия ХХI века. Это были очень простые сайты с отдельными базами данных, образовательным контентом и менеджментом: старая платформа Учи.ру с уроками, «Учи.ру Столбики» и «Учи.ру Колонки». Спустя десятилетие они выглядят немного старомодно, но все равно мило — мы храним их во внутреннем музее славы Учи.ру и публичный доступ к ним не предоставляем.

Так выглядело задание на сайте «Учи.ру Столбики» — там дети учились считать в столбик.

Так выглядело задание на сайте «Учи.ру Столбики» — там дети учились считать в столбик. Еще несколько исторических документов.

В «Столбиках» уже можно было получать ачивки за учебу. А список уроков на старой платформе Учи.ру выглядел довольно просто.


Эра зарождения первого монолита

До 2012 года сайты существовали обособленно. Затем мы создали новую платформу с единой точкой входа — Login, которая поглотила старую Учи.ру и «Колонки». «Столбики» ждало скорое забвение.

Изменения и перенос контента породили проблемы вроде конфликта стилей, что сказывалось на качестве. Тогда команда впервые задумалась о создании эталонной системы управления контентом — CMS.

Эра CMS

Через два года системная архитектура выглядела скромно: CMS, основная платформа, а также разные прикладные модули, например, для аудита, управления персоналом, временного трекинга.

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


Расширение функционала основного модуля

На первых стадиях разработка шла очень быстро, преимущественно мы использовали модель «Водопад». На том этапе усложнять архитектуру не было смысла, ведь никто не знал, к чему мы придем в итоге.

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

Из-за сложностей с любыми модификациями в монолите в начале 2019 года мы работали с устаревшими версиями Rails (4.1) и Ruby (2.1.5). Webpack с небольшими вкраплениями React-компонентов не позволял легко обновить зависимости без существенных рисков отказа в обслуживании. Нужно было что-то делать…

Выделение функций из состава монолита

Чтобы прощупать возможности разделения, мы начали проводить эксперимент по разъединению фронтенда и бэкенда. К этому моменту интерфейс представлял собой классические Rails-шаблоны с примесью старого Webpack. И хотя мы не ставили глобальной задачи по переходу на микросервисы, этот опыт все же стал большим шагом для нашей команды сразу в техническом, инфраструктурном и организационном плане. Но самое главное, мы начали выделять компоненты из uchiru-login. Стало понятно, что обуздать монолит реально. Отправной точкой стало выделение откровенно обособленного функционала с минимальной степенью связности. На подобных некорневых блоках мы и сосредоточили усилия.

Генератор PDF-сертификатов. Попрактиковались мы на микросервисе, который должен выдавать готовый документ по входным параметрам. Фактически мы сделали классический распределенный монолит с синхронным сетевым взаимодействием.

Олимпиадная платформа. Ее отделение от «большого брата» стало важным шагом. Стоит пояснить, что олимпиады выросли в отдельное направление: они бурно расширялись, и разработчикам приходилось постоянно оглядываться на другие части системы из-за большого риска сломать имеющийся функционал. Эта скованность мешала развиваться — хотелось независимости. В итоге команда олимпиад повысила свои компетенции и создала прецедент выделения реально большого куска из монолита.

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

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

Сначала монолит и новый сервис использовали общую базу данных. Мы старались по возможности переносить операции записи ответственных данных в новые БД, а из монолита использовать их в режиме чтения.

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

Для разработки этого модуля мы использовали библиотеку JSONAPI Resources, которая сочетает в себе гибкость, низкую скорость и синтаксис, очень похожий на классический ActiveRecord. Залогом успеха стало стремление группы энтузиастов, которые во что бы то ни стало хотели достичь нужного эффекта.

Справляемся с высокими нагрузками

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

Кеширование. Это было первое, что пришло в голову. В качестве инструмента мы использовали Redis. Чтобы не заниматься поддержкой кластера в облаке, мы решили заменить его урезанной версией Redis от Envoy с шардированием по ключу хранения. В результате система стала держать нагрузку лучше, но это было только начало.

Реплики БД. После очередного скачка трафика мы уперлись в лимит пула соединений с БД. Теоретически работа с микросервисами должна была помочь в масштабировании самых нагруженных частей системы или вовсе избежать этой проблемы. Но это в идеальном мире.

Мы попытались выйти из ситуации с помощью реплик БД, к которым поступали бы запросы на чтение. Звучит просто и круто, но те, кто знаком с «рельсовой» кухней и большой связностью данных, моделей и ассоциаций, назвали бы нас психами. Все дело в контекстах инициализации объектов и механизме ассоциаций. Поэтому первым делом под нож пошли запросы статистического характера, большие списки и отчеты.

Octopus. К счастью, на помощь нам пришел Octopus, но и он не обрабатывал все случаи, особенно те версии, которые были совместимы с устаревшей платформой. Например, мы обнаружили, что запись в режиме «реплики» тянет за собой все ассоциативные связи в том же режиме. Это порождает конфликты, связанные с попытками записи в read-only-транзакциях. Пришлось заниматься monkey-патчингом ORM-компонентов. Методом проб и ошибок проблему решили.

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

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

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

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

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

Разделение на микросервисы действительно возможно

«Но ведь верилось же! Казалось, еще немного усилий — и то самое светлое будущее, которое каждый представлял себе по-разному, в зависимости от воспитания и фантазии, обязательно наступит».

Артур Чарльз Кларк. 2001: Космическая одиссея (1968)

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

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

Читайте также: