Продолжительность
25 ч 1 мин 19 сек
Количество уроков
109 Видео
Дата добавления
16.03.2020
Овладейте искусством создания масштабируемого проекта в реальном мире, используя MERN Stack для нового стартапа, который будет бесконечно масштабироваться. Я покажу, как вы могли бы запустить проект, который будет иметь устойчивую архитектуру, которая будет расти в будущем, чтобы ее могли использовать миллионы пользователей.
Технический стек
- Мы будем использовать React и NextJS (React Framework) на стороне клиента.
- Мы создадим API / сервер, используя Node Express MongoDB.
- Мы будем использовать сервисы AWS, такие как S3 для хранения файлов, SES для отправки электронной почты и EC2 для облачного хостинга IAM для идентификации и управления доступом. Route 53 для управления доменом наряду с пользовательскими правилами / политикой.
- Мы будем использовать Mongo Atlas в качестве службы управляемых баз данных в облаке.
Что мы будем строить?
Создайте стартап-проект, вдохновленный успешным приложением реального мира (более подробно обсуждается в лекциях), где несколько пользователей могут войти в систему и публиковать / управлять контентом, который они отправляют.
При создании аналогичного проекта мы добавим несколько улучшений, чтобы сделать его бесконечно масштабируемым и проще в обслуживании.
Стремитесь к низкой стоимости эксплуатации и реализуйте некоторые функциональные возможности, чтобы сделать их намного проще, увлекательнее и интереснее для пользователей.
Цель проекта
- Нацеливание на миллионы потенциальных пользователей для использования и взаимодействия с нашим приложением
- Пользователи могут быть кем угодно ... кто найдет курс, видео или статьи в сети ... любит это и хочет поделиться
- Ссылки, которыми они делятся, также будут доступны на их панели управления для обновления / удаления.
- Пользователь может быть тем, кто является создателем контента, таким как я ... инструкторы, ютуберы, авторы блогов и учебников, авторы книг и т. д.
- Пользователи будут регистрироваться / входить в наше приложение, чтобы публиковать / делиться / и тд.
Обзор проекта
- Вход / Регистрация
- Нужна MongoDB, которая масштабируется бесконечно. Мы будем использовать Mongo Atlas для этого требования.
- Нужна огромная система хранения, которая масштабируется бесконечно, чтобы хранить загруженные пользователем файлы изображений. Мы будем использовать AWS S3 (Simple Storage Service) для этого требования.
- Вам никогда не придется беспокоиться о том, как управлять миллионами загруженных пользователями файлов ... пусть об этом позаботится AWS! Цены S3 являются самыми низкими на рынке для хранения бесконечного количества данных, которые легко доступны во всем мире в центрах обработки данных AWS по всему миру.
- Нужен надежный почтовый сервис для отправки писем сотням тысяч пользователей. Мы будем использовать AWS SES (Simple Email Service) для этого требования.
- Вам никогда не придется беспокоиться о том, как отправить электронное письмо миллионам и не заплатить более высокую цену ... пусть об этом позаботится AWS! их показатель SES является самым низким на рынке.
- Мы будем использовать AWS EC2 (Elastic Compute Cloud) для размещения нашего внутреннего NodeJS API и внешнего интерфейса React / Next JS в одном экземпляре.
- Сохраняйте стоимость как можно ниже, используя сервисы AWS для хранения, электронной почты и хостинга.
- Самыми большими проблемами масштабирования веб-приложений являются масштабирование хранилища и базы данных. Эта часть будет обрабатываться AWS. Поэтому нам, как разработчику, не нужно беспокоиться.
- Наша цель - дать возможность одному или двум разработчикам поддерживать весь проект и постоянно расти в будущем.
Чистая и простая в обслуживании архитектура проекта
- Чрезвычайно простая архитектура, которую легко поддерживать и масштабировать
- Отдельный бэкэнд-API и интерфейс, построенный с React/ Next, для легкой разработки, сопровождения и развертывания кода
- Сделайте интерфейс максимально простым
- Сценарий 1> Вы создаете страницу, реагирующую на выполнение определенной задачи. Например, он извлекает данные с вашего API / сервера и размещает эти данные на веб-странице, чтобы пользователь мог их увидеть. Работа сделана.
- Сценарий 2> Вы создаете страницу администратора для создания нового сообщения. Например, чтобы опубликовать данные на вашем API / сервере и показать возвращенный ответ об успехе или ошибке. Работа сделана.
- Сделайте бэкэнд API максимально простым
- Сценарий 1> У вас есть маршрут GET. Например, «/ api / posts». Вы получите запрос от activ / frontend для получения всех сообщений из базы данных.
- Вы передаете этот запрос методу контроллера. Метод / функция контроллера выполнит запрос к базе данных, получит все сообщения и вернется к React / интерфейсу. Работа сделана.
- Сценарий 2> У вас есть маршрут POST. Например, «/ api / create / post». Вы получите данные от React / внешнего интерфейса для создания нового сообщения. Вы передаете эти данные в метод контроллера.
- Метод / функция контроллера сохранит эти данные в базе данных и вернет ответ об успешном завершении, который будет отправлен обратно для реакции. Работа сделана.
- Это логика нашего приложения или любого другого веб-приложения. Цикл запросов / ответов. Запрос от внешнего интерфейса, Ответ от сервера.
Вы готовы к этому курсу?
Если вы хотите использовать имеющиеся у вас знания о React и Node для создания реального масштабируемого приложения, тогда этот курс для вас.
Основываясь на этом проекте, вы можете построить следующую большую вещь, о которой вы всегда мечтали. Или вы могли бы использовать эти знания, чтобы помочь стартапам реализовать свои успешные бизнес-идеи. Возможности безграничны.
Мечта есть мечта, если вы не приложите усилий, чтобы сделать ее реальностью. Приложите усилия, пройдя этот курс. Я помогу вам превратить вашу мечту в реальность. Присоединяйтесь ко мне в этом курсе и сделайте это!