Как стать автором
Обновить
34
0

Пользователь

Отправить сообщение

Будущее DevOps: Основные тренды и прогнозы на 2021

Время на прочтение5 мин
Количество просмотров6.4K

image


p.s: хоть и с опозданием..2021 почти подошел к концу уже


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


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


Вот примеры некоторых новых тенденций DevOps 2021, которые, вполне возможно, повлияют на бизнес ландшафт и изменят его в будущем:

Читать дальше →
Всего голосов 5: ↑3 и ↓2+1
Комментарии2

Рутина и ноотропы: как удвоить личную эффективность, если работы по горло

Время на прочтение10 мин
Количество просмотров36K

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

Фишки простые и местами банальные, так статья писалась для тех, кому нужны быстрые и рабочие советы, которые можно внедрить буквально за один день и удвоить свою продуктивность минимум в два раза. Цифра условная, сами понимаете — надо привлечь немного внимания!

Читать далее
Всего голосов 28: ↑18 и ↓10+16
Комментарии52

Миграция PostgreSQL в Kubernetes

Время на прочтение7 мин
Количество просмотров6.1K

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

Миграция баз данных всегда сопряжена с рисками и простоями для бизнеса. Сегодня я продемонстрирую, насколько легко можно перенести базу данных PostgreSQL в Kubernetes с минимальными простоями. В этом мне поможет дистрибутив Percona для PostgreSQL Operator.

Читать далее
Всего голосов 8: ↑4 и ↓4+1
Комментарии1

О чем думать на NALSD собеседовании

Время на прочтение6 мин
Количество просмотров12K
Я описывал ранее типичное кодинг-интервью. Помимо кодинга почти всегда есть вопрос на проектирование систем. (Large) System Design. В случае собеседований на SRE, это еще более интересный (как по мне) зверь — NALSD. Non-abstract large system design. Главное отличие между SWE и SRE именно в этих буковках “NA”.

В чем же отличие, и как подготовиться к нему? Давайте разберём на примере. В качестве примера возьмём что-то весьма материальное, что-то такое, что точно никто никогда не спросит на реальном собеседовании (в гугл) :)

Например — давайте спроектируем библиотеку. Для бумажных книг, обычную такую. Весь текст ниже был написан в один присест за примерно час, чтобы примерно показать что можно успеть, и что важно успеть. Так что уж простите за сумбурность, но я так мыслю (а значит, так существую).
Читать дальше →
Всего голосов 29: ↑28 и ↓1+27
Комментарии8

PHP 8 — Что нового?

Время на прочтение19 мин
Количество просмотров133K

PHP, начиная с 7 версии, кардинально изменился. Код стал куда быстрее и надёжнее, и писать его стало намного приятнее. Но вот, уже релиз 8 версии! Ноябрь 26, 2020 — примерно на год раньше, чем обещали сами разработчики. И всё же, не смотря на это, мажорная версия получилась особенно удачной. В этой статье я попытаюсь выложить основные приятные изменения, которые мы должны знать.


1. JIT


Как говорят сами разработчики, они выжали максимум производительности в 7 версии (тем самым сделав PHP наиболее шустрым среди динамических ЯПов). Для дальнейшего ускорения, без JIT-компилятора не обойтись. Справедливости ради, стоит сказать, что для веб-приложений использование JIT не сильно улучшает скорость обработки запросов (в некоторых случаях скорость будет даже меньше, чем без него). А вот, где нужно выполнять много математических операций — там прирост скорости очень даже значительный. Например, теперь можно делать такие безумные вещи, как ИИ на PHP.
Включить JIT можно в настройках opcache в файле php.ini.
Подробнее 1 | Подробнее 2 | Подробнее 3


2. Аннотации/Атрибуты (Attributes)


Все мы помним, как раньше на Symfony код писался на языке комментариев. Очень радует, что такое теперь прекратится, и можно будет использовать подсказки любимой IDE, функция "Find usages", и даже рефакторинг!


Забавно, что символ # также можно было использовать для создания комментариев. Так что ничего не меняется в этом мире.
Читать дальше →
Всего голосов 26: ↑23 и ↓3+31
Комментарии58

QtCreator: Qt кросс-компиляция из linux 64 в linux 32, win32, win64 и Mac OS X; upx, usb, dmg, etc

Время на прочтение14 мин
Количество просмотров81K


Библиотека Qt позволяет делать действительно кроссплатформенные приложения. Единожды написанный код можно откомпилировать под многие операционные системы. Но проблема именно в слове «компилировать», т.к. подразумевается, что необходимо перезагрузиться под целевую систему, иметь в ней настроенную среду разработки, установленный и настроенный зоопарк библиотек. Спасает кросс-компиляция — компиляция, производящая исполняемый код для платформы, отличной от той, на которой исполняется.
Читать дальше →
Всего голосов 59: ↑57 и ↓2+55
Комментарии24

Работа с COM портом в web-проекте

Время на прочтение4 мин
Количество просмотров50K

Пролог


