Pull to refresh
49
Karma
78.8
Rating
Андрей @akurilov

Программист

  • Followers 10
  • Following
  • Posts
  • Comments

Настройка PostgreSQL под Linux

Open source *PostgreSQL *Database Administration *
Tutorial

Время от времени приходится слышать мнение от некоторых системных администраторов, а также некоторых 1С-разработчиков, что установка, настройка и поддержка PostgreSQL под Linux очень сложна. Что гораздо дешевле покупать лицензии Windows и Microsoft SQL Server, чем нанимать высококвалифицированных администраторов, которые будут администрировать все эти open-source системы.

На наших бизнес-приложениях, использующих в качестве СУБД PostgreSQL, работают 70% крупнейших розничных сетей в Беларуси. Во всех из них одновременно работают от 500 до 1500 пользователей. В приложениях реализованы практически все основные процессы розничных сетей (демо, чтобы оценить сложность). Размер баз данных на данный момент составляет от 2 до 4ТБ. И все они работают практически со стандартными настройками PostgreSQL на одиночных серверах без какой-либо кластеризации. При этом даже в самых загруженных серверах есть еще значительный резерв по ресурсам для дальнейшего увеличения нагрузки без потребности в кластеризации.

Да, конечно же, многое зависит от запросов к СУБД, и несколькими кривыми запросами можно положить весь сервер. Однако, точно также можно положить и Oracle, и MSSQL. Да, платформа lsFusion, на которой написаны наши приложения, делает много различных оптимизаций запросов конкретно под PostgreSQL. Но вручную SQL-запросы можно оптимизировать еще лучше.

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

Читать далее
Total votes 39: ↑36 and ↓3 +33
Views 8.2K
Comments 14

Шарим (в) консоль

RUVDS.com corporate blog Configuring Linux *Abnormal programming *System administration *Logic games
Мы уже все привыкли, что конференции проводятся виртуально. Мы все работаем через зумы, скайпы, миты и тимзы. Удобно, конечно, но у нас есть одна занудная проблема. Когда нам, программистам надо расшарить экран, мы тяжело вздыхаем и нажимаем кнопку Share Screen. Всё это не без проблем.


Как показать детям те прелести, которые происходят в консоли?

Самое неприятное — это когда возникает необходимость показать какую-то ссылку на экране. После завершения операции в консоли отобразилась ссылка, или ключ, который надо расшарить с командой. Естественно, приходится выделять, копировать и «дублировать в чатик». Особенно это неудобно, когда в чатик надо продублировать то, что выплюнула тебе какая-нибудь команда терминала. Строки, конечно же, заботливо съедут, форматирование потеряется, а цвета поблёкнут.
Читать дальше →
Total votes 83: ↑79 and ↓4 +75
Views 15K
Comments 27

Go: как изменяется размер стека горутины?

OTUS corporate blog Programming *Go *
Translation

Эта статья берет за основу Go 1.12.

Go радует нас легким и умным управлением горутинами. Легким, поскольку стек горутин изначально весит всего 2 КБ, а умным, потому что горутины могут автоматически увеличиваться/уменьшаться в соответствии с нашими потребностями.

Читать далее
Total votes 9: ↑6 and ↓3 +3
Views 2.8K
Comments 0

Почему принцип программирования на уровне интерфейсов в большинстве случаев ошибочен и приводит к плохой архитектуре

Programming *System Analysis and Design *Designing and refactoring *

(Disclaimer!) Данная точка зрения не претендует на роль абсолютной истины и является лишь результатом моего опыта, чтения, наблюдений и размышлений.

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

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

Читать далее
Total votes 137: ↑112 and ↓25 +87
Views 36K
Comments 123

Где и как в EPAM прототипируют будущее

EPAM corporate blog Prototyping *AR and VR The future is here

Привет, Хабр! Меня зовут Александр Бобко, я работаю руководителем проектов в инновационной лаборатории EPAM – Made Real Lab. Это уникальное подразделение, которое занимается созданием прототипов инновационных идей и проверкой концепций в реальном мире для клиентов компании из самых разных отраслей. 

В этом посте хочу познакомить вас с Made Real Lab поближе и рассказать о некоторых наших проектах.  

Читать далее
Total votes 9: ↑6 and ↓3 +3
Views 8.2K
Comments 3

Go: объектный файл и релокация

OTUS corporate blog Programming *Go *
Translation

