fa
Feedback
7 584
مشترکین
اطلاعاتی وجود ندارد24 ساعت
-7307 روز
-4 03830 روز
آرشیو پست ها
📖 Собираем и деплоим приложение в Kubernetes (часть 20) Сборка статических файлов Рассмотрим, как достичь результата, описанного выше. Для начала установим необходимые модули: $ npm install --save-dev webpack webpack-cli webpack-dev-middleware html-webpack-plugin css-loader mini-css-extract-plugin css-minimizer-webpack-plugin 📋 #Совет #Код ▬▬▬▬▬▬▬▬ // How To SQL

📖 Собираем и деплоим приложение в Kubernetes (часть 19) Обновление сборки и деплоя Организация файлов Сейчас у нас есть только одна главная страница, доступная по адресу /. Ее содержимое (шаблон) лежит в каталоге /public/index.html. Добавим к ней еще однуimage.html, а затем реорганизуем структуру файлов в каталоге /public таким образом, чтобы разделить их на две частиpages и assets: код. Страницы, основанные на шаблонах image и index, не будут кешироваться, т.к. их содержимое может быть динамическим. Однако, связанные с страницами файлы мы будем собирать так, чтобы их имена менялись в зависимости от содержимого. Это позволит надолго кешировать файлы в браузерах пользователей и безболезненно изменять их в в случае необходимости. Содержимое каталога dist после сборки статики: код. 📋 #Совет #Код ▬▬▬▬▬▬▬▬ // How To SQL

Наши подписчики слили каналы с курсами по программированию и дизайну! 1. IT Academy — Всё для айтишников — языки программиров
Наши подписчики слили каналы с курсами по программированию и дизайну! 1. IT Academy — Всё для айтишников — языки программирования, новости, курсы, статьи и сервисы. 2. Слuвакер — название говорит само за себя. Слив лучших курсов на любые темы. 3. Терминалоджи – сборник всех IT терминов, которые задают на собеседовании в 90% компаний. 4. Just Python - официально создал канал в Telegram. ❗️Подпишись на все каналы, ведь SkillBox, GeekBrain и другие — уже точат зубы на ребят!

📖 Собираем и деплоим приложение в Kubernetes (часть 18) Новый endpoint /image Теперь создадим в приложении новую страницу /image, на которой будут использоваться статические файлы. Собирать JS-, CSS- и медиафайлы будем с помощью webpack. Располагаться статика будет в каталоге dist вместе с шаблоном главной страницы и страницы с изображением. Добавим новый контроллер в routes/image.js: ... /* GET home page. */ router.get('/', function (req, res, next) { res.sendFile(path.resolve(process.cwd(), 'dist', 'index.html')); }); А также новый маршрут в routes/image.js: const express = require('express'); const router = express.Router(); /* Image page. */ router.get('/', express.static('dist/image.html')); module.exports = router; Теперь наше приложение умеет отдавать страницу, на которой используются статические файлы. 📋 #Совет #Код ▬▬▬▬▬▬▬▬ // How To SQL

📖 Собираем и деплоим приложение в Kubernetes (часть 17) Раздаем assets правильно Node.js-приложение способно самостоятельно заниматься раздачей статических файлов. Например, в express для этого можно создать контроллер на базе express.static. Однако разработчики express советуют использовать для раздачи статических файлов более эффективное решение, такое как проксирующий сервер NGINX. Эта рекомендация основана на том, что reverse proxy имеет лучшую производительность и эффективность раздачи статики, нежели штатные средства Node.js. Сделать это можно несколькими способами. Мы будем использовать достаточно распространенный хорошо масштабируемый способ:NGINX-контейнер поднимается перед каждым контейнером с Node.js в том же Pod’е. • поднятый контейнер будет проксировать все запросы, кроме запросов на статические файлы. • статические файлы хранятся в самом контейнере с NGINX и раздаются средствами последнего. 📋 #Совет ▬▬▬▬▬▬▬▬ // How To SQL

📖 SQL. Справочник. Дэниэл Кляйн, Брэнд Хант, Кевин Кляйн Главная задача книги состоит в том, чтобы помочь менее опытным специалистам научиться переносить код между различными СУБД. Прочтение книги будет полезно и опытным специалистам, так как в ней представлено большое количество полезных советов и приёмов. В справочнике описаны все операторы SQL согласно последнему стандарту, а также особенности их реализации в популярных СУБД. В издании находится описание реляционных моделей данных, объясняется основная концепция СУБД и синтаксис языка. Дополнительно представлены специфические функции, характерные для каждой современной СУБД. Ссылка на книгу: читать. 📋 #Совет ▬▬▬▬▬▬▬▬ // How To SQL