Один из клиентов нашего web-проекта захотел использовать для поиска заказов в системе сканер штрихкодов. Но, к сожалению, полностью отказался от идеи работы с ними в режиме имитации клавиатуры — только эмуляция COM-порта.
Вариантов решения было не особенно много:
  • отдельное нативное приложение, которое бы отправляло запрос на наш сервер, а сервер бы отдавал команду в браузер
  • работа с COM портом непосредственно из браузера

К счастью, есть способ решения проблемы вторым путём.

Читать дальше →
Всего голосов 52: ↑51 и ↓1+50
Комментарии31

О строковом форматировании в современном C++

Время на прочтение9 мин
Количество просмотров149K

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

Читать дальше →
Всего голосов 39: ↑38 и ↓1+37
Комментарии57

6 лучших практик React в 2021 году

Время на прочтение8 мин
Количество просмотров7.3K

Написание чистого и удобочитаемого кода необходимо для повышения его качества. Кроме того, чистый код легче тестировать. Нет причин не потратить пять лишних минут на рефакторинг кода, чтобы сделать его более удобным для чтения.

В этой статье рассматриваются шесть лучших практик React 2021 года, чтобы улучшить свой код. Речь пойдет о следующих пунктах:

Читать далее
Всего голосов 12: ↑6 и ↓60
Комментарии1

Экскурсия в подвал

Время на прочтение5 мин
Количество просмотров7.3K
Математика суть красота, зеркало мысли человека. Грядущие открытия невообразимо прекрасны. Но уже сейчас чтобы добраться до вершины наблюдения известных красот нужно потратить много усилий, и при этом может не получиться. А если получится, то беда придёт с другой стороны — новые вопросы будут подвергать сомнению любые прежние договорённости, не стесняясь. Станет ясно, что по этим обширным загадочным местам бродить — не перебродить. Предлагаю, наоборот, посетить подвал математики — куда любителю красоты вход заказан. Причина проста: там всё очевидно, слишком очевидно.



Тот, кто послал тебя туда, не был к тебе добр. (Этот абзац — лирическое отступление)

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

При входе в подвал можно сразу обратить внимание на скучный пол. Это — понятие «равенство». Оно говорит всего лишь о разделении двух уровней: уровня объектов и уровня их имён. Об одном объекте можно говорить как о двух, ведь сами имена различаются. Объект один, а на словах два — прям достижение. Кроме факта равенства или неравенства об объектах, соответствующих разным именам, ничего не вывести, чистая скука. Ну, для разнообразия можно ещё и не знать, как оно.

Под полом равенства лежит сплошной бетон абсолюта — объект всего один, и равен он себе или не равен — не важно.

Первое что лежит на полу и подпирает всё остальное это вполне себе нескучный предмет.
Читать дальше →
Всего голосов 10: ↑9 и ↓1+14
Комментарии108

Как ускорить приложение за счёт PHP-FPM (няшим FPM conf)

Время на прочтение4 мин
Количество просмотров24K

Привет. 

Сегодня хочу поговорить о том, как ускорить приложение через конфигурирование PHP-FPM.

Сейчас самый популярный (из тех с которыми я сталкивался) стек на котором поднимается PHP приложение это веб сервер nginx и процесс-менеджер php-fpm. 

Я хочу поднять простое приложение с Laravel проектом, которое устанавливается со всеми параметрами по умолчанию. Попробуем это приложение нагрузить пользователями с помощью простого Javascript скрипта и посмотрим как ему удастся справиться с нагрузкой и как мы можем повысить обрабатываемую нагрузку только конфигурированием php-fpm. В конце статьи можно будет найти ссылку на GitHub и попробовать своими руками.

Для начала посмотрим на стандартную конфигурацию php-fpm и попытаемся понять где могут быть проблемы в производительности с коробки.

Итак, у меня есть простое приложение на PHP с NGINX и PHP-FPM предустановленными в стандартных конфигурациях и маршрут Laravel.

Читать далее
Всего голосов 42: ↑32 и ↓10+34
Комментарии56

Эволюция Docker. Часть 1

Время на прочтение14 мин
Количество просмотров20K

20 марта 2013 года на конференции PyCon 2013, Соломон Хайкс (CEO компании dotCloud) выступил с пятиминутной презентацией The future of Linux Containers. В ней широкой общественности впервые была представлена внутренняя разработка компании dotCloud под названием Docker, а спустя несколько дней ее исходный код был выложен в открытый доступ. Хотя технологии LXC и Aufs, на которых была основана первая версия Docker существовали и активно использовались уже порядка пяти лет, но именно появление Docker послужило началом стремительного роста и эволюции систем контейнеризации, что кардинально преобразило многие процессы разработки и деплоймента программного обеспечения.

Этой статьей я собираюсь начать небольшой цикл посвященный изучению развития исходного кода Docker на протяжении нескольких лет. В первой части мы посмотрим на то, что представлял собой код на момент создания git репозитория датированного январем 2013 года. Тогда исходный код Docker (за исключением тестов) состоял всего из шести файлов общим объемом ~600 строк кода, написанных на языке Go. Это больше походило на библиотеку/api, функционал которой состоял лишь в создании, удалении, запуске и остановке контейнеров. Мы разберем принцип работы и даже сможем запустить с ее помощью подготовленный контейнер. 

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

