Зображення користувача Вадим Кононенко.
Вадим Кононенко
  • Відвідувань: 0
  • Переглядів: 0

Вдосконалення архітектури та якості роботи проекту, автоматизація рутинних процесів

Нарешті, сталося! :) В кожне оновлення "Народного оглядача" група розробки вносить перли своїх знань та напрацювань, з кожним оновленням він стає все досконалішим та надає нам усім нові Можливості. Як багато заховано у цьому простому українському слові... Шановні мої інвестори, приймайте чергову роботу! :)

У цьому оновленні, можливо, ви не помітите багато зовнішніх змін, але внутрішня робота сайту та інфраструктура його обслуговування стала значно кращою. І зараз розкажу, в чому саме.

industrie_fix

Промислові рішення
Промислові рішення

Як би це, можливо, не здавалося дивним, але першочерговим завданням у нашій роботі, поряд з прикладними завданнями з розвитку функціональності, завжди залишається питання швидкодії нашого проекту. В грудневому оновленні я вже писав про впровадження механізму кешування сторінок. Наступні кілька місяців показали його чудову швидкодію й деякі суттєві недоліки, які потрібно було вирішувати.

Як ви всі можете бачити, "Народний оглядач" вже не є простим мережевим ресурсом, розміром даних якого можна нехтувати. Впроваджена нами система кешування, робота якої полягала у зберіганні кешованих сторінок на файловій системі без вміння слідкувати за розміром утвореного сховища, створила 120 ГБайт даних й їх розмір продовжував зростати. Це змустило нас збільшити розмір дискового простору на нашому сервері (і його вартість) та шукати досконаліше рішення. :) І воно було знайдене! Це дозволило нам повністю відмовитися від кешування на рівні файлів та вивільнити простір на сервері.

Проте великі розміри файлів даних підштовхнули нас до створення ще однієї групи технічних рішень, що дозволили нам повністю відмежувати їх від виконуваних файлів проекту й винести на окремий носій. Одним із завдань, які стоять перед нами, є створення резервного сайту, що міг би прозоро для користувачів перебирати на себе обслуговування їх звернень. Тож розмежування файлів є потрібним кроком для такого рішення.

Нове кешування використовує розширенні можливості веб-вервера NGinx, який володіє такою чудовою властивістю як "модульність". Тому, щоб їх задіяти, нам довелося перезібрати його програмний пакунок й внести до нього кілька додаткових модулів. У ході здійснення цієї роботи ми відкрили для себе в ньому широкі можливості, які дозволяють перетворити його у повноцінний сервер веб-додатків, що володіє механізмом розширення його логіки роботи досить просто і власними силами. Це здобуток нам на майбутнє. :)

Нова система кешування - дворівнева, зовнішній рівень обслуговує стиснений!!! довгостроковий кеш для анонімних відвідувачів сайту, а внутрішній - короткостроковий, обслуговує залогінених користувачів. Це надає високу швидкодію й безпеку серверу від надмірно частих запитів до нього. Для впровадження такої гнучкої логіки ми потребували критерію, який дозволяв би чітко розмежовувати випадки можливості використання закешованих сторінок ще до звернення веб-сервером до програмного коду проекту. В ході виконання цього завдання ми виявили певну недосконалість логіки роботи з сесіями у Drupal 7, на якому базується наш сайт, тож розробили своє маленьке й елегантне рішення.

Також ми  виявили нові можливості PHP-обробника, впроваджені у ньому з версії 5.5, що дозволяють забезпечити кращий захист від крадіжок облікових записів користувачів сайту. Ця його версія також впроваджена у поточному оновленні.

Також певну кількість часу ми витратили на дослідження над-швидкого обробника PHP коду, створеного зусиллями команди розробників проекту 'facebook'. Його впровадження потребує більше часу, тож - відклали на майбутнє.

Продовжили впорядкування коду проекту, розділили різний за призначенням код у окремі завершені модулі. Велика кількість таких нових власних модулів виявила потребу у використанні автоматизованих перевірок залежностей між ними. На жаль, готового інструменту знайти не вдалося, тому такий механізм було створено. Система автоматизованого документування коду, яку ми використали за основу, значно підвищує вимоги до якісного написання коду проекту та ще більше підносить його до промислових рішень. Пишемо красивий код, гарно його коментуємо - отримуємо якісну документацію.

