Pull to refresh
11
0
Артем Мингулов @mingulov

Cистемный администратор

Send message

Проксируем OpenVPN с помощью Cloak

Level of difficulty Easy
Reading time 9 min
Views 51K

Cloak — это подключаемый транспорт, который расширяет возможности традиционных прокси-инструментов, таких как OpenVPN, Shadowsocks и Tor для обхода сложной цензуры и дискриминации данных.

Руководство будет включать:

1. Предисловие

2. Описание работы Cloak

3. Настройку сервера Cloak

4. Настройку клиента Cloak на OpenWRT

5. Настройку клиента OpenVPN

Читать далее
Total votes 34: ↑34 and ↓0 +34
Comments 59

Хранилища в Kubernetes: OpenEBS vs Rook (Ceph) vs Rancher Longhorn vs StorageOS vs Robin vs Portworx vs Linstor

Reading time 8 min
Views 15K


Обновление!. В комментах один из читателей предложил попробовать Linstor (возможно, он сам над ним работает), так что я добавил раздел об этом решении. Еще я написал пост о том, как его установить, потому что процесс сильно отличается от остальных.


Если честно, я сдался и отказался от Kubernetes (во всяком случае, пока). Буду использовать Heroku. Почему? Из-за хранения! Кто бы мог подумать, что я буду больше возиться с хранилищами, чем с самим Kubernetes. Я использую Hetzner Cloud, потому что это недорого и производительность хорошая, и с самого начала я развертывал кластеры с помощью Rancher. Я не пробовал управляемые сервисы Kubernetes от Google/Amazon/Microsoft/DigitalOcean и проч., проч., потому что всему хотел научиться сам. А еще я экономный.

Читать дальше →
Total votes 27: ↑26 and ↓1 +25
Comments 4

Server-Side Rendering с нуля до профи

Reading time 12 min
Views 110K


  • В данной статье мы разберем влияние SSR на SEO оптимизацию приложения.
  • Пройдем с вами путь по переносу обычного React приложения на SSR.
  • Разберем обработку асинхронных операций в SSR приложениях.
  • Посмотрим, как делать SSR в приложениях с Redux Saga.
  • Настроим Webpack 5 для работы с SSR приложением.
  • А также рассмотрим тонкости работы SSR: Генерация HTML Meta Tags, Dynamic Imports, работа с LocalStorage, debugging и прочее.
Читать дальше →
Total votes 12: ↑10 and ↓2 +8
Comments 7

Shawarma as a service: как создать бота для заказа шавермы и оставить голодными лишь 1,1% коллег

Reading time 12 min
Views 20K

Полтора года назад в Selectel появилась традиция кушать шаверму по четвергам. Акция, названная Шавадеем, быстро обрела популярность. С увеличением количества адептов ее организационные моменты — в частности, сбор и отправка заказов — становились все сложнее. На помощь позвали программиста — меня.

В этой статье я расскажу, как мы автоматизировали организацию шавадея, написав бота, как Telegram вставлял палки в колеса, как я с этим боролся и что в итоге получилось. В конце вас ждет статистика, которая покажет вкусовые предпочтения разработчиков и «охваты» традиции. А еще ответит на вопрос, сколько людей остались без еды из-за бэкэндера, который до этого никогда не занимался проектированием пользовательских интерфейсов.
Читать дальше →
Total votes 77: ↑77 and ↓0 +77
Comments 13

rpm-gpg-repository-mirroring — Скрипт для скачивания RPM из репозиториев, для которых нельзя сделать yum proxy в Nexus

Reading time 7 min
Views 3K

В некоторых организациях с серверов нет доступа в интернет. В таких случаях делают зеркала основных репозиториев.


Но что делать, если доступ с серверов ограничен, а нужные rpm пакеты нужно установить? Обычно используют reposync или скачивают руками и делают локальный репозиторий.
Также можно добавить репозиторий, который будет ходить в интернет через прокси сервер. На прокcи сервер может быть большая нагрузка.


Но можно использовать скрипт rpm-gpg-repository-mirroring, который скачает нужные rpm пакеты и сделает локальное зеркало.

Читать дальше →
Total votes 9: ↑9 and ↓0 +9
Comments 1

Рациональный подход к декомпозиции систем на модули или микросервисы. Практика

Level of difficulty Hard
Reading time 12 min
Views 4.8K

В своём прошлом посте я рассказал теорию своего подхода к декомпозиции систем на модули. Теперь пришло время проверить её на практике.

Кэмп - реальный проект, который стоил семизначную сумму для заказчика, выполнялся командой из 12 человек (включая двух бакэндеров) и сейчас запущен в промышленную эксплуатацию. Суммарно на выполнение проекта было затрачено 5500 человеко/часов, из которых 950 - на бакенд.

Что из этого получилось?
Total votes 12: ↑9 and ↓3 +6
Comments 2

