Pull to refresh
0
0
Send message

Зачем я использую контейнеры как виртуалки: опыт python-разработчика

Reading time10 min
Views7.3K

Привет, я Денис, python-разработчик в Cloud.ru. Последние три года я работаю с продуктами на базе компонентов OpenStack — для этого нужны разнообразные навыки и знания способов администрирования и разработки в среде Linux. За это время я убедился — мне не хватает уже существующих способов отладки, доставки кода, подключения к prod- и dev-стендам. Поэтому решил придумать свой.

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

Читать дальше
Total votes 9: ↑8 and ↓1+12
Comments9

Починили весь Discord в бесплатном VPN Amnezia Free

Reading time2 min
Views83K

С 8 октября Discord заблокирован на территории России, многие пользователи отмечают, что у них работает web-версия, но не работает голосовой чат. 

За несколько часов стал очень популярным запрос на подсети голосового чата, сервера РКН подверглись Ddos атаке, а тема с обсуждением блокировки в реальном времени с создателем Goodbye dpi стала настолько просматриваемой , что на несколько минут  положила  ntc party.

Статьи про  Discord на Хабре за 2 дня набрали от 200к до полумиллиона читателей. А через день после блокировки в госдуме предложили разблокировать Discord по причине отсутствия альтернатив.

Мы с командой согласны с предложением в госдуме и решили присоединиться к поиску решений.

В общем, без долгих вступлений, хотим рассказать, что мы добавили в наш бесплатный VPN AmneziaFree 3 Discord  с голосовыми чатами и стримами. А это значит, что играть можно по сети без VPN, а использовать Discord  через бесплатный VPN.

Читать далее
Total votes 41: ↑38 and ↓3+43
Comments75

Проверка содержимого PDF-файлов средствами Python и pdfminer. Часть 2

Level of difficultyMedium
Reading time9 min
Views3.7K

В предыдущей части статьи мы рассмотрели общие подходы к тестированию PDF и познакомились с тем, как библиотеки pdfminer и PDFQuery помогают нам получать детальную информацию об объектах. Достаточно ли нам этой информации? Далеко не всегда. В этой статье мы расскажем о решении некоторых интересных технических проблем.

Читать далее
Total votes 6: ↑5 and ↓1+8
Comments1

Простой мини-чат на FastApi: Современный интерфейс, вебсокеты и SQLAlchemy с деплоем

Reading time40 min
Views15K

Привет, друзья! Сегодня я подготовил для вас увлекательную практическую статью о создании мини-чата на FastApi. Мы погрузимся в мир вебсокетов, узнаем, зачем они нужны и как применяются в реальных приложениях. Также я продемонстрирую работу с асинхронной SQLAlchemy на примере взаимодействия с базой данных SQLite.

Для создания современного интерфейса мы обратимся к интересному и бесплатному сервису Websim.ai, который за пару минут сгенерирует нам интерфейс, включая страничку для входа/регистрации и страницу самого чата.

Чтобы наш чат мог обслуживать множество пользователей одновременно, мы выполним деплой нашего FastApi приложения. Для этого воспользуемся сервисом Amvera Cloud. Нам нужно будет подготовить файлы приложения, написать код, создать файл с настройками (можно сгенерировать на сайте или скопировать мой код), а затем доставить файлы на сервис. Для доставки можно использовать встроенный терминал или GIT, используя стандартные команды PUSH/PULL.

Но прежде чем мы погрузимся в код, давайте кратко обсудим, что такое вебсокеты и как они работают в контексте FastApi.

Читать далее
Total votes 18: ↑18 and ↓0+23
Comments5

Python: метапрограммирование в продакшене. Часть первая

Reading time12 min
Views32K

Многие считают, что метапрограммирование в Python излишне усложняет код, но если использовать его правильно, то можно быстро и элегантно реализовать сложные паттерны проектирования. Помимо этого, такие известные Python-фреймворки, как Django, DRF и SQLAlchemy, используют метаклассы, чтобы обеспечить легкую расширяемость и простое переиспользование кода.



