Pull to refresh
0
0
Ласкин Дмитрий @eshimischi

Fullstack разработчик

Send message

Деплой в Docker Swarm

Level of difficultyMedium
Reading time15 min
Views11K

Недавно я занимался настройкой деплоя для одного из своих проектов. Хочу поделиться полученным опытом и знаниями в виде статьи, описывающей мою систему.

Расскажу:

- Как настроить пайплайны в GitLab для сборки и тестирования сервисов
- Как настроить удаленный сервер для развертывания сервисов
- Как автоматизировать деплой приложений в Docker Swarm, используя GitLab

Читать далее

Деплой сайта в облако за 4 команды в IDE

Level of difficultyMedium
Reading time4 min
Views13K

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

Эта статья создана для новичков, которые смогут просто скопировать код и в “два клика” опубликовать сайт.

Читать далее

Сборка Min.io dev кластера в контейнерах

Level of difficultyEasy
Reading time18 min
Views8.7K

Сборка Min.io dev кластера в контейнерах с tls, site replication, nginx и мониторингом.

Статья представляет собой пошаговое руководство для разворачивания кластерного minio в контейнерах от bitnami. Доступ в кластер будет организован через nginx. Также рядом развернем однонодный minio. Объединим эти 2 minio с помощью site-replication. Создадим тестового пользователя, тестовую политику, тестовый бакет и попробуем с ним работать. Закончим настройкой мониторинга: дефолтные prometheus для сборки метрик и grafana для отрисовки дашбордов.

Читать далее

Обучение разработке чат-ботов Telegram: топ-15 курсов

Level of difficultyEasy
Reading time10 min
Views30K


Чат-боты Telegram — одна из новых модных технологий, которые сейчас на хайпе. Маркетологи внедряют чат-ботов в CRM и в мессенджеры. Все фирмы хотят использовать LLM, поувольнять «лишних» сотрудников и сэкономить. В общем, сейчас это востребованная фишка, на которую большой спрос.

Чат-боты выполняют рутинную работу, привлекают клиентов и разгружают труд владельцев и работников бизнеса. Каждая организация нуждается в собственном боте. Таких организаций миллионы, а разработчиков не хватает катастрофически.
Читать дальше →

CI/CD Kubernetes платформа Gitorion. Highly Available кластер Kubernetes

Level of difficultyMedium
Reading time4 min
Views2.1K

Привет, всем! Мы продолжаем наш цикл статей про CI/CD Kubernetes платформу Gitorion. На очереди освещение шагов по построению платформы в Highly Available исполнении. Поскольку все компоненты платформы и пользовательские приложения запускаются в Kubernetes, начнем c построения Highly Avalable кластера Kubernetes. В статье разберем особенности штатной базы данных Kubernetes etcd, не позволившие избежать избыточности. Рассмотрим способ заменить etcd на SQL-базу с помощью Kine от проекта K3S и построить кластер Kubernetes высокой доступности на два дата центра, способный пережить падение любого из них.

Читать далее

Настройка Git сервера с нуля

Level of difficultyEasy
Reading time12 min
Views19K

Любой начинающий DevOps начинает своё знакомство с Git. Этот инструмент стал неотъемлемой частью рабочего процесса разработчиков по всему миру. Во многих курсах и руководствах по DevOps описывается настройка серверов через популярные платформы, такие как GitLab, а иногда и Gitea. Однако мне стало интересно попробовать другой путь — использовать встроенный в Git инструмент GitWeb.

Подробнее

Gitea + Drone + Nginx + Portainer. Пошаговое руководство по деплою аналога github на своём железе

Reading time8 min
Views20K

В данном туториале я расскажу вам как можно задеплоить gitea на своём железе с использованием docker-compose подключить drone, для возможности автоматизации тестирования и доставки собственных приложений, настроить reverse-proxy через nginx для доступа через сеть и включить portainer для мониторинга запущенных контейнеров.

Читать далее

Typescript ENUM — баланс использования

Level of difficultyMedium
Reading time4 min
Views14K

Привет Всем.

Меня зовут Михаил. В НЛМК нахожусь на должности Frontend-разработчика.  Занимаюсь разработкой внутренних информационных систем на React + Typescript.

В этой статье поговорим про тип enum (перечисление) в Typescript, о случаях когда его можно и нужно использовать, а когда нет.

Перечисления бывают числовыми и строковыми. Например, представим в виде перечисления должности работников кафе.

Рассмотрим перечисления с числовыми значениями:

Читать далее

Запускаем нативную конфигурацию Linux как виртуальную машину при помощи HyperV

