Advanced Technology Days 18. i 19. studenog 2015., Cinestar Arena Centar
Kako odlučiti koji Azure servis koristiti u kojoj situaciji? Bruno Kovačić
Choices…
Microsoft Azure Services Data & Storage Web & Mobile Compute SQL Database App Service Virtual Machines Media & CDN Media Services CDN Developer Services DocumentDBRedis Cache Cloud ServicesBatchService Fabric Networking Virtual NetworkExpressRoute Traffic Manager StorSimple Search Storage Identity & Access Azure Active Directory Multi-Factor Authent API Management Notification Hubs Mobile Engagement Visual Studio Online Application Insights Management SchedulerAutomation Operational InsightsKey Vault Analytics & IoT HDInsight Machine Learning Stream AnalyticsData FactoryEvent Hubs Hybrid Integration BizTalk ServicesService BusBackupSite Recovery Web AppMobile AppAPI AppLogic App BlobsTablesQueuesFiles Marketplace … Data Lake Data Warehouse RemoteAppDNS Application Gateway
Building an app
Choose language Fully supported ‐.NET ‐ PHP ‐ Python ‐ Node.js ‐ Java
Choose development model
On Premises You scale, make resilient and manage Infrastructure (as a Service) Storage Servers Networking O/S Middleware Virtualization Data Applications Runtime Managed by vendor You scale, make resilient & manage Platform (as a Service) Scale, resilience and management by vendor You manage Storage Servers Networking O/S Middleware Virtualization Applications Runtime Data Software (as a Service) Storage Servers Networking O/S Middleware Virtualization Applications Runtime Data Storage Servers Networking O/S Middleware Virtualization Data Applications Runtime Scale, resilience and management by vendor
IaaS Virtual machines (classic) Virtual machines (resource manager)
VM Extensions Installable components to customize VM instances Enable various DevOps scenarios Can be added, updated, disabled or removed at any time Managed via portal, PowerShell and Management APIs 10 Microsoft Azure
PaaS Cloud Services App Service
Cloud services Stateless Packaged A container of related service roles Web Roles Worker Roles
App Service – Web apps Cheaper, more flexible WebJobs Scalability? No evelated startup tasks
Cloud services vs Web apps Stateless VM access Granular scaling Elevated permissions Emulator needed Stateful No VM access No independent scaling No elevated permissions No direct Azure dependency
App Service – Mobile apps Data Auth Notifications Merging into Web Apps
App Service - API apps API + metadata (Swagger) API gallery
More API? API Management Documentation Console Monitoring Formats Multiple backends Throttling, quota
DATA
Relational databases SQL Server on IaaS Azure SQL Database Azure SQL Data Warehouse ‐ MPP
SQL Database vs SQL Server Managed HA Not full TSQL No SQL Agent* 500 GB Connection throttling Not managed Manual HA possible Full TSQL SQL Agent No limit
Applications communicate directly with SQL Database using TDS. How It Works – Architecture of the Service Client Layer PHP WCF Data Services SQL Server Applications and Tools ODBCADO.NET Tabular Data Stream (TDS)
Gateway between Client layer and Platform layer. How It Works – Architecture of the Service Client Layer PHP WCF Data Services SQL Server Applications and Tools ODBCADO.NET Tabular Data Stream (TDS) Provisioning Billing and Metering Connection Routing TDS+SSL
Includes physical servicers and services that support the Services layer. Client Layer PHP WCF Data Services SQL Server Applications and Tools ODBCADO.NET Tabular Data Stream (TDS) How It Works – Architecture of the Service Provisioning Billing and Metering Connection Routing TDS+SSL
Administration of the physical HW and OS. Client Layer PHP WCF Data Services SQL Server Applications and Tools ODBCADO.NET Tabular Data Stream (TDS) How It Works – Architecture of the Service Provisioning Billing and Metering Connection Routing TDS+SSL
Client Layer PHP WCF Data Services SQL Server Applications and Tools ODBCADO.NET Tabular Data Stream (TDS) Provisioning Billing and Metering Connection Routing TDS+SSL How It Works – Architecture of the Service Microsoft Azure SQL Database PaaS
Scaling relational DBs SQL Server in VM – limits of SQL Server SQL Database ‐ 500 GB ‐ ElasticScale
No SQL Azure Storage Tables ‐ Massively scalable, cheap ‐ Key-value store ‐ (PartitionKey, RowKey) DocumentDB ‐ Born in the cloud ‐ Rich querying (SQL)
…more No SQL MongoDB Cassandra Hbase Oracle MySQL
Azure Search Also type of data storage Data is stored in indexes Autocomplete Search Filtering Sorting
Cache
Redis Cache Managed Up to 530GB HA
Integration
App Service – Logic Apps Automate processes Integrate different apps Visual tool
Service bus Enterprise level bus Connects everything
Networking
Virtual network Hybrid infrastructure ‐ Point to site ‐ Site to site ExpressRoute
Scale, HA
CDN Easy to use CDN Automatic integration with Storage, App Service and Cloud Service
Traffic manager Traffic distribution Automatic failover A/B testing North Europe US West North America Europe
Backup
Virtual machines Azure Backup vault Automated Easy to configure
SQL Database Automated backup Point in time restore
Web apps Scheduled or manual App, config and related databases Easy restore What about Cloud Services?
Analytics
Application Insights Google Analytics for your apps Text file logs in the cloud? Integration with System.Diagnostics, log4net, nLog Automated WebAPI logging