В этой статье расскажу, почему не стоит бояться использовать метапрограммирование в своих проектах и покажу, для каких задач оно подходит лучше всего. Еще больше о возможностях метапрограммирования можно узнать на курсе Advanced Python.

Читать дальше →
Total votes 30: ↑30 and ↓0+30
Comments7

Git. Скачем между ветками как древесные лягушки

Level of difficultyEasy
Reading time6 min
Views27K

Статей на тему много, но, видимо, недостаточно: время от времени слышу от коллег (последние 10 лет, в 4-х разных компаниях):

«Не могу пошарить экран с кодом, у меня другая ветка сейчас».

«Не хочу переключать ветку, придется запускать кодогенерацию, у меня сбросятся build-файлы, потом это опять пересобирать!»

«Стаскивать ветку для просмотра ПР? Это же неудобно, надо "стэшить" изменения, ветку переключать».

Читать далее
Total votes 84: ↑84 and ↓0+100
Comments71

Как IT-специалисту составить резюме: советы рекрутеров

Reading time3 min
Views16K

Рекрутеры и HR-специалисты просматривают десятки и сотни откликов на вакансии и тратят на резюме примерно минуту. Поэтому емкое резюме — залог того, что кандидата заметят. Мы спросили нескольких эйчаров, что должно быть в хорошем резюме, а чего лучше избегать.

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

Читать далее
Total votes 25: ↑20 and ↓5+34
Comments44

Ускорение Python в 2 раза с помощью multiprocessing, async и MapReduce

Level of difficultyMedium
Reading time16 min
Views11K

Python действительно может считаться относительно медленным языком программирования по сравнению с некоторыми другими языками, такими как C++ или Java. Однако, существуют различные библиотеки и инструменты, которые позволяют ускорить выполнение счетных задач в Python. Рассмотрим как можно ускорить анализ данных в 2 раза!

Читать далее
Total votes 17: ↑17 and ↓0+23
Comments8

Пять Docker-утилит, о которых вам стоит узнать

Reading time5 min
Views36K

Источник изображения


На просторах сети Интернет можно найти немало полезных утилит для Docker. Многие из них принадлежат к разряду Open Source и доступны на Github. В последние два года я достаточно активно использую Docker в большинстве своих проектов по разработке программного обеспечения. Однажды начав работать с Docker, вы осознаете, что он оказывается полезен для гораздо более широкого круга задач, нежели вы изначально предполагали. Вам захочется сделать с Docker еще больше, и он не разочарует!


Docker-сообщество живет активной жизнью, ежедневно производя новые полезные инструменты. За этой бурной деятельностью достаточно сложно уследить. Поэтому я решил выбрать несколько наиболее интересных и полезных из ежедневно используемых мной Docker-утилит. Они делают работу более продуктивной, автоматизируя операции, которые пришлось бы выполнять вручную.


Давайте посмотрим на утилиты, которые помогают мне в процессе докеризации всего и вся.

Читать дальше →
Total votes 32: ↑30 and ↓2+28
Comments16

Microk8s, еще один легковесный K8s

Level of difficultyEasy
Reading time6 min
Views11K

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

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

MicroK8s - отличный способ запустить и ознакомиться с Kubernetes. Это полностью совместимый, легковесный пакет Kubernetes, который работает на 42 видах Linux и идеально подходит для:

Читать далее
Total votes 10: ↑8 and ↓2+8
Comments7

Бекпорт на примере Node.js v22 и Windows 7

Level of difficultyHard
Reading time12 min
Views3.5K

Что делать если надо запустить современный софт в устаревшем окружении? Рассказываем о процессе «портирования назад» последней версии Node.js на Windows7.

Погрузиться
Total votes 18: ↑18 and ↓0+23
Comments26

Kubernetes — изучаем паттерн Sidecar

Reading time6 min
Views54K

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

Под, содержащий один контейнер, относится к одно-контейнерным подам и это самый распространенный вариант их использования в Kubernetes. Под, который содержит несколько связанных контейнеров, относится к мульти-контейнерным подам. Есть несколько паттернов для мульти-контейнерных подов и один из них — это паттерн sidecar. В этом посте мы на примере проекта детально рассмотрим этот паттерн.