Рациональный подход к декомпозиции систем на модули или микросервисы

Level of difficulty Hard
Reading time 13 min
Views 6.3K

Чего от разработки ПО хотят разработчики, продакты и владельцы бизнеса?

Одного и того же - побольше дофаминчика (гормон счастья), поменьше кортизольчика (гормон стресса). Притом источники и дофамина, и кортизола у них одни и те же. Дофамин вырабатывается, когда фичи выпускаются в срок и без багов, а кортизол - когда сроки срываются и вылазят баги и регрессии. Бизнесу будет ближе финансовая версия — срыв сроков и баги очевидным образом приводят к увлечению стоимости разработки. Что приводит к выбросу кортизола уже у владельцев.

Как обеспечить высокий уровень дофамина?
Total votes 13: ↑13 and ↓0 +13
Comments 7

25 правил разработки программных интерфейсов [издание третье, дополненное и расширенное]

Reading time 33 min
Views 9.1K

Это — очередная (уже третья) ревизия главы 11 мой книги о разработке API. Если вы найдёте этот текст полезным, я буду очень благодарен за рейтинг на Амазоне.

Читать далее
Total votes 14: ↑14 and ↓0 +14
Comments 41

[Паттерны API] Списки и организация доступа к ним

Level of difficulty Hard
Reading time 11 min
Views 7.7K

Это глава 20 моей книги «API». v2 будет содержать три новых раздела: «Паттерны API», «HTTP API и REST», «SDK и UI‑библиотеки». Если эта работа была для вас полезна, пожалуйста, оцените книгу на GitHub, Amazon или GoodReads. English version on Substack.

В предыдущей главе мы пришли вот к такому интерфейсу, позволяющему минимизировать коллизии при создании заказов:

Читать далее
Total votes 9: ↑8 and ↓1 +7
Comments 0

Проблематика текущей концепции мировой сетевой инфраструктуры и решение при помощи децентрализованного детерминизма

Level of difficulty Medium
Reading time 13 min
Views 3.5K

Всем привет, уважаемые Хабровцы! Пишу вам о наболевшем. О WEB 3.0. Понимаю, что и информация была много где и много разрозненной информации, но в этой статье я постарался рассказать всю основную информацию по всем основным понятиям. Часть из информации понятна мастодонтам в области, часть очень ознакомительна, однако, думаю, информация будет интересна многим и надеюсь весьма понятна. Не будем откладывать вопрос в долгий ящик и приступим.

Приступать
Total votes 10: ↑5 and ↓5 0
Comments 14

Принципы для разработки: KISS, DRY, YAGNI, BDUF, SOLID, APO и бритва Оккама

Reading time 8 min
Views 238K
image

Хорошему программисту необходимо уметь совмещать свои навыки со здравым смыслом. Все дело в прагматизме и навыке выбора лучшего решения для вашей проблемы. Когда вы сталкиваетесь с проблемой при разработке ПО, вы можете воспользоваться базовыми принципами, которые помогут в выборе самого правильного подхода.

В этом тексте приводится набор принципов, которые должен знать любой разработчик, и которые следует периодически освежать в памяти. Считайте их своим секретным оружием при программировании.

Последовательное применение этих принципов упростит ваш переход от миддла к сеньору. Вы можете обнаружить, что некоторые (вероятно) вы применяете интуитивно.

Принципов много. Мы остановимся на семи самых важных. Их использование поможет вам в развитии и позволит стать лучшим программистом.

1. YAGNI

You Aren’t Gonna Need It / Вам это не понадобится

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

Этот принцип применим при рефакторинге. Если вы занимаетесь рефакторингом метода, класса или файла, не бойтесь удалять лишние методы. Даже если раньше они были полезны – теперь они не нужны.

Может наступить день, когда они снова понадобятся – тогда вы сможете воспользоваться git-репозиторием, чтобы воскресить их из мертвых.
Читать дальше →
Total votes 22: ↑19 and ↓3 +16
Comments 9

Как писать bash-скрипты надежно и безопасно: минимальный шаблон

Reading time 8 min
Views 66K

Скрипты на Bash. Как много в этом слове. Любому разработчику рано или поздно приходится их писать. Почти никто не скажет "да, я люблю писать bash-скрипты", и поэтому этой теме уделяют мало внимания.

Я не буду пытаться сделать из вас эксперта в Bash, а просто покажу минимальный шаблон, который поможет сделать ваши скрипты более надежными и безопасными.

Читать далее
Total votes 109: ↑109 and ↓0 +109
Comments 27

Масштабируемая конфигурация nginx

Reading time 12 min
Views 34K
Игорь Сысоев

Игорь Сысоев ( isysoev )


Меня зовут Игорь Сысоев, я автор nginx и сооснователь одноименной компании.