У ході цієї всієї роботи продовжили розвиток власної системи викладання сайтів та їх оновлення. З’ясували наявність інших механізмів, на які, можливо, варто буде поглянути для уніфікації наших підходів із кращими рішеннями світової спільноти розробників. Також - на потім.

І, звісно, оновлення існуючих модулів та ядра Drupal до свіжих версій, що закривають вразливості та надають нові можливості, переробку головної сторінки на використання нових підходів у відображенні вибірок матеріалів та їх ефективного кешування. Виявили можливість для впровадження ще одного рівня кешування вже відмальованих сутностей. Це, знову, на потім.

Окремо хочеться згадати за впровадження механізму виявлення недійсних поштових скриньок, на які Народним оглядачем надсилаються листи. Відтепер такі скриньки виявлятимуться через деяку кількість спроб надсилання та накопичення повідомлень про помилку доставки й, тимчасово, блокуватимуться. Стежте за справністю власних поштових скриньок!!! :)

Кілька слів про новостворену систему вмикання, вимикання та стеження за станом модулів, які використовуються Народним оглядачем. З нею група розробки може бути ще впевненішою, що система поводиться так, як належить.

Ще одна "перша пташка" з серії майбутніх нововведень - переробка власного модулю, що виводить вгорі сторінки розмір Галів у гаманці на використання модуля 'js', що дозволить здійснювати полегшені запити до сайту для оновлень вмісту сторінок частинами. Це важливий крок для впровадження у майбутньому кешування й, відповідно, прискорення віддачі сторінок сайту залогіненим користувачам.

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

Іншими, також високопріоритетними завданнями є: 1) створення функціональності для анонсів та активної участі людей в обговоренні різних заходів та ідей та 2) система делегування голосів задля відповідального структурування українського суспільства.

Ще раз дякую інвесторам за підтримку та закликаю тих, хто має можливості, активніше підтримувати нашу роботу внесками. Зараз непростий і відповідальний час, поки наші хлопці тримають оборону на сході, ми МУСИМО докласти усіх зусиль для перетворення України на країну відповідальних, успішних людей, локомотив Людства.

Хай Буде!

Якщо ви помітили помилку, то виділіть фрагмент тексту не більше 20 символів і натисніть Ctrl+Enter
Підписуюсь на новини

Зверніть увагу

Френк Герберт: Ну як вам друге дно Вулика Геллстрома?

«Вулик Геллстрома», «Дюна» і 10 принципів Джигаду – політичний проект Френка Герберта

«Життя у вулику передбачає не регламентовану монотонність, а МЕТАМОРФОЗУ. Коли комаха досягає межі своїх можливостей, вона чудесним чином перетворюється на абсолютно нову істоту. У цій метаморфозі я...

Останні записи

Кращий коментар

Зображення користувача Миро Продум.
0
Ще не підтримано

Виконано величезний обсяг роботи. Готуємо систему до обслуговування 100 тисяч гравців.

Освячуйся! Озброюйся! Плодися!

Коментарі

Зображення користувача Миро Продум.
0
Ще не підтримано

Виконано величезний обсяг роботи. Готуємо систему до обслуговування 100 тисяч гравців.

Освячуйся! Озброюйся! Плодися!

Зображення користувача Миро Продум.
0
Ще не підтримано

Після оновлення сайту деякі функції перестали працювати, зокрема, перестала автоматично розсилатися Ранкова пошта.

Таке зазвичай буває при оновленні. Зараз усе виправляємо.

Освячуйся! Озброюйся! Плодися!

Зображення користувача Вадим Кононенко.
0
Ще не підтримано

Є таке. В штучних умовах сервера розробки не завжди вдається відтворити поведінку робочого сервера.

Скоро все полагодимо. :)

Зображення користувача Доброслав Велесовий.
0
Ще не підтримано

Також канал https://www.ar25.org/crss не оновлявся з вчорашньго ранку

Зображення користувача Вадим Кононенко.
0
Ще не підтримано

Гм... Припускаю, що це через кешування. Його URL потрібно буде вилучити з кешованих адрес. Або додати до тих, що скидаються з появною нових матеріалів.

Дякую за повідомлення - виправляю. :)

Зображення користувача Миро Продум.
0
Ще не підтримано

Роботу сайту відновлено, картинки завантажуються!

Освячуйся! Озброюйся! Плодися!