Читать далее
Total votes 11: ↑8 and ↓3+5
Comments0

Настраиваем взаимодействие с внутренним API приложения через свой API-proxy

Level of difficultyEasy
Reading time5 min
Views1.7K

Что делать, если хочется повзаимодействовать с приложением-мессенджером, но его издатель такой опции в виде API для нас не предусмотрел?

Конечно же стоит попробовать себя в качестве джуниор-минус реверс-инженера - всего лишь на уровне перехвата HTTP-запросов с их последующим воспроизведением.

Читать далее
Total votes 6: ↑5 and ↓1+4
Comments0

Poetry — прекрасная альтернатива pip (шпаргалка)

Reading time6 min
Views169K

Poetry - это инструмент для управления зависимостями в Python проектах (аналог встроенного pip). Идея реализации данного инструмента пришла его создателю в связи с тем, что различные способы менеджмента пакетов (requirements.txt, setup.cfg, MANIFEST.ini и другие) показались создателю Poetry не очень-то удобными. 

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

Ознакомиться
Total votes 20: ↑20 and ↓0+20
Comments40

Docker и VMWare Workstation на одной Windows машине

Reading time3 min
Views15K
Задача было простой, поставить Docker на свой рабочий ноутбук с Windows, на котором уже и так зоопарк. Поставил Docker Desktop создал контейнеры, всё ок, вот только быстро обнаружил, что VMWare Workstation перестала запускать виртуалки с ошибкой:

VMware Workstation and Device/Credential Guard are not compatible. VMware Workstation can be run after disabling Device/Credential Guard.

Читать дальше →
Total votes 4: ↑4 and ↓0+4
Comments5

Тестируем слой БД в Python с использованием pytest и testcontainers

Reading time15 min
Views17K

Несмотря на большую популярность testcontainers в мире java, информации по применению testcontainers в python в интернете практически нет. Даная статья - попытка ликвидировать этот пробел. Если тема показалась интересной, добро пожаловать под кат!

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

Моя интеграция с 1С

Reading time11 min
Views183K
Привет Хабравчанам!

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

Предупреждаю, что способ ни в коем случае не претендует на универсальность. Поскольку самих конфигураций 1С существует немало, а информационных систем, языков и платформ — еще больше, то количество возможных комбинаций огромно. Моя цель — продемонстрировать одно из возможных решений.

Читать дальше →
Total votes 35: ↑31 and ↓4+27
Comments65

Изучаем Docker, часть 6: работа с данными

Reading time5 min
Views245K
В сегодняшней части перевода серии материалов о Docker мы поговорим о работе с данными. В частности — о томах Docker. В этих материалах мы постоянно сравнивали программные механизмы Docker с разными съедобными аналогиями. Не будем отходить от этой традиции и здесь. Данные в Docker пусть будут специями. В мире существует множество видов специй, а в Docker — множество способов работы с данными.

Часть 1: основы
Часть 2: термины и концепции
Часть 3: файлы Dockerfile
Часть 4: уменьшение размеров образов и ускорение их сборки
Часть 5: команды
Часть 6: работа с данными


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

Землю — крестьянам, gRPC — питонистам

Level of difficultyMedium
Reading time5 min
Views20K

Протокол gRPC в данный момент является довольно распространёным решением (почему, очень хорошо описано в статье от Яндекса). На работе мы также используем его везде, где идёт речь об общении микросервисов друг с другом. Но, к сожалению, когда я начал вникать в устройство и применять его, столкнулся с некоторыми сложностями в реализации сервера на Python, которые показались мне неоправданными.

Внутри кроется решение!
Total votes 14: ↑12 and ↓2+14
Comments30

Как перейти с Oracle на PostgreSQL, используя Ora2Pg

Level of difficultyEasy
Reading time3 min
Views5K

Привет, Хабр!

Сегодня мы поговорим об актуальной задаче — миграции баз данных с Oracle на PostgreSQL с использованием Ora2Pg. Сейчас популярность PostgreSQL обоснована его мощностями и экономически выгодной альтернативы коммерческим решениям.

Читать далее
Total votes 14: ↑8 and ↓6+5
Comments2

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity