Архив рубрики: Scripting/coding

HowTo и примеры использования bash, C, Python, Ruby и т.д.

PHP: кеширование PHP-скриптов — настройка и тюнинг OpCache

25 декабря 2019

OpCache увеличивает производительность PHP сохраняя уже скомпилированные скрипты PHP в общей памяти, таким образом уменьшая работу для PHP-FPM, которому приходится меньше выполнять загрузку, чтение и обработку PHP при поступлении новых запросов. Workflow обработки новых запросов выглядит так: Исходный код проекта — тут>>>. Enable OpCache Редактируем php.ini файл, в данном примере это будет /etc/php/7.3/fpm/php.ini. Добавляем в… Читать далее »

Chromium: Linux, keyrings && Secret Service, шифрование и хранение паролей

9 декабря 2019

Одним из поводов настолько углубиться в keyrings (см. What is: Linux keyring, gnome-keyring, Secret Service, и D-Bus) был факт того, что Chromium, внезапно, при отсутствии keyring в Linux будет хранить пароли в «открытом виде». Собственно, давайте попробуем найти — как и где Chromium хранит пароли, и, самое важное — шифрует ли он их? Chromium и… Читать далее »

Redis: fork — Cannot allocate memory, Linux, виртуальная память и vm.overcommit_memory

27 августа 2019

Cейчас настраиваю Redis как кеширующий сервис приложения, и среди прочего встал вопрос — надо ли включать vm.overcommit_memory в 1, или нет? Вопрос достаточно старый, см. История, но вот докопаться до сути, упорядочить и привести в читабельный вид удалось только сейчас. Проблема заключается в том, что официальная документация и практически все гайды/HowTo-шки по Redis достаточно легкомысленно… Читать далее »

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

18 июня 2019

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

Jenkins: запуск PHPUnit из Codeception по Pull Reguest в Github и Allure-репорты

6 июня 2019

Задача — запускать PHPUnit для тестов кода бекенда. Сам PHPUnit будет запускаться из Codeception. Задача в Jenkins должна триггериться из Github, при создании Pull Request — используем Github Pull-Request Builder плагин. Для просмотра отчётов о тестах — используем Allure. Jenkins запущен в Docker-контейнере, и все процессы будет запускать в контейнерах. Проверка тестов Что бы получить… Читать далее »

Golang: указатели — подробный разбор

20 апреля 2019

Я уже когда-то добавлял пост про указатели в C — C: указатели — подробный разбор, но было это достаточно давно, да и Си всё-таки не совсем Go, хотя в плане указателей разницы нет. Тем не менее — рассмотрим указатели в отдельном посте. Что такое указатель? Кратко, указатель — это переменная, которая хранит адрес памяти другой… Читать далее »

Go: проверка списка публичных репозиториев в Github и уведомления в Slack. Сравнение списков в Go. Первый опыт с Golang.

13 апреля 2019

Задача — написать утилиту, которая будет запускаться по крону из Jenkins и проверять список публичных репозиториев организации в Github. Создание Docker-образа и Jenkins-джобы — в посте Jenkins: проверка публичных репозиториев Github-организации. Затем она должна сравнивать полученный список со списком разрешённых, и если списки не совпадают — слать алерт в Slack. Идея состоит в том, что… Читать далее »

Atom: полезные плагины

8 апреля 2019

Давно пользуюсь vim практически для всего, кроме крупных проектов на Python (которые последнее время случаются крайней редко), для которого использую PyCharm. Тот же PyCharm использую при написании JSON-шаблонов для CludFormation (см. плагин aws-cloudformation). Для Go сначала пользовался vim с плагином vim-go, но недавно потрогал Atom — вполне понравился, попробую исопльзовать его. Собственно в этом посте… Читать далее »

Redis: репликация, часть 3 — redis-py и работа с Redis Sentinel из Python

1 апреля 2019

В продолжение постов о настройке и использовании Redis репликации с использованием Redis Sentinel — пример работы из Python. Предыдущие и последующие посты серии: Redis: репликация, часть 1 — обзор. Replication vs Sharding. Sentinel vs Cluster. Топология Redis. Redis: репликация, часть 2 — Master-Slave репликация, и Redis Sentinel Redis: репликация, часть 4 — написание Ansible роли… Читать далее »

What is: chroot — системный вызов и утилита в Linux

23 марта 2019

chroot() был добавлен в Version 7 Unix в 1979 году и используется для изоляции файловой системы. По сути, является предшественником вообще всей идеи нынешней контейнеризации, только в современных системах используются namespaces и cgroups, а раньше применяли chroot для создания изолированного от хоста рабочего окружения, которое могло использоваться для тестирования. Собственно, ch и root и является… Читать далее »