Эта статья оперирует версией Go 1.14.

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

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

Обзор Lens — IDE для Kubernetes

Флант corporate blog Open source *System administration *Kubernetes *

В прошлый раз я писал о том, как можно улучшить утилиту kubectl, дополнив и расширив ее функционал, а сегодня зайду с другой стороны: познакомимся с решением, которое позволит забыть о консольных командах и управлять Kubernetes-кластером в графическом интерфейсе. Речь пойдёт про Lens — бесплатное приложение с открытым кодом, которое позиционируется как полноценная Kubernetes IDE. Мы уже кратко рассматривали Lens в сравнительном обзоре GUI для K8s, а теперь попробуем это решение в деталях. Что ж, поехали!

Читать далее
Total votes 55: ↑55 and ↓0 +55
Views 14K
Comments 7

FaaS и serverless-решения на примере PoC kubeless-функции

Microservices *Kubernetes *Serverless *

Первая ассоциация, которая приходит при упоминании serverless-решений это облачные решения вроде AWS Lambda, Azure Functions или Google Functions, а на российском рынке Yandex Cloud Functions. У них имеются определенные бесплатные лимиты и это подкупает. В случаях когда вы уже используете в работе K8s, смысла выносить отдельные части вашего приложения за кластер нет. Если вам интересно познакомиться с возможностями использования функций, с вариантами serverless решений на Bare-metal Kubernetes, а также узнать, как и где можно развернуть свое PoC решение бесплатно на облачной виртуальной машине, то приглашаю под кат.

Читать далее
Total votes 15: ↑15 and ↓0 +15
Views 3.7K
Comments 2

Настройка распределенной трассировки в Kubernetes с OpenTracing, Jaeger и Ingress-NGINX

Timeweb corporate blog Nginx *Go *DevOps *Kubernetes *
Translation
Tutorial

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

Распределённая трассировка (Distributed Tracing) - это метод, используемый для мониторинга приложений. Для микросервисов он просто незаменим.

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

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

Учимся подтягиваться на одной руке по программе Пола Уэйда

Reading room Health
Translation

Программа Тюремных Тренировок — это эффективные методы обучения по работе со своим весом. Многие из этих забытых, но действенных техник — находятся на грани исчезновения. Современный бодибилдинг поменял наше мышление, навязав ложные убеждения. Поэтому мы сняли этот фильм в Алькатрасе, вернувшись во времена, когда «Скала» была крупнейшей тюрьмой для особо опасных преступников. Пожалуй, это самое правильное место, чтобы показать методы тренировок заключённых.

Приступить к тренировке
Total votes 112: ↑71 and ↓41 +30
Views 83K
Comments 70

Понимаем красно-черное дерево. Часть 1. Введение

C++ *
Sandbox

Довольно долгое время я воевал с красно-черным деревом. Вся информация, которую я находил, была в духе "листья и корень дерева всегда черные, ПОТОМУ ЧТО", "топ 5 свойств красно-черного дерева" или "3 случая при балансировке и 12 случаев при удалении ноды". Такой расклад меня не устраивал.

Мне не хотелось заучивать свойства дерева, псевдокод и варианты балансировки, я хотел знать: почему. Каким образом цвета помогают при балансировке? Почему у красной ноды не может быть красного потомка? Почему глубину дерева измеряют "черной высотой"?

Ответы на эти вопросы я получил только тогда, когда мне дали ссылку на лекцию про два-три дерево, с которого мы и начнем.

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

Читать далее
Total votes 32: ↑31 and ↓1 +30
Views 17K
Comments 6

Цивилизация Пружин, 5/5

Popular science Astronautics Physics Chemistry

Часть 5. В масштабе Вселенной


Предыдущая часть. Краткое содержание предыдущей части.

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


Читать дальше →
Total votes 206: ↑205 and ↓1 +204
Views 38K
Comments 233

Взгляд невролога на проблему аутизма

Brain Health
Sandbox

Эта статья написана главным образом для родителей детей, страдающих различными формами аутизма. Родители проводят со своими «особенными» детьми гораздо больше времени, чем дефектологи, психологи и учителя. И поэтому, я считаю, что они должны понимать, что происходит с их детьми и как это исправить.

Читать далее
Total votes 49: ↑44 and ↓5 +39
Views 11K
Comments 23

