Цей ілюстративний приклад — приватна черга читання. Невеликий веб-інтерфейс зберігає посилання та нотатки. Щоденне завдання перевіряє короткий список дозволених каналів, а щотижневе завдання експортує підсумок читання. Це планувальна вправа, а не твердження, що клієнт використовує цю конфігурацію або що VPS виконує ці завдання для вас.
Відокремте службу від завдання
Веб-процес — це служба: він має бути доступним, коли ви відкриваєте інструмент, під вибраними вами контролями доступу. Оновлення каналу — це завдання: воно запускається, обробляє обмежену роботу, записує свій результат і завершується. Нескінченний цикл з довгим сном може затуманити, чи останнє оновлення вдалося і чому почався ще один запуск.
Тримайте перший обсяг малим. Отримуйте лише джерела, які вам дозволено використовувати, поважайте їхні обмеження швидкості та зберігайте власні нотатки незалежно від імпортованого вмісту каналу. Приватний інструмент може взагалі не потребувати публічного веб-слухача, якщо ви отримуєте до нього доступ через організоване приватне з'єднання. Якщо ви публікуєте веб-кінцеву точку, впровадьте автентифікацію та перегляньте шлях DNS, мережі та HTTPS.
Бюджетуйте одночасну роботу
Тиха панель не показує пікове використання пам'яті завданням. Порахуйте, що може перекриватися: операційна система, веб-процес, сховище даних, розбір каналу та експорт або розгортання. Завантаження всіх документів у пам'ять одразу створює іншу вимогу, ніж обробка однієї обмеженої партії за раз.
Для ілюстрації припустимо, що планувальний робочий аркуш дозволяє 250 MiB для системної роботи, 200 MiB для веб-інструменту та сховища даних, 400 MiB для обмеженого оновлення та 400 MiB для перекривного експорту або розгортання. Загальні 1,250 MiB — це вигадана надбавка для пояснення рішення, а не перевірений слід. Вимірюйте реальні завдання; їхнє перекриття та тимчасові файли мають таке ж значення, як і їхній стан простою.
Приклад конфігурації починається з Seed і додає 1 GB пам'яті. Тому він визначає 1 vCPU, 2 GB RAM та 25 GB SSD з місячною проміжною сумою $8.50 USD. Порівняйте фактичну доступну пам'ять з робочим аркушем і зменште розмір партії завдання, перш ніж припускати, що потрібно більше CPU. посібник з попереджень про ресурси пояснює показники.
| Період обслуговування | Перед збереженням | Збережено | Оплатити одноразово |
|---|---|---|---|
| 1 місяць | $8.50 | $0.00 (0%) | $8.50 USD |
| 3 місяців | $25.50 | $0.00 (0%) | $25.50 USD |
| 6 місяців | $51.00 | $14.28 (28%) | $36.72 USD |
| 12 місяців | $102.00 | $51.00 (50%) | $51.00 USD |
Ці підсумки включають вибрану опцію пам'яті та використовують ті самі повторювані знижки, що й при оформленні замовлення. У цьому прикладі не вибрано жодної опції резервного копіювання з каталогу. Тримайте сховище резервних копій та інші зовнішні витрати в окремому бюджеті; період обслуговування — це рішення про витрати, а не обіцянка, що інструмент не потребує обслуговування.
Визначте розклад і правило пропущеного запуску
Напишіть передбачуваний часовий пояс поруч з розкладом. Вирішіть, чи слід надолужувати пропущений запуск, коли сервер повертається, і чи пізній результат ще має цінність. Для цієї черги читання одне поточне оновлення може бути кориснішим, ніж відтворення кожного пропущеного щоденного оновлення.
У systemd таймер активує службу. Якщо ця цільова служба все ще активна, таймер залишає її запущеною замість створення ще одного екземпляра. Календарний таймер, що використовує Persistent=true може запустити надолуження при повторній активації після пропущеної події; він не створює окремого виконання для кожного пропущеного інтервалу. Див. правила поведінки та збереження таймера. посібник із запланованих завдань перетворює ці вибори на обмежений приклад.
Контролюйте перекриття та робіть повтори безпечними
Надайте запланованому оновленню та будь-якому ручному оновленню той самий шлях виконання. Якщо інша точка входу може запускати скрипт безпосередньо, спільне блокування може координувати ці спроби. Такий інструмент, як flock підтримує ексклюзивне блокування та політику неблокуючої відмови; усі відповідні письменники повинні співпрацювати, і поведінка файлової системи має значення. Див. посібник з блокування та обмеження файлової системи.
Виберіть явний результат для зайнятого блокування, наприклад, запис, що це оновлення було пропущено, оскільки попереднє все ще виконувалося. Ніколи не дозволяйте оператору сплутати цей пропуск з успішним отриманням. Окремо ідентифікуйте імпортовані елементи за стабільним ідентифікатором джерела, щоб повторна спроба могла розпізнати вже збережену роботу. Блокування вирішує одночасну роботу; логіка програми, безпечна до дублювання, вирішує роботу, повторену пізніше.
Обмежте зовнішні запити та спроби повтору. Недоступний канал має залишити корисний запис про помилку, а не утримувати завдання вічно. Якщо експорт створює файл, підготуйте новий результат окремо та опублікуйте його лише після перевірки, щоб панель могла продовжувати використовувати попередній повний експорт, коли запуск не вдається.
Запишіть корисний результат
Запланований час у списку не є доказом завершення оновлення. Запишіть час початку та завершення, результат виходу, скільки елементів було розглянуто та останню позначку часу успішних даних. Для персонального інструменту невеликий перегляд стану може показати цю позначку часу без розкриття токенів чи необроблених приватних нотаток.
Перевірте звичайний запуск, недоступне джерело, другий виклик під час зайнятості та повторення того самого вводу. Перевірте як результат процесу, так і збережений результат. Якщо веб-сервіс зупиняється, а завдання продовжуються, використовуйте контрольний список першої підказки щоб відрізнити проблему застосунку від поведінки планування.
Тримайте відновлення даних і очищення окремо
Незамінними даними тут є збережена черга, стан читання та особисті нотатки. Конфігурація, визначення розкладу та ідентифікатор випуску потрібні для відновлення інструменту. Журнали допомагають у розслідуванні; тимчасові завантаження та замінні експорти можуть мати інші правила зберігання. Класифікуйте ці шляхи перед автоматизацією очищення.
Встановіть обмежену політику зберігання для журналів і завершених експортів, потім спостерігайте за зростанням, перш ніж увімкнути видалення. Робіть резервні копії постійних даних методом, що відповідає їхньому механізму зберігання. З restic вибір знімка та явної тестової цілі робить намір відновлення видимим; його типове відновлення може перезаписати наявні файли, тому використовуйте окреме порожнє місце призначення. Див. поведінка цілі відновлення та перезапису.
У тестовій копії отримайте відому нотатку, підтвердьте її стан читання та згенеруйте експорт. Збережіть процедуру та результат. вправою відновлення пояснює, чому цілісність репозиторію та придатний до використання застосунок є окремими перевірками.
Налаштуйте лише те, що можете пояснити
Відкрийте конфігуратор Seed, перегляньте наявні вибори та додайте 1 GB RAM, щоб відповідати цьому прикладу. Виберіть період умисно; посилання не застосовує опцію за вас. Виберіть Малайзію, Румунію або Швейцарію для сервера та підтвердьте місце резервного копіювання й обсяг послуг, перш ніж покладатися на налаштування.
Вибір імені хоста або отримання платіжних реквізитів не встановлює інструмент і не планує його завдання. Після організації доступу дотримуйтесь посібник з першого доступу і створюйте одне спостережуване завдання за раз. Додавайте складність, коли поточний результат підказує, навіщо вона потрібна.
Використана документація
Основні посилання для цієї сторінки. Перевірте документацію для версії, встановленої у вашому середовищі.