Репликация PostgreSQL с опережающей записью (WAL) — ключевая концепция в высоконагруженных архитектурах, поскольку она позволяет создавать высокодоступные и отказоустойчивые системы баз данных.
Пользователь
Когда хочешь красную таблетку: гайд по matrix
В статье рассказывается о том, как использовать Matrix для повседневной переписки.
Статья написана для тех, кого не устраивают существующие мессенджеры и соцсети, и кто хочет найти им лучшую замену.
Предполагается, что вы знаете самые основы безопасного общения: не приклеиваете пароли на мониторе и не боитесь ключей шифрования.
Погружение в матрицу стоит начать с понятия федерации.
Знакомство с виртуальными интерфейсами Linux: туннели
Автор этого материала полагает, что то, о чём пойдёт здесь речь, может быть интересно всем, кто имеет какое-то отношение к управлению компьютерными сетями. Список туннельных интерфейсов, а также справочные сведения о конкретной конфигурации можно получить с помощью iproute2-команды
ip link help
.Здесь будут рассмотрены следующие часто используемые интерфейсы: IPIP, SIT, ip6tnl, VTI и VTI6, GRE и GRETAP, GRE6 и GRE6TAP, FOU, GUE, GENEVE, ERSPAN и IP6ERSPAN.
Прочитав эту статью, вы узнаете об особенностях этих интерфейсов и выясните различия между ними. Вы научитесь их создавать и узнаете о ситуациях, в которых их лучше всего использовать.
Миграция Spring Boot приложения на Java 17 — сложный путь
Недавно была выпущена Java 17, и я очень рад появлению множества улучшений и новых функций. Вместо того, чтобы начинать с нового или недавнего проекта (где в этом азарт?), Мы собираемся обновить существующее приложение Spring Boot, пока мы не сможем разработать новый код с использованием Java 17.
Песочница для Nginx
Как-то я болтала с приятелем о том, как было бы здорово, если бы был такой сайт-песочница, где бы можно было просто скопировать-вставить конфиг Nginx-а и протестировать его. И я поняла, что это не так уж сложно сделать, поэтому погрузилась в тему и сделала: nginx-playground.wizardzines.com.
С днём программиста
Сегодня мы выпускаем развлекательный ролик ко дню программиста, в котором предлагаем представить, как можно было бы отметить профессиональный праздник.
День программиста отмечается в России на 256 день года, в 2021 году праздник выпал на 13 сентября. Идеей ролика было в позитивном ключе обыграть профессиональный юмор и специфику работы программистов.
Почему программное обеспечение не всегда товар и откуда в IT прибыль
С XVI века складывалась нынешняя система производства в которой мы живём. Эта система находит своё отражение во всех сферах, но именно в IT получает новое продолжение, новое рождение. Это статья о том, почему программное обеспечение формирует новый ландшафт экономических отношений и почему в IT много денег. Но что ещё более важно, надеюсь внимательный читатель задумается, в какой компании он работает и в какую хотел бы пойти работать, что в условиях мирового экономического кризиса всё более актуально.
Когда путь важнее цели. Сколько нам еще остается до полноценной термоядерной энергетики?
Так выглядел строящийся комплекс ITER в феврале 2020 года. ITER может стать первой установкой, которая позволит получить «горящую» или самоподдерживаемую термоядерную плазму. В этом строящемся сооружении будут расположены термоядерный токамак и системы его обеспечения. Фото из архива ITER
На Хабре не обошли вниманием новость о том, что Китай запустил новый токамак, HL-2M Tokamak. Эта новость особенно интересна тем, что освежает в памяти историю о печальном долгострое нашего века — будущем термоядерном реакторе ITER, который возводится силами всей Европы на юге Франции и должен стать первым подобным устройством, которое могло бы производить больше энергии, чем потребляет само. Тем не менее, с сожалением отметим, что и HL-2M, и даже ITER удручающе далеки от полноценной термоядерной электростанции.
Не будем вдаваться в детали устройства токамаков и самого ITER – эти темы в изобилии рассмотрены во всевозможных источниках, например, в вышеупомянутой хаброновости. Под катом речь пойдет о том, какой путь открывает перед нами ITER (в переводе с латыни «iter» означает «путь»), и почему этот путь оказался извилист как восьмерка стелларатора.
Коронавирус: первые итоги пандемии и карантина
The Hill: По оценкам Национального института аллергии и инфекционных заболеваний США из-за карантина почти половина от 650 000 американских онкологических больных не получают лечение, не назначаются две трети процедур физиотерапии, количество операций по трансплантации сократилось на 85%, экстренные оценки случаев инсульта снизились на 40% и более половины детей не были вовремя привиты, что всё вместе указывает на массовую будущую катастрофу в области здравоохранения.
Mirror: Последствия блокировки коронавируса могут привести к 200 000 дополнительных смертей в Великобритании из-за задержек и неправильного распределения приоритетов в системе здравоохранения, говорится в государственном докладе. За шесть месяцев было отменено 75% процедур по плановой медицинской помощи, а число госпитализаций в марте и апреле сократилось на четверть по сравнению с предыдущим периодом. На момент публикации статьи в Mirror в Великобритании зарегистрировано 45 000 смертей среди людей с положительным тестом на коронавирус.
The Telegraph: ЮНИСЕФ предупреждает, что карантин может унести больше жизней, чем коронавирус, а именно повлечь за собой свыше миллиона детских смертей от малярии, пневмонии и диареи в развивающихся странах в ближайшиее шесть месяцев. Только это значение в разы превышает официальное количество смертей во всём мире среди людей с положительным тестом на COVID-19 с начала пандемии.
Основы Ansible, без которых ваши плейбуки — комок слипшихся макарон, часть 2
Я продолжаю выразительно пересказывать документацию Ансибла и разбирать последствия её незнания (ссылка на предыдущую часть).
В этой части мы обсуждаем инвентори. Я обещал ещё и переменные, но инвентори оказалась большой темой, так что посвящаем ей отдельную статью.
Мы будем разбирать каждый элемент инвентори (кроме host_group_vars plugin
) и обсуждать зачем он, как его использовать правильно, и как неправильно.
Оглавление:
- Что такое хост? (и немного про транспорты)
- Доступ IP vs FQDN;
inventory_hostname
vsansible_host
ansible_user
— писать или не писать?- Группы
- Переменные: в инвентори или в плейбуку?
- Классификация инвентори по происхождению.
Основы Ansible, без которых ваши плейбуки — комок слипшихся макарон
Я делаю много ревью для чужого кода на Ансибл и много пишу сам. В ходе анализа ошибок (как чужих, так и своих), а так же некоторого количества собеседований, я понял основную ошибку, которую допускают пользователи Ансибла — они лезут в сложное, не освоив базового.
Для исправления этой вселенской несправедливости я решил написать введение в Ансибл для тех, кто его уже знает. Предупреждаю, это не пересказ манов, это лонгрид в котором много букв и нет картинок.
Ожидаемый уровень читателя — уже написано несколько тысяч строк ямла, уже что-то в продакшене, но "как-то всё криво".
Как выглядят новые меры защиты на складах Amazon
Amazon за последние несколько месяцев оказалась в эпицентре нескольких больших скандалов. Мы в Pochtoy.com неоднократно о них сообщали. Компанию обвиняли в недостаточной защите для сотрудников, и в сокрытии настоящего масштаба заболеваний у неё на складах. Теперь самый большой в мире интернет-магазин старается искоренить эти слухи. Компания потратила десятки миллионов на телерекламу, рассказывающую, как отлично она защищает своих людей. И заплатила новостям в штатах и городах, чтобы те рассказали один и тот же сегмент о её тратах на борьбу с COVID-19.
А теперь интернет-магазин впервые с начала пандемии пустил на свои склады журналистов. И у нас появились первые фото того, какие меры Amazon реально принимает у себя на местах для защиты от вируса.
Из пилотов в тестировщики: как бывший военный построил запасной аэродром в IT
Microsoft vs IBM: серьёзные изменения в поддержке Java
Когда-то IBM была, вероятно, доминирующей силой в корпоративном сегменте Java-сообщества. Тем не менее, на Oracle Code One 2019 всё указывало на то, что нас ожидает серьёзный сдвиг в противостоянии Microsoft и IBM.
IBM всегда вкладывала значительные средства в Java-разработку, в то время как Microsoft не беспокоилась об этом. Но похоже, что IBM собирается выйти из-за стола Java, а Microsoft готовится занять это место.
Автоматизация HTTP запросов в контексте Spring
Предыстория
Несколько месяцев назад поступила задача по написанию HTTP API работы с продуктом компании, а именно обернуть все запросы с помощью RestTemplate и последующим перехватом информации от приложения и модификации ответа. Примерная реализация сервиса по работе с приложением была таковая:
if (headers == null) {
headers = new HttpHeaders();
}
if (headers.getFirst("Content-Type") == null) {
headers.add("Content-Type", MediaType.APPLICATION_JSON_VALUE);
}
HttpEntity<Object> entity;
if (body == null) {
entity = new HttpEntity<>(headers);
} else {
entity = new HttpEntity<>(body, headers);
}
final String uri = String.format("%s%s/%s", workingUrl, apiPath, request.info());
final Class<O> type = (Class<O>) request.type();
final O response = (O)restTemplate.exchange(uri, request.method(), entity, type);
… простенький метод, принимающий тип, тело и заголовки запроса. И все бы хорошо, но выглядело как костыль и не особо юзабельно в контексте Spring.
И пока товарищи коллеги писали на старом механизме функционал в своих ветках, мне пришла в голову гениальнейшая идея — а почему бы не писать эти запросы "в одну строчку" (like Feign).
Идея
У нас в руках имеется мощный DI контейнер Spring, так почему бы не использовать его функционал в полной мере? В частности инициализации Data репозиториев на примере Jpa. Предо мной стояла задача инициализация класса типа интерфейс в контексте Spring и три варианта решения перехвата вызова метода, как типичной реализации — Aspect, PostProcess и BeanDefinitionRegistrar.
Кодовая база
Первым делом — аннотации, куда же без них, иначе как конфигурировать запросы.
1) Mapping — аннотация, идентифицирующая интерфейс как компонент HTTP вызовов.
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Mapping {
/**
* Registered service application name, need for config
*/
String alias();
}
Выпускаем Predator — предкомпилированные Data-репозитории
Сегодня, команда Micronaut в Object Computing Inc (OCI) представила Predator, новый проект с открытым исходным кодом, цель которого — значительно улучшить время выполнения и производительность (по памяти) доступа к данным для микросервисов и serverless-приложений, при этом не потеряв в продуктивности по сравнению с такими инструментами, как GORM и Spring Data.
Информация
- В рейтинге
- Не участвует
- Зарегистрирован
- Активность