2 канала для программистов любого уровня: 👨🏻‍💻 Free Code — Ламповый уголок программиста. Качественный и редкий материал, который по душе любому начинающему кодеру. 🐍 Библиотека Python разработчика — уникальный и доступный материал, курсы и литература. Всё что нужно для полноценного изучения в кратчайшие сроки.

📖 Собираем и деплоим приложение в Kubernetes (часть 16) Деплой приложения и проверка работоспособности werf использует Git в качестве источника истины о том, с чем работает. Поэтому исходные файлы проекта должны находиться в Git-репозитории, пусть и просто локальном. Инициализируем новый репозиторий и зафиксируем изменения: git init git add . git commit -m FIRST Теперь развернем приложение в Kubernetes, выполнив команду: werf converge --repo ИМЯ ПОЛЬЗОВАТЕЛЯ DOCKER HUB/werf-first-app Ожидаемый результат: код. Проверим, что сервисы развернулись и функционируют: curl http://werf-first-app.test/ping В ответ должно отобразиться Hello, werfer!. 📋 #Совет #Код ▬▬▬▬▬▬▬▬ // How To SQL

📖 Собираем и деплоим приложение в Kubernetes (часть 15) Теперь заполним манифесты Deployment приложения: код. Ingress: код. Service: код. Теперь остается последний шагдобавить файл конфигурации werf. Это файл werf.yaml, расположенный в корне проекта и содержащий следующее содержимое: project: werf-first-app configVersion: 1 --- image: app dockerfile: Dockerfile Приложение готово к деплою. 📋 #Совет #Код ▬▬▬▬▬▬▬▬ // How To SQL

Все знают, что в 21 веке самая перспективная сфера - это IT. Самые опытные кодеры СНГ создали свой канал, где обучают кодингу
Все знают, что в 21 веке самая перспективная сфера - это IT. Самые опытные кодеры СНГ создали свой канал, где обучают кодингу быстро и эффективно! Code Guru – только эксклюзивный материал и самый простой способ войти в айти. Подпишись: @Code Guru

📖 Собираем и деплоим приложение в Kubernetes (часть 14) Следующим шагом создадим Dockerfile, расположив его в корневом каталоге проекта и адаптировав под сборку приложения на Node.js: FROM node:12-alpine WORKDIR /app # Копируем в образ файлы, нужные для установки зависимостей приложения. COPY package.json package-lock.json ./ # Устанавливаем зависимости приложения. RUN npm ci # Копируем в образ все остальные файлы приложения. COPY . . Теперь необходимо создать манифесты для Kubernetes, описывающие ресурсы, которые будут в нем разворачиваться. Это будут привычные Helm-чарты. Нам нужно не так много — Deployment, в котором будет разворачиваться само приложение, а также Service и Ingress, обеспечивающие доступ к приложению изнутри (между сервисами) и снаружи кластера. Создадим каталог .helm в корне проекта со следующим содержимым: . └── templates ├── deployment.yaml ├── ingress.yaml └── service.yaml 📋 #Совет #Код ▬▬▬▬▬▬▬▬ // How To SQL

В связи с тем, что GeekBrains, SkillBox, Яндекс.Практикум и им подобные частенько сносили ряд наших каналов из-за сливов их к
В связи с тем, что GeekBrains, SkillBox, Яндекс.Практикум и им подобные частенько сносили ряд наших каналов из-за сливов их курсов, мы приняли решения создать именную базу архивов, в которую не ссыкнем😬 выкладывать дорогостоящие и эксклюзивные новинки курсов от топовых онлайн-школ. 🎯Сохраняем: Архив с курсами SkillFactory (на 147 ГБ материалов) Архив с курсами GeekBrains (228 ГБ) Архив с курсами Яндекс.Практикум (147 ГБ) Архив с курсами SkillBox (322 ГБ) Архив с курсами Нетология (47 ГБ)

📖 Собираем и деплоим приложение в Kubernetes (часть 13) Мы убрали из приложения все, что не потребуется на текущем этапе, и оставили только конфигурацию, необходимую для production-приложения. Добавим в файл app.js приложения новый endpoint /ping: ... const indexRouter = require('./routes/index'); const pingRouter = require('./routes/ping'); ... app.use('/', indexRouter); app.use('/ping', pingRouter); Добавим новый контроллер, в котором будем обрабатывать запрос на созданный endpoint и возвращать ответ Hello, werfer!. Создадим файл routes/ping.js со следующим содержимым: const express = require('express'); const router = express.Router(); router.get('/', function (req, res, next) { res.send('Hello, werfer!n'); }); module.exports = router; 📋 #Совет #Код ▬▬▬▬▬▬▬▬ // How To SQL