Читать далее
Всего голосов 18: ↑17 и ↓1+22
Комментарии5

Шпаргалка для разработчика: создаём безопасное веб-приложение

Время на прочтение17 мин
Количество просмотров21K

Эта статья — своего рода ‘cheat sheet’ для веб-разработчика. Она даёт представление о «программе-минимум» для создания веб-приложения, защищённого от самых распространённых угроз.

Читать далее
Всего голосов 19: ↑19 и ↓0+19
Комментарии4

Книга «Делай как в Google. Разработка программного обеспечения»

Время на прочтение14 мин
Количество просмотров7.5K
image Привет, Хаброжители! Современные программисты должны не только эффективно программировать, но и знать надлежащие инженерные практики, позволяющие сделать кодовую базу стабильной и качественной.

В чем же разница между программированием и программной инженерией? Как разработчик может управлять живой кодовой базой, которая развивается и реагирует на меняющиеся требования на всем протяжении своего существования?

Основываясь на опыте Google, инженеры-программисты Титус Винтерс и Хайрам Райт вместе с Томом Маншреком делают откровенный и проницательный анализ того, как ведущие мировые практики создают и поддерживают ПО. Речь идет об уникальной инженерной культуре, процессах и инструментах Google, а также о том, как эти аспекты влияют на эффективность разработки.
Вы изучите фундаментальные принципы, которые компании разработчиков ПО должны учитывать при проектировании, разработке архитектуры, написании и сопровождении кода.
Читать дальше →
Всего голосов 5: ↑3 и ↓2+4
Комментарии12

Биопрепараты. Пробиотики и пребиотики. Что это такое и с чем едят?

Время на прочтение10 мин
Количество просмотров13K

Навязчивая реклама порой подсовывает нам вещи, в которых «без ста грамм» не разобраться. Без ста грамм нейронных связей, отвечающих за знание о том, что значат все эти умные слова, и что за ними скрывается. Сегодня будет новая порция популярного и полезного)

Читать далее
Всего голосов 13: ↑8 и ↓5+5
Комментарии260

Руководство Google по стилю в C++. Часть 3

Время на прочтение12 мин
Количество просмотров18K
Часть 1. Вступление
Часть 2. Заголовочные файлы
Часть 3. Область видимости
Часть 4. Классы



Эта статья является переводом части руководства Google по стилю в C++ на русский язык.
Исходная статья (fork на github), обновляемый перевод.
Читать дальше →
Всего голосов 4: ↑3 и ↓1+4
Комментарии3

Kubernetes 1.22: обзор основных новшеств

Время на прочтение11 мин
Количество просмотров13K

Этой ночью, 5 августа, состоится новый релиз Kubernetes — 1.22. Рассказываем о наиболее значимых изменениях в новой версии.

Читать далее
Всего голосов 29: ↑28 и ↓1+35
Комментарии3

Как настроить мониторинг событий в Kubernetes: 4 бесплатных инструмента

Время на прочтение4 мин
Количество просмотров7.5K

Flying Ships Harbour by annewipf

Отсутствие встроенного инструмента наблюдаемости — один из наиболее серьезных недостатков Kubernetes. Команда Kubernetes aaS Mail.ru Cloud Solutions перевела статью о четырех инструментах с открытым исходным кодом, которые подойдут для мониторинга событий.

Kubernetes — платформа с открытым исходным кодом, с ее помощью удобно управлять процессами контейнеризации и автоматизации. Но есть оборотная сторона медали: хотя в Kubernetes встречаются разные проблемы, одна из самых распространенных — наблюдаемость.

События Kubernetes показывают, что происходит в кластере при изменении состояния или ошибках, вызванных другими ресурсами системы. Благодаря событиям вы поймете, почему система не может вытянуть Docker-образ или почему некоторые поды были выселены из кластера. События — это тип ресурса, который автоматически создается всеми основными компонентами и расширениями в кластере через API-сервер.
Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Комментарии1

Что такое Core Scheduling и кому он будет полезен?

Время на прочтение9 мин
Количество просмотров14K

Не за горами выход новой версии ядра Linux 5.14. За последние несколько лет это обновление ядра является самым многообещающим и одно из самых крупных. Была улучшена производительность, исправлены ошибки, добавлен новый функционал. Одной из новых функций ядра стал Core Scheduling, которому посвящена наша статья. Это нововведение горячо обсуждали в интернете последние несколько лет, и наконец-то оно было принято в ядро Linux 5.14.

Если вы работаете с Linux или занимаетесь информационной безопасностью, вам интересны новые технологии, то добро пожаловать под кат.
Узнать подробности
Всего голосов 39: ↑38 и ↓1+55
Комментарии26

Использование потоков WebAssembly из C, C++ и Rust

Время на прочтение12 мин
Количество просмотров9.3K


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

В этой статье вы узнаете, как использовать потоки WebAssembly для переноса многопоточных приложений, написанных на языках C, C++ и Rust, в веб-среду.
Читать дальше →
Всего голосов 38: ↑38 и ↓0+38
Комментарии20

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность