Сегодня на Google IO (живое видео -
http://google.com/io)
анонсировали проект, над которым наша команда работала последние пару лет (смотря как считать) - Google Cloud Dataflow. Посмотрите - там очень прикольная демка. (перед этим, кстати - анонс cloud debugger и tracing для AppEngine - тоже офигенно крутые вещи).
Это сервис, который за вас оптимизирует и гоняет ваши распределённые вычисления - и batch, и потоковые. Например, такие (фрагменты кода из демки):
Pipeline pipeline = Pipeline.create();
PCollection tweets = pipeline.begin()
.apply(new InputFromPubSub())
.apply(new TweetTransformer());
tweets.apply(new CalculateSentiment());
tweets.apply(new CorrelateKeywords());
pipeline.run();
public class CalculateSentiment {
...
return tweets.apply(new ExtractSentiment())
.apply(Bucket.By(SlidingWindows.of(3, MINUTES)))
.apply(Mean.perKey())
.apply(new OutputAverageToBigQuery());
}
(за объяснением и пр. - смотрите анонс и демку; там минут 15-20, насколько я помню)
В общем, это гибрид
FlumeJava и
Millwheel, доступный in the cloud. Вы пишете программу на Java, которая конструирует и просит запустить pipeline, который, например, читает что-нибудь из Cloud PubSub, всячески мурыжит, а результат складывает в BigQuery - мы его оптимизируем (некоторые из оптимизаций описаны в статье про FlumeJava), запускаем на GCE, выделяем ресурсы, распределяем, балансируем, мониторим, восстанавливаем от крахов и пр.
MapReduce - тривиальный частный случай того, что можно делать с помощью Dataflow, выглядящий примерно как .apply(new MyMapper()).groupByKey().apply(new MyReducer()).
В ближайшие 9 вечера по московскому времени (10 утра по тихоокеанскому) на
http://google.com/io можно будет наблюдать ещё одну демку этого продукта - сессия называется "The Dawn of Fast Data".
Моя роль в этом проекте - я один из разработчиков фреймворка, на котором держится этот продукт и другие связанные с ним внутренние инструменты обработки данных Гугла. "Клаудных" частей я не касался, но наблюдал за их разработкой, и они очень круты - удобство мониторинга, например, это чуть ли не главная selling point. Ещё одна главная selling point - auto-everything; нулевая необходимость в настройке (выборе количества машин, шардинге, упаси боже каких-нибудь размеров буферов, и пр.)
Пока что проект в режиме private beta. Через какое-то время будет limited preview, через какое - не могу сказать.