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

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

Стратегии деплоя в Kubernetes: rolling, recreate, blue/green, canary, dark (A/B-тестирование)

Время на прочтение 5 мин
Количество просмотров 68K
Прим. перев.: Этот обзорный материал от Weaveworks знакомит с наиболее популярными стратегиями выката приложений и рассказывает о возможности реализации наиболее продвинутых из них с помощью Kubernetes-оператора Flagger. Он написан простым языком и содержит наглядные схемы, позволяющие разобраться в вопросе даже начинающим инженерам.


Схема взята из другого обзора стратегий выката, сделанного в Container Solutions

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

Более короткие и частые развертывания имеют следующие преимущества:

  • Сокращается время выхода на рынок.
  • Новые функции быстрее попадают к пользователям.
  • Отклики пользователей быстрее доходят до команды разработчиков. Это означает, что команда может дополнять функции и исправлять проблемы более оперативно.
  • Повышается моральный дух разработчиков: с большим количеством функций в разработке интереснее работать.
Читать дальше →
Всего голосов 43: ↑40 и ↓3 +37
Комментарии 3

RabbitMQ против Kafka: отказоустойчивость и высокая доступность

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


В прошлой статье мы рассмотрели кластеризацию RabbitMQ для обеспечения отказоустойчивости и высокой доступности. Теперь глубоко покопаемся в Apache Kafka.

Здесь единицей репликации является раздел (partition). У каждого топика один или несколько разделов. В каждом разделе есть лидер с фолловерами или без них. При создании топика указывается количество разделов и коэффициент репликации. Обычное значение 3, это означает три реплики: один лидер и два фолловера.
Читать дальше →
Всего голосов 48: ↑45 и ↓3 +42
Комментарии 3

Как защитить активы на бирже: 6 стратегий защиты инвестиций

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


Изображение: Unsplash

Ключ к долгосрочному успеху при биржевых инвестициях в сохранении каптиала. Одно из главных правил знаменитого инвестора Уоррена Баффета звучит так – никогда не теряйте деньги.

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

Редакция портала Investopedia опубликовала материал с описанием шести популярных стратегий защиты активов при торговле на бирже. Мы подготовили его адаптированную версию.
Всего голосов 29: ↑25 и ↓4 +21
Комментарии 36

Что должен делать тимлид: роли, обязанности и навыки

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


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


Это становится особенно заметно, когда компания сталкивается с одним из следующих вопросов: как собеседовать тимлида, как оценивать его работу, как составить ему план развития. Тимлиды тоже довольно много фрустрируют – они не понимают, насколько их текущий опыт работы останется релевантным при переходе в новую компанию, какие пробелы в знаниях и навыках существуют и как их можно заполнить. Короче говоря, куда не посмотришь, везде с тимлидами как-то сложно.


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

Читать дальше →
Всего голосов 73: ↑71 и ↓2 +69
Комментарии 28

Как мы пробивали Великий Китайский Фаервол (ч.1)

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

Всем привет!


На связи Никита — системный инженер из компании SЕMrush. Сегодня я расскажу вам о том, как перед нами встала задача обеспечить стабильность работы нашего сервиса semrush.com в Китае, и с какими проблемами мы столкнулись в ходе ее выполнения (учитывая местонахождение нашего дата-центра на восточном побережье США).


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



Проблемы китайского интернета


Даже самый далекий человек от специфики сетевого администрирования хотя бы раз, да слышал о Великом Китайском Фаерволе. Ууу, звучит круто, да? Но что это такое, как оно работает на самом деле — вопрос довольно сложный. В интернете можно найти много статей, посвященных этому, но с технической точки зрения устройство этого фаервола нигде не описано. Что, впрочем, неудивительно. Признаюсь сразу, по итогам года работы я не смогу сказать точно, как он работает, но смогу рассказать о своих замечаниях и практических выводах. И начнем мы со слухов об этом фаерволе.

Читать дальше →
Всего голосов 78: ↑73 и ↓5 +68
Комментарии 46

Сколько стоят юнит тесты?

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

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

Читать дальше →
Всего голосов 44: ↑28 и ↓16 +12
Комментарии 401

Подборка датасетов для машинного обучения

Время на прочтение 6 мин
Количество просмотров 138K
Привет, читатель!

Меня зовут Рушан, и я автор Telegram‑канала Нейрон. Не забудьте поделиться с коллегами или просто с теми, кому интересны такие статьи.

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

Меньше слов, больше данных.

image

Подборка датасетов для машинного обучения:


Читать дальше →
Всего голосов 66: ↑64 и ↓2 +62
Комментарии 6

