Архив рубрики: HOWTO’s

Вопросы, касаюшиеся установки и настройки различных приложений.

AWS: CloudCraft — генерация карты существующей инфрастуктуры

21 августа 2019
 

 Самим сервисом CloudCraft пользуюсь достаточно давно — удобен. На днях получил доступ к его платным возможностям (кстати — 2 недели платной Trial подписки бесплатны), среди которых особенно давно хотелось попробовать возможность генерации карты существующей инфраструктуры. Стоимость подписки — $49/месяц. Пример того, что умеет CloudCraft вообще — есть, например, в посте AWS: миграция RTFM 2.3 —… Читать далее »

Docker: Compose и общие сети

20 августа 2019
 

 Имеется Docker Compose стек с Jenkins, SonarQube и PostgresSQL, см. пост SonarQube: запуск в Docker и вызов из Jenkins Pipeline. Проблема в том, что они описаны в одном Compose-файле, и весь стек перезапускается единым systemd-файлом (см. Linux: systemd сервис для Docker Compose). Соответственно, если надо перезапустить SonarQube — то придётся перезапускать и Jenkins, на котором… Читать далее »

Kubernetes: знакомство, часть 3 — обзор AWS EKS и ручное создание кластера

15 августа 2019
 

 Продолжаем знакомство с Kubernetes. Предыдущие части: Kubernetes: знакомство, часть 1 — архитектура и основные компоненты, обзор Kubernetes: знакомство, часть 2 — создание кластера с AWS cloud-provider и AWS LoadBalancer Следующие: Kubernetes: знакомство, часть 4 — аутентификация в AWS EKS, aws-iam-authenticator и AWS IAM В этой части перейдём уже непосредственно к EKS — кратко его рассмотрим,… Читать далее »

Kubernetes: знакомство, часть 2 — создание кластера с AWS cloud-provider и AWS LoadBalancer

10 августа 2019
 

 В первом посте — Kubernetes: знакомство, часть 1 — архитектура и основные компоненты, обзор — были рассмотрены основные компонены, теперь время применить их на практике. Продолжение — Kubernetes: знакомство, часть 3 — обзор AWS EKS и ручное создание кластера. Следующим, что очень хотелось потрогать — это интеграция Kubernetes с AWS и работа с сетью: создать веб-сервис,… Читать далее »

NGINX: limit_req — ограничение количества запросов

9 августа 2019
 

 Задача — установить лимит количества запросов с одного IP: добавить rate limiter на URI /user/oauth/refresh_token число запросов — 5 в минуту с одного IP если запросов больше — возвращаем 429 Too Many Requests Используем NGINX и его модуль ngx_http_limit_req_module. limit_req_zone Для работы «лимитера» — следует создать зону, в которой будут хранится данные (а именно —… Читать далее »

Kubernetes: знакомство, часть 1 — архитектура и основные компоненты, обзор

24 июля 2019
 

  На текущем проекте у нас имеется API-бекенд для мобильных приложений на PHP Yii-фреймворке, который работает на стандартном LEMP — Linux/NGINX/PHP-FPM/MySQL. Пришла пора и нам разбивать этот монолит на микросервисы, для управления которыми будет использоваться Kubernetes (AWS EKS). В этом и последующих постах серии — знакомство с основными компонентами и архитектурой Kubernetes, ручное создание кластера… Читать далее »

AWS: настройка S3 Cross-Region Replication и удаление файлов при репликации

17 июля 2019
 

 В данный момент мы настраиваем CDN для проекта. В роли CDN-провайдера будут CloudFront и CloudFlare, для которых требуется создать две AWS S3 корзины с разными именами (cdn.cfr.example.com => CloudFront и cdn.cfl.example.com => CloudFlare). Что бы не копировать данные в обе корзины дважды — можно настроить репликацию данных между двумя корзинами — это и будет AWS Simple Sorage… Читать далее »

NGINX: мульти-бранч деплой приложения с использованием NGINX map и HTTP Headers

26 июня 2019
 

 Имеется стандартный LEMP — NGINX, PHP-FPM. Приложение — Yii-фреймворк, который деплоится из Jenkins Ansible-ролью с помощью модуля synchronize на хосты в каталог /data/projects/prjectname/frontend/web, который является root в конфиге виртуалхоста NGINX. Задача: создать возможность деплоя из Jenkins приложения из разных бранчей — на хосте одновременно должны быть задеплоены разные версии приложения, доступ к которым будет определяться… Читать далее »

SonarQube: ошибка «SCM provider autodetection failed»

19 июня 2019
 

 Имеется свежая установка SonarQube, см пост SonarQube: запуск в Docker и вызов из Jenkins Pipeline. Проблема Но в дашборде проекта постоянно висит сообщение вида: SCM provider autodetection failed. Please use «sonar.scm.provider» to define SCM of your project, or disable the SCM Sensor in the project settings. И оно же выводится в логах билда в Jenkins.… Читать далее »

SonarQube: запуск в Docker и вызов из Jenkins Pipeline

18 июня 2019
 

 Задача — запустить SonarQube, что бы Jenkins выполнял проверку кода. Jenkins работает в Docker, билды запускаются тоже Docker. Основная проблема, которая возникла во время запуска SonarQube из Docker Compose, это то, что контейнер с SonarQube внутри себя запускает процесс с Elastisearch (что, вроде как, нарушает главный принцип использования конейнеров — 1 сервис на один контейнер).… Читать далее »