Reading time5 min
Views13K
Несколько дней назад я собрал первоклассную рабочую станцию, чтобы возиться с хобби-проектами и играть. Купил себе наилучший и новейший процессор (Ryzen 3900x — 12 ядер, 24 потока), производство AMD, а также 32 ГБ ОЗУ – как говорится, «компромиссы – не для нас». Собрал ПК, оказалось, он просто летает. Сконфигурировал систему так, чтобы в ней можно было одновременно работать с Windows и Linux (PopOS), пользуясь двойной загрузкой. От прошлой сборки у меня сохранился твердотельный диск (SSD), на котором был установлен и сконфигурирован дистрибутив Linux. Там я настроил поисковые роботы для Twitter, а также установил и приспособил для работы другие сервисы. Linux я использовал для задач, где требуется продуктивность, а под Windows в основном играл – впрочем, так и принято.

Некоторое время спустя я осознал, что у такой конфигурации есть явный недостаток. Пока я играл, мои поисковые роботы и прочие сервисы, в сущности, оставались выключены. Чтобы это исправить, я изменил порядок загрузки так, чтобы по умолчанию загружалась именно ОС Linux. Но даже в таком случае я не был готов смиряться с такой нагрузкой, которую испытывал процессор – фактически, он был вынужден тянуть обе эти ОС одновременно, хотя и более чем справлялся с этим. Если бы мне удалось как-то виртуализовать уже установленный у меня образ Linux, то процессор бы смог обслуживать обе ОС, даже не напрягаясь. Я к тому же ленив и обнаружил, что переключаться с одной действующей ОС на другую, фактически, деактивируя при этом первую – очень сложно, в особенности, если делать это часто. Мне хотелось просто снизить издержки.
Читать дальше →

Почему эмигранты-удаленщики иногда не платят налоги в России: нюансы НДФЛ с зарплаты

Level of difficultyEasy
Reading time18 min
Views11K

В этом и прошлом году из России уехало огромное число специалистов – но при этом далеко не все из них хорошо понимают, какие налоговые последствия влечет эмиграция. В этой статье мы вместе с налоговым юристом детально разобрались в особенностях удержания российского НДФЛ с зарплаты (и как его можно уменьшить).

Читать далее

Создание масштабируемой и высокодоступной системы Postgres с помощью Patroni 3.0 и Citus

Reading time16 min
Views19K

Citus — это расширение для PostgreSQL, которое обеспечивает масштабируемость PostgreSQL за счет прозрачного распределения и/или репликации таблиц на одном или нескольких узлах PostgreSQL. Citus можно использовать как на облачной платформе Azure, так и на собственных серверах, поскольку расширение базы данных Citus имеет полностью открытый исходный код.

Читать далее

Аутентификация в React — это просто

Reading time13 min
Views47K


Аутентификация — это одна из тех вещей, которые зачастую требуют от нас гораздо больше усилий, чем нам хотелось бы.

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

В этом руководстве мы рассмотрим другой подход к аутентификации (а также управлению доступом, SSO и т.д.) в React-приложениях.
Читать далее

Puppeteer в Node.js: Антипаттерны, которые следует избегать

Reading time9 min
Views5.4K

Puppeteer — это мощная библиотека автоматизации работы с браузером для веб-скрейпинга и интеграционного тестирования. Однако ее асинхронный реалтайм API оставляет вам достаточно много пространства для неумышленного создания проблем и антипаттернов.

Хоть эти антипаттерны и не являются полноценными ошибками, исключение их из скриптов (или хотя бы разумное использование) значительно повысит надежность вашего Puppeteer-кода.

Давайте начнем.

Читать далее

Модели данных в NoSQL

Level of difficultyEasy
Reading time15 min
Views11K


Автор статьи: Артем Михайлов


NoSQL (от «Not Only SQL») представляют собой семейство баз данных, разработанных для решения проблем, связанных с хранением, извлечением и обработкой больших объемов разнообразных данных. Они отличаются от традиционных реляционных баз данных, таких как MySQL или PostgreSQL, тем, что не требуют жесткой схемы данных и предоставляют более гибкую структуру хранения.

Преимущества NoSQL баз данных включают в себя горизонтальное масштабирование, высокую производительность при больших нагрузках, способность обрабатывать полуструктурированные и неструктурированные данные, а также поддержку распределенных вычислений. Они широко используются в веб-разработке, анализе больших данных, интернете вещей и других областях, где требуется обработка и хранение данных большого объема и разнообразной структуры.
Читать дальше →

Как открыть счет и карту в банках Грузии в 2024 году?

Reading time9 min
Views77K