Spring Data JPA: что такое хорошо, и что такое плохо

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

Крошка-сын к отцу пришел
И спросила кроха
— Что такое хорошо
и что такое плохо

Владимир Маяковский


Эта статья о Spring Data JPA, а именно в подводных граблях, встретившихся на моём пути, ну и конечно же немного о производительности.

Читать дальше →
Всего голосов 23: ↑22 и ↓1 +21
Комментарии 12

Сети Kubernetes: поды

Время на прочтение 8 мин
Количество просмотров 23K
Материал, перевод которого мы сегодня публикуем, посвящён особенностям сетевого взаимодействия подов Kubernetes. Он предназначен для тех, у кого уже есть некоторый опыт работы с Kubernetes. Если вы пока не очень хорошо разбираетесь в Kubernetes, то вам, вероятно, прежде чем читать этот материал, полезно будет взглянуть на это руководство по Kubernetes, где работа с данной платформой рассматривается в расчёте на начинающих.


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

Книги, которые стоит прочитать каждому продакт-менеджеру

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


Никогда не читайте книги для самообразования просто так, без практики. Это самое плохое, когда человек прочитывает кучу книг, а затем пытается устроиться работать продакт-менеджером, размахивая книжными знаниями. Таких соискателей сразу видно. И замечательно, если человек на работе начинает развивать себя как продакт-менеджер. Очень часто проджект-менеджеры ведут себя как продакты. К примеру, тестировщики начинают читать полезные книги, в отличие от разработчиков, которые сидят и пишут код, ничего не читая о тех же гибких методологиях.

Я на своем опыте узнал, как обидно потратить кучу времени и денег на что-то, а потом читаешь книгу, в которой описаны все совершённые мной ошибки. А если бы прочитал её раньше, мог бы избежать, всё могло сложиться по-другому. И если хочешь развиваться в своей профессии, то лучше не повторять чужих ошибок, либо делать это осознанно. И книги очень помогают в этом. Позвольте посоветовать вам книги, которые рекомендуется прочитать каждому продакт-менеджеру.
Читать дальше →
Всего голосов 41: ↑39 и ↓2 +37
Комментарии 4

3 выигрышные стратегии монетизации приложения в 2019

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

Главная боль разработчика — понять, почему еще вчера его стратегия монетизации работала и приносила доход, и вдруг перестала. Январь — идеальное время, чтобы проснуться от спячки и переосмыслить свою стратегию монетизации. Ниже мы подготовили обзор трех выигрышных стратегий, которые помогут мобильным приложениям зарабатывать больше в 2019.
Читать дальше →
Всего голосов 26: ↑23 и ↓3 +20
Комментарии 6

Sysdig — инструмент для диагностики Linux-систем

Время на прочтение 16 мин
Количество просмотров 50K
Sysdig — инструмент для диагностики Linux-систем

Для сбора и анализа информации о системе в Linux используется целый набор утилит. Для диагностики каждого из компонентов системы используется отдельный диагностический инструмент.

Читать дальше →
Всего голосов 65: ↑61 и ↓4 +57
Комментарии 14

Наследование в Hibernate: выбор стратегии

Время на прочтение 22 мин
Количество просмотров 94K
Наследование является одним из основных принципов ООП. В то же время, значительное количество корпоративных приложений имеют в своей основе реляционные базы данных

Главное противоречие между объектно-ориентированной и реляционной моделями заключается в том, объектная модель поддерживает два вида отношений («is a» — “является”, и «has a» — “имеет”), а модели, основанные на SQL, поддерживают только отношения «has a».

Иными словами, SQL не понимает наследование типов и не поддерживает его.

Поэтому на этапе построения сущностей и схемы БД одной из главных задач разработчика будет выбор оптимальной стратегии представления иерархии наследования.

Всего таких стратегий 4:

1) Использовать одну таблицу для каждого класса и полиморфное поведение по умолчанию.

2) Одна таблица для каждого конкретного класса, с полным исключением полиморфизма и отношений наследования из схемы SQL (для полиморфного поведения во время выполнения будут использоваться UNION-запросы)

3) Единая таблица для всей иерархии классов. Возможна только за счет денормализации схемы SQL. Определять суперкласс и подклассы будет возможно посредством различия строк.

4) Одна таблица для каждого подкласса, где отношение “is a” представлено в виде «has a», т.е. – связь по внешнему ключу с использованием JOIN.

Можно выделить 3 главных фактора, на которые повлияет выбранная вами стратегия:

1) Производительность (мы используем “hibernate_show_sql”, чтобы увидеть и оценить все выполняемые к БД запросы)

