Рубрика «микросервисы» - 24

Библиотека для синхронизации состояния - 1

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

Читать полностью »

Перевод книги Кристиана Посты (Christian Posta) Microservices for Java Developers. A Hands-On Introduction to Frameworks & Containers. Продолжение. Предыдущая публикация.

Организационная гибкость

Компании, созданные по лекалам индустрии 20-го века, не предназначены быть гибкими. Они построены для максимальной эффективности, уменьшения вариативности процессов, устранения креативного мышления рабочих и помещения их в рамки «конвейера». Они организованы как машины, которые принимают что-то на входе, выполняют тщательно выверенный процесс и создают что-то на выходе. Для управления этим машиноподобным мышлением менеджмент структурирован вертикально-иерархически. Изменение в машине требует 18-ти месячного цикла планирования. Информация от окраин такой организации проходит множество слоёв управления и преобразования прежде, чем достигнет верха, где принимаются и отправляются вниз решения для исполнения. Такой подход замечательно работает при создании продукции и выжимает каждый грамм эффективности из процесса, но не работает при предоставлении услуг.

Микросервисы для Java программистов. Практическое введение во фреймворки и контейнеры. (Часть 2) - 1
Читать полностью »

Перевод книги Кристиана Посты (Christian Posta) Microservices for Java Developers. A Hands-On Introduction to Frameworks & Containers.

ГЛАВА 1. Микросервисы для Java программистов

Чего Вы можете ожидать от этой книги?

Эта книга ориентирована на программистов и архитекторов Java, интересующихся разработкой микросервисов. Мы начнем книгу с высокоуровнего обзора общих принципов и фундаментальных требований, которые должны быть выполнены для успешной реализации микросервисной архитектуры. К сожалению, простое применение современных технологий не решает магическим образом всех проблем присущих распределенным системам. Мы рассмотрим основных игроков и то, что успешные компании сделали, чтобы микросервисы на них работали, включая культуру, организационную структуру и факторы рынка. Затем мы совершим глубокое погружение в несколько Java-фреймворков, используемых в реализации микросервисов. Репозиторий примеров исходных кодов из данной книги расположен на GitHub. Испачкав руки в коде, мы вернемся на воздух и обсудим проблемы развертывания, кластеризации, отказоустойчивости и то, какие решения предлагают Docker и Kubernetes в этих областях. Затем мы снова вернемся к деталям нескольких практических примеров с применением Docker, Kubernetes и NetflixOSS для демонстрации возможностей, которые они придают облачной микросервисной архитектуре. Закончим мы некоторыми положениями, которые мы не можем раскрыть в такой небольшой книге, но которые от этого не становятся менее важными: конфигурирование, протоколирование и непрерывная поставка (CD).
Читать полностью »

В блоге JUG.ru новый разбор, на этот раз под увеличительное стекло попал Никита Макаров из «Одноклассников», многократный участник программных комитетов наших конференций. Сегодня мы рассмотрим доклад о микросервисах для автоматизации тестирования. Выступление состоялось в 2015 году на встрече devclub.eu в Таллинне:

Слайды доклада можно найти тут.
Читать полностью »

Истории успеха Kubernetes в production. Часть 4: SoundCloud (авторы Prometheus) - 1

Цикл статей о крупных и успешных пользователях Kubernetes продолжается рассказом про популярный онлайн-сервис для распространения аудиоконтента — SoundCloud. В прошлом году эту компанию собиралась купить Spotify AB (имеет шведские корни, как и SoundCloud), а совсем недавно — китайский интернет-гигант Tencent. Даже обслуживая ~175 миллионов пользователей в месяц, SoundCloud в последнее время испытывает финансовые проблемы, о чём стало известно благодаря крупному сокращению (173 сотрудников) минувшим летом, однако, если верить последним данным, ситуация наладилась. Так или иначе, куда больше нас интересует технологическая сторона вопроса, а точнее — применение Kubernetes, и вот что известно о SoundCloud из публичных источников…Читать полностью »

Прим. перев.: kube-spawn — достаточно новый (анонсированный в августе) Open Source-проект, созданный в немецкой компании Kinvolk для локального запуска Kubernetes-кластеров. Он написан на Go, работает с Kubernetes версий 1.7.0+, использует возможности kubeadm и systemd-nspawn, ориентирован только на операционную систему GNU/Linux. В отличие от Minikube, он не запускает виртуальную машину для Kubernetes, а значит, что overhead будет минимальным и все процессы, запущенные внутри контейнеров, видны на хост-машине (в т.ч. и через top/htop). Представленная ниже статья — анонс этой утилиты, опубликованный одним из сотрудников компании (Chris Kühl) в корпоративном блоге.

Знакомство с kube-spawn — утилитой для создания локальных Kubernetes-кластеров - 1Читать полностью »

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

image

У многих бессерверные вычисления ассоциируются с существующими платформами, представляющими услуги в формате «функция как сервис» (function-as-a-servise, FaaS), что вполне понятно. Многих эти платформы разочаровывают, заставляют с подозрением смотреть на всё «бессерверное». Однако, это — слишком узкий взгляд на вещи.
Читать полностью »

Продолжаем рассказывать об успешных примерах использования Kubernetes в production. Новый кейс — совсем свежий. Подробная информация о нём появилась только вчера. А что ещё более значимо, речь пойдёт про крупный онлайн-сервис, с которым наверняка так или иначе работает каждый читатель хабры, — GitHub.

Истории успеха Kubernetes в production. Часть 3: GitHub - 1Читать полностью »

Сегодня на нашем проекте, помимо монолитного кода, функционируют десятки микросервисов. Каждый из них требует того, чтобы его мониторили. Делать это в таких объемах силами DevOps проблематично. Мы разработали систему мониторинга, которая работает как сервис для разработчиков. Они могут самостоятельно писать метрики в систему мониторинга, пользоваться ими, строить на их основании дашборды, прикручивать к ним алерты, которые будут срабатывать при достижении пороговых значений. С DevOps — только инфраструктура и документация.
Этот пост — расшифровка моего выступления с нашей секции на РИТ++. Многие просили нас сделать текстовые версии докладов оттуда. Если вы были на конференции или смотрели видео, то не найдете ничего нового. А всем остальным — добро пожаловать под кат. Расскажу, как мы пришли к такой системе, как она работает и как мы планируем её обновлять.
Мониторинг как сервис: модульная система для микросервисной архитектуры - 1
Читать полностью »

CNCF предложила бесплатное облако Open Source-проектам для DevOps-микросервисов - 1

Во вторник организация CNCF (Cloud Native Computing Foundation) объявила о публичной доступности своей «инфраструктурной лаборатории» — CNCF Community Infrastructure Lab (CIL). Это означает, что Open Source-проекты, связанные с микросервисной архитектурой и «облачным» (cloud native) подходом, могут бесплатно получить в своё распоряжение инфраструктуру для тестирования функционирования и производительности своих наработок в облаке нужного масштаба.Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js