Size: a a a

Клуб Vue.js-разработчиков

2021 February 19

Вo

Вадим onIx in Клуб Vue.js-разработчиков
Natalia Tepluhina
не ломайте однонаправленность потока данных
Уважаемые devops инженеры, помогите, пожалуйста, собрать в кучу мои мысли: хочу разобраться в контейнеризации моих приложений и автоматизации их деплоя на сервак. Начал недавно осваивать Docker (оркестраторы пока не трогал)
На текущий момент осознал, что в контейнере я могу поднять экземпляр линукса с предустановленным ПО, включая моё приложение на node.js
При помощи docker-compose могу поднять в одной изолированной сети контейнеры последовательно: сначала базу данных с переменными среды, а потом и само приложение.
Для базы данных могу использовать монтируемые тома (volumes), где будут храниться записи моей базы

Если я где-то ошибся, то поправьте меня

У меня возникают следующие вопросы:
1. Если в качестве сервера я использую NGINX, то где мне его поднимать? На самой машине, либо его тоже собирать в контейнере, и каким-то образом все запросы перенаправлять в контейнер?
2. Если NGINX находится в контейнере, то как быть с сертификатами, которые устанавливаются для домена?
3.1. Как мне сохранить данные базы при переносе с 1 машины, на другую?
3.2. Как сохранить статические файлы (например аватарки пользователей, которые они загрузили, но они хранятся в папке на сервере)?
4. Можно ли настроить пайплайн, при котором у меня будут существовать 3 версии приложения: development, staging, release, работающие по следующему принципу:
На основе development образа на локальной машине мы 1 кнопкой собираем staging образ, который проходит unit тесты, далее он автоматически обновляется на сервере, после прохождения манульных тестов в staging на серваке мы нажимаем 2 кнопку (условно) и обновляем уже до release версии образа, который также автоматом выполнит сборку и запустится также на сервере?

Заранее выражаю огромную благодарность тем, кто поделится опытом, либо даст источники, где есть примеры с ответами на мои вопросы!
источник

D

Dima in Клуб Vue.js-разработчиков
Руслан Гусейнов
получается тогда для двухстороннего связывания геттерсы не нужны вовсе. Возникает вопрос, а в каких конкретно случаях они тогда нужны?
Ну, например лист в сторе. А вам в разных модулях проекта нужны различные фильтрации и сортировки над ним. Вот вам и геттеры в помощь
источник

Вo

Вадим onIx in Клуб Vue.js-разработчиков
ой, случайно ответ прикрепил
источник

AP

Anton Permyakov in Клуб Vue.js-разработчиков
Руслан Гусейнов
что имеется ввиду под дополнительной обработкой? только что же вы сами сказали, что менять геттерс в компоненте - плохая идея
менять геттер и не нужно, он сам должен изменить и вернуть уже обработанные данные
источник

AP

Anton Permyakov in Клуб Vue.js-разработчиков
точнее не изменить, а на основе стейта вернуть новое значение
источник

VS

Vlad 🦠 Starkovsky in Клуб Vue.js-разработчиков
Вадим onIx
Уважаемые devops инженеры, помогите, пожалуйста, собрать в кучу мои мысли: хочу разобраться в контейнеризации моих приложений и автоматизации их деплоя на сервак. Начал недавно осваивать Docker (оркестраторы пока не трогал)
На текущий момент осознал, что в контейнере я могу поднять экземпляр линукса с предустановленным ПО, включая моё приложение на node.js
При помощи docker-compose могу поднять в одной изолированной сети контейнеры последовательно: сначала базу данных с переменными среды, а потом и само приложение.
Для базы данных могу использовать монтируемые тома (volumes), где будут храниться записи моей базы

Если я где-то ошибся, то поправьте меня

У меня возникают следующие вопросы:
1. Если в качестве сервера я использую NGINX, то где мне его поднимать? На самой машине, либо его тоже собирать в контейнере, и каким-то образом все запросы перенаправлять в контейнер?
2. Если NGINX находится в контейнере, то как быть с сертификатами, которые устанавливаются для домена?
3.1. Как мне сохранить данные базы при переносе с 1 машины, на другую?
3.2. Как сохранить статические файлы (например аватарки пользователей, которые они загрузили, но они хранятся в папке на сервере)?
4. Можно ли настроить пайплайн, при котором у меня будут существовать 3 версии приложения: development, staging, release, работающие по следующему принципу:
На основе development образа на локальной машине мы 1 кнопкой собираем staging образ, который проходит unit тесты, далее он автоматически обновляется на сервере, после прохождения манульных тестов в staging на серваке мы нажимаем 2 кнопку (условно) и обновляем уже до release версии образа, который также автоматом выполнит сборку и запустится также на сервере?

Заранее выражаю огромную благодарность тем, кто поделится опытом, либо даст источники, где есть примеры с ответами на мои вопросы!
Вот зачем ты пингуешь Наташу) тут надо садится и разбираться во всех основах докера
источник