Совместная игра в Factorio — лучшее собеседование для программистов, что мы проводили

ITSumma corporate blog Programming *Personnel Management *Games and game consoles Logic games
Translation
В последнее время много копий сломано вокруг технических собеседований. Очевидно, что инвертирование двоичного дерева на доске практически никак не связано с практическими навыками реального программиста. Примитивный Fizzbuzz по-прежнему остаётся самым эффективным тестом. Как следствие, выросло внимание к опенсорсным проектам, но оказалось, что это тоже не очень хороший показатель, потому что у большинства профессионалов нет на них времени.

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

Все эти методы интервью не сравнятся с очень простой метрикой: совместная игра в Factorio. Прохождение всего цикла Factorio — практически идеальный показатель, насколько хорошо человек решает общие технические проблемы. Можно даже настроить прохождение игры на основе будущей должности, чтобы лучше понять, как кандидат справится со своей ролью.
Читать дальше →
Total votes 110: ↑106 and ↓4 +102
Views 59K
Comments 142

Основы работы с Helm чартами и темплейтами — Часть 1

System administration *System Programming *DevOps *
Translation

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


Управление приложениями — сложный аспект Kubernetes. Helm значительно упрощает его, предоставляя единый метод упаковки программного обеспечения, поддерживающий контроль версий. Helm устанавливает пакеты (называются Чартами в Helm) для Kubernetes и управляет ими, как это делают yum и apt.


В этом руководстве мы позволим Helm создать для нас базовый чарт. В этом руководстве предполагается, что у вас есть хотя бы базовое понимание того, что такое Helm. Если вы не знакомы с ним, я предлагаю вам ознакомиться с этим руководством, прежде чем приступить к статье: https://www.alibabacloud.com/help/doc-detail/86511.htm

Читать дальше →
Total votes 10: ↑9 and ↓1 +8
Views 6K
Comments 3

Релиз Spring Native Beta

Java *Microservices *

Недавно команда, занимающаяся портированием Spring на GraalVM, выпустила первый крупный релиз - Spring Native Beta. Вместе с создателями GraalVM они смогли пофиксить множество багов как в самом компиляторе так и спринге. Теперь у проекта появилась официальная поддержка, свой цикл релизов и его можно щупать.

Читать далее
Total votes 9: ↑9 and ↓0 +9
Views 7.1K
Comments 20

Оцениваем работодателя на собеседовании. Как понять, что за компания перед тобой?

Maxilect corporate blog Personnel Management *IT career Lifehacks for geeks

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

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

Читать далее
Total votes 39: ↑39 and ↓0 +39
Views 43K
Comments 69

Ручное управление памятью в языке Go

Издательский дом «Питер» corporate blog High performance *Programming *Go *
Translation
Привет, Хабр!

Наши читатели не могли не заметить нашего растущего интереса к языку Go. Наряду с книгой из предыдущего поста, у нас найдется на эту тему немало интересного. Сегодня мы хотим предложить вам перевод материала «для профи», в котором демонстрируются интересные аспекты ручного управления памятью на Go, а также одновременное выполнение операций над памятью на Go и C++.
Читать дальше →
Total votes 17: ↑15 and ↓2 +13
Views 7.5K
Comments 6

Внедрение зависимостей в GO

Programming *Go *

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

Идея внедрения зависимости проста: объект, зависящий от другого объекта, делегирует управление его жизненным циклом внешнему коду. Однако её применение создаёт дополнительное требование - зависимостями нужно управлять. О механизмах, помогающих в этом, и их реализациях в Go - в этой статье.

Читать далее
Total votes 22: ↑17 and ↓5 +12
Views 7.2K
Comments 14

Кодирование Рида-Соломона для чайников

Entertaining tasks Algorithms *Development of communication systems *

Есть способ передавать данные, теряя часть по пути, но так, чтобы потерянное можно было вернуть по прибытии. Это третья, завершающая часть моего простого изложения алгоритма избыточного кодирования по Риду-Соломону. Реализовать это в коде не прочитав первую, или хотя бы вторую часть на эту тему будет проблематично, но чтобы понять для себя что можно сделать с использованием кодировки Рида-Соломона, можно ограничиться прочтением

этой статьи
Total votes 16: ↑16 and ↓0 +16
Views 7.2K
Comments 4
1

Information

Rating
62-nd
Location
Санкт-Петербург и область, Россия
Registered
Activity