Доброго времени суток! Сегодня я продемонстрирую вам, как быстро и эффективно настроить PostgreSQL с помощью Docker Compose. Этот процесс займет всего несколько минут, но в результате вы получите полноценную базу данных PostgreSQL, работающую в изолированном Docker контейнере. Важные компоненты, такие как базы данных, таблицы и индексы, будут сохранены на вашей локальной машине благодаря использованию томов (volumes), что обеспечит надежность и доступность данных.
Java/Kotlin, Python, .NET; JS/TS, Vue.
Ускорение работы в терминале
На своей первой айтишной работе я поставил себе целью работать как можно меньше, чтобы по максимуму высвободить время для изучения каких-нибудь интересных материалов, учёбы или хотя бы просмотра видео на ютубе.
Спустя пару лет ютуб я так и не стал смотреть, но зато довольно сильно увеличил свою продуктивность во всех сферах жизни и сократил все рутинные операции на работе, высвободив себе время для изучения нового и всяких творческих экспериментов.
Так что первоначально я записал эти принципы как набор лайфхаков для джунов в своей компании, но в определённый момент понял, что если подойти к ним правильно, то можно довольно здорово повысить продуктивность всего отдела (если они достаточно упороты, чтобы инвестировать в это время, или вы умеете их мотивировать).
Основы TypeScript
TypeScript — популярная надстройка над JavaScript с поддержкой статической типизации, которая наверняка покажется знакомой программистам на C# или Java. TypeScript поможет вам сократить количество ошибок и повысить общее качество кода на JavaScript.
«Основы TypeScript» — это полностью обновленное третье издание классического бестселлера Адама Фримена. В нем освещены все возможности TypeScript 5, включая новые, такие как декораторы. Сначала вы узнаете, зачем и почему был создан язык TypeScript, а затем почти сразу перейдете к практическому применению статических типов. Ничего лишнего! Каждая глава посвящена навыкам, необходимым для написания потрясающих веб-приложений.
Java-рантаймы с точки зрения Spring Boot
На первый взгляд, выбор правильного Java-рантайма для вашего проекта на Spring Boot может показаться тривиальным. В конце концов, все популярные рантаймы основываются на коде OpenJDK и предлагают одинаковые программные интерфейсы (от англ. Application Programming Interface).
Но не все рантаймы реализованы одинаково. В этой статье мы обсудим различные показатели, которые могут повлиять на ваше решение выбрать определенный дистрибутив Java для Spring Boot приложения.
Оригинал статьи написан на английском языке Aleksey Stukalov, который является Team Lead’ом проекта IntelliJ IDEA в компании JetBrains, и Catherine Edelveis, работающей Developer Advocate в компании BellSoft, в соавторстве.
Оптимизация настроек Kafka кластера. Часть 3. Сравнительное тестирование, мониторинг и тонкая настройка Kafka кластера
Кратко про класс CompletableFuture в Java
Привет, Хабр!
Асинхронное программирование уже давно является полноценной частью Java. С появлением Java 8 и введением класса CompletableFuture
, асинхронное программирование стало более доступным.
CompletableFuture
— это класс в пакете java.util.concurrent
, предоставляющий возможности для асинхронного программирования. Он поддерживает выполнение задач в фоновом режиме, цепочки задач, обработку исключений и многое другое.
Решение проблем общего кода в микросервисах Spring Boot и не только
Привет, Хабр! Меня зовут Александр Митин, я работаю в Т1 на проектах одного крупного банка. Занимаюсь развитием продкутовых сервисов компании (проект по обслуживанию и проведению ЧДП/ПДП клиентов). Опыт разработки 13 лет, последние 5 лет — в финтехе.
Сегодня микросервисная архитектура используется во многих проектах. Зачастую в таких системах применяют журналирование, авторизацию и прочие служебные сервисы, общие для всех приложений. А при разработке возникает огромное желание не дублировать одну и ту же логику, а вынести её в отдельную библиотеку, тем самым переиспользовав код. Что мы имеем в итоге? В лучшем случае одну библиотеку «common», которая разрастается до огромных размеров и становится ядром распределённого монолита. В дальнейшем новые версии этой библиотеки теряют обратную совместимость, а каждое её обновление в проектах сильно осложняет поддержку. Более того, становится невозможным разобраться, где и какие классы используются, что делает архитектуру хрупкой и уязвимой.
Макроопределения для PostgreSQL
При написании SQL кода для разворачивания БД и написании хранимых процедур порой очень нехватает простейшего макроязыка. Простыми макросами можно заменять сложные похожие выражения, последовательности операторов SQL или даже из множества файлов собирать один скрипт для разворачивания БД.
Несмотря на то, что наиболее развитым макроязыком является m4, многие разрабочики его не знают. Поэтому был выбран более простой, но многим знакомый препроцессор C - cpp из состава GCC.
Все дальнейшие примеры верны для Linux с установленными GCC и Perl. К сожалению, Windows под рукой у меня нет, но проблем с установкой там GCC и Perl возникнуть не должно.
Оптимизация настроек Kafka кластера. Часть 2. Механизмы управления задержкой, надежностью и доступностью
Привет, Хабр! Представляю вам вторую часть из серии статей, посвященных оптимизации развертывания Kafka кластера (ссылка на первую часть). Это перевод руководства от Confluent. Сегодняшняя статья посвящена тому, как уменьшить задержку и повысить надежность и доступность. Заключительная третья часть будет посвящена мониторингу и бенчмаркингу.
Оптимизация настроек Kafka кластера. Часть 1. Механизмы управления пропускной способностью
Привет, Хабр! Представляю вам перевод технического документа от Confluent, который посвящен тому, как определить, что именно нужно оптимизировать (пропускная способность, задержка, надежность или доступность), как настроить развертывание Kafka в соответствии с этими целями и убедиться в их достижении с помощью мониторинга. Сегодня я выкладываю первую часть, в которой обсуждается, как определить цели оптимизации и улучшить пропускную способность Kafka. Последующие статьи будут посвящены задержке, надежности, доступности, мониторингу и бенчмаркингу.
Terraform: поиск оптимального написания кода
Всем привет и добро пожаловать!
Сегодня хочу поделиться, к каким выводам и рекомендациям я пришёл за несколько лет практического использования Terraform в разнообразных сценариях, как результат его эксплуатации с множеством Terraform Providers (не только облачных), от подготовки окружения под конкретные сервисы до создания инфраструктуры всей компании.
Для начала давайте определим, что такое Terraform.
Terraform - это инструмент, который позволяет безопасно и эффективно создавать, изменять и управлять облачными и локальными ресурсами, и который реализует концепцию "инфраструктура как код" (IaC) - Terraform Intro. Он предоставляет декларативную модель. Это значит, что мы описываем конечное состояние инфраструктуры или конкретного ресурса, и нам не нужно описывать пошаговые инструкции. Он имеет свой язык описания - HashiCorp Configuration Language (HCL). Далее этот код преобразуется в вызовы к API провайдера. О том, как работает Terraform, можно ознакомиться в его официальной документации.
Теперь давайте ответим на вопрос, а нужен ли вообще Terraform. Мой ответ - да. И вот собственно почему:
Интеграция PostgreSQL и Hadoop
Представим некое перепутье, где с одной стороны — мощные возможности PostgreSQL, а с другой — необъятные просторы Hadoop. Выбор кажется сложным, но зачем выбирать одно, если можно соединить их и получить лучшее из обоих?
Объединяя их можно создать мощную систему, способную обрабатывать и анализировать огромные объемы данных.
Локальный HTTPS в dev-окружении — простая настройка
Иногда в процессе веб-разработки требуется безопасное окружение в браузере, то есть HTTPS. Удобный способ сделать это — установить локальный УЦ и автоматизировать выдачу сертификатов на любые поддомены lcl.host и localhost. Это более функциональная и удобная альтернатива самоподписанным сертификатам.
Для установки локального УЦ есть инструменты lcl.host и mkcert, которые помогают быстро настроить и использовать HTTPS в dev-окружении.
Финансовая арифметика в PostgreSQL
Иногда перед разработчиком, аналитиком или даже бизнес-пользователем встает задача выполнить какие-то финансовые расчеты, соблюдая два строгих требования. Во-первых, даже для миллиардных сумм необходимо обеспечить точность до копейки, во-вторых, перекрестные итоги тоже должны сходиться до копейки.
Как Apache Arrow поможет управиться JS с большими данными
Привет. Меня зовут Николай Шувалов, я занимаюсь коммерческим программированием около семи лет, владею Rust, JavaScript, PHP. Сейчас я работаю в отделе данных билайна. Наша платформа позволяет делиться с партнерами данными, не раскрывая их. Например, можно расширить данные с помощью фильтра Блума.
Arrow в сравнении со строковыми форматами
Возьмём простую таблицу, которая состоит из трех столбцов: телефона, даты и имени. Рассмотрим, как она будет выглядеть в строковом и столбчатом форматах. Для строкового формата мы возьмем csv и json, для столбчатого формата структура будет одинаковой. Если же таблица состоит, например, из миллиона строк, а нужно получить имя на строке с номером 10 000, то придется бежать по всей строчке. В json то же самое. А в столбчатом формате ситуация иная — значения привязаны к столбцам. Когда мы хотим получить имя на строке 10 000, то сразу обращаемся к этому столбцу и получаем все его данные.
Существуют RA (random access) файлы, в которых можно пропускать заданное количество строк, но все равно парсеру нужно читать и анализировать пройденные строчки.
Основы безопасности в Kubernetes
В моей роли DevOps-инженера, специализирующегося на Kubernetes, я регулярно сталкиваюсь с задачами, требующими глубокого понимания множества аспектов этой технологии. Особое внимание уделяется безопасности — критически важному условию для эффективного функционирования и защиты приложений в Kubernetes. Хотя безопасность часто может оставаться вне поля зрения при рассмотрении других операционных задач, её роль в успешном развёртывании и поддержке приложений нельзя недооценивать. Мой опыт и знания в этой области легли в основу данной статьи.
Мы сосредоточимся на двух ключевых элементах безопасности в Kubernetes: Role-Based Access Control (RBAC) и Pod Security Admission. Эти механизмы играют важную роль не только в обеспечении безопасности приложений и данных в кластере, но и в управлении доступом и сетевыми взаимодействиями.
Элементы безопасности, такие как RBAC и Pod Security Admission, играют ключевую роль в обеспечении стабильности и эффективности работы приложений в Kubernetes, особенно при обработке больших объёмов данных и высокой нагрузке. Например, в ситуации с масштабируемым веб-приложением, которое управляет значительными объёмами пользовательских данных и транзакций, настройка этих механизмов может существенно улучшить управление доступом и сетевую безопасность. Это, в свою очередь, помогает предотвратить потенциальные угрозы и атаки, что критически важно для поддержания производительности и доступности данных. Таким образом, эффективно настроенные компоненты безопасности обеспечивают надёжный доступ к данным и минимизируют риски, связанные с увеличением нагрузки на приложение, улучшая общий пользовательский опыт.
Теперь давайте рассмотрим каждый из этих элементов более подробно.
Знания как код: архитектурный репозиторий в git на базе PlantUML
Привет, Хабр! Меня зовут Максим Приходский, я архитектор R-Style Softlab и сегодня хочу рассказать вам о проекте создания архитектурного репозитория в git на базе PlantUML.
Хеш-Индексы в PostgreSQL
Привет, Хабр!
Хеш-индексы в PostgreSQL — это хороший инструмент для ускорения выполнения запросов.
В основе хеш-индекса лежит хеш-функция. Хеш-функция — это алгоритм, который преобразует входные данные (или ключ) в число фиксированного размера, называемое хеш-значением. В PostgreSQL хеш-функция всегда возвращает значение типа integer
, что составляет примерно 4 миллиарда возможных значений.
Безопасность первична: сетевое взаимодействие и привилегии контейнеров в Docker
Привет, Хабр! Меня зовут Эллада, я специалист по информационной безопасности в Selectel. Продолжаю рассказывать о безопасности в Docker. В новой статье поговорим о сетевом взаимодействии контейнеров, правильном управлении привилегиями и ограничении потребления системных ресурсов.
Поделюсь, почему не стоит использовать bridge docker0 и network namespace хоста, чего не стоит делать при монтировании каталогов и многими другими советами. Придерживайтесь наших рекомендаций и сделайте работу с Docker еще более защищенной!
Написание скриптов для Cobalt Strike C2 (Aggressor Script)
Cobalt Strike — это профессиональный инструмент для проведения тестов на проникновение (penetration testing) и моделирования действий злоумышленников (adversary simulation).
Основной функцией Cobalt Strike является возможность создавать Beacon'ы - асинхронные пост-эксплуатационный агенты, которые могут осуществлять команды управления и контроля (C2), обеспечивая связь между атакующим и скомпрометированными системами.
Aggressor Script — это мощный инструмент, разработанный для расширения функциональности Cobalt Strike и автоматизации различных задач в процессе тестирования на проникновение. Он позволяет пользователям Cobalt Strike писать свои скрипты на языке Sleep, чтобы автоматизировать и настраивать поведение инструмента.
Информация
- В рейтинге
- Не участвует
- Откуда
- Россия
- Зарегистрирован
- Активность