Latest Posts

Очистка Slack — сообщения, файлы — Slack Cleaner

Очистка Slack — сообщения, файлы — Slack Cleaner

Slack Cleaner — хорошая утилита для удаления сообщений, чатов, файлов из Slack команды. Также при помощи данной утилиты можно удалить все сообщения определенного пользователя.

Для запуска и удаления файлов достаточно создать новый Slack токен (вы должны быть администратором команды чтобы выполнять некоторые операции).

И далее запускаем следующую команду:

Read more

Kuberentes. Основные компоненты

Kuberentes. Основные компоненты

Kubernetes — ПО  для автоматизации развёртывания, масштабирования контейнеризированных приложений и управления ими. Поддерживает основные технологии контейнеризации, включая Docker, rkt, также возможна поддержка технологий аппаратной виртуализации. Рассмотрим основные компоненты Kubernetes:

  1. API Server — Открывает наружу Kubernetes API. Фронтенд часть Kubernetes контроллера. Называют kube-apisever.
  2. etcd — Распределенное key-value хранилище для сохранения состояния кластера.
  3. Scheduler — Планировщик Kubernetes, определяет на каких нодах нужно поднимать поды очередного сервиса или при изменении нагрузки (или проблемах с нодой) перераспределять поды.
  4. Kube-controller-manager  Контроллер, который отвечает за работоспособность фоновых задач кластера.
  5. Cloud-controller-manager Контроллер, отвечающий за взаимодействие с Cloud провайдерами.
  6. kubelet — Отвечает за все, что бежит на ноде. Общается с мастер нодой через API Server.

    Read more

Сканирование портов с nmap

Сканирование портов с nmap

nmap — полезная утилита для сканирования открытых наружу на целевом хосте портов. Утилита имеет множество настроек (ограничить диапазон портов, узнать тип ОС)

Устанавливается при помощи brew:

$ brew install nmap

И далее достаточно задать имя хоста для проведения проверки:

$ nmap ip-host
Starting Nmap 7.80 ( https://nmap.org ) at 2020-01-19 15:35 CET
Nmap scan report for ip-host
Host is up (0.045s latency).
Not shown: 995 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
25/tcp   open  smtp
80/tcp   open  http
443/tcp  open  https
3306/tcp open  mysql

Nmap done: 1 IP address (1 host up) scanned in 0.88 seconds

Как мы видим к примеру сервисы SSH, MySQL торчат наружу на стандартных номерах портов. Для безопасности рекомендуется менять номера портов если их нужно открывать наружу и использовать файрволл который будет блокировать соединения с неподходящих источников.

Read more

Golang — поднятие тест сервера при unit тестах

Golang — поднятие тест сервера при unit тестах

func TestHTTP(t *testing.T) {
  go func() {
    serverMux := http.NewServeMux()
    serverMux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
      fmt.Fprintln(w, "Pong!")
    })
    err := http.ListenAndServe(":8082", serverMux)
    if err != nil {
      panic("ListenAndServe: " + err.Error())
    }
  }()

   URL = "http://localhost:8082"
   assert.NoError(t, myTestServerFunc())
}

... ... ...

func myTestServerFunc() err {
 // here your business logic which calls remote hosts
 return nil
}

При помощи данного сниппета мы можем зарегистрировать нужные нам http роуты для теста и запустить в отдельной go-рутине минимальный веб сервер.
Данная техника полезна при тестировании различных HTTP запросов без вовлечения внешних ресурсов. Тем самым мы можем проверить наш код на обработку ошибок, таймаутов или различных body response.

Read more

Скрипт автоматизации платежей на карты Visa, MasterCard, Мир

Скрипт автоматизации платежей на карты Visa, MasterCard, Мир

В наличии скрипт для проведения автоматических платежей при помощи партнерского провайдера на кредитные карты Visa, MasterCard, Мир.

В общем случае будет достаточно инициализировать клиент и вызвать один метод для проведения платежа.

Платеж будет проведен посредством провайдера-партнера с установленными тарифами моментально.

Скрипт можно развернуть как веб сервис с REST API. По примерам и вопросам внедрения обращайтесь через контакты.

Read more

Скрипт автоматизации платежей Qiwi

Скрипт автоматизации платежей Qiwi

В наличии скрипт для проведения автоматических платежей при помощи партнерского провайдера для платежной системы Qiwi.

В общем случае будет достаточно инициализировать клиент и вызвать один метод для проведения платежа:

$qiwiClientId = '';
$qiwiClientSecret = '';
$qiwiPin = '';

$client = new AdvGroupClient($qiwiClientId, $qiwiClientSecret, new HttpClient());
$resultTxId = $this->client->sendToExternalQiwiWallet($qiwiPin, $wallet, $amount);

Платеж будет проведен посредством провайдера-партнера с установленными тарифами моментально на кошелек Qiwi.

Read more

Загрузка файла в S3 с Go и minio-go client

Загрузка файла в S3 с Go и minio-go client

Для одного из проектов потребовалось сделать сервис по хранению файлов в одном из провайдеров, поддерживающих S3 API. В качестве клиента была использована библиотека minio-go. Minio — это OpenSource аналог S3, а minio-go — удобный клиент для работы с ним.

Напишем приложение-песочницу, которая будет загружать файл с локального компьютера и получать обратно ссылку для скачивания файла с коротким временем жизни:

Read more

Ping-HTTP — сервис мониторинга веб проектов

Ping-HTTP — сервис мониторинга веб проектов

ping-http.com — простой сервис для мониторинга и веб проектов. При помощи данного сервиса вы можете получать уведомления и включать автоматизацию при наличии проблем с вашим веб проектом. В общий план также входит SSL мониторинг и система уведомлений по Email или Telegram.

В панели монитора также доступны следующие функции:

Read more

Агрегатор лучших предложений по обмену валют — Bitchange

Агрегатор лучших предложений по обмену валют — Bitchange

Представляем вашему вниманию агрегатор лучших курсов для проведения обменных операций различных электронных платежных систем — bitchange.sassoft.ru

При помощи данного сервиса вы сможете найти лучший обменный пункт с высоким рейтингом и доступными резервами в режиме реального времени. Сервис использует источники различных мониторингов платежных систем и подбирает наилучшее предложение.

Read more

Поднятие Docker контейнеров в тестах с Go и Dockertest

Поднятие Docker контейнеров в тестах с Go и Dockertest

Для запуска интеграционных тестов в Golang часто требуются внешние зависимости в виде базы данных, брокера сообщений либо еще каких-то сторонних компонентов.В итоге для поднятия внешних сервисов мы используем Docker и пишем docker-compose.yml файл который выглядит как-то так:

version: '3'
services:
  db:
    image: postgres:10.6-alpine
    ports:
      - '5432'
    environment:
      LC_ALL: C.UTF-8
      POSTGRES_DB: test
      POSTGRES_USER: test
      POSTGRES_PASSWORD: pass

Далее до запуска go test мы делаем docker-compose up -d.

Read more