РГ

Руслан Гусейнов... in Клуб Vue.js-разработчиков
Natalia Tepluhina
геттеры нужны ровно для того же, для чего вам нужны компьютеды в компоненте
то есть, если к примеру мы слушаем что-то по сокетам и стейт может меняться и нам постоянно надо обновлять данные на экране, то используем геттер через комьютид. А если допустим вывести имя юзера с возможностью изменения, то используем стейт+ вызов мутации внетри компьютида ?
источник

NT

Natalia Tepluhina in Клуб Vue.js-разработчиков
Руслан Гусейнов
то есть, если к примеру мы слушаем что-то по сокетам и стейт может меняться и нам постоянно надо обновлять данные на экране, то используем геттер через комьютид. А если допустим вывести имя юзера с возможностью изменения, то используем стейт+ вызов мутации внетри компьютида ?
зачем?
источник

NT

Natalia Tepluhina in Клуб Vue.js-разработчиков
представьте, что у вас есть компонент и в нем data обновляется через вебсокет
источник

NT

Natalia Tepluhina in Клуб Vue.js-разработчиков
вы будете создавать компьютед, чтобы брать изменяемое свойство из data?
источник

NT

Natalia Tepluhina in Клуб Vue.js-разработчиков
нет, потому что дата реактивна (точно так же реактивен state во Вьюксе)
источник

РГ

Руслан Гусейнов... in Клуб Vue.js-разработчиков
я имею ввиду не локальный стейт помонента в данном примере, извиняюсь, имею ввиду vuex стейт
источник

РГ

Руслан Гусейнов... in Клуб Vue.js-разработчиков
или это не имеет значения?
источник

NT

Natalia Tepluhina in Клуб Vue.js-разработчиков
вьюкс стейт - это точно такая же data (только глобально)
источник

VS

Vlad 🦠 Starkovsky in Клуб Vue.js-разработчиков
Вадим onIx
Уважаемые devops инженеры, помогите, пожалуйста, собрать в кучу мои мысли: хочу разобраться в контейнеризации моих приложений и автоматизации их деплоя на сервак. Начал недавно осваивать Docker (оркестраторы пока не трогал)
На текущий момент осознал, что в контейнере я могу поднять экземпляр линукса с предустановленным ПО, включая моё приложение на node.js
При помощи docker-compose могу поднять в одной изолированной сети контейнеры последовательно: сначала базу данных с переменными среды, а потом и само приложение.
Для базы данных могу использовать монтируемые тома (volumes), где будут храниться записи моей базы

Если я где-то ошибся, то поправьте меня

У меня возникают следующие вопросы:
1. Если в качестве сервера я использую NGINX, то где мне его поднимать? На самой машине, либо его тоже собирать в контейнере, и каким-то образом все запросы перенаправлять в контейнер?
2. Если NGINX находится в контейнере, то как быть с сертификатами, которые устанавливаются для домена?
3.1. Как мне сохранить данные базы при переносе с 1 машины, на другую?
3.2. Как сохранить статические файлы (например аватарки пользователей, которые они загрузили, но они хранятся в папке на сервере)?
4. Можно ли настроить пайплайн, при котором у меня будут существовать 3 версии приложения: development, staging, release, работающие по следующему принципу:
На основе development образа на локальной машине мы 1 кнопкой собираем staging образ, который проходит unit тесты, далее он автоматически обновляется на сервере, после прохождения манульных тестов в staging на серваке мы нажимаем 2 кнопку (условно) и обновляем уже до release версии образа, который также автоматом выполнит сборку и запустится также на сервере?

Заранее выражаю огромную благодарность тем, кто поделится опытом, либо даст источники, где есть примеры с ответами на мои вопросы!
1. Окружение логично должно быть тоже в докере
2. Сертификаты берутся их пошаренного volume
3. Для этого есть (выгрузки или связь volume с физическим диском)
3.2 Можно на какой нибудь другой пошарейны volume
4. Пайплайн будет 1 а вот в самом конце может быть 3 цели для деплоя. Деплой желательно запускать руками, в гитлабе есть такие настройки
источник

NT

Natalia Tepluhina in Клуб Vue.js-разработчиков
он точно так же реактивен
источник

NT

Natalia Tepluhina in Клуб Vue.js-разработчиков
можно обойтись просто mapState в вашем примере с сокетом
источник

РГ

Руслан Гусейнов... in Клуб Vue.js-разработчиков
я понимаю
источник

D

Dmitry in Клуб Vue.js-разработчиков
в сторе геттеры нужны если тебе надо как-то изменить для вывода данные в стейте
Например вернуть 5 элементов вместо всех или как-то изменить их
Если я правильно понял вопрос вообще)
источник

РГ

Руслан Гусейнов... in Клуб Vue.js-разработчиков
не понимаю зачем нужен геттерс тогда XD
источник