Стек MEAN — это популярный стек JavaScript для создания динамических веб-сайтов и веб-приложений. Стек MEAN объединяет популярные фреймворки MongoDB, Express.js, AngularJS и Node.js. Стек MEAN достиг высокого уровня гармонии между клиентом и сервером. Фактически, стек MEAN представляет собой JavaScript от начала до конца, что означает, что эти приложения быстро собираются и представляют собой современное состояние разработки веб-приложений.

В этом кратком руководстве мы собираемся объединить стек MEAN с лучшими практиками как в архитектуре приложений, так и в развертывании, а именно с микросервисами и контейнерами. Мы запустим наше приложение MEAN Stack на популярной платформе управления контейнерами FaktorZ. FaktorZ — это размещенная и курируемая версия Red Hat Openshift, Google Kubernetes и Docker Containers, позволяющая создать открытый и эффективный способ внедрения этих лучших практик в ваш проект.

Предпосылки

  • Аккаунт на Гитхабе. Если у вас еще нет учетной записи Github, вы можете пройти по этой ссылке, чтобы зарегистрироваться бесплатно.
  • Аккаунт ФакторЗ. Если у вас еще нет учетной записи FaktorZ, вы можете бесплатно зарегистрироваться на www.faktorz.com.

Начальная загрузка стека MEAN

Мы будем:

  • Разветвление исходного проекта MEAN в организации FaktorZ Github в ваш частный репозиторий.
  • Создание рабочей области приложения MEAN Stack на платформе FaktorZ.
  • Начальная загрузка стека MEAN в рабочей области вашего проекта с помощью контейнеров MongoDB и Node.js из Docker Hub.
  • Сборка приложения AngularJS из исходного кода в разветвленном репозитории и развертывание приложения в контейнерах в Kubernetes.

Хорошо, давайте начнем.

После входа в свою учетную запись Github перейдите по адресу: www.github.com/faktorz/mean-ex и разветвите репозиторий на свою учетную запись. Этот репозиторий содержит несколько файлов и файловую структуру, которая поможет вам быстро начать работу с приложением MEAN. Я подробнее расскажу о файлах и файловой структуре немного дальше в этом руководстве. А пока давайте завершим нашу настройку, войдя в свою учетную запись FaktorZ и настроив стек MEAN.

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

На экране добавления в проект выберите шаблон Node.js + MongoDB Quickstart из каталога. Вы можете выбрать эфемерную или постоянную версию шаблона. Поскольку это пример приложения, эфемерная версия развертывается быстрее.

На странице конфигурации шаблона для Node.js + MongoDB Quickstart измените URL-адрес репозитория Git, чтобы он указывал на репозиторий, который только что был разветвлен в вашей учетной записи. (например, https://github.com/johnmccawley/mean-ex.git). Если вы запускаете это руководство на бесплатном уровне, вам нужно установить Лимит памяти для MongoDB на 128Ми, а не на 512Ми по умолчанию. Это даст вашему приложению достаточно места для создания и развертывания всех необходимых ему контейнеров. Для остальных параметров вы можете просто принять значения по умолчанию для остальных параметров и нажать Создать.

Вот и все. FaktorZ сейчас настраивает ваш стек MEAN. На следующей странице вам будет представлена ​​некоторая информация о вашем новом приложении. Когда будете готовы, нажмите «Перейти к обзору». Вы попадете на экран «Обзор проекта», где вы сможете наблюдать, как FaktorZ выполняет настройку за вас. Всего через несколько минут у вас будет полный стек MEAN, работающий в контейнерах и управляемый через Kubernetes. Когда MongoDB и Node.js будут полностью развернуты (кружок состояния модуля будет зеленым), просто щелкните URL-адрес приложения в правом верхнем углу экрана обзора. Вы попадете в браузер, чтобы увидеть простое сообщение «Hello World».

Структура файла

Теперь, когда у нас есть репозиторий MEAN Example, разветвленный в вашей учетной записи, давайте потратим несколько минут на просмотр файловой структуры репозитория. Существует много способов структурировать приложение MEAN. Я попытался взять лучшие практики из нескольких руководств и создать простую, но расширяемую файловую структуру для этого примерного проекта. Для дальнейшего чтения файловых структур для стека MEAN [Mean.io](http://mean.io) является хорошим шаблоном, чтобы увидеть лучшие практики и способы разделения файловой структуры. Сейчас мы просто будем использовать следующую структуру и корректировать ее по ходу дела.

mean-ex
├── app — файлы компонентов узла (модели, маршруты)
├── config — вся наша конфигурация будет здесь
│ └── database.js
├── ЛИЦЕНЗИЯ
├── openshift
│ └── templates
│ └── qs-mean.json — пример шаблона для Kubernetes.
├── public — файлы для нашего клиентского углового приложения
│ ├── app.js
│ └── index.html
├── package.json -npm конфигурация для установки зависимостей/модулей
├── README.md
├── тесты — файлы для базовых тестовых скриптов
└── server.js -Конфигурация узла

Поздравляем! Вы развернули свое первое приложение в стеке MEAN.