2) Нормализация схемы и гарантия целостности данных (не каждая стратегия гарантирует выполнение ограничения NOT NULL)

3) Возможность эволюции вашей схемы

Под катом каждая из этих стратегий будет рассмотрена подробно, с указанием преимуществ и недостатков, а также будут даны рекомендации по выбору стратегии в конкретных случаях.
Читать дальше →
Всего голосов 14: ↑14 и ↓0 +14
Комментарии 12

Десять вещей, которые можно делать с GraalVM

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


От переводчика: GraalVM — новая, интересная технология, но на Хабре по ней не так много статей, которые бы могли показать примеры возможностей Graal. Статья ниже — это не просто перечисление того, что GraalVM умеет, но ещё и небольшой мастер-класс, аналогичный тому, который Chris Seaton и Олег Шелаев проводили на Oracle CodeOne 2018. Вслед за автором, призываю — пробуйте делать примеры из статьи, это действительно интересно.


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


  1. Быстрое выполнение Java
  2. Уменьшение времени старта и потребления памяти для Java
  3. Комбинирование JavaScript, Java, Ruby и R
  4. Исполнение программ, написанных на платформо-зависимых языках
  5. Общие инструменты для всех языков программирования
  6. Дополнение JVM приложений
  7. Дополнение платформо-зависимых приложений
  8. Код Java как платформо-зависимая библиотека
  9. Поддержка нескольких языков программирования в базе данных
  10. Создание языков программирования для GraalVM
Читать дальше →
Всего голосов 38: ↑37 и ↓1 +36
Комментарии 22

Конспект доклада «Монолит для сотен версий клиентов» (HL2018, Badoo, Владимир Янц)

Время на прочтение 5 мин
Количество просмотров 4.7K
Продолжаю серию конспектов с HL2018. В проверке этого конспекта мне помогали ребята из Badoo (Владимир Янц vyants и Николай Крапивный), за что им большой спасибо. Надеюсь, это положительно сказалось на качестве донесения идеи доклада.

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

Чертова дюжина для PM: список книг для проджект-менеджеров

Время на прочтение 5 мин
Количество просмотров 56K
Преподаватели Binary District подготовили список книг для будущих студентов курса Project Management in IT: это база, способная сделать из хорошего управленца лучшего. Список настолько хорош, что по крайней мере половину книг можно смело рекомендовать вообще всем, кто хочет стать лучшей версией себя.


Читать дальше →
Всего голосов 16: ↑14 и ↓2 +12
Комментарии 6

Еще одна причина, почему тормозят Docker контейнеры

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

В последнем посте я рассказывал о Kubernetes, о том, как ThoughtSpot использует его для собственных нужд по поддержке разработки. Сегодня хотелось бы продолжить разговор о короткой, но от того не менее интересной истории отладки, которая произошла совсем недавно. Статья базируется на том, что containerization != virtualization. К тому же наглядно показывается, как контейнеризированные процессы конкурируют за ресурсы даже при оптимальных ограничениях по cgroup и высокой производительности машины.


image

Читать дальше →
Всего голосов 64: ↑57 и ↓7 +50
Комментарии 13

Что, если выкинуть все лишнее из базы в распределенный кэш – наш опыт использования Hazelcast

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


Так как базы данных Яндекс.Денег вынуждены хранить массу второстепенной и временной информации, однажды такое решение перестало быть оптимальным. Поэтому в инфраструктуре появился распределенный Data Grid с функциями in-memory базы данных на базе Hazelcast.


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

Читать дальше →
Всего голосов 30: ↑30 и ↓0 +30
Комментарии 17

Книга «Руководство по архитектуре облачных приложений»

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

Руководство организовано как последовательность шагов — выбор архитектуры → выбор технологий для вычисления и хранения данных → проектирование приложения Azure → выбор шаблонов → проверка архитектуры. Для каждого из них приведены рекомендации, которые помогут вам при разработке архитектуры приложения.
Читать дальше →
Всего голосов 10: ↑10 и ↓0 +10
Комментарии 0

Kotlin под капотом — смотрим декомпилированный байткод

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


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

Я специально упущу довольно избитые и известные моменты так как, наверное, нет смысла в сотый раз писать о генерации геттеров/сеттеров для var и подобных вещах. Итак начнем.
Читать дальше →
Всего голосов 27: ↑24 и ↓3 +21
Комментарии 15

Информация

В рейтинге
Не участвует
Откуда
Минск, Минская обл., Беларусь
Дата рождения
Зарегистрирован
Активность