JS Fest 2019. Игорь Березин и Николай Крещенко. Эволюция архитектуры многогра...JSFestUA
За 3 года существования, “Koyfin” претерпел множество изменений.
Проект прошел путь от MVP до сложной системы сбора и обработки большого количества финансовых данных с десятками микросервисов и тоннами логики. Как жить, когда проект содержит огромное количество репозиториев, микросервисы отправляют и читают из шины тысячи разношерстных сообщений в минуту и кажется, что от попыток за всем уследить скоро взорвется голова? Как поддерживать консистентность, скорость, отказоустойчивость и при этом сохранять гибкость?
Мы рассмотрим с Вами основные проблемы, с которыми мы столкнулись, и поделимся результатами творческих мук в поиске их решения. Расскажем об инструментах и техниках, которые помогают нам каждый день
JS Fest 2019. Игорь Березин и Николай Крещенко. Эволюция архитектуры многогра...JSFestUA
За 3 года существования, “Koyfin” претерпел множество изменений.
Проект прошел путь от MVP до сложной системы сбора и обработки большого количества финансовых данных с десятками микросервисов и тоннами логики. Как жить, когда проект содержит огромное количество репозиториев, микросервисы отправляют и читают из шины тысячи разношерстных сообщений в минуту и кажется, что от попыток за всем уследить скоро взорвется голова? Как поддерживать консистентность, скорость, отказоустойчивость и при этом сохранять гибкость?
Мы рассмотрим с Вами основные проблемы, с которыми мы столкнулись, и поделимся результатами творческих мук в поиске их решения. Расскажем об инструментах и техниках, которые помогают нам каждый день
«Дорожная сеть в графовой базе данных Neo4j» — Вадим Шашенко, 2ГИС2ГИС Технологии
В своем докладе я расскажу, почему мы выбрали графовую базу данных Neo4j для проверки дорожного графа городов России (все населенные пункты с населением больше 300 000 жителей). Основные задачи, которые мы решаем средствами Neo4j — это проверки на связность и доступность проезда.
Опорные пункты доклада:
— SQL против графовых баз данных;
— обзор графовой базы данных neo4j;
— архитектура решения, в котором используется графовая БД;
— выполнение алгоритмов на графе в условиях его частых изменений.
В основе доклада лежат результаты работы над проектом «Fiji». Это внутрикорпоративная система, которая позволяет штатным картографам 2ГИС создавать, хранить и экспортировать карту во внешние продукты: онлайн-, десктоп- и мобильную версии 2ГИС.
Александр Киракозов "Архитектура загрузчика Яндекс.Диска"Yandex
Каждый день на Яндекс.Диск заливается более десятка терабайт данных. Из доклада вы узнаете про то, как справиться с такой нагрузкой, и про другие интересные архитектурные особенности сервиса.
Catalyst IT is one of Australia's largest open source software houses. We are all about using the awesome array of tools at our disposal from the FOSS (Free and Open Source) spectrum.
In Nov 2012, Catalyst was engaged by a major Australian university to help them pioneer an Australian MOOC (Massive Open Online Course) application - Open2Study.com
From the outset, the application was to be hosted on AWS (Amazon Web Services). Catalyst had experience with applications on AWS but the scale and business requirements of Open2Study meant there was a lot for us to learn and master throughout the build and deployment.
The application is a customised extension of Drupal, Moodle and simpleSAMLphp.
Moodle is an open source LMS (Learning Management System)
Coming from a background of deployment onto both physical and virtual hardware, Catalyst was used to working within the confines of various linux environments.
Building and deploying our application into a full AWS environment gave us a great opportunity to get to grips with the power and challenges associated with Amazon's infrastructure-as-a-service offering.
«Дорожная сеть в графовой базе данных Neo4j» — Вадим Шашенко, 2ГИС2ГИС Технологии
В своем докладе я расскажу, почему мы выбрали графовую базу данных Neo4j для проверки дорожного графа городов России (все населенные пункты с населением больше 300 000 жителей). Основные задачи, которые мы решаем средствами Neo4j — это проверки на связность и доступность проезда.
Опорные пункты доклада:
— SQL против графовых баз данных;
— обзор графовой базы данных neo4j;
— архитектура решения, в котором используется графовая БД;
— выполнение алгоритмов на графе в условиях его частых изменений.
В основе доклада лежат результаты работы над проектом «Fiji». Это внутрикорпоративная система, которая позволяет штатным картографам 2ГИС создавать, хранить и экспортировать карту во внешние продукты: онлайн-, десктоп- и мобильную версии 2ГИС.
Александр Киракозов "Архитектура загрузчика Яндекс.Диска"Yandex
Каждый день на Яндекс.Диск заливается более десятка терабайт данных. Из доклада вы узнаете про то, как справиться с такой нагрузкой, и про другие интересные архитектурные особенности сервиса.
Catalyst IT is one of Australia's largest open source software houses. We are all about using the awesome array of tools at our disposal from the FOSS (Free and Open Source) spectrum.
In Nov 2012, Catalyst was engaged by a major Australian university to help them pioneer an Australian MOOC (Massive Open Online Course) application - Open2Study.com
From the outset, the application was to be hosted on AWS (Amazon Web Services). Catalyst had experience with applications on AWS but the scale and business requirements of Open2Study meant there was a lot for us to learn and master throughout the build and deployment.
The application is a customised extension of Drupal, Moodle and simpleSAMLphp.
Moodle is an open source LMS (Learning Management System)
Coming from a background of deployment onto both physical and virtual hardware, Catalyst was used to working within the confines of various linux environments.
Building and deploying our application into a full AWS environment gave us a great opportunity to get to grips with the power and challenges associated with Amazon's infrastructure-as-a-service offering.
Создание облачных приложений по модели PaaS (Platform as Service) позволяет сосредоточиться на решении задач по созданию программного обеспечения, вместо того чтобы беспокоиться о базовой инфраструктуры. Но иногда построение комплексного решения или интеграция с существующими системами требуется больше контроля, чем предоставляет модель PaaS, требуется контроль над инфраструктурой, т.е. IaaS (Infrastructure as Service). В рамках доклада будут рассмотрены основные архитектурные особенности Windows Azure, которые необходимо учитывать при миграции приложения в PaaS модели, а так же новые инфраструктурные возможности Windows Azure, такие как виртуальные машины и виртуальные сети, которые позволяют использовать IaaS модель миграции.
Презентация технологии веб-кластеров
Основные задачи, которые решает веб-кластер:
Обеспечение высокой доступности сервиса (так называемые HA - High Availability или Failover кластеры)
Масштабирование веб-проекта в условиях возрастающей нагрузки (HP - High Performance кластеры)
Балансирование нагрузки, трафика, данных между несколькими серверами
Создание целостной резервной копии данных для MySQL
The new realise of one Microsoft flagman product is approaching – SQL Server. New realizes of SQL Server are not so often, that is why every new realise causes a splash of society activities and wide discussions. We already know the content of the new realise and the product is going through the last stages of testing before the launch. Let’s look, what new things wull bring us new SQL Server.
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"Technopark
Технопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных".
Лекция №10 "Нереляционное решение в области баз данных — NoSQL". Лектор - Станислав Ступников.
Вводная часть посвящена определению и истории развития концепции NoSQL. Даются характеристики, рассказывается о способах использования. Рассматриваются виды NoSQL БД, теоретические основы NoSQL, а в конце лекции обсуждаются недостатки NoSQL-решений, а также проводится сравнение разных NoSQL-решений.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаковMaxim Zinal
Какой должна быть NoSQL СУБД эпохи облаков? Что такое IBM Cloudant и Apache CouchDB?
Как они связаны друг с другом, и есть ли польза для Open Source проекта от коммерческого облачного сервиса на его основе?
This document discusses Azure Backup (Recovery Services) and provides an overview of its key concepts and usage scenarios. Azure Backup allows backing up of on-premises servers and virtual machines to Azure storage. It uses storage vaults mapped to Azure Blob storage to store backup recovery points. The Azure Backup Agent installs on machines to perform backups and restores and manage the backup schedule. Site Recovery allows disaster recovery between on-premises and Azure environments, or between two on-premises sites. References and contacts are provided for further information.
This document provides an overview of Microsoft Azure Media Services for encoding, packaging and streaming media. It describes Media Services' support for common input/output formats and codecs for video and audio encoding. Tasks define processing instructions for assets containing media files and associated metadata. Jobs coordinate task execution across processors. Streaming can be static via packaged files or dynamic via just-in-time encoding. Pricing is based on data processed and reserved units for parallel tasks or streaming bandwidth.
Command line tools like PowerShell, Bash, and Bash allow you to manage Azure resources and perform operations through simple commands and syntax. These tools provide a unified standard to manage resources across platforms using REST APIs under the hood. SDKs act as wrappers that make REST API usage easier from various programming languages, while command line tools allow managing subscriptions, storage accounts, virtual machines, databases, and other resources through intuitive verbs and parameters. PowerShell cmdlets support all typical PowerShell features like variables, indexing, filtering and properties to provide full control and automation capabilities.
IaaS: Virtual Machines provides an overview of virtual machines on the Microsoft Azure platform. It discusses that virtual machines can be used to deploy various application types like web applications, services, and websites. It also describes the different sizes and configurations of virtual machines available on Azure, including their CPU, memory, disk space allocations. The document outlines key considerations for using virtual machines like storage, availability sets, service level agreements and licensing.
This document discusses caching services available on Windows Azure, including content delivery networks (CDNs) and caching. It describes how CDNs deliver content closer to end users, and caching stores frequently accessed data closer to Azure applications. Caching on Azure can be done through dedicated roles, co-location with applications, or shared caching services. The document outlines characteristics of CDNs like dedicated endpoints and worldwide datacenters. It also provides examples of caching configuration and workflows in Visual Studio and code samples for putting and getting items from the cache.
Windows Azure Active Directory provides identity and access management in the cloud. It acts as an identity provider and security token service, supporting protocols like WS-Federation, OAuth 2.0 and SAML 2.0. It offers single sign-on for Azure applications, manages users and groups, and can integrate with on-premises Active Directory. Benefits include not needing to implement your own authorization and avoiding single points of failure compared to Active Directory Federation Services.
This document discusses different versioning strategies for cloud services. It presents strategies for versioning production and staging environments, isolating environments for different roles like QA and developers, using separate subscriptions to isolate environments and billing, and approaches for versioning SQL databases and WCF contracts. The key strategies covered include using slots or instances to separate environments, federating SQL databases by tenant or version, and supporting multiple versions of WCF contracts through single or multiple endpoints. References are provided for further reading on managing cloud services, versioning SQL databases, and WCF versioning strategies.
This document compares different approaches for performing zero downtime upgrades of applications hosted on Microsoft Azure: Web Deploy, VIP-swap, load balanced endpoints, and Traffic Manager. Web Deploy allows automatic updates of web roles with minor changes but requires an RDP connection. VIP-swap uses DNS swapping to test upgrades on a staging environment with fast redirection. Load balanced endpoints provides easy scaling but requires manual upgrades and running multiple versions simultaneously. Traffic Manager also uses DNS for isolated testing and fast redirection between environments, but incurs additional costs.
This document provides an overview of Microsoft Azure Service Bus and compares it to Azure Queues. Service Bus allows applications and services to communicate over reliable messaging even if they are not connected all the time. It supports queuing and publish/subscribe capabilities. Service Bus Queues offer more features than Azure Queues, including larger message sizes, unlimited time-to-live for messages, and publish/subscribe capabilities using topics and subscriptions. The document also describes how to configure applications to use Service Bus Queues and Relay for communication between apps and services.
The document discusses Windows Azure Drive, which allows mounting cloud storage as a virtual disk. It provides examples of uploading files to Azure blob storage using page blobs. There are different modes for accessing the drive, including lease mode and snapshot mode. The workflow involves mounting the drive, handling exceptions by remounting from a snapshot, and unmounting. The document compares storage emulators to Azure storage services and provides a reference to learn more about Windows Azure Drive.
This document discusses SQL Azure, Microsoft's relational database service. It describes the logical and physical structure, including that databases are organized at the subscription and server level, and SQL Azure uses sharding across SQL Server instances. Key points are that each database is limited to 150GB in size, there is a built-in firewall, and data is committed using a quorum-based scheme across replicas. Migration options like SSIS and the Generate Script Wizard are also outlined.
This document provides an overview of Microsoft Azure storage services, including tables, queues, and blobs. It describes the common features like access via REST API and automatic replication. Tables store structured non-relational data with mandatory fields like partition and row keys. Queues provide asynchronous message processing between roles. Blobs support block and page objects at different maximum sizes, stored within containers. Code examples demonstrate retrieving references and contexts for tables, queues, and blobs.
This document provides an overview of application deployment and services on the Windows Azure platform. It discusses deploying applications as virtual machines, web sites, or cloud services running Java, PHP, Linux, or ASP.NET. Tools include the Azure SDK and subscriptions for SQL databases, storage, queues and blobs. The project structure involves web and worker roles. The deployment workflow includes building, packaging, uploading and loading roles to the staging or production environments. References for introductions and step-by-step guides on Azure are also provided.
SQL Azure Federations allow horizontal scaling of databases in SQL Azure. Federations partition database tables across multiple database servers or shards. Each federation member contains a subset of rows from a table based on the federation key value. The root member contains metadata and global data while federation members provide physical data separation and can have their own schemas. However, federations have limitations such as requiring an INT, BIGINT, UNIQUEIDENTIFIER or VARBINARY distribution key and not supporting NULL values or IDENTITY properties for federated columns.
This document discusses PowerShell cmdlets for managing cloud resources on Microsoft Azure. It provides an overview of development tools and SDKs for Azure, describes how to use REST APIs and SDKs to manage resources from various devices and platforms. It also outlines several command line tools including PowerShell for Windows, Bash for Linux and Mac, and how they can be used to manage subscriptions, storage accounts, virtual machines, databases and other Azure resources through cmdlets. Syntax examples and references are provided for getting started with the PowerShell cmdlets.
The document discusses Windows Azure Drive, which allows mounting cloud storage as a disk volume. It describes uploading files to Azure blob storage by writing them in pages. It also covers how to work with Azure Drive, including mounting, unmounting, and retrying operations using snapshots if an exception occurs. The drive can be mounted in read-only or read-write modes, and files can be accessed directly as if they were on a local disk.
3. ОБЩИЕ СВЕДЕНИЯ
Доступ через REST API;
http://<storage account>.table.core.windows.net/<table>
http://<storage account>.queue.core.windows.net/<queue>
http://<storage account>.blob.core.windows.net/<container>/<blob>
Репликация;
Автоматическая репликация в 3-х экземплярах.
Локальная эмуляция;
Эмуляция возможна с некоторыми ограничениями.
CDN.
4. ПОДПИСКА WINDOWS AZURE
Подписка
Размер сообщения:
64 КБ.
Облачные Два типа:
сервисы • Блочные;
• Страничные.
Размер записи: Размер блочного типа:
Базы данных 1 МБ 200 ГБ
SQL Azure
Количество свойств: Размер страничного типа:
252 1 ТБ
Storage Account
(100 TБ)
Tables Queues Blobs
5. ТАБЛИЦЫ
NoSQL хранилище структурированных не
реляционных данных;
Записи в таблице (сущности) не описываются
определенной схемой;
Обязательные поля:
PartitionKey;
RowKey;
Timestamp.
Два варианта описания сущности:
Атрибут DataServiceEntity + описание обязательных полей;
Наследование класса TableServiceEntity.
6. ОЧЕРЕДИ
Очередь сообщений доступная через REST API;
Наиболее частые примеры использования:
Запись сообщений для последующей асинхронной
обработки;
Взаимодействие между ролями.
Worker-роль
Web-роль
Очередь Worker-роль
Web-роль
Worker-роль
7. БЛОБЫ
Object-ориентированное хранилище;
Два типа:
Блочные (максимальный размер – 200 Гб);
Страничные (максимальный размер – 1 Тб).
Блобы хранятся в контейнерах:
Каждый Storage Account может иметь неограниченное
число контейнеров;
Каждый контейнер может иметь неограниченное число
блобов.
Возможность задать MIME-type содержимого.
8. ПРИНЦИП РАБОТЫ
var storageAccount = CloudStorageAccount.Parse(
ConfigurationManager
.ConnectionStrings[ConnectionStringSetting]
.ConnectionString);
var tableClient = storageAccount.CreateCloudTableClient();
var queueClient = storageAccount.CreateCloudQueueClient();
var blobClient = storageAccount.CreateCloudBlobClient();
Tables:
var context = tableClient.GetDataServiceContext();
Queues:
var queue = queueClient.GetQueueReference(queueAddress);
Blobs:
var container = blobClient.GetContainerReference(containerName);
var pageBlob = container.GetPageBlobReference(blobName);
9. ССЫЛКИ И МАТЕРИАЛЫ
How to Use the Table/Queue/Blob Storage Service
https://www.windowsazure.com/en-us/develop/net/how-to-
guides/table-services/
https://www.windowsazure.com/en-us/develop/net/how-to-
guides/queue-service/
https://www.windowsazure.com/en-us/develop/net/how-to-
guides/blob-storage/
Differences between the Storage Emulator and Windows
Azure Storage Services
http://msdn.microsoft.com/en-us/gg433135