Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"Alexey Zinoviev
Alexey Zinoviev Алексей Зиновьев рассказывает о выборе одной из следующих баз данных CouchDB, Neo4j, Mongo, Cassandra, HBase, Riak на Happydev 2013
Article "Choice of NoSQL database for your project: Don't bite off more than you can chew" presented on HappyDev 2013 (IT-conference in Omsk) by Alexey Zinoviev
The main idea of this article is comparison of the most popular NoSQL databases: CouchDB, Cassandra, Mongodb, Riak, Neo4j, HBase
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...Ontico
Оптимизация любого веб-приложения — это нетривиальная задача, для решения которой требуется проводить мониторинг загрузки системных ресурсов, выполнять микро-вэнчмаркинг, экспериментировать с настройками, проводить нагрузочное тестирование и т.д.
В текущем году нашей команде довелось поучаствовать в нескольких проектах, в которых перед нами стояла задача оптимизации J2EE веб-приложений. Один из них — портал для ОАО «Сбербанк России» (www.sberbank.ru).
Основной сайт Сбербанка реализован на основе портального движка BackBase и является J2EE-приложением. При проведении оптимизации его работы нам пришлось изучить и собрать много информации и документов, которые связаны с настройкой и оптимизацией высоконагруженных веб-приложений.
В ходе реализации проектов я заметил, что не существует сводного документа с инструкциями по оптимизации работы приложения, поэтому решил поделиться нашим опытом. Этот доклад может послужить в качестве дорожной карты (Road Map) для настройки и оптимизации J2EE веб-приложений.
В докладе будут рассмотрены следующие аспекты:
1) Общие подходы и методология оптимизации веб-приложения.
2) Оптимизация настроек веб-сервера.
3) Оптимизация кода приложения на стороне клиента.
4) Оптимизация на стороне middleware, в том числе на сервере приложений.
5) Оптимизация на уровне Базы Данных.
Презентация Сафонова и Прусенка на семинаре "Продавайте больше"ActiveCloud
Александр Прусенок, технический пре-сейл консультант ActiveCloud, и Павел Богданов, руководитель отдела технической поддержки ActiveCloud: «10 способов улучшить работу сайта нашего клиента без затрат. Погружение в облако ActiveCloud. Размещение высоконагруженных веб-ресурсов. Платформа Bitrix VM. Практический кейс переноса в облако».
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"Alexey Zinoviev
Alexey Zinoviev Алексей Зиновьев рассказывает о выборе одной из следующих баз данных CouchDB, Neo4j, Mongo, Cassandra, HBase, Riak на Happydev 2013
Article "Choice of NoSQL database for your project: Don't bite off more than you can chew" presented on HappyDev 2013 (IT-conference in Omsk) by Alexey Zinoviev
The main idea of this article is comparison of the most popular NoSQL databases: CouchDB, Cassandra, Mongodb, Riak, Neo4j, HBase
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...Ontico
Оптимизация любого веб-приложения — это нетривиальная задача, для решения которой требуется проводить мониторинг загрузки системных ресурсов, выполнять микро-вэнчмаркинг, экспериментировать с настройками, проводить нагрузочное тестирование и т.д.
В текущем году нашей команде довелось поучаствовать в нескольких проектах, в которых перед нами стояла задача оптимизации J2EE веб-приложений. Один из них — портал для ОАО «Сбербанк России» (www.sberbank.ru).
Основной сайт Сбербанка реализован на основе портального движка BackBase и является J2EE-приложением. При проведении оптимизации его работы нам пришлось изучить и собрать много информации и документов, которые связаны с настройкой и оптимизацией высоконагруженных веб-приложений.
В ходе реализации проектов я заметил, что не существует сводного документа с инструкциями по оптимизации работы приложения, поэтому решил поделиться нашим опытом. Этот доклад может послужить в качестве дорожной карты (Road Map) для настройки и оптимизации J2EE веб-приложений.
В докладе будут рассмотрены следующие аспекты:
1) Общие подходы и методология оптимизации веб-приложения.
2) Оптимизация настроек веб-сервера.
3) Оптимизация кода приложения на стороне клиента.
4) Оптимизация на стороне middleware, в том числе на сервере приложений.
5) Оптимизация на уровне Базы Данных.
Презентация Сафонова и Прусенка на семинаре "Продавайте больше"ActiveCloud
Александр Прусенок, технический пре-сейл консультант ActiveCloud, и Павел Богданов, руководитель отдела технической поддержки ActiveCloud: «10 способов улучшить работу сайта нашего клиента без затрат. Погружение в облако ActiveCloud. Размещение высоконагруженных веб-ресурсов. Платформа Bitrix VM. Практический кейс переноса в облако».
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"IT Event
Мы рассмотрим важные особенности построения архитектуры распреденных кластеров NoSQL с использованием ресурсов Amazon Web Services, мы затронем такие аспекты как: архитектура гео распределенных кластеров, оптимизация производительности, выбор основных опций для деплоймента и ряд других аспектов. В докладе мы сконцентрируемся на таких популярных базах данных, как Cassandra, MongoDB и некоторых других.
Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Сл...solit
Слисенко Константин, Минск. Компания JazzTeam, Senior Software Engineer (R&D), Java/Agile Coach
«Разработка приложений в облаке на примере Amazon Web Services». Development секция. Для разработчиков.
«JVM изнутри: оптимизация и профилирование». Development секция. Для разработчиков.
Алексей Рагозин "Java и linux борьба за микросекунды"IT Event
Java используется для широкого спектра приложений, некоторые из них могут иметь жёсткие требования по времени отклика.
Но если речь идёт про сотни микросекунд, годится ли Java, в принципе, для таких задач?
Доклад осветит практические аспекты разработки решений с малым временем отклика на платформе Java + Linux
Дмитрий Меньшиков "Топ-10 фейлов на реальном highload проекте"Fwdays
- как ошибка выбора идентификатора пользователя, обнаруженная после запуска проекта, чуть не стоила 2 лет разработки
- как мы боролись с перегруженным mysql когда даже включение binlog убивает сервер
- почистил партицию mysql под нагрузкой - получи мертвый сервер
- как верстальщик поменял верстку серча и уложил продукт на 4 часа
- ошибка в ядре php которая привела даунтайм на несколько часов
- как незнание особенностей работы GC у redis обошлось в $50к чистой прибыли
- добавлением или удалением серверов из пула memcached инвалидировали весь кэш (кривые настройки php клиента Memcache/Memcached)
- как поправив тест потерять 2 миллиона пользовательских писем
- как релиз одного проекта крэшил хелсчеки соседнего проекта
- самый большой фейл с системами очередей и статистикой: ивенты терялись годами
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Ontico
HighLoad++ 2017
Зал «Калининград», 8 ноября, 13:00
Тезисы:
http://www.highload.ru/2017/abstracts/3010.html
В этом докладе я расскажу, как BigData-платформа помогает трансформировать Почту России, как мы управляем построением и развитием платформы. Расскажу про найденные удачные решения, например, как разбиение на продукты с понятными SLA и интерфейсами между ними помогло нам сохранять управляемость с ростом масштабов проекта.
...
BigПочта: как мы строили DataLake в Почте России / Алексей Вовченко (Luxoft)Ontico
HighLoad++ 2017
Зал «Москва», 8 ноября, 13:00
Тезисы:
http://www.highload.ru/2017/abstracts/3014.html
Мы планируем поделиться с аудиторией примером SuccessStory создания BigData-инфраструктуры (Hadoop) в Почте России. Мы расскажем про выбранные решения, мотивацию их выбора, а также про то, куда развивается продукт в Почте.
Доклад будет интересен всем проектам и компаниям, где только задумываются о развитии BigData-технологий, а также всем, кому интересно узнать, как устроена "внутри" современная Почта.
...
Игнат Корчагин "Как Cloudflare помогает справиться с крупнейшими атаками в Сети"Fwdays
В докладе отражены общая архитектура сети Cloudflare и обзор технических решений, которые помогают справиться с самыми крупными на сегодняшний день атаками. В частности:
- общий обзор сети Cloudflare
- Anycast и BGP и управление трафиком
- внутри датацентра Cloudflare: програмный стек
- эффективная фильтрация пакетов в Linux в обход ядра ОС
- автоматическая система управления состоянием firewall на серверах Cloudflare
Стратегия и тактика улучшения производительности BSS систем оператора мобильн...Ontico
В докладе поделимся опытом построения комплексного процесса последовательного улучшения производительности информационных систем мобильного оператора, расскажем об используемых инструментах и компонентах (Oracle, Tarantool, Java, Jmeter и т.д.).
Особенность нашего оператора в том, что основной канал взаимодействия с клиентом - это мобильное приложение или web Личный кабинет, а не USSD команды и СМС, как у основной массы операторов. Данная особенность создает высокие требования к времени отклика и доступности сервисов и ставит перед нами целый ряд вопросов:
- Как достичь приемлемого времени отрисовки страниц (не более 2х секунд) и не "уронить" backend при увеличении кол-ва абонентов в несколько раз за год до 4х миллионов?
- Как обеспечить приемлемую производительность при наличии сложных оркестрирующих процессов на ESB и достаточно медленного, основанного на Oracle биллинга?
- Как контролировать и улучшать производительность и доступность постоянно и на упреждение, а не когда "жареный петух клюнет"?
Мы расскажем о том, как мы отвечаем на выше обозначенные вопросы. В частности, расскажем о внедрении двух БД - inmemory БД на чтение и Oracle на запись с соответствующей синхронизацией, о технике кэширования на нескольких уровнях, оптимизации синхронных и асинхронных процессов, о постоянном выявлении узких мест на тестировании, о кластеризации и других аспектах улучшения общей и частной производительности и доступности при быстро растущей абонентской базе и беспощадной креативности бизнеса.
Пишем свою платформу для управления данными. Это очень просто / Суханов Васил...Ontico
На примере платформы SAP HANA рассмотрим подходы к созданию высокопроизводительной платформы для управления большими массивами данных и выполнения сложных вычислений. В ходе сессии будут представлены архитектурные решения, которые частично легли в основу платформы, а также будет проведён сравнительный анализ предложенных решений в приложении к современным разработкам Intel в области архитектуры ЭВМ.
Тезисы - http://www.highload.ru/2015/abstracts/1856.html
Конференция по программным решениям HPE 2016Andrey Karpov
Конференция по программным решениям HPE 14 апреля 2016
Автоматизация процесса перевода транспортного сервиса между географически распределенными площадками
Система управления ТСЭР
Подсистема автоматизации процедуры перевода обработки
ЭС между центральными серверами ЦТУ ТСЭР (ПАПО)
Автоматизация процессов управления DevOps Новые реалии – новая скорость
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"IT Event
Мы рассмотрим важные особенности построения архитектуры распреденных кластеров NoSQL с использованием ресурсов Amazon Web Services, мы затронем такие аспекты как: архитектура гео распределенных кластеров, оптимизация производительности, выбор основных опций для деплоймента и ряд других аспектов. В докладе мы сконцентрируемся на таких популярных базах данных, как Cassandra, MongoDB и некоторых других.
Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Сл...solit
Слисенко Константин, Минск. Компания JazzTeam, Senior Software Engineer (R&D), Java/Agile Coach
«Разработка приложений в облаке на примере Amazon Web Services». Development секция. Для разработчиков.
«JVM изнутри: оптимизация и профилирование». Development секция. Для разработчиков.
Алексей Рагозин "Java и linux борьба за микросекунды"IT Event
Java используется для широкого спектра приложений, некоторые из них могут иметь жёсткие требования по времени отклика.
Но если речь идёт про сотни микросекунд, годится ли Java, в принципе, для таких задач?
Доклад осветит практические аспекты разработки решений с малым временем отклика на платформе Java + Linux
Дмитрий Меньшиков "Топ-10 фейлов на реальном highload проекте"Fwdays
- как ошибка выбора идентификатора пользователя, обнаруженная после запуска проекта, чуть не стоила 2 лет разработки
- как мы боролись с перегруженным mysql когда даже включение binlog убивает сервер
- почистил партицию mysql под нагрузкой - получи мертвый сервер
- как верстальщик поменял верстку серча и уложил продукт на 4 часа
- ошибка в ядре php которая привела даунтайм на несколько часов
- как незнание особенностей работы GC у redis обошлось в $50к чистой прибыли
- добавлением или удалением серверов из пула memcached инвалидировали весь кэш (кривые настройки php клиента Memcache/Memcached)
- как поправив тест потерять 2 миллиона пользовательских писем
- как релиз одного проекта крэшил хелсчеки соседнего проекта
- самый большой фейл с системами очередей и статистикой: ивенты терялись годами
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Ontico
HighLoad++ 2017
Зал «Калининград», 8 ноября, 13:00
Тезисы:
http://www.highload.ru/2017/abstracts/3010.html
В этом докладе я расскажу, как BigData-платформа помогает трансформировать Почту России, как мы управляем построением и развитием платформы. Расскажу про найденные удачные решения, например, как разбиение на продукты с понятными SLA и интерфейсами между ними помогло нам сохранять управляемость с ростом масштабов проекта.
...
BigПочта: как мы строили DataLake в Почте России / Алексей Вовченко (Luxoft)Ontico
HighLoad++ 2017
Зал «Москва», 8 ноября, 13:00
Тезисы:
http://www.highload.ru/2017/abstracts/3014.html
Мы планируем поделиться с аудиторией примером SuccessStory создания BigData-инфраструктуры (Hadoop) в Почте России. Мы расскажем про выбранные решения, мотивацию их выбора, а также про то, куда развивается продукт в Почте.
Доклад будет интересен всем проектам и компаниям, где только задумываются о развитии BigData-технологий, а также всем, кому интересно узнать, как устроена "внутри" современная Почта.
...
Игнат Корчагин "Как Cloudflare помогает справиться с крупнейшими атаками в Сети"Fwdays
В докладе отражены общая архитектура сети Cloudflare и обзор технических решений, которые помогают справиться с самыми крупными на сегодняшний день атаками. В частности:
- общий обзор сети Cloudflare
- Anycast и BGP и управление трафиком
- внутри датацентра Cloudflare: програмный стек
- эффективная фильтрация пакетов в Linux в обход ядра ОС
- автоматическая система управления состоянием firewall на серверах Cloudflare
Стратегия и тактика улучшения производительности BSS систем оператора мобильн...Ontico
В докладе поделимся опытом построения комплексного процесса последовательного улучшения производительности информационных систем мобильного оператора, расскажем об используемых инструментах и компонентах (Oracle, Tarantool, Java, Jmeter и т.д.).
Особенность нашего оператора в том, что основной канал взаимодействия с клиентом - это мобильное приложение или web Личный кабинет, а не USSD команды и СМС, как у основной массы операторов. Данная особенность создает высокие требования к времени отклика и доступности сервисов и ставит перед нами целый ряд вопросов:
- Как достичь приемлемого времени отрисовки страниц (не более 2х секунд) и не "уронить" backend при увеличении кол-ва абонентов в несколько раз за год до 4х миллионов?
- Как обеспечить приемлемую производительность при наличии сложных оркестрирующих процессов на ESB и достаточно медленного, основанного на Oracle биллинга?
- Как контролировать и улучшать производительность и доступность постоянно и на упреждение, а не когда "жареный петух клюнет"?
Мы расскажем о том, как мы отвечаем на выше обозначенные вопросы. В частности, расскажем о внедрении двух БД - inmemory БД на чтение и Oracle на запись с соответствующей синхронизацией, о технике кэширования на нескольких уровнях, оптимизации синхронных и асинхронных процессов, о постоянном выявлении узких мест на тестировании, о кластеризации и других аспектах улучшения общей и частной производительности и доступности при быстро растущей абонентской базе и беспощадной креативности бизнеса.
Пишем свою платформу для управления данными. Это очень просто / Суханов Васил...Ontico
На примере платформы SAP HANA рассмотрим подходы к созданию высокопроизводительной платформы для управления большими массивами данных и выполнения сложных вычислений. В ходе сессии будут представлены архитектурные решения, которые частично легли в основу платформы, а также будет проведён сравнительный анализ предложенных решений в приложении к современным разработкам Intel в области архитектуры ЭВМ.
Тезисы - http://www.highload.ru/2015/abstracts/1856.html
Конференция по программным решениям HPE 2016Andrey Karpov
Конференция по программным решениям HPE 14 апреля 2016
Автоматизация процесса перевода транспортного сервиса между географически распределенными площадками
Система управления ТСЭР
Подсистема автоматизации процедуры перевода обработки
ЭС между центральными серверами ЦТУ ТСЭР (ПАПО)
Автоматизация процессов управления DevOps Новые реалии – новая скорость
We like the architecture of our applications to revolve around the business logic, not around technical details (and especially not around the database).
In my team at Sky Network Services we use the Clean Architecture and it has given us a great deal of benefits: the business logic is explicit, we are free to change our technical decisions, the app is easy to test, working on it is faster and scalable, it’s hard to do the wrong thing, and many more.
But it comes at a cost, of course. In this talk I’ll tell you the story of our experience with Clean Architecture and give you some tips to get the most out of it.
Example Project
https://github.com/mattia-battiston/clean-architecture-example
Downloads
Online: https://goo.gl/DTxftJ
PDF: https://goo.gl/ZAtdBN
Powerpoint: https://goo.gl/D54wdZ (but you need to install these fonts to see it properly: https://goo.gl/iH8SO5)
Akka and the Zen of Reactive System DesignLightbend
In order to be successful with asynchronous programming, when coming from synchronous execution models you need to change your mindset and look at things from a slightly different perspective. In order to use Akka at it's best, you will have to change the way you think about application design (loosen coupling in space and time between components), and re-think what you've maybe learned in the past.
In this talk we uncover a number of rules that serve as a guide in designing concurrent distributed applications, how those apply to Akka, and how they can help you in daily app development.
Aimed at developers through architects, Akka team happy hAkker, Konrad Malawski, bends your parameters with regards to application design and asynchronous execution models.
Exploring Reactive Integrations With Akka Streams, Alpakka And Apache KafkaLightbend
Since its stable release in 2016, Akka Streams is quickly becoming the de facto standard integration layer between various Streaming systems and products. Enterprises like PayPal, Intel, Samsung and Norwegian Cruise Lines see this is a game changer in terms of designing Reactive streaming applications by connecting pipelines of back-pressured asynchronous processing stages.
This comes from the Reactive Streams initiative in part, which has been long led by Lightbend and others, allowing multiple streaming libraries to inter-operate between each other in a performant and resilient fashion, providing back-pressure all the way. But perhaps even more so thanks to the various integration drivers that have sprung up in the community and the Akka team—including drivers for Apache Kafka, Apache Cassandra, Streaming HTTP, Websockets and much more.
In this webinar for JVM Architects, Konrad Malawski explores the what and why of Reactive integrations, with examples featuring technologies like Akka Streams, Apache Kafka, and Alpakka, a new community project for building Streaming connectors that seeks to “back-pressurize” traditional Apache Camel endpoints.
* An overview of Reactive Streams and what it will look like in JDK 9, and the Akka Streams API implementation for Java and Scala.
* Introduction to Alpakka, a modern, Reactive version of Apache Camel, and its growing community of Streams connectors (e.g. Akka Streams Kafka, MQTT, AMQP, Streaming HTTP/TCP/FileIO and more).
* How Akka Streams and Akka HTTP work with Websockets, HTTP and TCP, with examples in both in Java and Scala.
Building Streaming And Fast Data Applications With Spark, Mesos, Akka, Cassan...Lightbend
It’s become clear to many business that the ability to extract real-time actionable insights from data is not only a source of competitive advantage, but also a way to defend their existing business models from disruption. So while legacy models such as nightly batch jobs aren’t disappearing, an era of fast, streaming data (aka “Fast Data”) is upon us, and represents the state of the art for gaining real-time perishable insights that can then be used to serve existing customers better, acquiring new markets and keep the competition at bay.
That said, distributed, Fast Data architectures are much harder to build, and carry their own set of challenges. Enterprises looking to move quickly are presented with a growing ecosystem of technologies, which often delays fast decisions and provides its own set of risks:
* With so many choices, what tools should you use?
* How do you avoid making rookie mistakes?
* What are the best patterns and practices for streaming applications?
In this webinar with Sean Glover, Senior Consultant at Lightbend and industry veteran, we examine the rise of streaming systems built around Spark, Mesos, Akka, Cassandra and Kafka, their role in handling endless streams of data to gain real-time insights. Sean then reviews how the Lightbend Fast Data Platform (FDP) brings them together in a comprehensive, easy to use, integrated platform, which includes installation, integration, and monitoring tools tuned for various deployment scenarios, plus sample applications.
Проектирование сетевой инфраструктуры под SOA проекты ASP.NETGoSharp
При планировании сервисно-ориентированной архитектуры проекта крайне важно учитывать требования к работе сервиса в существующих реалиях Enterprise инфраструктуры. Если эти системы строятся независимо, то возникнут проблемы в размещении сервисов на боевом окружении, сложности управления, безопасности и надёжности. В докладе вы увидите подходы к проектированию инфраструктуры под сервисы и сервисов под инфраструктуру, а так же примеры борьбы со сложностью планирования инфраструктуры.
В рамках доклада я хотел бы рассмотреть сложности, которые мы испытываем с построением инфраструктуры распределенных систем.
Можно ли строить приложения и не думать о серверах и контейнерах? Насколько это будет дорого?
Ответить на эти вопросы помогут принципы «Бессерверной архитектуры». На простых примерах мы рассмотрим из чего состоит приложение, не зависящее от серверов. А также, рассмотрим возможности, которые предоставляют популярные провайдеры облачных сервисов, для построения таких приложений.
Solit 2014, Обзор Infocloud для разработчиков, Трухин Юрийsolit
Юрий Трухин, Россия. Эксперт по облачным технологиям хостинговой компании InfoboxCloud. В прошлом – обладатель статуса Microsoft Most Valuable Professional. Гик, стратег, разработчик. Подробнее на trukhin.com
«Обзор InfoboxCloud для разработчиков». Development секция. Высокий уровень подготовки. Для разработчиков.
В этом докладе будет рассказано об устройстве InfoboxCloud из первых рук, о деталях внутренней реализации, о том, какую пользу несет облако для разработчиков и о будущем InfoboxCloud. Будут рассмотрены 2 кита облачных технологий: IaaS и PaaS без vendor-lock. Отличная возможность спросить обо всём, что касается PaaS/IaaS непосредственно архитектора и разработчика этих систем.
«EcmaScript 6 in Action». Development секция. Для разработчиков.
Поговорим о том, как жизнь разработчиков изменится с приходом нового стандарта.
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Ontico
РИТ++ 2017, Backend Conf
Зал Сан-Паулу, 6 июня, 14:00
Тезисы:
http://backendconf.ru/2017/abstracts/2778.html
Хотите научиться принимать решения на основе данных, но не знаете, с чего начать? Нужно записать миллионы событий, но не уверены, как делать это правильно? Вы не знаете, как быстро и дёшево строить аналитические отчеты или запутались в инструментах?
На примере DocDoc я расскажу о плюсах и минусах различных подходов: как выбрать систему хранения, почему мы остановились на Google BigQuery. Как правильно организовать данные, записать свой clickstream, отказаться от сэмплирования в GA, а также строить простые и понятные отчеты.
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Uptime community
Александр Демидов, директор направления облачных сервисов Битрикс24
1. Почему Битрикс24 и другие сервисы 1С-Битрикс живут в облаке, как мы администрируем всю нашу инфраструктуру и как справляемся с сотнями виртуальных машин и сервисов силами трех человек. Как коммуницируем с разработчиками и QA, как деплоим, да и вообще — как живем и развиваемся.
2. Мониторинг — наше всё! Распределенная система real-time мониторинга (был nagios, стал shinken), аналитика, автоматизация, работа с инцидентами.
3. Бонус — на какие самые серьезные грабли мы наступали за пять лет, прошедших с запуска «Битрикс24», и как научились их обходить.
Jelastic - гибридная платформа как сервис(PaaS) для компаний- разработчиков ПО на Java, Ruby, .NET, ASP.NET, PHP, Node.JS и Docker. Позволяет строить автомасштабируемые, отказоустойчивые среды для приложений, управлять множеством сред для разработки и тестирования
2. O нас : AT Consulting
Компания AT Consulting –
один из лидирующих
поставщиков ИТ-услуг,
оперирующий на тер-ритории
Российской Федерации и
стран СНГ, начиная с 2001 года
КЛЮЧЕВЫЕ ВЕРТИКАЛИ
Телекоммуникационный сектор |
Финансовый сектор |
Государственный сектор |
Топливно-энергетический сектор
СПЕЦИАЛИЗАЦИЯ
Внедрение и сопровождение
сложных информационных
систем класса ERP | CRM | DWH |
ECM | АБС | Billing | SOA и т.д.|
Cтратегический и операционный
бизнес-консалтинг | Управление
проектами и ИТ-аутсорсинг
ПАРТНЕРСТВО
С МИРОВЫМИ ЛИДЕРАМИ IT-
РЫНКА
SAP | Oracle | SAS | IBM | Microsoft |
EMC | Informatica | MicroStrategy |
Prognoz | Hewlett Packard | Avaya |
Motorola Solutions | Hitachi | Infotecs |
Kraftway | 1C и т.д.
2 000+ КОНСУЛЬТАНТОВ,
обладающих опытом реализации
крупнейших по масштабам ИТ-
проектов
ЛИДИРУЮЩАЯ ПОЗИЦИЯ
среди крупнейших ИТ-
интеграторов в России за 2009,
2010, 2011, 2012, 2013 и 2014 г.
7. Системные требования
Требования Было Максимальное
в Декабрe 2014
Стало
Максимальное RPS 400 886 1100
Посетители онлайн 11000 25338 26000
Среднее время
загрузки страниц
< 5 сек. < 3 сек.
Доступность систем 24*7
(99,9%)
24*7
(99,9%)
Поддержка browser IE8, opera7 IE8, opera7
Отказоустойчивость да да
Отсутствие CDN
Отсутствует возможность масштабировать
ландшафт
8. В доклада будет
рассказано
Оптимизация веб сервера
Оптимизация на стороне клиента
Оптимизация на стороне middleware
Оптимизация Базы Данных
Подходы и методология для оптимизации
веб приложения
Причины низкой производительности1
2
3
4
5
6
11. 111
33
1
Front end app server
RHEL 6.5, IBM WS 8.5
2 Nginx
RHEL 6.5
3
Back end app server
RHEL 6.5, IBM WS 8.5
2 111
33
2
RAID 5
60 GB
PROD DR
Oracle DB Oracle DB
Heartbeat VLAN
Balance
VLAN
Balance
VLAN
Servers
VLAN
Servers
VLAN
Oracle Data Guard
HW Load Balancer
RAID 5
60 GB
Web&AppTierDBTier
Диаграммы
развертывания
12. Причины низкой
производительности
Организационные - священная война между контент-
менеджерами, маркетингом и эксплуатацией
Технологические - узкие места производительности
веб сервера, сервер приложения и базы данных
Прикладные – некачественный программный код
14. Основные факторы,
влияющие на
производительность
Объём контента в странице
Географическое расположения, тип сети (Lan,
wifi) пользователя
Время рендеринга страницы в браузер
Технологические или системные узкие места1
2
3
4
Количество вызовов для каждой страницы5
16. Определение узких мест
в ИС
Симптомы узких мест
Путем мониторинга системы1
2
Узкие места в ИС могут быть в3
1 Повышенное время отклика от сервера
2 Ошибки http (4хх, 5хх)
3 Высокая загрузка ЦП
4 Много открытых соединений
5 Утечки памяти
1 Веб серверах
3 Сервере базы данных
2 Сервере приложения
3 Ширине канала связи
17. Основные проблемы на
сайте Сбербанка
Много неоптимизированных изображений в
страницах
Не сгруппированные по страницам толстые
JS и CSS файлы
Большая нагрузка на сервере приложений и
контент сервере, а также thread lock
Некоторые widget`ы загружали больше 3х
картинок сразу для адаптивности сайта
Большие hit rate в основных страницах
сайта, hit > 175
1
2
3
4
5
18. Основные проблемы на
сайте Сбербанка
Встроенная геолокализация на основе
данных из RDBMS
Много застрявших (stuck) соединений в БД
Targetting анонимных пользователей через
Google аналитику
Низкая пропускная способность HW load
balancer
Обработка бизнес логики на клиентской
стороне
Высокая нагрузка на CPU (cpu burning) в веб
серверах
6
7
8
9
10
11
19. Оптимизация веб сервера
В первый день войны
Уменьшали уровень сжатия файлов до 6,
gzip_comp_level 6
Оставляли уровень логирования на error
Увеличили количество кэшированных
метаданных файлов (open_file_cache max=60000)
Загрузили все статические ресурсы в RAM
DISK, у нас не было memcache
Доставка заранее сжатых gzip файлов
Все изображения для landing page (35) положили
в web server Nginx
1
2
3
4
5
6
27. Почему не кэшировать
всю страницу? Почему?
Сайт динмаический отобразил курс валюты,
котировки для всех территориальных банков
Пользовательская персонализация widget`ов не
позволяет кэшировать 1/3 страницы
28. Оптимизация веб сервера
Поддержка WebP формата
Создаем версию каждого изображения для
формата webp
Определяем версия браузера посетителя и
раздаем изображения
2
1
29. Оптимизация на стороне
клиента
Client Side должен заниматься только
отображением данных
Гибридный подход для рендеринга страницы1
2
Удалили лишних сортировок или фильтраций
данных на клиенте
3
1
2
Группировали css, js файлы в одном по
группам страницы, чтобы размер файлов
не сильно увеличилось
4
Часть widget рендерить в браузере и часть в backend (JSP)
Гибридный подход уменьшает нагрузки на browser
30. Оптимизация на стороне
клиента
Не вызывать rest сервис с параметром
currentdate time, результат такого запроса не
кэшируется
5
Избавиться от микроатомарных вызов
сервисов, использовать монолит-сервис для
получения всех данных для одного widget
6
31. Оптимизация на стороне
Middleware
Особое внимание при проектировании REST сервиса
REST сервисы будут доступны из internet
Единый дата сервис для получения данных из
всех справочников через параметр REST
сервиса - не лучший вариант
Каждый REST сервис должен проверять
входные параметры на null, если все параметры
со значениями null, мы не возвращаем данные
33. Оптимизация на стороне
Middleware
Кэшировать результат вызова идемпотентных
сервисов
Пользуйтесь CPU L1-L3 cache эффективно
Пользуйтесь offheap ОЗУ, когда массивы данных
большие
Пользуйтесь высокопроизводительным Stax или
VTDXML на месте DOM или SAX
Применяйте единый framework для логирования или
SL4j фасад
34. Оптимизация на стороне
Middleware
Увеличивайте время сканирования изменения на
log4j2 или logback.xml
Пользуйтесь профилированием для выявления и
устранения блокировки
Конфигурируйте сервер приложения
35. Оптимизация Базы
данных
Выделить справочники для кэширования, например
сущность «Регион», «КЛДР» или «Шаблон страницы»
Настройка Cache (Oracle Result Cache)
alter table TABLE_NAME RESULT_CACHE(MODE
FORCE)
alter table TABLE_NAME cache
Alter table emp storage (buffer_pool Keep)
36. Оптимизация Базы
данных
Oracle Database change notification
Получить уведомление об DML и DDL операции в
объектах базы данных
Доступно с релиза 11g
Хорошо подходит для очистки или обновления
кэша в middleware
37. Уровень кэширования
на портале Сбербанка
Кэширование
статических
ресурсов в Nginx
Кэширование
шаблонов
страницы для
портала
Кэширование
результатов
вызова backend
сервиса
Кэширование
статических
ресурсов на
контент сервере
Кэширование
hibernate l2
Кэширование
таблицы и
результатов SQL
запроса в БД
38. Итоги
27.01.15 03.02.15 05.02.15 13.02.15
Максимальное количество RPS
791 831 1032 1773
Требования 886
Полное отображение страницы (в секундах)
3.3 3 2.2 2.7
Требования 3
40. Заключения
ü Необходимо мониторить ИС и анализировать
симптомы низкой производительности.
ü Необходимо анализировать нагрузки систем.
ü Определить и оптимизировать наиболее
подверженные нагрузке участки.
ü Так же очень важно - это понимание
архитектуры своей системы