Мы продолжаем разработку open source. С момента основания компании темпы разработки существенно увеличились, поскольку над продуктом работает множество людей. В рамках open source мы оказываем платную поддержку.

Я буду говорить о масштабируемой конфигурации nginx, но это не о том, как обслужить с помощью nginx сотни тысяч одновременных соединений, потому что nginx для этого настраивать не надо. Нужно выставить адекватное число рабочих процессов или поставить его в режим «авто», поставить worker_connections в 100 000 соединений, после этого заниматься настройкой ядра — это гораздо более глобальная задача, чем просто настройка nginx. Поэтому я буду рассказывать о другой масштабируемости — о масштабируемости конфигурации nginx, т.е. о том, как обеспечить рост конфигурации от сотни строчек до нескольких тысяч и при этом тратить минимальное (желательно константное) время на сопровождение этой конфигурации.
Total votes 59: ↑57 and ↓2 +55
Comments 31

Большой обзор Service Mesh: часть первая

Reading time 7 min
Views 8.5K

Service Mesh входит в перечень стандартных для бэкенда технологий, а недавно и вовсе был на вершине хайпа. Вы решаете идти в ногу со временем и добавить в свой кластер Kubernetes первый Service Mesh. От друзей слышите, что Istio требует много памяти, а прокси в Linkerd очень быстрые, хотя никто не проверял. А еще все почему‑то говорят про Cillium, хотя это CNI‑плагин. Обсудим, что к чему.

Меня зовут Максим Чудновский, я занимаюсь развитием интеграционной платформы Synapse в СберТехе. Она имеет поддержку всех возможных стилей интеграции: RPC, файловые, шаблоны в Event Driven architecture. Есть в ней и RPC, а соответственно и Service Mesh, которым я и занимаюсь. Поэтому сегодня поговорим именно о нем.

Читать далее
Total votes 6: ↑6 and ↓0 +6
Comments 1

Большой обзор Service Mesh: часть вторая

Reading time 9 min
Views 4.9K

Service Mesh — подход, который еще вчера был на вершине хайпа, а сегодня становится стандартной технологией для Backend. В этой части посмотрим, как теория накладывается на практику и на что обратить внимание, выбирая Service Mesh для своих задач.

Меня зовут Максим Чудновский, я занимаюсь развитием интеграционной платформы Platform V Synapse в СберТехе. В платформе реализован RPC и Service Mesh, которым я и занимаюсь. В этой статье продолжу рассказывать о технологии и поделюсь соображением о том, как выбрать конкретное решение для ваших задач.

Читать далее
Total votes 5: ↑5 and ↓0 +5
Comments 0

SSL-сертификаты от Let's Encrypt с cert-manager в Kubernetes

Reading time 10 min
Views 41K


В этой статье я расскажу о том, как автоматизировать заказ и продление сертификатов от Let’s Encrypt (и не только) для Ingress’а в Kubernetes с помощью дополнения cert-manager. Но начну с краткого введения в суть проблемы.
Читать дальше →
Total votes 37: ↑36 and ↓1 +35
Comments 17

Эксплуатация MongoDB в Kubernetes: решения, их плюсы и минусы

Reading time 15 min
Views 14K

MongoDB — одна из самых популярных NoSQL/документоориентированных баз данных в мире веб-разработки, поэтому многие наши клиенты используют её в своих продуктах, в том числе и в production. Значительная их часть функционирует в Kubernetes, так что хотелось бы поделиться накопленным опытом: какие варианты для запуска Mongo в K8s существуют? В чем их особенности? Как мы сами подошли к этому вопросу?

Ведь не секрет: несмотря на то, что Kubernetes предоставляет большое количество преимуществ в масштабировании и администрировании приложений, если делать это без должного планирования и внимательности, можно получить больше неприятностей, чем пользы. То же самое касается и MongoDB в Kubernetes.

Читать далее
Total votes 40: ↑38 and ↓2 +36
Comments 2

Kubernetes the hard way (Эволюция Часть 1)

Reading time 6 min
Views 3.6K

Всем привет. Меня зовут Добрый Кот Telegram.

В этой статье расскажем, как развернуть кластер нашим модулем terraform в Yandex Cloud.

От коллектива FR-Solutions и при поддержке @irbgeo Telegram : Продолжаем серию статей о K8S.

Начать приключение
Total votes 8: ↑6 and ↓2 +4
Comments 0

Kubernetes the hard way

Reading time 36 min
Views 23K

Всем привет. Меня зовут Добрый Кот Telegram.

В этой статье расскажем, как развернуть кластер чистыми бинарями и парочкой конфигов.

Вошли и вышли, приключение на 20 минут)

От коллектива FR-Solutions и при поддержке @irbgeo Telegram : Продолжаем серию статей о K8S.

Начать приключение
Total votes 34: ↑34 and ↓0 +34
Comments 16

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Works in
Registered
Activity