📖 Собираем и деплоим приложение в Kubernetes (часть 12) Базовое приложение на Node.js Новое приложение на Node.js Создадим новый каталог для приложения: mkdir app Перейдем в него и сгенерируем скелет приложения командой: npx express-generator --git --no-view app Выполнять эти команды и разрабатывать приложение вручную не нужно, исходные коды всех примеров доступны в репозитории. 📋 #Совет #Код ▬▬▬▬▬▬▬▬ // How To SQL

Питонизация - канал с пакетами для Python. Полезно тем, кто хоть немного знаком с питоном или хочет с ним познакомиться. Боль
Питонизация - канал с пакетами для Python. Полезно тем, кто хоть немного знаком с питоном или хочет с ним познакомиться. Большинство инструментов уже написали за вас, остаётся только брать и использовать. Подпишись, чтобы не писать велосипеды и экономить сотни или тысячи часов! https://t.me/+1NPBRR7X-opmMzhi

📖 Собираем и деплоим приложение в Kubernetes (часть 11) Теперь сгенерируем Secret, задав ему имя registrysecret: kubectl create secret docker-registry registrysecret --docker-server='https://index.docker.io/v1/' --docker-username='ИМЯ ПОЛЬЗОВАТЕЛЯ DOCKER HUB' --docker-password='ПАРОЛЬ ПОЛЬЗОВАТЕЛЯ DOCKER HUB' Если отобразилось secret/registrysecret created, значит Secret создан. В случае возникновения ошибки при создании Secret удалите его kubectl delete secret registrysecret, а затем создайте еще раз. К сожалению, возможности отредактировать созданный Secret нет. В документации Kubernetes этот метод создания Secret’ов указан как стандартный. Теперь у нас готово окружение и можно начинать разработку и деплой приложения. 📋 #Совет #Код ▬▬▬▬▬▬▬▬ // How To SQL

📖 Собираем и деплоим приложение в Kubernetes (часть 10) Генерация Secret для доступа к registry Чтобы у werf был доступ к созданному container registry, необходимо подготовить Secret с параметрами для входа. Располагаться он должен в одном пространстве имен с приложением. Создадим пространство имен приложения: kubectl create namespace werf-first-app В случае успешного выполнения мы увидим сообщение namespace/werf-first-app created. 📋 #Совет #Код ▬▬▬▬▬▬▬▬ // How To SQL

🤬ДА БЛ**ТЬ🤬 Да-да, именно такая реакция у создателей курсов, когда они увидели этот канал с бесплатными курсами по: >JavaSc
🤬ДА БЛ**ТЬ🤬 Да-да, именно такая реакция у создателей курсов, когда они увидели этот канал с бесплатными курсами по: >JavaScript (20гб видео) >Python (64гб видео) >C# (27гб курсов) >Java (45гб видео) >PHP (34гб видео) >Go (23гб видео) >Rust (37гб видео) >SQL (41гб видео) >MySQL (21гб видео) >Другое (114гб видео) ВСЕ БЕСПЛАТНО❤️

📖 Собираем и деплоим приложение в Kubernetes (часть 9) Входим на Docker Hub Собираемые образы нужно где-то хранить. Очевидное решениеприватный репозиторий на Docker Hub с именем werf-first-app. Теперь нужно авторизоваться на Docker Hub под своим аккаунтом: docker login Username: ИМЯ ПОЛЬЗОВАТЕЛЯ DOCKER HUB Password: ПАРОЛЬ ПОЛЬЗОВАТЕЛЯ DOCKER HUB В случае успешного входа отобразится сообщение Login Succeeded. 📋 #Совет #Код ▬▬▬▬▬▬▬▬ // How To SQL

📖 Собираем и деплоим приложение в Kubernetes (часть 8) Чтобы проверить, что все сработало как надо, проверьте содержимое /etc/hosts любым доступным способом, в конце должна добавиться строка 192.168.49.2 werf-first-app.test. Проверим, что окружение настроено правильно. Обратимся на созданный адрес: curl http://werf-first-app.test Т.к. приложение пока не запущено, Ingress ответит ошибкой 404: код. 📋 #Совет #Код ▬▬▬▬▬▬▬▬ // How To SQL