Если у вас сервис только-только развивается, то стоит сфокусироваться на тех вещах, которые помогут разрабатывать уже сейчас. Соответственно спросите себя, а знаете ли вы:
- Автоматизированное тестирование. Написание тестов, чтобы основной функционал был покрыт, тесты помогали в разработке и помогали в случае регресса.
На эту тему есть неплохая
статья и
доклад
- Автоматное программирование. Конечные автоматы облегчают разработку в разы, когда у нас появляется состояние. Даже в простом блоге - пост удален, в черновике, опубликован. По автоматам есть книга "Автоматное программирование Анатолий Абрамович Шалыто"
- Конфигурация и инфраструктура. CI/CD. Автоматизация. Деплой приложения - это многоэтапный процесс. Миграции, конфигурация, сборка проекта. Тут стоит почитать Приложение 12 факторов
12factor.net В целом, если используется современный фреймворк (например Ларавел), то будет полегче с этим работать. Следует помнить, что окружения должны быть разделены - продакшен, тестовая среда (стейдж), среда разработки. Приложение должно без проблем раскатываться и запускаться, желательно "в один клик".
С этой темой связаны технологии Docker, K8s, Ansible. По поводу последнего - с ним можно автоматизировать настройку локального окружения, деплой. Также следует поизучать Github Actions, Gitlab CI/CD.
Если приложение еще небольшое, то его можно с легкостью деплоить на Heroku.
В целом можно пройтись по этому
чек-листу и посмотреть как у вас сейчас и как должно быть.
По оптимизации, нагрузкам соответственно
optimization.guide
- Операционные системы. Сети. Большая область про которую забывают разработчики. Понимание ОС позволяет лучше понимать как работают веб-сервера, приложения.
На эту тему есть книги
Операционная система UNIX (Андрей Робачевский, Сергей Немнюгин, Ольга Стесик)
Руководство администратора Linux (Эви Немет, Гарт Снайдер, Трент Р. Хейн)
- Фреймворки. Изучать от и до их не стоит, необходимо понимать как они устроены, чтобы не было магии. Но если используется что-то самописное - это не очень хорошо, особенно когда не хватает квалификации. Стоит присмотреться к большим фреймворкам типа Laravel/Symfony
- Опенсорс. Изучаете код проектов (фреймворков, библиотек), отправляете пулл реквесты на улучшения. В некоторых проектах мейнтейнеры готовы помогать и подскзывать контрибьютерам.