Делимся материалами с нашего совместного митапа с сообществами GolangKazan и Go Yola для Go-разработчиков. Под катом — видеозаписи выступлений с таймкодами для удобной навигации и ссылки на презентации спикеров.
alecksey @alecksey
User
Лучшие практики и рекомендации для запуска контейнеров и Kubernetes в производственных средах
10 min
7.1KЭкосистема технологий контейнеризации быстро развивается и меняется, поэтому в этой сфере не хватает хороших рабочих практик. Тем не менее Kubernetes и контейнеры используют все чаще — как для модернизации старых приложений, так и для разработки современных облачных приложений.
Команда Kubernetes aaS от Mail.ru собрала прогнозы, советы и лучшие практики для лидеров рынка от Gartner, 451 Research, StacxRoх и других. Они позволят обеспечить и ускорить развертывание контейнеров в производственных средах.
+19
Установка и правильная настройка Docker на Windows Subsystem Linux (WSL)
5 min
34KTutorial
Translation
Предварительные требования
Прежде чем начать, убедитесь, что ваша система имеет примерно следующую конфигурацию:
- Windows 10 Version 1803 Build 1734 и выше
- Ubuntu for WSL 16.0.4 LTS или что-то в этом роде (ваша версия может немного отличаться)
Важно, чтобы версия и сборка Windows были не ниже того, что здесь указано. Дело в том, что, начиная с этих цифр, в ядро Windows WSL были внесены принципиальные изменения, которые позволяют использовать cgroups (control groups — в 2008 году добавлены в ядро Linux). А они необходимы Docker’у для управления ресурсами вашей системы в контейнерах.
+6
Истории аварий с Patroni, или Как уронить PostgreSQL-кластер
25 min
33KВ PostgreSQL нет High Availability из коробки. Чтобы добиться HA, нужно что-то поставить, настроить — приложить усилия. Есть несколько инструментов, которые помогут повысить доступность PostgreSQL, и один из них — Patroni.
На первый взгляд, поставив Patroni в тестовой среде, можно увидеть, какой это прекрасный инструмент и как он легко обрабатывает наши попытки развалить кластер. Но на практике в production-среде не всегда всё происходит так красиво и элегантно. Data Egret начали использовать Patroni еще в конце 2018 года и накопили определенный опыт: как его диагностировать, настраивать, а когда вовсе не полагаться на автофейловер.
На HighLoad++ Алексей Лесовский обстоятельно, на примерах и с разбором логов рассказал о типовых проблемах, возникающих при работе с Patroni, и best practice для их преодоления.
В статье не будет: инструкций по установке Patroni и примеров конфигураций; проблем за пределами Patroni и PostgreSQL; историй, основанных на чужом опыте, а только те проблемы, с которыми в Data Egret разобрались сами.
На первый взгляд, поставив Patroni в тестовой среде, можно увидеть, какой это прекрасный инструмент и как он легко обрабатывает наши попытки развалить кластер. Но на практике в production-среде не всегда всё происходит так красиво и элегантно. Data Egret начали использовать Patroni еще в конце 2018 года и накопили определенный опыт: как его диагностировать, настраивать, а когда вовсе не полагаться на автофейловер.
На HighLoad++ Алексей Лесовский обстоятельно, на примерах и с разбором логов рассказал о типовых проблемах, возникающих при работе с Patroni, и best practice для их преодоления.
В статье не будет: инструкций по установке Patroni и примеров конфигураций; проблем за пределами Patroni и PostgreSQL; историй, основанных на чужом опыте, а только те проблемы, с которыми в Data Egret разобрались сами.
+18
Принцип Единой Ответственности (SRP) на примере Laravel
4 min
9.1KTutorial
Принцип SRP (Принцип Единой Ответственности) — один из основополагающих принципов написания поддерживаемого кода. В этой статье я покажу как применить данный принцип на примере языка PHP и фреймворка Laravel.
Часто, описывая модель разработки MVC, на контроллер возлагаются необоснованно большие задачи. Получение параметров, бизнес логика, авторизация и ответ.
Конечно, в статьях и книгах это описывается в качестве примера, но часто воспринимается как призыв к действию в рабочих проектах. Такой подход неизбежно приведет к неконтролируемому разрастанию класса и сильно усложнит поддержку кода.
Часто, описывая модель разработки MVC, на контроллер возлагаются необоснованно большие задачи. Получение параметров, бизнес логика, авторизация и ответ.
Конечно, в статьях и книгах это описывается в качестве примера, но часто воспринимается как призыв к действию в рабочих проектах. Такой подход неизбежно приведет к неконтролируемому разрастанию класса и сильно усложнит поддержку кода.
+9
Мой путь к секционированию в PostgreSQL
4 min
13KКогда мы перестаем контролировать размер таблицы — обслуживание и обеспечение доступности данных становится нетривиальной задачей. Я с такой проблемой столкнулся уже в продакшне, данных с каждым днем становится больше, таблица не влезает в память, сервера отвечают долго, но решение было найдено.
Привет, Хабр! Меня зовут Алмаз и сейчас я хочу поделиться методом, который помог мне реализовать секционирование.
+17
PostgreSQL Antipatterns: обновляем большую таблицу под нагрузкой
6 min
28KКак стоит поступить (а как точно не надо), если в «многомиллионной» активно используемой таблице PostgreSQL нужно обновить большое количество записей — проинициализировать значение нового поля или скорректировать ошибки в существующих записях? А при этом сохранить свое время и не потерять деньги компании из-за простоя.
+14
Лучший игровой движок по версии пользователей хабра
3 min
223KВ этом обзоре мы рассмотрим популярные в 2016 году игровые движки и проголосуем за лучшие из них.
Игровые движки предоставляют средства разработки, которые могут быть использованы программистами, чтобы упростить их работу. Короче говоря, предоставляют инструменты и функциональные возможности для разработки игры.
+32
Как мы Elasticsearch готовили, или О том, как обработать 36 тысяч логов в секунду
5 min
32KВ один прекрасный момент для одного из проектов появилась необходимость в хранении, обработке и визуализации большого количества логов. Необходимо было индексировать около 10-20 тысяч запросов в секунду с пиками до сотни тысяч, что, как оказалось, является нетривиальной задачей. Для решения этой проблемы мы решили использовать уже знакомый многим ELK- стек. Единственным вопросом было — «а потянет ли он». Как оказалось, потянет, но не сразу.
+25
Кейс NGINX: Как противостоять DDoS-атакам
2 min
26KОсновная цель нашей работы состоит в том, чтобы сделать IaaS простым и понятным даже для тех, кто не сталкивался с ИТ-сферой. Поэтому мы проводим постоянную оптимизацию всех систем и рассказываем о том, что нам удалось сделать, в нашем блоге на Хабре.
Пара примеров:
Сегодня мы решили взглянуть на западный опыт и кратко проанализировать тему балансировки нагрузки. Нас привлекла заметка на тему работы с DDoS-атаками.
Пара примеров:
Сегодня мы решили взглянуть на западный опыт и кратко проанализировать тему балансировки нагрузки. Нас привлекла заметка на тему работы с DDoS-атаками.
+14
Параллельный Sequential Scan Commited
3 min
4KTranslation
В предыдущих статьях я писал о получении параллельного sequential scan закоммиченного в PostgreSQL 9.5. Но этого не случилось. Однако, я с удовольствием расскажу вам о первом коммите parallel sequential scan в PostgreSQL в master ветку с целью предстоящего релиза PostgreSQL 9.6.
Параллельные запросы для PostgreSQL были долгое время моей мечтой, над которыми я работал несколько лет. Их разработка их началась c PostgreSQL 9.4 релизном цикле, где я добавил динамические воркеры, работающие в фоне и динамическую shared memory, разработка которой продолжилась в PostgreSQL 9.5, где имела место идея в добавлении фундаментальной инфраструктуры для параллелизма которая сегодня была закоммиченна. Я хотел бы рассказать вам немного о сегодняшних коммитах и о работе, которая будет проделана дальше.
Параллельные запросы для PostgreSQL были долгое время моей мечтой, над которыми я работал несколько лет. Их разработка их началась c PostgreSQL 9.4 релизном цикле, где я добавил динамические воркеры, работающие в фоне и динамическую shared memory, разработка которой продолжилась в PostgreSQL 9.5, где имела место идея в добавлении фундаментальной инфраструктуры для параллелизма которая сегодня была закоммиченна. Я хотел бы рассказать вам немного о сегодняшних коммитах и о работе, которая будет проделана дальше.
+9
Теплый ламповый звук
7 min
328KКак-то случайно обратил внимание, что 90% статей на хабре с тегом «теплый ламповый» рассказывают о чем угодно, но только не о ламповой технике. В то же время, немногие публикации о ламповых устройствах собирают множество лайков восхищенных комментариев.
Я уже не помню как и когда в моей голове поселилась эта странная идея — собрать ламповый усилитель. Зачем тоже не совсем понятно — меломаном я не являюсь, домашними кинотеатрами давно и быстро переболел, на память об этом времени остались напольные колонки Wharfedale Diamond 8.4, последние годы использовавшиеся исключительно как декоративная подставка для цветов. Как бы то ни было, мысль настолько глубоко поселилась в моей голове, что началось неспешное изучение профильных ресурсов, чтение форумов, поиск схем ламповых усилителей «для чайников» и т.д. и т.п. Отсутствие какого-либо опыта общения с ламповой техникой (самый современный гаджет, который я помню — это ч/б телевизор в студенческой общаге в начале 90-х годов прошлого века) отпугивало и привлекало одновременно.
Я уже не помню как и когда в моей голове поселилась эта странная идея — собрать ламповый усилитель. Зачем тоже не совсем понятно — меломаном я не являюсь, домашними кинотеатрами давно и быстро переболел, на память об этом времени остались напольные колонки Wharfedale Diamond 8.4, последние годы использовавшиеся исключительно как декоративная подставка для цветов. Как бы то ни было, мысль настолько глубоко поселилась в моей голове, что началось неспешное изучение профильных ресурсов, чтение форумов, поиск схем ламповых усилителей «для чайников» и т.д. и т.п. Отсутствие какого-либо опыта общения с ламповой техникой (самый современный гаджет, который я помню — это ч/б телевизор в студенческой общаге в начале 90-х годов прошлого века) отпугивало и привлекало одновременно.
+260
Bondic — светоотверждаемый пластик для мелкого ремонта
4 min
26KНедавно мне на тестирование попал интересный «Экспонат» — светоотверждаемый пластик — Bondic.
Вообще, материалы, затвердевающие под действием ультрафиолетового излучения известны давно и широко применяются. Наверное, самый распространенный пример – т.н. «световые пломбы», которые стоматологи закрепляют с помощью УФ-излучения. Еще пример – наращивание ногтей из специального геля и т.д.
Однако устройства, работающие на этом принципе, и прямо адресованное для проведения мелкого ремонта или реставрационных работ – раньше мне не встречались. Производитель и вовсе утверждает, что это первое в мире подобное решение в своей сфере. Может и так, спорить не буду.
Итак, заполучив коробку с устройством, и первым делом склеив пару листочков, я понял, что для проведения нормальных тестов понадобится кто-то с более корректным креплением верхних конечностей. Поэтому дальше передаю слово своему брату, имеющему большой опыт в области ручной и даже ювелирной работы.
Вообще, материалы, затвердевающие под действием ультрафиолетового излучения известны давно и широко применяются. Наверное, самый распространенный пример – т.н. «световые пломбы», которые стоматологи закрепляют с помощью УФ-излучения. Еще пример – наращивание ногтей из специального геля и т.д.
Однако устройства, работающие на этом принципе, и прямо адресованное для проведения мелкого ремонта или реставрационных работ – раньше мне не встречались. Производитель и вовсе утверждает, что это первое в мире подобное решение в своей сфере. Может и так, спорить не буду.
Итак, заполучив коробку с устройством, и первым делом склеив пару листочков, я понял, что для проведения нормальных тестов понадобится кто-то с более корректным креплением верхних конечностей. Поэтому дальше передаю слово своему брату, имеющему большой опыт в области ручной и даже ювелирной работы.
+15
Доступна preview Android Studio 2.0: две убер-фичи
2 min
39KПриветствую. Сегодня утром состоялся ожидаемый анонс Android Studio версии 2.0, в которой google представил нам сразу две крутые фичи. Во-первых, это новый эмулятор android. Который, по словам google, «на хорошем железе работает быстрее физического устройства». Во-вторых, это новая функция «instant run», которая позволяет почти мгновенно обновлять запущенное под отладкой мобильное приложение при изменении исходного кода. Это практически «hot reload» из веб разработки. Под катом — чуть подробнее и ряд менее заметных улучшений. Новая версия уже доступна для скачивания в canary канале обновления.
+37
Риски и проблемы хеширования паролей
11 min
38KTranslation
Безопасность всегда была неоднозначной темой, провоцирующей многочисленные горячие споры. И всё благодаря обилию самых разных точек зрения и «идеальных решений», которые устраивают одних и совершенно не подходят другим. Я считаю, что взлом системы безопасности приложения всего лишь вопрос времени. Из-за быстрого роста вычислительных мощностей и увеличения сложности безопасные сегодня приложения перестанут завтра быть таковыми.
Прим. перев.: для более полной картины здесь вас также будет ждать перевод Hashing Passwords with the PHP 5.5 Password Hashing API, на которую автор ссылается в статье.
Прим. перев.: для более полной картины здесь вас также будет ждать перевод Hashing Passwords with the PHP 5.5 Password Hashing API, на которую автор ссылается в статье.
+31
Мой опыт миграции на PHP 7
2 min
75KНесколько дней назад я переключил свой сервер с порядка 30-ти сайтами на PHP 7. Некоторые из них были достаточно старыми и составляли широкий набор с различных фреймворков и CMS. Вот несколько советов для тех кто еще не решил переходить на PHP 7 или нет.
Начнем с того что я понимаю что есть много людей которые не считают стабильную версию действительно «стабильной» пока она чуть-чуть не повзрослела, ожидая что еще найдутся какие-то баги или несовместимости. С того что я пока видел, пробуя каждый release candidate как только он выходил, совсем безопасно переключиться на PHP 7 как только он выйдет. Я ни разу не заметил какого-то непонятного поведения или вылета которому виной не был бы я сам. Несмотря на то что это новая версия она не несет много несовместимых изменений, то есть по большому счету можете относиться к ней как к просто PHP 5.7 только существенно быстрее.
+9
Почти весь умный дом: большая подборка отдельных смарт-элементов: лампы, розетки, климат, экология и безопасность
17 min
59KКатегория управляемых смарт-устройств в «рубрике» умный дом уже близка к тому, чтобы перестать поддаваться исчислению и систематизации, и отдельные прогнозы пока еще указывают на рост интереса пользователей к этой нише.
Из-за высокой конкуренции среди производителей стала заметна тенденция к созданию отдельных дешевых элементов, не входящих в какую-либо систему, а автономно работающих в паре с собственным софтом. Сегодня практически все время про них: управляемые смарт-девайсы для умного дома: свет, электричество, экология и видеонаблюдение. Выбираем среди дорогих и дешевых.
Из-за высокой конкуренции среди производителей стала заметна тенденция к созданию отдельных дешевых элементов, не входящих в какую-либо систему, а автономно работающих в паре с собственным софтом. Сегодня практически все время про них: управляемые смарт-девайсы для умного дома: свет, электричество, экология и видеонаблюдение. Выбираем среди дорогих и дешевых.
+22
Новый алгоритм для проверки надёжности паролей
2 min
29KМногие сайты пытаются помочь пользователям установить более сложные пароли. Для этого устанавливают базовые правила, которые требуют обычно указать хотя бы одну прописную букву, одну строчную букву, одну цифру и так далее. Правила обычно примитивные вроде таких:
К сожалению, такие простые правила означают, что пароль
Некоторые специалисты говорят, что это не лучший вариант.
'password' => [
'required',
'confirmed',
'min:8',
'regex:/^(?=\S*[a-z])(?=\S*[A-Z])(?=\S*[\d])\S*$/',
];
К сожалению, такие простые правила означают, что пароль
Abcd1234
будет признан хорошим и качественным, так же как и Password1
. С другой стороны, пароль mu-icac-of-jaz-doad
не пройдёт валидацию.Некоторые специалисты говорят, что это не лучший вариант.
+12
Egret. Free open source HTML5 game engine
5 min
31KВ данной статье будет рассмотрены вопросы, возникающие во время выбора Game Engine для разработки 2D игр. И, как вариант ответов на эти вопросы, будет предложено использовать Egret.
+10
PostgreSQL 9.5: что нового? Часть 2. TABLESAMPLE
9 min
28KПродолжаем обзор нововведений в PostgreSQL 9.5.
Часть 1. INSERT… ON CONFLICT DO NOTHING/UPDATE и ROW LEVEL SECURITY.
Часть 3. GROUPING SETS, CUBE, ROLLUP
Часть 1. INSERT… ON CONFLICT DO NOTHING/UPDATE и ROW LEVEL SECURITY.
Часть 3. GROUPING SETS, CUBE, ROLLUP
От автора
Приношу свои извинения за задержку с выпуском второй части. Изначально я планировал выпустить вторую часть статьи через неделю после первой, но, в связи с большой занятостью, не смог этого сделать. Поэтому я решил, что буду публиковать не большие статьи, а небольшими порциями, но чаще.
+27
Information
- Rating
- Does not participate
- Location
- Украина
- Date of birth
- Registered
- Activity