• Apache Ignite в облаке AWS — базовый пример

    • Tutorial
    Облачные вычисления так популярны по нескольким причинам: они гибкие, относительно дешевые по сравнению с поддержкой внутренней инфраструктуры и позволяют отлично автоматизировать распределение ресурсов (и тут тоже экономия). Когда объем обрабатываемых данных растет из года в год, нельзя полагаться на вертикальную масштабируемость, покупая все более и более дорогие серверы. Данные должны быть распределены по нескольким более дешевым системам (кластерам), где могут надежно храниться, обрабатываться и возвращаться к пользователю при необходимости. Создание таких систем — непростая задача, но, к счастью, есть решения, которые отлично вписываются в облачную архитектуру. Я говорю об Apache Ignite.

    Подготовка среды


    Я собираюсь использовать AWS-облако для развертывания кластера Ignite. Для целей обучения нам хватит бесплатных машин базового уровня (AWS free tier). Я выбрал образ Ubuntu 18.04, но в целом это неважно. Перед развертыванием первых машин нам надо настроить группу безопасности (Security Group). В ней должны быть определены сетевые правила для портов, необходимых для узлов Ignite.


    Рисунок 1 – Конфигурация Security Group
    Читать дальше →
  • Эволюция дизайна интерфейса на примере компонента выбора метрик в GridGain Control Center

      В данной статье я расскажу об эволюции компонента выбора метрик, который используется в GridGain Control Center, а также об изменениях, которые он претерпевал как во внешнем виде, так и в еще большей степени в логике своей работы. Идея, которую я попытаюсь донести до читателей, звучит так: «Любой компонент интерфейса претерпевает серию изменений, в результате которых он либо становится более удобным в использовании, либо от него полностью отказываются».

      Читать далее
    • Мониторинг распределенной системы с помощью Zabbix на примере Apache Ignite

      • Tutorial

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

      Читать далее
      • +12
      • 2,8k
      • 1
    • Архитектура транзакций в Apache Ignite

        В этой статье мы рассмотрим, как устроены транзакции в Apache Ignite. Не будем останавливаться на концепции Key-Value хранилища, а перейдем сразу к тому, как это реализовано в Ignite. Начнем с обзора архитектуры, а затем проиллюстрируем ключевые моменты логики транзакций при помощи трейсинга. На простых примерах вы увидите, как работают транзакции (и по каким причинам могут не работать).

        Необходимое отступление: кластер в Apache Ignite


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


        Читать дальше →
      • Как совладать со сложностью распределённой системы. Мониторинг GridGain при помощи Control Center

          Представим, что вам нужно настроить мониторинг распределённой базы данных, такой как GridGain. Метрики положим в Prometheus. Графики нарисуем в Grafana. Про систему оповещения не забудем – для этого настроим Zabbix. Для анализа трейсов воспользуемся Jaeger. Для управления состоянием и CLI хорош. А для SQL запросов воспользуемся бесплатным JDBC клиентом вроде DBeaver.


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


          А теперь наймем для поддержки и настройки всего этого зверинца команду специалистов и будем жить долго и счастливо. Или нет, потому что столько ресурсов мы на эту задачу просто не получим. Придется искать способы удешевить обслуживание. В GridGain моя команда для этого написала собственный инструмент, закрывающий все потребности распределенной In-Memory платформы Apache Ignite или ее корпоративной версии GridGain.


          Экран мониторинга GridGain Control Center


          Control Center умеет работать с GridGain начиная с версии 8.7.23 любой редакции, а также с Apache Ignite версии не младше 2.8.1.

          Читать дальше →
        • Реплицируй это. Вебинары Apache Ignite и GridGain

            Продолжаем серию вебинаров, где разработчики GridGain не только рассказывают, но и показывают, как работать с теми или другими возможностями Apache Ignite.

            Если пропустили, обязательно посмотрите Руководство по настройкам безопасности для Apache Ignite и GridGain с примерами.

            В четверг 23 апреля поговорим о том, как в Ignite устроен ребаланс, и подробно разберем примеры логов, чтобы научиться определять, когда ребаланс остановлен, а когда все еще активен, и безопаснее перезапускать узлы кластера. Также пример поможет понять, почему был автоматически выбрал исторический или полный ребаланс. Перед вебинаром советуем прочитать про распределение данных в Apache Ignite.
            Регистрация

            Читать дальше →
          • Распределение данных в Apache Ignite

              Привет! Этот пост — немного сокращенная версия моего одноименного доклада на встрече сообщества Apache Ignite. Полную видеоверсию вместе с вопросами и ответами можно посмотреть здесь, а слайды скачать здесь. В докладе я постарался на примерах показать, как данные распределяются в Apache Ignite.
              Читать дальше →
              • +13
              • 2,6k
              • 1
            • Где послушать про Apache Ignite и GridGain в октябре

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

                В Москве


                3 октября на митапе Scalability Camp Андрей Гура (коммитер и PMC проекта) рассказывает об организации консистентного размещения данных в распределенной системе на примере Apache Ignite. Осталось всего 9 мест, регистрируйтесь.
                Читать дальше →
              • Где летом поговорить про Apache Ignite и распределенные системы

                  14 июня в Петербурге пройдет митап Apache Ignite Meetup: реальные кейсы. Послушаем парней, у которых получилось. Первый кейс — IMDG для расчета маржинальности торговых контрактов в Heineken. Второй — промышленная платформа Газпромнефти. Почему open source и Ignite? Куда прикрутили? Как и зачем работает? Спикеры ответят на эти и другие вопросы на митапе. Присоединяйтесь к нам вечером пятницы 14 июня. Чтобы было не душно, мы даже помещение нашли побольше — регистрация.

                  11 июля в Петербурге на конференции Гидра выступит Алексей Зиновьев с докладом “Не все ML-алгоритмы попадают в распределенный рай”. Он поделится своим опытом адаптации классических алгоритмов машинного обучения для выполнения в распределенном режиме, в том числе, расскажет про создание Apache Ignite ML, в котором принимал активное участие.

                  Читать дальше →
                • Где весной поговорить про Apache Ignite, распределенные базы данных и распределенное машинное обучение

                    Начинается первая волна конференций, да и дружественные митапы активизировались. Присоединяйтесь.

                    15 марта, Санкт-Петербург — ODS SPB Meetup #5


                    Распределенный TensorFlow с Apache Ignite
                    На митапе, приуроченному ко дню рождения Open Data Science, Юрий Бабак, Руководитель группы разработки в GridGain, расскажет про распределенный TensorFlow с Apache Ignite:

                    — Apache Ignite как распределенный источник данных для TensorFlow;
                    — Hаспределенная тренировка модели на кластере TensorFlow поверх Apache Ignite;
                    — Инференс TensorFlow модели на кластере Apache Ignite

                    Программа и регистрация

                    28 марта, Москва — Scalability Meetup #7


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

                    Иван Раков, Senior Software Engineer в GridGain, расскажет про то, какие варианты репликации возможны, как реализована транзакционная целостность в GridGain, и как это защищает кластер от катастроф.

                    Программа и регистрация

                    А также на JPoint и Saint Highload
                    Читать дальше →
                  • TensorFlow на Apache Ignite

                    • Перевод
                    С чего начинается родина мы все знаем, а глубокое обучение начинается с данных. Без них невозможно обучить модель, оценить ее, да и вообще использовать. Занимаясь исследованиями, увеличивая индекс Хирша статьями о новых архитектурах нейронных сетей и экспериментируя, мы опираемся на простейшие локальные источники данных; обычно — файлы в различных форматах. Это работает, но неплохо было бы помнить про боевую систему, содержащую терабайты постоянно меняющихся данных. А это значит, что нужно упростить и ускорить передачу данных в продакшене, а также иметь возможность работы с большими данными. Вот тут и наступает время Apache Ignite.

                    Apache Ignite – это распределенная memory-centric база данных, а также платформа для кэширования и обработки операций, связанных с транзакциями, аналитикой и потоковыми нагрузками. Система способна перемалывать петабайты данных со скоростью оперативной памяти. В статье речь пойдет об интеграции между Apache Ignite и TensorFlow, которая позволяет применять Apache Ignite в качестве источника данных для обучения нейронной сети и инференса, а также в качестве хранилища обучаемых моделей и системы управления кластером при распределенном обучении.
                    Читать дальше →
                    • +13
                    • 3,8k
                    • 4
                  • Консистентность и ACID-гарантии в распределенных системах хранения данных

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

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

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

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

                      Эта статья основана на наших материалах по консистентности и ACID-гарантиям в распределенных системах.
                      Читать дальше →
                    • GridGain на Highload: где поговорить про распределенные СУБД, In-Memory и open source

                        Если 8 и 9 ноября вы будете на конференции Highload++, это отличный повод для встречи. Оба дня на стенде GridGain (А4) будут присутствовать архитекторы и разработчики, которе ответят на любые вопросы про Apache Ignite и GridgGain. Кроме разговоров и стикеров на стенде можно принять участие в небольшом исследовании. Каждый вечер в 18:15 между ответившими на вопросы будут разыграны полезные книги. А также у нас запланированы 1 доклад, 2 митапа и 1 мини-батл.



                        Присоединяйтесь!
                        Читать дальше →
                      • Выход из колеса Сансары, экстремизм и немного зелёнки — разбор задач из буклета GridGain на конференции Joker 2018

                          19 и 20 октября в Петербурге прошла конференция Joker — лучшее мероприятие для тех, кто любит то же самое, что и мы: крутые доклады, общение с продвинутыми Java-экспертами и задачки. Не будем нахваливать третий выпуск задач от GridGain (1, 2), лучше процитируем отзывы участников:

                          «Их задачи показались глупыми и не относящимися к ИТ»
                          «Отличные задачи, как всегда (хоть ни одной и не осилил)»
                          «Наркомания в задачах»
                          «Топовые задачи, как всегда»


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


                          Читать дальше →
                        • Распределённые приложения на C++ с минимумом усилий

                            Цель моего поста — рассказать о C++ API распределенной базы данных Apache Ignite, который называется Ignite C++, а также о его особенностях.


                            О самом Apache Ignite на хабре писали уже не раз, так что наверняка некоторые из вас уже примерно представляют, что это такое и зачем нужно.


                            Кратко об Apache Ignite для тех, кто пока с ним не знаком


                            Не буду вдаваться в подробности о том, как появился Apache Ignite и чем отличается от классических баз данных. Все эти вопросы уже поднимались тут, тут или тут.


                            Итак, Apache Ignite — это по сути быстрая распределённая база данных, оптимизированная для работы с оперативной памятью. Сам Ignite вырос из дата грида (In-memory Data Grid) и до недавнего времени позиционировался как очень быстрый, находящийся полностью в оперативной памяти распределённый кэш на основе распределенной хэш-таблицы. Вот почему, кроме хранения данных, в нем есть множество удобных фич для их быстрой распределенной обработки: Map-Reduce, атомарные операции с данными, полноценные ACID транзакции, SQL запросы по данным, так называемые Continues Queries, дающие возможность следить за изменением определённых данных и другие.


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

                            Читать дальше →
                            • +15
                            • 6,1k
                            • 4
                          • Два Apache Ignite митапа и In-Memory Computing вебинар в сентябре

                              Мы уже готовимся к Joker и Highload++, а вы? Тем временем в сентябре можно обсудить Apache Ignite сразу на двух встречах — в Москве и Петербурге. А еще мы продолжаем цикл вебинаров для тех, кто еще только сравнивает разные In-Memory решения, чтобы выбрать самое подходящее. Присоединяйтесь!

                              11 сентября (Москва) Apache Ignite Meetup Moscow #4


                              Читать дальше →
                            • Власть, деньги и open source. Рассказываем, как работает сообщество на примере Apache Ignite



                                На последней встрече сообщества Apache Ignite в Москве я рассказывал про:

                                • Open source-сообщество;
                                • Власть и деньги в open source;
                                • Как стать контрибьютором и коммитером, и зачем это нужно.

                                Ограниченное время доклада не позволило привести больше примеров, поэтому расширенную версию выкладываю на Хабре. Всё изложенное основано на моем личном опыте и не является официальной позицией какой-либо компании или организации.
                                Читать дальше →
                              • Релиз Apache Ignite 2.5 — Memory-Centric Distributed Database and Caching Platform

                                  В мае вышла новая версия Apache Ignite — 2.5. В неё внесено множество изменений, с полным списком которых можно ознакомиться в Release Notes. А в этой статье мы рассмотрим ключевые новшества, на которые стоит обратить внимание.

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

                                  Ignite применяют в тех случаях, когда нужна горизонтальная масштабируемость и очень высокая скорость обработки данных. Последнее достигается также за счет оптимизации платформы под хранение данных непосредственно в RAM в качестве первичного хранилища, а не кеша (In-Memory Computing). Отличительными особенностями продукта являются полноценный движок запросов ANSI SQL 1999, дисковое хранилище, расширяющее RAM, большое количество встроенных интеграционных инструментов и Zero-ETL машинное обучение.

                                  Среди компаний, которые используют Apache Ignite такие фирмы, как Veon/Beeline, Сбербанк, Huawei, Barclays, Citi, Microsoft и многие другие.

                                  Новый вариант топологии: звезда вокруг ZooKeeper


                                  Одно из главных изменений в версии 2.5 — новый вариант топологии. Ранее в Ignite была лишь топология «кольцо», которая использовалась для обмена событиями внутри кластера и обеспечивала эффективную и быструю масштабируемость, на масштабе до 300 узлов.

                                  Новая топология предназначена для инсталляций из многих сотен и тысяч узлов.
                                  Читать дальше →
                                • Как не сломать кластер Apache Ignite с самого начала

                                    Привет! Ниже — расшифровка видеозаписи выступления на митапе Apache Ignite сообщества в Петербурге 20 июня. Загрузить слайды можно по ссылке.



                                    Есть целый класс проблем, с которыми сталкиваются начинающие пользователи. Они только что скачали себе Apache Ignite, запускают первые два-три-десять раз, и приходят к нам с вопросами, которые решаются схожим образом. Поэтому предлагаю создать чек-лист, который сэкономит вам много времени и нервов, когда вы делаете свои первые приложения на Apache Ignite. Мы поговорим о подготовке к запуску; как сделать так, чтобы кластер собрался; как запустить какие-нибудь вычисления в Compute Grid; как подготовить модель данных и код, чтобы можно было записать в Ignite свои данные и потом их успешно прочитать. И главное: как ничего не сломать с самого начала.

                                    Читать дальше →
                                    • +23
                                    • 7,7k
                                    • 8
                                  • Летний митап Apache Ignite в Москве



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

                                      10 июля (вторник), Москва

                                      Читать дальше →

                                    Самое читаемое