Heyworks: Cравнительный анализ решений для клиент-серверного взаимодействия и...DevGAMM Conference
Доклад будет построен по принципу: за 20 минут дать наглядный анализ основных решений, который будет полезен небольшим студиям (до 5и человек), и позволит не тратить время на проведение подобного анализа самостоятельно.
Из зала вы выйдите с четким пониманием: "Ок, вот у меня такая игра, соотв. мне скорее всего подойдет такое решение. Вперед и с песней!"
Разработка кроссплатформенного фреймворка на С++ для мобильных платформ / Вла...Ontico
В процессе разработки нашего Enterprise-ready продукта HyperHive — http://eigenmethod.com/products/hh/ (бренд EigenMethod создан для продвижения продукта на Запад, не удивляйтесь другому домену) мы столкнулись с необходимостью реализации ряда задач на нескольких платформах: iOS, Android, Cordova (Android и iOS), а в перспективе и под Windows для мобильных устройств.
Был вариант реализации под каждую платформу на родных языках, но мы выбрали путь создания кроссплатформенного фреймворка на C++ с последующим его портированием под все целевые платформы.
Функционал фреймворка:
1. Параллельные потоки загрузки данных с сервера и записи в базу (sqlite) и передачи на сервер в рабочих потоках (без блокирования UI).
2. Поддержка Дельта-обновлений при передаче данных (пересылается только разность между двумя версиями данных).
3. Шифрование трафика и базы данных алгоритмами ГОСТ и RSA.
4. Сжатие трафика.
5. Аутентификация и авторизация на сервере, поддержка сессий.
6. Обработка push-уведомлений (MQTT).
7. API для мобильных приложений для предоставления данных, в том числе в оффлайн-режиме.
8. Логирование действий мобильного клиента на сервере.
С задачей успешно справились, но, так как задача нетривиальна и мало освещена в сети, были сложности — как технические, так и в подходе к разработке.
SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...SECON
В разработке игр существует множество сопутствующих проблем, которые приходиться решать разработчику, но которые напрямую не связаны с игровым процессом. Автоматизация рутинных задач - лучшее решение, позволяющее сэкономить время для воплощения творческого замысла в условиях компактных команд и компаний.
Nival: Как не увлечься погоней за универсализацией компонентDevGAMM Conference
Если оставить программиста одного — он будет делать суперуниверсальное нечто. Какие компоненты было бы действительно полезно сделать универсальными и как понять когда универсализация это пустая трата времени.
Heyworks: Cравнительный анализ решений для клиент-серверного взаимодействия и...DevGAMM Conference
Доклад будет построен по принципу: за 20 минут дать наглядный анализ основных решений, который будет полезен небольшим студиям (до 5и человек), и позволит не тратить время на проведение подобного анализа самостоятельно.
Из зала вы выйдите с четким пониманием: "Ок, вот у меня такая игра, соотв. мне скорее всего подойдет такое решение. Вперед и с песней!"
Разработка кроссплатформенного фреймворка на С++ для мобильных платформ / Вла...Ontico
В процессе разработки нашего Enterprise-ready продукта HyperHive — http://eigenmethod.com/products/hh/ (бренд EigenMethod создан для продвижения продукта на Запад, не удивляйтесь другому домену) мы столкнулись с необходимостью реализации ряда задач на нескольких платформах: iOS, Android, Cordova (Android и iOS), а в перспективе и под Windows для мобильных устройств.
Был вариант реализации под каждую платформу на родных языках, но мы выбрали путь создания кроссплатформенного фреймворка на C++ с последующим его портированием под все целевые платформы.
Функционал фреймворка:
1. Параллельные потоки загрузки данных с сервера и записи в базу (sqlite) и передачи на сервер в рабочих потоках (без блокирования UI).
2. Поддержка Дельта-обновлений при передаче данных (пересылается только разность между двумя версиями данных).
3. Шифрование трафика и базы данных алгоритмами ГОСТ и RSA.
4. Сжатие трафика.
5. Аутентификация и авторизация на сервере, поддержка сессий.
6. Обработка push-уведомлений (MQTT).
7. API для мобильных приложений для предоставления данных, в том числе в оффлайн-режиме.
8. Логирование действий мобильного клиента на сервере.
С задачей успешно справились, но, так как задача нетривиальна и мало освещена в сети, были сложности — как технические, так и в подходе к разработке.
SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...SECON
В разработке игр существует множество сопутствующих проблем, которые приходиться решать разработчику, но которые напрямую не связаны с игровым процессом. Автоматизация рутинных задач - лучшее решение, позволяющее сэкономить время для воплощения творческого замысла в условиях компактных команд и компаний.
Nival: Как не увлечься погоней за универсализацией компонентDevGAMM Conference
Если оставить программиста одного — он будет делать суперуниверсальное нечто. Какие компоненты было бы действительно полезно сделать универсальными и как понять когда универсализация это пустая трата времени.
Доклад будет рассказывать о современных подходах проектирования ПО. Основной темой будет построение компонентных архитектур на примере архитектуры сцены 3D движка. Будет рассмотрен классический объектно-ориентированный подход организации сцены, его плюсы и минусы, и в качестве альтернативы будет показан компонентно ориентированный подход организации сцены. Доклад позволит слушателям понять, как разрабатывать сложные системы, которые впоследствии можно легко поддерживать.
При создании интерактивного мобильного или веб-приложений нужна серверная часть, которую будет использовать приложение и разработчик этого приложения. Он должен знать маршруты, по которым можно найти методы, их описание, входные параметры и варианты ответов.
В идеале хочется, чтобы из API можно было мгновенно сгенерировать клиентский код. А ещё реализация метода всегда может измениться, и нужно предусмотреть версионность, чтобы старые клиенты могли продолжать работать без ошибок.
Можно подумать, что реализация этого может занять месяцы, но я покажу, как реализовать это на ASP.NET Core за 20 минут.
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"Fwdays
On this talk, we will share unusual back streets of ASP.NET MVC for increase performance:
- brief review of usual improvements
- fast and strong typed url generation
- increase Razor performance
Инструментарий для создания дистрибутивов продуктов | Владимир СелинPositive Hack Days
1. Что такое дистрибутив большого продукта?
2. Проблема: знаниями о процессе установки продукта владеет малое число людей.
3. Шаблоны + DSL - решение всех проблем!
1) DevOps in real time discusses challenges of maintaining 24/7 operations for multiple online projects and teams spread across different geographies.
2) The plan is to use tools like Chef, continuous integration, monitoring, backups, and team communication to improve processes around deployment cycles, server configuration, and working with many teams.
3) Chef is highlighted as a tool to help with automatic server configuration, continuous delivery, simplifying testing, controlling monitoring and backups. Templates, autoscaling, and single naming rules are also discussed to help manage infrastructure.
This document contains notes from a DevOps training course. It discusses DevOps methodologies like Agile, ITIL, BPM and SOA. It also covers the software development lifecycle and definitions of ready and done. Infrastructure as code and the differences between application and infrastructure code are explained. Finally, common DevOps tools are listed and homework is assigned to create a Jenkins job to import a database dump.
We may be more familiar with Java or .Net based web development but in the era of Microservices, we've got a chance to play with alternatives. In the rise of functional approaches it worth to mention a new way of development for web with emphasis on immutability, rich interactions, high performance and availability with Elm and Elixir in Phoenix.
This document is Roman Melnyk's final presentation for group DevOps 086. It introduces Roman, discusses his studies and hobbies, and outlines an agenda covering environment management, network structure, disaster recovery plans, tenant management, types of hostings, and a price comparison of hosting options. The presentation then details the internal cloud infrastructure, how DHCP servers work, a disaster recovery plan for DNS and DHCP servers, an AWS cloud infrastructure using Route 53, and concludes by comparing the prices of dedicated servers, VPS, AWS, and Rackspace for a sample infrastructure configuration.
This document discusses Graphite and options for optimizing its performance for high volumes of metrics data. It summarizes the default Graphite architecture using Carbon and Whisper and different approaches for scaling it up including using go-carbon, carbon-c-relay, and evaluating alternative time series databases like Influx and OpenTSDB. Various techniques for optimizing whisper and cache configurations, I/O performance, and system parameters are also explored. Overall the best performing combination found was go-carbon with carbon-c-relay to handle over 1 million requests per second.
This document discusses using continuous integration with Docker and Ansible. It describes building and deploying microservices across multiple technologies using Docker containers managed by Ansible playbooks. The process involves cloning repositories, building Docker images, testing, pushing images to a private Docker registry, and deploying containers to environments with Ansible. Benefits include easily managing container environments, portability across machines, and isolated workspaces for each service. Challenges addressed are timeouts, freezes, and long build times.
At Ustream the teams developing the streaming technology stack are also responsible for operating it. This means we have our monitoring and alerting in place (including those based on error logs I mentioned above, but many others too) which alert the engineers themselves. I would like to talk about how we made this transition from the traditional setup where the devs did the coding and the sysops did the operation - what lessons we learned, how we convinced the sysop guys to give us permissions and so on
JUST EAT is an online food delivery company based in the UK that processes around 900 orders per minute at peak times. They have embraced DevOps practices to manage their Windows-based ecommerce platform on AWS. They use a microservices architecture with autonomous teams owning their own features and infrastructure. Key aspects of their approach include using persistent chat, real-time monitoring, alerting and logging to enable rapid debugging in production. Their culture emphasizes that teams are responsible for operating the features they build. They are continually working to improve test coverage and confidence while publishing more tools as open source software.
Доклад будет рассказывать о современных подходах проектирования ПО. Основной темой будет построение компонентных архитектур на примере архитектуры сцены 3D движка. Будет рассмотрен классический объектно-ориентированный подход организации сцены, его плюсы и минусы, и в качестве альтернативы будет показан компонентно ориентированный подход организации сцены. Доклад позволит слушателям понять, как разрабатывать сложные системы, которые впоследствии можно легко поддерживать.
При создании интерактивного мобильного или веб-приложений нужна серверная часть, которую будет использовать приложение и разработчик этого приложения. Он должен знать маршруты, по которым можно найти методы, их описание, входные параметры и варианты ответов.
В идеале хочется, чтобы из API можно было мгновенно сгенерировать клиентский код. А ещё реализация метода всегда может измениться, и нужно предусмотреть версионность, чтобы старые клиенты могли продолжать работать без ошибок.
Можно подумать, что реализация этого может занять месяцы, но я покажу, как реализовать это на ASP.NET Core за 20 минут.
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"Fwdays
On this talk, we will share unusual back streets of ASP.NET MVC for increase performance:
- brief review of usual improvements
- fast and strong typed url generation
- increase Razor performance
Инструментарий для создания дистрибутивов продуктов | Владимир СелинPositive Hack Days
1. Что такое дистрибутив большого продукта?
2. Проблема: знаниями о процессе установки продукта владеет малое число людей.
3. Шаблоны + DSL - решение всех проблем!
1) DevOps in real time discusses challenges of maintaining 24/7 operations for multiple online projects and teams spread across different geographies.
2) The plan is to use tools like Chef, continuous integration, monitoring, backups, and team communication to improve processes around deployment cycles, server configuration, and working with many teams.
3) Chef is highlighted as a tool to help with automatic server configuration, continuous delivery, simplifying testing, controlling monitoring and backups. Templates, autoscaling, and single naming rules are also discussed to help manage infrastructure.
This document contains notes from a DevOps training course. It discusses DevOps methodologies like Agile, ITIL, BPM and SOA. It also covers the software development lifecycle and definitions of ready and done. Infrastructure as code and the differences between application and infrastructure code are explained. Finally, common DevOps tools are listed and homework is assigned to create a Jenkins job to import a database dump.
We may be more familiar with Java or .Net based web development but in the era of Microservices, we've got a chance to play with alternatives. In the rise of functional approaches it worth to mention a new way of development for web with emphasis on immutability, rich interactions, high performance and availability with Elm and Elixir in Phoenix.
This document is Roman Melnyk's final presentation for group DevOps 086. It introduces Roman, discusses his studies and hobbies, and outlines an agenda covering environment management, network structure, disaster recovery plans, tenant management, types of hostings, and a price comparison of hosting options. The presentation then details the internal cloud infrastructure, how DHCP servers work, a disaster recovery plan for DNS and DHCP servers, an AWS cloud infrastructure using Route 53, and concludes by comparing the prices of dedicated servers, VPS, AWS, and Rackspace for a sample infrastructure configuration.
This document discusses Graphite and options for optimizing its performance for high volumes of metrics data. It summarizes the default Graphite architecture using Carbon and Whisper and different approaches for scaling it up including using go-carbon, carbon-c-relay, and evaluating alternative time series databases like Influx and OpenTSDB. Various techniques for optimizing whisper and cache configurations, I/O performance, and system parameters are also explored. Overall the best performing combination found was go-carbon with carbon-c-relay to handle over 1 million requests per second.
This document discusses using continuous integration with Docker and Ansible. It describes building and deploying microservices across multiple technologies using Docker containers managed by Ansible playbooks. The process involves cloning repositories, building Docker images, testing, pushing images to a private Docker registry, and deploying containers to environments with Ansible. Benefits include easily managing container environments, portability across machines, and isolated workspaces for each service. Challenges addressed are timeouts, freezes, and long build times.
At Ustream the teams developing the streaming technology stack are also responsible for operating it. This means we have our monitoring and alerting in place (including those based on error logs I mentioned above, but many others too) which alert the engineers themselves. I would like to talk about how we made this transition from the traditional setup where the devs did the coding and the sysops did the operation - what lessons we learned, how we convinced the sysop guys to give us permissions and so on
JUST EAT is an online food delivery company based in the UK that processes around 900 orders per minute at peak times. They have embraced DevOps practices to manage their Windows-based ecommerce platform on AWS. They use a microservices architecture with autonomous teams owning their own features and infrastructure. Key aspects of their approach include using persistent chat, real-time monitoring, alerting and logging to enable rapid debugging in production. Their culture emphasizes that teams are responsible for operating the features they build. They are continually working to improve test coverage and confidence while publishing more tools as open source software.
Прошло время, когда DevOps не был еще модным, началось время карго-культов и безбашенных внедрений. В докладе я расскажу про основные ошибки перехода компании к DevOps из моей практики, покажу как не надо использовать инструменты и как не надо организовывать команды, а также многое другое.
Continuous Delivery by Alexey Turchanikov @ AgilePizza, Kyiv 2015Agile Ukraine
This document describes how a company achieved continuous delivery of software through breaking down bottlenecks, automating processes, and establishing a feature pipeline. The key steps included forming feature teams, deploying features to isolated environments, implementing automated testing and deployment, and removing dependencies on operations for releases. This enabled the goals of lower risk, faster feedback, and releasing multiple times per day while maintaining quality. Ongoing work includes further automating infrastructure configuration and deployments.
Improve the Development Process with DevOps Practices by Fedorov VadimSoftServe
The document discusses improving development processes with DevOps practices. It describes current issues like a lack of communication between development and operations teams and differences between development and production environments. It evaluates project maturity levels and suggests organizational changes like shared success metrics for teams. The document recommends implementing infrastructure as code, automating testing, and using a delivery pipeline to improve quality, repeatability and reduce risks. Adopting DevOps practices and tools can help align development and production environments.
Javascript-фреймворки: должен остаться только одинSergey Xek
Рассказ от tech-менеджера о том, как мы в Acronis выбирали фреймворк в условиях, когда любое более-менее важное технологическое решение сразу затрагивает с десяток команд, несколько сотен человек и права «случайно все сломать» нет.
В докладе пойдет речь о том, что производительность фронтенда — это больше про слаженную работу команды, про понятный и масштабируемый код, чем про сухие циферки. Но циферки тоже будут.
1) Какие у нас были проблемы с текущим фреймворком — UI, архитектура, код.
2) Как измеряли, что примерно стоит брать (исследование популярности).
3) Что рассматривали.
4) На пути к демо-проекту, какие были сложности (то, что уперли идею с Typescript, собственный компилятор шаблонов, четыре Flux-фреймворка и все плохи).
5) Два пилотных демо-проекта: цифры.
6) Оценка трудоемкости перехода.
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)Ontico
Рассказ от tech-менеджера о том, как мы в Acronis выбирали фреймворк в условиях, когда любое более-менее важное технологическое решение сразу затрагивает с десяток команд, несколько сотен человек и права «случайно все сломать» нет.
В докладе пойдет речь о том, что производительность фронтенда — это больше про слаженную работу команды, про понятный и масштабируемый код, чем про сухие циферки. Но циферки тоже будут.
1) Какие у нас были проблемы с текущим фреймворком — UI, архитектура, код.
2) Как измеряли, что примерно стоит брать (исследование популярности).
3) Что рассматривали.
4) На пути к демо-проекту, какие были сложности (то, что уперли идею с Typescript, собственный компилятор шаблонов, четыре Flux-фреймворка и все плохи).
5) Два пилотных демо-проекта: цифры.
6) Оценка трудоемкости перехода.
Yandex Mobile Camp в Санкт-Петербурге, 30 мая 2012
Юрий Василевский, ведущий разработчик EPAM Systems, Mobile Solutions
Тема: Автоматизация в XCode
Тезисы:
Xcode — основной инструментарий разработки приложений под Mac OS X и Apple iOS. Он обладает широкими возможностями как для редактирования кода, так и для автоматизации задач.
Мы рассмотрим некоторые из аспектов автоматизации (Code Sense, Targets, Services, Help), связанные с нумерацией сборок билдов, форматированием и контролем стиля кода, анализом дублированных участков кода, управлением внешними библиотеками.
Юрий Василевский «Автоматизация в XCode»
Yandex Mobile Camp в Санкт-Петербурге 2012
http://events.yandex.ru/events/yamobcamp/spb-may-2012/
Xcode — основной инструментарий разработки приложений под Mac OS X и Apple iOS. Он обладает широкими возможностями как для редактирования кода, так и для автоматизации задач. Мы обсудим некоторые из аспектов автоматизации (Code Sense, Targets, Services, Help), связанные с нумерацией сборок билдов, форматированием и контролем стиля кода, анализом дублированных участков кода, управлением внешними библиотеками.
Porting existing games to Apple Metal API. Case study: Divinity Original Sin ...DevGAMM Conference
The session essentially focuses on case study of porting Divinity Original Sin 2 engine to Apple Metal API. Real-life examples are provided as well as a demo of frame capture, dissection and explanations of techniques used. The case study is followed by best practices section with advises for transitioning generic titles to Metal. The session concludes with ‘future tech’ section where advanced samples of Metal rendering technologies are displayed and briefly explained.
SECON'2016. Сергей Аверин. Javascript-фреймворки: должен остаться только одинSECON
Рассказ от tech-менеджера о том, как мы в Acronis выбирали фреймворк в условиях, когда любое более-менее важное технологическое решение сразу затрагивает с десяток команд, несколько сотен человек и права «случайно все сломать» нет. В докладе пойдет речь о том, что хорошо работающий фронтенд — это больше про слаженную работу команды, про понятный и масштабируемый код, чем про сухие циферки. Но и циферки тоже будут.
1) Какие у нас были проблемы с текущим фреймворком — UI, архитектура, код.
2) Как измеряли, что примерно стоит брать (исследование популярности).
3) Что рассматривали.
4) На пути к демо-проекту, какие были сложности (то, что уперли идею с Typescript, собственный компилятор шаблонов, четыре Flux-фреймворка и все плохи).
5) Два пилотных демо-проекта: цифры.
6) Оценка трудоемкости перехода.
SECON'2016. Аверин Сергей, Javascript-фреймворки: должен остаться только одинSECON
Рассказ от tech-менеджера о том, как мы в Acronis выбирали фреймворк в условиях, когда любое более-менее важное технологическое решение сразу затрагивает с десяток команд, несколько сотен человек и права «случайно все сломать» нет.
Magento 2 performance comparison in different environments by Yaroslav Rogoza...Atwix
This document summarizes the results of benchmark tests performed on a Magento 2 site to evaluate performance in different environments. It shows loading times for various site operations like homepage load, category pages, product pages, search and account pages. Tests were run with standard and increased product/customer counts, different caching configurations, database engines and PHP versions. Loading times generally increased as product/customer volumes grew but were improved by adding Redis caching, database replication and upgrading to PHP 7.
Viacheslav Kravchuk. Working as a distributed company. Our journey. Meet Mage...Atwix
Atwix has transitioned to being a distributed company over the past year. It grew from 15 employees working in one physical office and one person remotely, to over 20 employees working across two physical offices and three people remotely. The company now spans four time zones. A distributed company is defined as a group of individuals who work across time, space, and organizational boundaries connected through communication technology. Some of the key aspects of building a distributed company that were discussed include prioritizing communication, tracking performance metrics, addressing challenges of different time zones and locations, and emphasizing the benefits like increased productivity and employee satisfaction.
Сергей Иващенко - Meet Magento Ukraine - Цены в Magento 2Atwix
The document discusses pricing in Magento 2. It covers the different types of prices that can be implemented including regular price, sale price, taxes, discounts. It also describes how pricing is organized through entities and templates to make it flexible and customizable. Code examples are provided to demonstrate how pricing is calculated and displayed for products.
Иван Чепурный - Meet Magento Ukraine - Varnish Cache and its usage in the rea...Atwix
The document discusses Varnish Cache and its usage for caching content and improving performance in Magento. It describes how Varnish works as a frontend caching proxy and how it can be used to cache pages and parts of pages in Magento. It also discusses how to make cache dynamic and flush pages based on products or categories using the EcomDev_Varnish module.
Владимир Дубина - Meet Magento Ukraine - Data consistencyAtwix
This document discusses data consistency challenges that development teams face when working on complex enterprise projects using Magento. It outlines three main problems: how to store and share data changes between developers, how to migrate data changes between application instances, and how to bind code revisions to application data. The document evaluates different approaches like shared databases and migration scripts, and recommends best practices for using migrations like creating a global package and writing custom import/export APIs to manage complex application data. The overall goal is to establish a development center that can reliably build and deploy applications with consistent data.
This document provides an overview of Magento 2 including its goals, release approach, modernized technical stack, improved performance and scalability, streamlined customizations, easier installation and upgrades, and high code quality and testing standards. The key goals of Magento 2 are to use a modern technical stack, improve performance and scalability, streamline customizations, simplify external integrations, and make installation and upgrades easier.
Анатолій Денис - Meet Magento Ukraine - Migration to Magento - mission possibleAtwix
This document discusses migrating an online store from another platform to Magento. It provides reasons for migrating such as limited functionality and small communities in other platforms. Popular migrations to Magento include OpenCart, osCommerce and VirtueMart. The document outlines important steps for a successful migration including analyzing the source store, testing the data migration, updating Magento, and final data migration. It emphasizes the importance of planning the migration and testing all aspects of the new store.
Елена Леонова - Meet Magento Ukraine - Трасформация в e-commerce с MagentoAtwix
The document discusses key trends in digital commerce and ecommerce, including the rise of mobile shopping and multi-channel experiences. It notes that Magento provides a flexible front-end and industrial back-end to help merchants attract, convert, deliver and retain customers across channels. Statistics are presented on Magento's merchant base and open source leadership. The roadmap for Magento 2 is outlined, with the goal of modernizing technologies to improve performance and scalability.
Thomas Fleck - Meet Magento Ukraine - How Magento and open source change the ...Atwix
This document discusses how open source e-commerce platforms like Magento can change the e-commerce industry. It notes that Magento has a large global community and ecosystem and that open source values like sharing knowledge can foster exchange of goods, money, and ideas. The document promotes Magento as a foundation for an independent community that connects people from around the world and enables good business opportunities.
2. Основатели
Jary Carter Yoav Kutner Dima Soroka
CEO and Co-Founder CTO and Co-Founder Vice president of engineering
3. Наши продукты
• Community edition
• Enterprise edition
• SaaS
4. Общие сведения
• Open Source
• MIT license for platform
• OSL license for CRM
• Старт разработки: 4 декабря 2012
• Текущая версия: 1.3
• Функционал: 53 bundles of platform, 14 bundles
CRM
• Unit test coverage > 50%
• PSR-2 code standards