Грузия — страна с хорошо развитой финансовой системой. Два ее банка — TBC и BoG — торгуются на London Stock Exchange. Грузия интересна открывателям счетов прежде всего благодаря современному банкингу, относительно лояльному валютному контролю, отсутствию автообмена с РФ, возможностью привязки карты к PayPal.

Среди минусов стоит отметить скандалы, связанные с неожиданными закрытиями счетов для Россиян и полное отсутствие возможности свифт, да и вообще каких либо переводов в РФ.

Одним словом, если требуется принимать платежи из-за границы и отправлять в РФ - это в Казахстан, Армению и Киргизию, если обладатель карты - кочевник, который получает зарплату из-за рубежа, то Грузия - идеальный вариант. Почти во всех банках требуется личное присутствие, но некоторые допускают открытие счета по доверенности.

Читать далее

Шина между Веб-воркерами и основным потоком. Ускоряем работу JavaScript

Level of difficultyEasy
Reading time8 min
Views13K

Хотите узнать, как ускорить выполнение JavaScript в веб-приложениях? В этой статье я подробно расскажу о веб-воркерах, шине данных между основным потоком и веб-воркерами, и как это можно применить в Angular, React и Vue, используя мой npm пакет web-worker-bus. Вы узнаете, как вынести тяжелые вычисления в отдельные потоки, организовать обмен данными, и как это все собрать в единую архитектуру. Примеры кода, инструкции и советы внутри помогут вам сделать ваши проекты быстрее и эффективнее с помощью этого инструмента. Освоение этого подхода и использование web-worker-bus может стать значимым улучшением в ваших проектах. Загляните, если интересуетесь оптимизацией JavaScript и хотите узнать, как мой пакет может вам в этом помочь!

Читать далее

Революционные IDE, повлиявшие на разработку ПО

Level of difficultyEasy
Reading time12 min
Views33K
В старину при написании кода вы видели лишь чёрный текст на белом фоне. Для того чтобы писать код, требовалось много внимания и аккуратности. Опечатки не подсвечивались автоматически, а синтаксические ошибки обнаруживались только в процессе компиляции. По сравнению с современным программированием это был совершенно иной процесс.

Asymetrix ToolBook, когда-то популярный благодаря мультимедийным возможностям, но уже давно позабытый

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

Разбираем HTTP/2 по байтам

Level of difficultyMedium
Reading time24 min
Views42K

image


Откройте любую статью с обзором HTTP/1.1. Скорее всего, там найдётся хотя бы один пример запроса и ответа, допустим, такие:


GET / HTTP/1.1
Host: localhost

HTTP/1.1 200 OK
Date: Sat, 09 Oct 2010 14:28:02 GMT
Server: Apache
Content-Length: 38
Content-Type: text/html; charset=utf-8

<!DOCTYPE html>
<h1>Привет!</h1>

Теперь откройте статью с обзором HTTP/2 или HTTP/3. Вы узнаете о мультиплексировании запросов, о сжатии заголовков, о поддержке push-технологий, но вряд ли увидите хоть одно конкретное сообщение. Ясно, почему так: HTTP/1.1 — текстовый протокол, тогда как сиквелы к нему бинарные. Это очевидное изменение открывает дорогу ко множеству оптимизаций, но упраздняет возможность просто и доступно записать сообщения.


Поэтому в этой статье предлагаю покопаться в кишках у HTTP/2: разобрать алгоритмы установки соединения, формат кадров, примеры взаимодействия клиента с сервером.

Читать дальше →

Автоматизация развертывания стенда Kubernetes

Level of difficultyEasy
Reading time22 min
Views9K

Автоматизация развертывания стенда Kubernetes

Что бывает когда стандартное и самое распространённое решение по изучению kubernetes по каким то причинам даёт осечку на твоей рабочей машине?

Ты начинаешь пилить свой велосипед конечно! Вот и я напилил. и он даже катается!)

Читать далее

5 примечательных IT-компаний из Вьетнама

Level of difficultyEasy
Reading time3 min
Views2.6K

В последние годы экономика Вьетнама бурно растет, и немалую лепту в общий прогресс страны внесла IT-индустрия. Низкая стоимость рабочей силы (к тому же высококвалифицированной) — основа быстрого расширения сектора информационных технологий. Сегодня Вьетнам является восьмой по величине страной в мире, предлагающей IT-услуги. Даже сельское хозяйство и торговля ушли на задний план.

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

Читать далее

Information

Rating
Does not participate
Location
Калининградская обл., Россия
Date of birth
Registered
Activity

Specialization

Fullstack Developer, Web Developer