Atamas diploma

16
1/16 Онлайн среда разработки для языка Котлин Автор: Атамась Семён Михайлович Руководитель: Бреслав Андрей Андреевич, JetBrains Санкт-Петербургский Академический Университет 27 мая 2015 г. Атамась Семён Михайлович Онлайн среда разработки для языка Котлин

Transcript of Atamas diploma

1/16

Онлайн среда разработки для языка Котлин

Автор: Атамась Семён МихайловичРуководитель: Бреслав Андрей Андреевич, JetBrains

Санкт-Петербургский Академический Университет

27 мая 2015 г.

Атамась Семён Михайлович Онлайн среда разработки для языка Котлин

2/16

Онлайн среды разработки

Исполнение кода в браузереДемонстрация возможностей языкаПримеры:

jsfiddle.net - HTML/CSS/JStry.ceylon-lang.org - Ceylontutorialspoint.com - различные языки. . .

Атамась Семён Михайлович Онлайн среда разработки для языка Котлин

3/16

Цель

Обновить Kotlin Web Demo

Атамась Семён Михайлович Онлайн среда разработки для языка Котлин

4/16

Задачи

Обновление приложенияНовый дизайнПоддержка многофайловых проектовПоддержка junit

Масштабируемая архитектураАвтоматизированная система публикации приложенияАвтоматическое масштабирование

Атамась Семён Михайлович Онлайн среда разработки для языка Котлин

5/16

Старая архитектура

Сервер

Динамическая

Информация

Статическая

информация

Информация

избазы

данных

Атамась Семён Михайлович Онлайн среда разработки для языка Котлин

6/16

Обновление сервера: новая архитектура

Внешний

сервер

Статическая

информация

Информация

избазы

данных

Внутренний

сервер

КотлинВнутренний

сервер

Котлин

Внутренний

сервер

Котлин

Пользователи

Атамась Семён Михайлович Онлайн среда разработки для языка Котлин

7/16

Обновление клиентского кода

Добавлено понятие проектаРабота с локальным хранилищемИзолированное исполнение JS кодаОтображение результатов тестирования

Атамась Семён Михайлович Онлайн среда разработки для языка Котлин

8/16

Обновление сервера: запуск Junit тестов

Тесты запускаются в отдельном процессеВывод в формате JSONJava Security Manager

Привелигированный код

flПользовательский

код

Сервер

Процесс исполнения

Запрос О

твет

Запуск

процесса [{

file:"Hello.kt",

class:"Hello"

...

}]

Атамась Семён Михайлович Онлайн среда разработки для языка Котлин

9/16

Устройство автоматического масштабирования

nginx

app A app B

MySQL

...

ELB A ELB B

ASG

DeveloperUsers

try.kotlinlang.orgprivate url

app A app Aapp B app B

Атамась Семён Михайлович Онлайн среда разработки для языка Котлин

10/16

Автоматизация процесса

Автоматическое развёртывание инфраструктуры наAmazonАвтоматическая публикация приложенияАвтоматический старт внутренних серверовСтатистика:

3 git-репозитория4 docker-контейнера50KB конфигурационных скриптов

Атамась Семён Михайлович Онлайн среда разработки для языка Котлин

11/16

Метрики

Если потребление CPU > 80% в течении 2 минут

То увеличь количество компьютеров в 2 раза

Жди 1 минуту перед следующим масшатбированием

Если потребление CPU 6 50% в течении часа

То уменьши количество компьютеров на 1

Жди 5 минут перед следующим масшатбированием

Атамась Семён Михайлович Онлайн среда разработки для языка Котлин

12/16

Результаты нагрузочного тестирования

1 машина - 400 пользователейЗапуск новой машины - 3 минутыВосстановление машины после перегрузки - одна минута

Атамась Семён Михайлович Онлайн среда разработки для языка Котлин

13/16

Результаты

Приложение опубликовано на try.kotlinlang.orgПорядка 1000 пользователей и 4000 просмотровПротестированная масштабируемая архитектураприложенияАвтоматизированная схема публикации и обновленияприложенияПоддержка JUnit и многофайловых проектов в приложении

Атамась Семён Михайлович Онлайн среда разработки для языка Котлин

14/16

Спасибо за внимание

Спасибо за внимание!

Атамась Семён Михайлович Онлайн среда разработки для языка Котлин

15/16

Направления развития: Kotlin Koans

Атамась Семён Михайлович Онлайн среда разработки для языка Котлин

16/16

Направления развития: новые виды файлов

Атамась Семён Михайлович Онлайн среда разработки для языка Котлин