Micro-services have been getting a lot of attention in the past year, but is it really a viable solution or just a passing fad? In this presentation we'll look deep into Bintray.com 's service architecture and talk about how and why we found ourselves naturally migrating from a central web application to a flock of micro-services.
— Краткий экскурс в предыдущие доклады;
- Описание нашей системы сбора статистики с контейнеров и рассказ почему мы решили отказаться от cadvisord;
- Автоматическая система сборки контейнеров и интеграция с teamcity;
— Наброс о системе генерации и хранения конфигураций.
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...Badoo Development
Рассказываем о том, как мы жили без Docker'а и зачем его решили использовать. А также описываем процесс внедрения в CI и, в частности, в тесты, плюс с какими проблемами столкнулись и как их побороли.
— Краткий экскурс в предыдущие доклады;
- Описание нашей системы сбора статистики с контейнеров и рассказ почему мы решили отказаться от cadvisord;
- Автоматическая система сборки контейнеров и интеграция с teamcity;
— Наброс о системе генерации и хранения конфигураций.
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...Badoo Development
Рассказываем о том, как мы жили без Docker'а и зачем его решили использовать. А также описываем процесс внедрения в CI и, в частности, в тесты, плюс с какими проблемами столкнулись и как их побороли.
How to build solid CI-CD pipeline / Илья Беда (beda.software)Ontico
РИТ++ 2017, Root Conf
Зал Конгресс-холл, 6 июня, 15:00
Тезисы:
http://rootconf.ru/2017/abstracts/2551.html
На основе своего опыта работы в консалтинге я расскажу, как избавить разработчиков от рутинных задач и как сэкономить на ресурсах команды с помощью правильно настроенного CI-CD pipeline.
Единствено верный способ упаковки приложений - это Docker-контейнеры, благодаря этому способу вы сможете унифицировать процесс деплоя. Нужно деплоить приложения с помощью Ansible-плейбука, запакованного в Docker-контейнер, это снижает требования к окружению CI-ранера. Вам нужен только Docker.
...
- Краткая вводная про Docker (namespaces, cgroups и как Docker все это использует)
- Как заходить в Docker из вашего софта?
- Примеры: pam_docker и php_fpm_docker
— Как сделать сеть между Docker контейнерами и дать доступ к ней во вне без спецрешений;
— Какие есть решения в Docker для сетевого взаимодействия;
— сравнение weave, docker netwirking, macvlan.
Алексей Фомкин, Практическое применение Web WorkersAleksey Fomkin
WebWorkers имеют глобальное покрытие в 92% по данным http://caniuse.com. Тем не менее, не всякое современное веб-приложение использует их.
В своем докладе я постараюсь передать двухлетний опыт использования WebWorkers в нашей команде для написания веб-приложений с функциональностью, которая требует выполнения тяжелых вычислений, таких как преобразование бинарых файлов из одного формата в другой и шифрование.
Расскажу про эксперименты по переносу в воркер расчета diff'ов в React-подобной системе рендеринга и покажу наивную реализацию модели акторов на основе воркеров.
Также постараюсь подготовить слушателей к новым проблемам, которые могут возникнуть при использовании веб-воркеров.
* Почему Angular 2 такой быстрый и как его ускорить еще сильнее?
* Как работает Change Detection механизм и как им управлять?
* Зачем нам Zone.js и Функциональное Реактивное Программирование?
* Как работать с Redux и Mobx в Angular 2 и что можно от этого выиграть?
Об этом и ряде других вещей вы узнаете из этого доклада.
SOA: послать запрос на сервер? Что может быть проще?! / Иван Круглов (Booking...Ontico
РИТ++ 2017, HighLoad Junior
Зал Конгресс-холл, 5 июня, 10:00
Тезисы:
http://junior.highload.ru/2017/abstracts/2577.html
Микросервисы - это круто, модно и интересно. Переход на их использование принесет команде заметные преимущества. Но сервис-ориентированная архитектура (SOA) не лишена недостатков. Один их них - это то, что, заменяя простой вызов функции на RPC, мы в неявном виде вводим в уравнение, отвечающее за стабильность системы, целую плеяду новых неизвестных. Например, простейший HTTP-запрос за время своей жизни проходит через множество всевозможных буферов, очередей и алгоритмов на своем пути от клиента к серверу и обратно. Совокупное поведение этих составляющих трудно предсказать, понять и правильно интерпретировать. И особенно трудно это сделать в нестандартных ситуациях.
В своем докладе я хочу поделиться опытом решения проблем, с которыми я столкнулся за время работы в Booking.com. Я расскажу, как небольшой тюнинг сервера и клиента существенно влиял на конечную стабильность системы.
Реклама со скоростью света. Презентация Сергея Жемжицкого на High Load++ 2014CleverDATA
1 ноября 2014 г. CTO CleverDATA Сергей Жемжицкий в рамках конференции High Load 2014 представил аудитории презентацию по построении DMP платформы с возможностью обработки 100% входящих запросов на базе продукта Aerospike
Service mesh - это выделенный слой в инфраструктуре компании, который призван упростить взаимодействие между сервисами, а также сделать его надежным и безопасным. В юрисдикцию service mesh, по разным мнениям, входят: маршрутизация запросов, service discovery, балансировка, обработка ошибок, мониторинг, трейсинг, авторизация и аутентификация и др. вещи. Реализация тоже варьируется от размазывания функционала по всему стеку до концентрации большей части его в одной точке.
В своем докладе я бы хотел затронуть тему построения service mesh на примере Booking.com в контексте перехода от монолитной к сервис-ориентированной архитектуре. Мы погрузимся в детали некоторых компонентов и рассмотрим примеры решений удачных и не очень. Также затронем начальный опыт внедрения и эксплуатации L7 proxy envoy и linkerd.
SOA: послать запрос на сервер? Что может быть проще?!Ivan Kruglov
Микросервисы - это круто, модно и интересно. Переход на их использование принесет команде заметные преимущества. Но сервис-ориентированная архитектура (SOA) не лишена недостатков. Один их них - это то, что, заменяя простой вызов функции на RPC, мы в неявном виде вводим в уравнение, отвечающее за стабильность системы, целую плеяду новых неизвестных. Например, простейший HTTP-запрос за время своей жизни проходит через множество всевозможных буферов, очередей и алгоритмов на своем пути от клиента к серверу и обратно. Совокупное поведение этих составляющих трудно предсказать, понять и правильно интерпретировать. И особенно трудно это сделать в нестандартных ситуациях.
В своем докладе я хочу поделиться опытом решения проблем, с которыми я столкнулся за время работы в Booking.com. Я расскажу, как небольшой тюнинг сервера и клиента существенно влиял на конечную стабильность системы.
Михаил Рахманов рассказывает о паттерне Promise и его использовании в iOS разработке.
Краткие тезисы:
- Что такое promises?
- Использование promises в iOS разработке (существующие библиотеки и подходы)
- Реализация promises библиотекой PromiseKit (основные методы, цепочки promises, обработка ошибок)
- Какие задачи можно решить с помощью promises, а какие - нельзя
- Использование promises на примере приложения: драм-машины с возможностью сохранять аудио-дорожки
- Подведение итогов: преимущества и недостатки.
RDSDataSource - внутренние пятничные митапы iOS-команды RAMBLER&Co.
JavaScript является одни из самых популярных языков программирования. На сегодняшний день его можно использовать не только в браузере, но и на сервере, в системах управления баз данных, программировать микроконтроллеры, писать десктопные и мобильные приложения. В данном докладе я расскажу о современном JavaScript и его областях применения (Mongo, CouchDB, Node, Meteor, tessel, PhoneGap, ReactNative и так далее), а также загляну немного в будущее и покажу вам куда он движется (ES2015, ES2016 ... ESxxxx, WebAssembly). И много-много всего интересного с демками)
How to build solid CI-CD pipeline / Илья Беда (beda.software)Ontico
РИТ++ 2017, Root Conf
Зал Конгресс-холл, 6 июня, 15:00
Тезисы:
http://rootconf.ru/2017/abstracts/2551.html
На основе своего опыта работы в консалтинге я расскажу, как избавить разработчиков от рутинных задач и как сэкономить на ресурсах команды с помощью правильно настроенного CI-CD pipeline.
Единствено верный способ упаковки приложений - это Docker-контейнеры, благодаря этому способу вы сможете унифицировать процесс деплоя. Нужно деплоить приложения с помощью Ansible-плейбука, запакованного в Docker-контейнер, это снижает требования к окружению CI-ранера. Вам нужен только Docker.
...
- Краткая вводная про Docker (namespaces, cgroups и как Docker все это использует)
- Как заходить в Docker из вашего софта?
- Примеры: pam_docker и php_fpm_docker
— Как сделать сеть между Docker контейнерами и дать доступ к ней во вне без спецрешений;
— Какие есть решения в Docker для сетевого взаимодействия;
— сравнение weave, docker netwirking, macvlan.
Алексей Фомкин, Практическое применение Web WorkersAleksey Fomkin
WebWorkers имеют глобальное покрытие в 92% по данным http://caniuse.com. Тем не менее, не всякое современное веб-приложение использует их.
В своем докладе я постараюсь передать двухлетний опыт использования WebWorkers в нашей команде для написания веб-приложений с функциональностью, которая требует выполнения тяжелых вычислений, таких как преобразование бинарых файлов из одного формата в другой и шифрование.
Расскажу про эксперименты по переносу в воркер расчета diff'ов в React-подобной системе рендеринга и покажу наивную реализацию модели акторов на основе воркеров.
Также постараюсь подготовить слушателей к новым проблемам, которые могут возникнуть при использовании веб-воркеров.
* Почему Angular 2 такой быстрый и как его ускорить еще сильнее?
* Как работает Change Detection механизм и как им управлять?
* Зачем нам Zone.js и Функциональное Реактивное Программирование?
* Как работать с Redux и Mobx в Angular 2 и что можно от этого выиграть?
Об этом и ряде других вещей вы узнаете из этого доклада.
SOA: послать запрос на сервер? Что может быть проще?! / Иван Круглов (Booking...Ontico
РИТ++ 2017, HighLoad Junior
Зал Конгресс-холл, 5 июня, 10:00
Тезисы:
http://junior.highload.ru/2017/abstracts/2577.html
Микросервисы - это круто, модно и интересно. Переход на их использование принесет команде заметные преимущества. Но сервис-ориентированная архитектура (SOA) не лишена недостатков. Один их них - это то, что, заменяя простой вызов функции на RPC, мы в неявном виде вводим в уравнение, отвечающее за стабильность системы, целую плеяду новых неизвестных. Например, простейший HTTP-запрос за время своей жизни проходит через множество всевозможных буферов, очередей и алгоритмов на своем пути от клиента к серверу и обратно. Совокупное поведение этих составляющих трудно предсказать, понять и правильно интерпретировать. И особенно трудно это сделать в нестандартных ситуациях.
В своем докладе я хочу поделиться опытом решения проблем, с которыми я столкнулся за время работы в Booking.com. Я расскажу, как небольшой тюнинг сервера и клиента существенно влиял на конечную стабильность системы.
Реклама со скоростью света. Презентация Сергея Жемжицкого на High Load++ 2014CleverDATA
1 ноября 2014 г. CTO CleverDATA Сергей Жемжицкий в рамках конференции High Load 2014 представил аудитории презентацию по построении DMP платформы с возможностью обработки 100% входящих запросов на базе продукта Aerospike
Service mesh - это выделенный слой в инфраструктуре компании, который призван упростить взаимодействие между сервисами, а также сделать его надежным и безопасным. В юрисдикцию service mesh, по разным мнениям, входят: маршрутизация запросов, service discovery, балансировка, обработка ошибок, мониторинг, трейсинг, авторизация и аутентификация и др. вещи. Реализация тоже варьируется от размазывания функционала по всему стеку до концентрации большей части его в одной точке.
В своем докладе я бы хотел затронуть тему построения service mesh на примере Booking.com в контексте перехода от монолитной к сервис-ориентированной архитектуре. Мы погрузимся в детали некоторых компонентов и рассмотрим примеры решений удачных и не очень. Также затронем начальный опыт внедрения и эксплуатации L7 proxy envoy и linkerd.
SOA: послать запрос на сервер? Что может быть проще?!Ivan Kruglov
Микросервисы - это круто, модно и интересно. Переход на их использование принесет команде заметные преимущества. Но сервис-ориентированная архитектура (SOA) не лишена недостатков. Один их них - это то, что, заменяя простой вызов функции на RPC, мы в неявном виде вводим в уравнение, отвечающее за стабильность системы, целую плеяду новых неизвестных. Например, простейший HTTP-запрос за время своей жизни проходит через множество всевозможных буферов, очередей и алгоритмов на своем пути от клиента к серверу и обратно. Совокупное поведение этих составляющих трудно предсказать, понять и правильно интерпретировать. И особенно трудно это сделать в нестандартных ситуациях.
В своем докладе я хочу поделиться опытом решения проблем, с которыми я столкнулся за время работы в Booking.com. Я расскажу, как небольшой тюнинг сервера и клиента существенно влиял на конечную стабильность системы.
Михаил Рахманов рассказывает о паттерне Promise и его использовании в iOS разработке.
Краткие тезисы:
- Что такое promises?
- Использование promises в iOS разработке (существующие библиотеки и подходы)
- Реализация promises библиотекой PromiseKit (основные методы, цепочки promises, обработка ошибок)
- Какие задачи можно решить с помощью promises, а какие - нельзя
- Использование promises на примере приложения: драм-машины с возможностью сохранять аудио-дорожки
- Подведение итогов: преимущества и недостатки.
RDSDataSource - внутренние пятничные митапы iOS-команды RAMBLER&Co.
JavaScript является одни из самых популярных языков программирования. На сегодняшний день его можно использовать не только в браузере, но и на сервере, в системах управления баз данных, программировать микроконтроллеры, писать десктопные и мобильные приложения. В данном докладе я расскажу о современном JavaScript и его областях применения (Mongo, CouchDB, Node, Meteor, tessel, PhoneGap, ReactNative и так далее), а также загляну немного в будущее и покажу вам куда он движется (ES2015, ES2016 ... ESxxxx, WebAssembly). И много-много всего интересного с демками)
Контент-маркетинг: как сделать так, чтобы клиенты сами осаждали ваших менедже...Комплето
Контент-маркетинг, inbound-marketing - что это и зачем?
Какие задачи решаются с помощю данного подхода?
Какие инструменты интернет-маркетинга пригодятся?
Как разработать стратегию контент-маркетинга и начать внедрять её в компании?
-------------------------------------------------------------------------------
Официальный канал маркетинговой группы “Комплето”.
Сайт: http://completo.ru
Блог: http://blog.completo.ru
Facebook: https://www.facebook.com/completo.ru
Вконтакте: https://vk.com/completoru
YouTube: http://www.youtube.com/user/Completoru
“Комплето” занимается интернет-маркетингом с 1999 года. В копилке компании более 350 успешных проектов, в т.ч. для b2b компаний. Среди клиентов "Комплето" успешные, активно развивающиеся компании, такие как: Favorit Motors, Боско, Мать и дитя, Hartmann, Genius, Tefal, Karcher, Braun, Планета Фитнес, Альта Профиль, Персона LAB, Unipharm и др.
------------------------------------------------------------------------------
Мы можем помочь вашему бизнесу!
Хотите получить предложение от нас? Закажите звонок:
http://completo.ru/?forma
-------------------------------------------------------------------------------
«Комплето» – это отлаженная взаимосвязанная система из классического маркетинга, бизнес-консалтинга, интернет-маркетинга, комплексной веб- и бизнес- аналитики, IP-телефонии, CRM/ERP-автоматизации.
Мы – единственные в России смогли объединить все составляющие интернет-маркетинга в унифицированную систему.
Почему нам стоит доверять?
Мы - члены Гильдии Маркетологов
Мы преподаем интернет-маркетинг уже более 5 лет
Хотите научиться строить прибыльный интернет-маркетинг?
Присоединяйтесь к нам!
OneDrive For Business - What's new for IT Administrators and End-usersLearning SharePoint
For DIRECT DOWNLOADS (pptx and pdf) - http://goo.gl/LhnVoy
In this slide deck we discuss OneDrive for business tasks for Office 365 Admins such as Pr-provisioning OneDrive sites, IT admin set storage quota for onedrive sites, Control External Sharing using PowerShell, SYNC client commands for blocking end-user PCs not connected to safe domains, blocking file extensions and more..
For end-users, Sharing and Co-authoring scenarios, how SYNC file operation behaves between OneDrive for Business VS SYNCed folder, Audit reports to determine Sharing - Internal or External and SharePoint and OneDrive IPhone Apps!
Presented by www.LearningSharePoint.com
The long awaited SharePoint 2016 is finally coming! As Microsoft is expected to release in the Spring of 2016, Benjamin Niaulin, Office Servers & Services MVP at Sharegate, gives us the grand tour of the new SharePoint features!
Руслан Гроховецкий "Как Python стал делать погоду в Яндексе"Yandex
2 июля 2011, Я.Субботник в Екатеринбурге
Руслан Гроховецкий "Как Python стал делать погоду в Яндексе"
О докладе:
Про Python и Django: зачем нужна красота и простота перфекционистам с дедлайнами, на примере Яндекс.Погоды.
Когда число сервисов, которые делаются в Яндексе, стало возрастать, дедлайны — поджимать, а от процесса разработки требовалось стать более гибким, возникла потребность в свежих решениях. В докладе на примере Яндекс.Погоды рассказывается, как в Яндексе делают сервисы с помощью языка Python и веб-фреймворка Django.
Grails – новый фреймворк для веб-разработки, базирующийся на языке Groovy для JVM и объединяющий самое лучшее и свежее как из Ruby on Rails, так и из Java-технологий.
Успех Grails связан прежде всего с быстротой обучения и разработки, упором на использование DSL (domain-specific languages), серьезной поддержкой со стороны Java-сообщества.
FrontTalks: Алексей Андросов (Яндекс), «Ошибки, которые мы любим»Yandex
Мониторинг – важная часть работы хорошего сервиса. Мало просто протестировать релиз, надо также убедиться, что код работает у пользователей и работает правильно. В докладе я расскажу про логирование js-ошибок при разных способах загрузки js, подводных камнях, способах их обойти, а также почему это надо делать.
Graal, Truffle, SubstrateVM and other perks: what are those and why do you ne...Oleg Chirukhin
GraalVM is a universal virtual machine for running applications written in JVM-based languages (Java, Scala, Clojure, Kotlin), JavaScript, Python, Ruby, R, and LLVM-based languages such as C and C++.
Quite often research projects look like something out of the world, something you won’t probably use in real life. Graal changes the picture: it took the stage out of the blue, and not as a newbie, but as a mature competitor. In this talk, we’ll look at what Graal consists of and what practical use you can get from it right now.
We’ll talk about GraalVM components:
Graal Compiler – an optimizing compiler that supports both dynamic and static compilation and can integrate with the Java HotSpot VM or run standalone. We’ll see how to run existing applications, and what benefit (in numbers) it can bring.
Substrate VM — a framework for ahead-of-time (AOT) compilation into executable images or shared objects. It sounds like a most radical and cheating optimization because it works the way no one else can (under closed-world assumption).
Truffle – language implementation framework for creating languages and instrumentations for GraalVM. Language design is a very complex field, so here we’ll focus on existing languages from GraalVM distribution.
Из презентации вы узнаете:
— как мы пришли к Go, оставив идею использования Node.js, Scala или Rust;
— про первый сервис, который мы написали на Go и запустили в продакшен;
— про ошибки, с которыми сталкивались под нагрузкой;
— про оптимизации, которые мы сделали и еще планируем сделать;
— про тестирование и предотвращение тестирования на продакшене (в частности, websocket'ов).
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"Fwdays
Every company comes to a point where it’s infrastructure no longer fits team and business needs, and kludges are not working anymore. That’s the time to re-think and redesign the whole infrastructure. This is exactly where our company was half a year ago. I will talk about our experience dealing with this challenge while balancing between existing technology, costs, today’s reality and future needs.
With application and team growth such questions as keeping documentation up to date, sharing of the knowledge, communication between stakeholder and development team became more and more actual. BDD as methodology is aimed to minimize negative impact of those issues. Spock and Geb frameworks will help us to illustrate BDD implementation on specific example.
Случалось ли, что вы видели (чужой) код и хотели все переписать? Бывало такое, что вы не могли понять, почему кем-то было принято конкретное решение, не другое? Хотели ли вы воскликнуть:«А я бы сделал еще круче!»?
Если вы задумывались об этом, вам будет интересно послушать историю о том, как эти вопросы возникали у Александра и Кирилла и как они решались в условиях большой компании.
Разработчики расскажут, как в самом начале пути вытаскивали шашки и шли в атаку на проблемную архитектуру. Но все оказалось не так просто, и по мере погружения в проект парни стали понимать, что архитектура большой системы — компромисс между различными подходами и решениями, инновациями и легаси (наследованным кодом), централизацией и децентрализацией компонентов. Докладчики наработали очень много опыта в решении архитектурных задач и поделятся опытом и выработанными принципами, которых придерживаются в настоящее время.
Во время доклада будут обсуждаться непростые вопросы, возникающие при принятии решений о том, как будет жить и эволюционировать система.
Вместе со слушателями Александр и Кирилл проделают упражнение по созданию «таблицы технологий» и её эволюции. Также они покажут, насколько важно инженерное решение на любой из стадий развития системы.
— Реальная история из жизни о том, как мы внедряли Docker;
— Хочешь чтобы все коллеги узнавали тебя? Займись внедрением Docker в своей компании!;
— Собрать все шишки? Легко… или «Даунтайм, как неотъемлемая часть внедрения»;
— Будь сильным и смелым, если уверен в перспективах и необходимости своего внедрения;
— «Делать новое не ломая старого» – основная цель любого внедрения;
— Чекпоинт, как инструмент промежуточной оценки результатов;
— Как растут наши аппетиты или о новых инфраструктурных идеях;
— Мы сделали это, значит это вполне осуществимо;
— Самое сложное позади или какие приятные результаты вас ожидают, если все пошло правильно.
Reinventing the wheel - why do it and how to feel good about it - Julik Tarkh...Ruby Meditation
Talk of Julik Tarkhanov, senior backend engineer, WeTransfer, Amsterdam, at Ruby Meditation #28 Kyiv 26.10.2019
Next conference - http://www.rubymeditation.com/
It is often a choice, sometimes a whim, and sometimes an act of desperation. We idolise reuse while sometimes the road not taken is just as exciting. Let's chat about where it is appropriate to "do the thing again", take the scenic route and enjoy the view.
Announcements and conference materials https://www.fb.me/RubyMeditation
News https://twitter.com/RubyMeditation
Photos https://www.instagram.com/RubyMeditation
The stream of Ruby conferences (not just ours) https://t.me/RubyMeditation
* The channel of the organizers of the meetup https://t.me/incredevly
Similar to The Great Migration by Baruch Sadogursky (20)
Science, Technology, Engineering and Mathematics, STEM, are vital to the future of our children. The parents and students in our educational systems need to understand and embrace the technology that affects them every day of their lives. Devoxx4Kids is on a global mission to complement the classical schooling system by offering workshops to kids in a fun way. and teaching them computing concepts using Scratch, Greenfoot, Minecraft, Raspberry Pi, Arduino, NAO, Tynker. We will share a path that can be followed by adults to keep kids in their vicinity engaged and build, instead of just play, games. You will learn best practices to organize similar workshops in your local setting and hear tips on opening a local chapter. This talk will be appreciated by anybody who has kids, nephews, nieces, and in general kids around them.
Writing concurrent code that is also correct is unbelievably hard. Naturally, humanity has developed a number of approaches to handle concurrency in the code, starting from basic threads that follow the hardware way to do concurrency to higher level primitives like fibers and work-stealing solutions. But which approach is the best for you? In this session, we'll take a look at a simple concurrent problem and solve it using different ways to manage concurrency: threads, executors, actors, fibers, monadic code with completable futures. All these approaches are different from the simplicity, readability, configuration and management point of view. Some scenarios are better modelled with threads, while sometimes you're better off with actors. We'll discuss the benefits of each approach and figure out when it's worth pursuing in your project.
До выхода Feature Complete версии OpenJDK 9 EA остался месяц. Самое время посмотреть, что ждет нас в следующей версии Java. Для начала рассмотрим процесс того, как идеи становятся JEP-ами, а потом становятся частью стандарта языка Java. Потом посмотрим на список из четрех десятков фич, разберем наименее тривилаьные из них на примерах: jshell, jmh, unified jvm logging и, конечно же, модулярность.
Continuously building, releasing and deploying software: The Revenge of the M...JavaDayUA
We used to release one product, once a year, built by one team. Today we have teams of hundreds of developers creating a multitude of software packages that are released multiple times a day.How did that happen?! In this talk, we’ll give you the answer: As the good old advice of Computer Science goes, “If it hurts, do it more often!”. Suddenly, we realized that what we do during the “Release Month Code Freeze” is actually a lot of repeatable, automatable steps. So, we called in the machines.Now we have Continuous Integration servers controlling an exponential amount of robot developers (agents) that are building and testing our code, all day long. Continuous Deployment tools, dictating their order to robot sysadmin, deploying our software on a rapidly increasing amount of varied platforms, as frequent as we please.The Machines got their revenge, and “we, for ones, welcome our new robotic overlords”!
The Epic Groovy Puzzlers S02: The Revenge of the ParenthesesJavaDayUA
More strange, more bizarre, more fun! The Groovy Puzzlers hits with its second season in which we implemented the lesson learned from the first one – do more of the same (always as a duet)! Expect even more “NO WAY!”, “WHOA!”, “WTF!”, O_o and prizes flying around, and expect to learn more about Groovy’s darkest secrets! As usual, the traps we fell into here in JFrog and contributions from top-notch Groovy authors and users!
This keynote will be a historical trip down memory lane - going through 20 years of Java and JVM implementations. This will be partly from Marcus’s own perspective as one of the architects behind JRockit, with plenty of stories from the trenches, like the benchmarking competitions between BEA/Oracle, Sun and IBM. We will see how Java and the JVM turned into the robust high performance server side platform that it is today, partly through personal observations and partly through a more objective “what a long strange trip this has been”. He will take you back to 1995 in a time machine and slowly bring you to 2014, going over the major Java releases and the runtime innovations made in the JVM side to get us here. Finally, we will do a short trip into the future, even though the future is always fuzzy, to explore what might be coming next. With Java 8, the biggest release in Java history, Java is more vibrant and alive than ever before. This is an evolution that won’t be stopped.
As developers we always look for ways to do things faster, better, and automate as much as possible. We write code in top-notch IDEs that have static code analysis, automatic refactoring and so on, we run unit tests, we use CI servers, and issue trackers, we adopt agile practices to get feedback and deliver as fast as possible. As far as code review practice goes, there’s still a lot to be improved, and in this talk I’m going to tell you how you can perform efficient, transparent and useful code reviews.
Unlocking the Magic of Monads with Java 8JavaDayUA
This code-heavy session demystifies what monads are and outlines reasons why you would even want to introduce them into your code. We’ll take a look at the traditional definition for monads and offer a corresponding type definition in Java. We’ve selected a sample Java 8 implementation of a ‘Promise’ monad, which represents the result of async computation to help us answer practical questions about monads. Also, we'll go over the Laws of Monads and show that you can have a proper monad in Java, if you are brave enough to allow the underlying platform change the rules a bit. PS. You won’t be penalised or ridiculed during this session for your (lack of) Haskell knowledge!
Virtual Private Cloud with container technologies for DevOpsJavaDayUA
DevOps with Containers in Virtual Private Cloud and Hybrid Cloud. A new opportunity for hosting providers to attract Enterprise customers. Containers have changed the mind of IT in DevOps. They enable developers to work with dev, test, stage and production environments identically. Containers provide the right abstraction for Microservices and many cloud platforms have integrated them into deployment pipelines. DevOps and Containers together help companies to achieve their business goals faster and more effectively. At this session we will review the current landscape of DevOps with Containers and the benefits for hosting providers. In addition, we will discuss known issues and solutions for enterprise applications in Containers.
JShell: An Interactive Shell for the Java PlatformJavaDayUA
Read-Execute-Print-Loops (REPLs) have emerged as powerful tools for learning and prototyping. JShell brings this power to Java. Targeted for JDK 9, and tightly integrated with the Java compiler and virtual machine, JShell enhances the programming experience for the Java language. Learn how to use JShell to explore new APIs, prototype code, or learn the Java language. Interactively explore new features of JDK 9. See the features that speed up coding.
Interactive Java Support to your tool -- The JShell API and ArchitectureJavaDayUA
Explore the JShell API. Learn how it can be used to add interactive Java expression/declaration execution to new or existing tools. See how the completion functionality can enhance code editors or analyzers. Get a behind the scenes look at the JShell architecture and its deep integration with the Java platform.
MapDB - taking Java collections to the next levelJavaDayUA
Java collections have several limitations. But imagine library without limits, which could even replace your database. This session talks about drop-in replacement with many new possibilities. MapDB provides Java collections backed by in-memory or on-disk store. It adds extra features to traditional collections (entry expiration, binding, secondary collections…). It is also proper database engine and has transactions, snapshots, incremental backups… And finally it is not affected by GC, so it can take a billion entries without a hiccup.
Java heap memory model has wasteful memory usage. References, object headers, internal collection structure, extra fields such as String.hashCode… This talk shows practical ways to reduce memory usage and fit more data into memory: primitive types, specialized java collections, bit packing, reducing number of pointers, replacing String with char[], semi-serialized objects… As bonus we get lower GC overhead by reducing number of references.
The JRockit JVM was originally developed by Appeal Virtual Machines as a from scratch server-side JVM in order to compete with HotSpot from Sun Microsystems. Appeal Virtual Machines was acquired by BEA Systems in 2002, which in turn became part of Oracle in 2010. JRockit is battle proven in the commercial space as a high performance server JVM and has unique monitoring and manageability capabilities for doing zero overhead instrumentation of production systems. This talk covers the design rationales that the JRockit architects did in code generation, memory management, synchronization and serviceability. The JRockit and HotSpot JVMs are currently in the process of being merged into one code base, most of which will be part of the OpenJDK.
Next-gen DevOps engineering with Docker and Kubernetes by Antons KrangaJavaDayUA
Docker is in font of container madness that forces us to rethink our entire architecture and development practices. This session will be focusing around building Java runtimes on Docker containers and running it with Kubernetes. We will focus on different deployment aspects specific to the Docker and Kubernetes and utilise DevOps engineering managed by Jenkins.
Some previous knowledge of docker is not required however advised
Apache Cassandra. Inception - all you need to know by Mikhail DubkovJavaDayUA
Cassandra is a powerful NoSql database based on solid fundamentals of distributed computing and fail-safe design, and it is well-tested by companies such as Facebook, Twitter, and Netflix. Unlike conventional databases and some of the modern databases that use the master-slave pattern, Cassandra uses the all-nodes-the-same pattern; this makes the system free from a single point of failure.
Solution Architecture tips & tricks by Roman ShramkovJavaDayUA
In this presentation we will cover:
* What is Solution Architecture and how it differs from other architectures
* What is good and what is bad for SA, tips & tricks from our experience
Testing in Legacy: from Rags to Riches by Taras SlipetsJavaDayUA
In this presentation I'd like to share practical experience and techniques that were used for modernization and maintaining 10+ years old legacy system: pitfalls that we've faced during that process and conclusions that we'd made when we've successfully finished updating mission.
Reactive programming and Hystrix fault tolerance by Max MyslyvtsevJavaDayUA
Reactive programming is a new paradigm that provides asynchronous event-based flow control. Java implementation is called rxJava and is being developed by Netfix. They have also released Hystrix — a non-functional layer that provides fault tolerance and latency features which also exposes reactive API.
Spark-driven audience counting by Boris TrofimovJavaDayUA
The story about Ad world and real-time segments counting. Size of data does not allow doing straightforward calculations so we will dive into the solution step-by step involving some "secret" algorithms from Google.
37. Вы не знаете, что такое ад, если не
видели XML в RPM
primary.xml General archive info
filelists.xml Lists files in RPM
other.xml Misc attributes
repomd.xml Inventory of above
44. Сам по себе мини-
монолит
Per minute
DL Server
DL Server
DL Server
Redis
Per day
Per country
Geo
IP
Mongo
(UI)
Downloadable
Log filesТут не
Тут ищем
45. 100500 скачиваний. Реально много.
Kekekekekekekeke
keke
Not the
actual
datacenter
http://www.mengsbizarreadventure.com/2010/starcraft-2-betaaka-zerg-rush-kekekeke-hd/
Architecture
quick overview to fill in
Then get to business
Social software distribution platform
The download server is the most important
dl.bintray.com
Jcenter.bintray.com
Jcenter on Grails or Gradle
Runs once a day
Iterates over all major content
Runs once a day
Iterates over all major content
Don't we all love XML.
Makes incremental changes a PITA
Still small
Not much content
Pragmatic
Runs once a day
Iterates over all major content.
Query GORM and write the output
Incremental update is a PITA
Not quick enough,
I love GORM, but gorm is chubby
Too much too soon.
The are solutions:
Could provide more memory, stupid, heroin addiction
Fire up an interaction instance closed off to the world and run it there
We cannot allow it to disturb either the webapp or the download server
As quick as possible, but throttle should it disturb any service
Can be interrupted so that It doesn't do a kamikaze
Reads and writes are concurrent
Can be stopped in the middle
Speed throttled
The syntax is closer to the source JSON
Explain typed and indexed repositories in bintray
Majority of tools host an index consumed by the client.
Repositories must update these indexes with every update to the repo
Maven also reflects on gradle – it's the same indexing
Create a filesystem folder with all files, run the tool.
Run every time you change the index.
Requires native tools
OS dependent
OS agnostic
Embeddable
usable by any JVM language
Maven is outstanding - Many package systems embed descriptors in the package – EXPLAIN THIS
Have to fetch the descriptors
Quad core machine
Multiple workers
Multiply by amount of customers
Concurrent calculations
How can you tell when a multi-module deployment “completes”? - EXPLAIN THIS
How can you synchronize multiple embedded repomd processes?
Now we are stuck with …
Resque started in github
Needed monitorable – throw away tasks
Important but not lifesaving critical
Queue based workers
Jesque – java based
Gpars
Handle clustering better
Nice DSL
Truely sorry you had to witness
I promise you we don't lie
Don't ask me which country it is; I made it up and I was drunk
Not part of the webapp but a monolith
Stats data is fat and we can't afford to retain it.
Rather suffer the overhead async
Incremental update is a PITA
Proximity to datacenters
We cannot allow it to disturb either the webapp or the download server
As quick as possible, but throttle should it disturb any service
Can be interrupted so that It doesn't do a kamikaze
What do I mean?
Sounds like a motto; sounds like steve balmer; I assure you these aren't just buzzwords
Gather – download servers are spewing out info BAM!
Format – Regain data lost when reported
Scatter – Make sure that the services facing the user get the information they need. Quick!
Link the different stages with dispatchers. They assure that no data is lost between phases
Especially if the infra, domain , team or concept is new,
It'll let you get the hang of things before you've fully committed and gone ahead