• Тестирование микросервисов: разумный подход

    • Перевод


    Движущая сила микросервисов


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

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

    Однако, когда дело доходит до тестирования (или, чего похуже, разработки) микросервисов, выясняется, что большинство компаний по-прежнему испытывает привязанность к допотопному способу тестирования всех компонентов вместе. Создание сложной инфраструктуры считается обязательным условием для проведения сквозного (end-to-end) тестирования, при котором набор тестов для каждого сервиса обязательно должен быть выполнен — делается это для того, чтобы убедиться, что в сервисах не появилось регрессий или несовместимых изменений.
    Читать дальше →
  • Пишем DNS proxy на Go


      Давно хотел решить проблему с рекламой. Наиболее простым способом сделать это на всех устройствах оказалось поднятие своего DNS сервера с блокированием запросов на получений IP адресов рекламных доменов.
      Читать дальше →
    • Памятка евангелиста PostgreSQL: репликанты против репликации



        В продолжение серии публикаций «Памятка евангелиста PostgreSQL...» (1, 2) дорогая редакция снова выходит на связь, на этот раз с обещанным обзором механизмов репликации в PostgreSQL и MySQL. Главным поводом для написания послужила частая критика репликации MySQL. Как это часто бывает, типичная критика представляет из себя забористую смесь из правды, полуправды и евангелизма. Всё это многократно реплицируется разными людьми без особых попыток разобраться в услышанном. А поскольку это довольно обширная тема, я решил вынести разбор в отдельную публикацию.
        Читать дальше →
      • Семантика exactly-once в Apache Kafka

        • Перевод


        Всем привет! Меня зовут Юрий Лилеков, я работаю в Server Team Badoo. На днях мне попалась довольно интересная статья о новой семантике exactly-once в Apache Kafka, которую я с радостью для вас перевёл.

        Читать дальше →
        • +25
        • 9,4k
        • 7
      • Как запустить docker-голосовалку на Swarm, Kubernetes и Nomad

        TL; DR
        В этой статье мы будем разворачивать Docker-приложение, голосовалку на Swarm, Kubernetes и Nomad от Hashicorp. Я надеюсь, вы получите такое же удовольствие от чтения этой статьи, какое я получил, когда экспериментировал со всем этим.

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

        Оркестрация контейнеров – настолько горячая тема для обсуждения, что даже, если у вас и есть любимый инструмент, все равно интересно посмотреть, как работают другие и узнать про них что-нибудь новое.
        Читать дальше →
        • +19
        • 5,3k
        • 3
      • Как стать тимлидом и не взорваться



          Два года назад я начал негласно исполнять роль iOS-lead в компании Touch Instinct и формированием стабильной работы iOS-отдела. Спустя полгода это трансформировалось в официальную должность. Из-за отсутствия опыта у меня возникало огромное количество проблем, которые вызывали жжение в области верхней части кресла. Это происходило из-за ряда факторов:


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

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

          Читать дальше →
        • 50 оттенков Go: ловушки, подводные камни и распространённые ошибки новичков

          • Перевод
          • Tutorial


          Go — простой и забавный язык. Но в нём, как и в любых других языках, есть свои подводные камни. И во многих из них сам Go не виноват. Одни — это естественное следствие прихода программистов из других языков, другие возникают из-за ложных представлений и нехватки подробностей. Если вы найдёте время и почитаете официальные спецификации, вики, почтовые рассылки, публикации в блогах и исходный код, то многие из подводных камней станут для вас очевидны. Но далеко не каждый так начинает, и это нормально. Если вы новичок в Go, статья поможет сэкономить немало часов, которые вы бы потратили на отладку кода. Мы будем рассматривать версии Go 1.5 и ниже.
          Читать дальше →
        • Как работает Git

          • Перевод
          В этом эссе описана схема работы Git. Предполагается, что вы знакомы с Git достаточно, чтобы использовать его для контроля версий своих проектов.

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

          Текст разбит на серии команд, работающих с единым проектом. Иногда встречаются наблюдения по поводу структуры данных графа, лежащего в основе Git. Наблюдения иллюстрируют свойство графа и поведение, основанное на нём.

          После прочтения для ещё более глубокого погружения можно обратиться к обильно комментируемому исходному коду моей реализации Git на JavaScript.
          Читать дальше →
        • Как работают над Chromium

          • Перевод
          image
          Предисловие от автора оригинала:
          В марте 2011 я написал черновик статьи про то, как команда, отвечающая за Google Chrome, разрабатывает и выпускает свой продукт — после чего я благополучно о нем забыл. Лишь несколько дней назад я случайно наткнулся на него. Пусть местами он уже устарел (Chrome форкнул WebKit в Blink в 2013 году, да и я сам больше не работаю в Google), я склонен считать, что изложенные в нем идеи все еще в силе.
          Сегодня я собираюсь рассказать вам о том, как работает Chromium. Нет, речь пойдет не совсем о браузере Chrome, а скорее о Chromium — группе людей, занимающихся созданием браузера.

          Над проектом Chromium работают сотни инженеров. Вместе мы коммитим в кодовую базу примерно 800 изменений каждую неделю. Мы также зависим от многих других больших и активно развивающихся проектов вроде V8, Skia и WebKit.

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

          Каким образом все это продолжает работать? Почему «колеса» у этого «автобуса» еще не «отвалились»? Почему еще не все разработчики сошли с ума?
          Читать дальше →
        • Городской дизайн: 4 лекции о создании схем навигации в метро и не только



            Был недавно в Прожекторе, где собрались дизайнеры (руководители проектов) которые занимались улучшением навигации в метро (и не только в метро) в Москве и Киеве.

            Из Москвы на эту сессию лекций приехал Алексей Радченко, который руководил разработкой системы единой транспортной навигации для Москвы (и в метро тоже) в 2014 году.

            В лекциях пойдет речь о том:
            — что такое навигация?
            — какой она должна быть?
            — как ее сделать удобной и понятной для людей и как ее постоянно улучшать?
            — как взаимодействовать со всякими «железобетонными» по образу мысли госорганами, которые отвечают за навигацию?
            — примеры дизайна навигации из других городов
            — ребята из "Агентов змин" рассказали о том как они создавали схемы навигации для киевского метро
            — как работают студии (не Лебедева), которые специализируются на разработке и дизайне навигационных схем для городов?
            и о многом другом касательно дизайна городской среды в плане навигации. Лекция сверстана со слайдами, чтобы можно было сразу наглядно видеть примеры того, о чем говорит докладчик.

            Лекции будут интересны всем, кто интересуется дизайном вообще, городским дизайном и дизайном навигационных схем в частности. Также лекции будут интересны менеджерам проектов, так как все, что связанно с проектами городского дизайна требует большего искусства в управлении, чем в обычных бизнес-проектах. Чего только стоит постоянная работа с госорганами и утверждение всех проектов в этих ведомствах.
            Читать дальше →