*** First published on MSDN on Jan 05, 2017. This post had been edited for length to comply with the new format. The original post is available for a limited time. ***
Welcome to the AzureCAT Guidance blog! What is AzureCAT? CAT stands for "Customer Advisory Team." We work with customers who act as feedback Advisors back to our product teams, by working on engagements with those customers and building ground-breaking solutions! We then have unique lessons we've learned from those solutions. And, thus, we publish them back to you to show you these insights, architectures, lessons learned, best practices, and emerging patterns, with Microsoft products, like Azure, SQL Server, Power BI, Visual Studio (and dev tools), and more!
The CATalogue
Today's post is our gallery of AzureCAT content, lovingly referred to as the CATalogue. Scroll down to find a wealth of resources. Ask us any questions in the comments. Let us know if you find these resources helpful! This blog will cover what's new with our content at AzureCAT:
We publish our Whitepapers and E-books on Azure.com:
The SQLCAT content can be found over at the SQLCAT blog:
We have a team dedicated to SAP workloads on Microsoft technologies:
And AzureCAT also includes our sub-team, patterns & practices. They own and run the Azure Architecture Center. Their content can be found here:
Table of Contents
- patterns & practices
- Reference Architectures
- Cloud Design Patterns
- Best Practices for Cloud Applications
- Checklists
- Design for Resiliency
- Scenario Guides
- Videos
- AzureCAT Guidance
- Technical Customer Profiles
- How To Guides
- Conceptual Articles
- Troubleshooting Articles
- Templates
- Code Samples
- Tools
- Announcements
- SQLCAT Guidance
- Technical Customer Profiles
- How To Guides
- Conceptual Articles
- Explains
- Troubleshooting Articles
- Announcements
- Why Blog?
Let's dig into our current content!
=========================
Azure Architecture Center (the team owns and runs this site)
Windows VM workloads:
- Single VM (Windows)
- Load balanced VMs (Windows)
- N-tier application (Windows)
- Multi-region application (Windows)
Linux VM workloads:
- Single VM (Linux)
- Load-Balanced VMs (Linux)
- N-tier application (Linux)
- Multi-region application (Linux)
Hybrid network:
- Choose a hybrid network
- VPN
- ExpressRoute
- ExpressRoute with VPN failover
Network DMZ:
- DMZ between Azure and on-premises
- DMZ between Azure and the Internet
- Highly available NVA
Identity management:
- Integrate on-premises AD with Azure AD
- Extend AD DS to Azure
- Create an AD DS forest in Azure
- Extend AD FS to Azure
Managed web application:
- Basic web application
- Improved scalability
- Multi-region deployment
- Availability patterns
- Health Endpoint Monitoring
- Queue-Based Load Leveling
- Throttling
- Data Management patterns
- Cache-Aside
- CQRS
- Event Sourcing
- Index Table
- Materialized View
- Sharding
- Static Content Hosting
- Valet Key
- Design and Implementation patterns
- Compute Resource Consolidation
- External Configuration Store
- Leader Election
- Pipes and Filters
- Runtime Recongifuration
- Messaging patterns
- Competing Consumers
- Priority Queue
- Scheduler Agent Supervisor
- Management and Monitoring patterns
- Performance and Scalability patterns
- Resiliency patterns
- Circuit Breaker
- Compensating Traction
- Retry
- Security patterns
- Federated Identity
- Gatekeeper
Best Practices for Cloud Applications
- API design
- API implementation
- API security
- Autoscaling
- Background jobs
- Caching
- Content Delivery Network (CDN)
- Data partitioning
- Monitoring and diagnostics
- Naming conventions
- Retry guidance for specific services
- Transient fault handling
- Availability checklist
- Resiliency checklist
- Scalability checklist
Design for Resiliency
- Designing resilient applications
- Resiliency checklist
- Failure mode analysis
Additional guidance:
- Disaster recovery
- Disaster recovery and high availability
- High availability
- High availability checklist
- Recovery from data corruption or accidental deletion
- Recovery from local failures
- Recovery from a region-wide service disruption
- Recovery from on-premises to Azure
Scenario Guides
Run Elasticsearch on Azure:
- Elasticsearch on Azure - Get started
- Tune data ingestion performance
- Tune data aggregation and query performance
- Configure resilience and recovery
- Create a performance testing environment
- Implement a JMeter test plan
- Deploy a JMeter JUnit sampler for testing
- Run the resiliency tests
- Run the performance tests
Azure for AWS Professionals:
- Introduction to Azure for AWS experts
- Azure and AWS services comparison
Identity Management for Multitenant Applications:
- Manage Identity in Multitenant Applications - Introduction
- The Tailspin scenario
- Authentication using Azure AD and OpenID Connect
- Claims-based identity
- Tenant sign-up
- Application roles
- Role-based and resource-based authorization
- Secure a backend web API
- Cache access tokens
- Client assertion
- Use Azure Key Vault to protect application secrets
- Federate with a customer's AD FS
Additional Scenario Guides:
- Migrate from Cloud Services to Service Fabric
- Developing big data solutions
Videos
=========================
AzureCAT Guidance
"Hands-on solutions, with our heads in the Cloud!"
Service Fabric
- ABBYY - Case Study | Blog
- Alaska Airlines - Case Study | Blog
- BMW - Case Study | Blog
- Citrix - Case Study | Blog
- D+H - Blog
- Digamore Entertainment - Case Study | Blog
- FunRock - Case Study | Blog
- Honeywell - Case Study | Blog
- Info Support & Fudura - Case Study | Blog
- Mesh Systems - Case Study | Blog
- P2ware - Case Study | Blog
- Proactima Solutions - Case Study | Blog
- Quorum Business Solutions - Case Study | Blog
- Schneider Electric - Case Study | Blog
- SiriusIQ - Case Study | Blog
- Societe Generale and Qarnot Computing - Case Study | Blog
- Solidsoft Reply - Case Study | Blog
- TalkTalk TV - Case Study | Blog
- Wolters Kluwer - Blog
- Zeiss Group (new; published on 1/25) - Case Study | Blog
SAP to Azure:
How-To Guides
Active Directory:
- How to Set Up Identity with Azure AD and Office 365 APIs (.NET)
App Service:
- Using Web API 2 with Entity Framework 6
- Add Models and Controllers
- Use Code First Migrations to Seed the Database
- Handling Entity Relations
- Create Data Transfer Objects (DTOs)
- Create the JavaScript Client
- Create the View (UI)
- Display Item Details
- Add a New Item to the Database
- Publish the App to Azure Azure App Service
- How to Provision ARM (.NET)
- How to use SQL Always Encrypted with Azure Web App Service
Application Insights:
- How to Monitor with Application Insights (.NET)
Automation:
- Deploy the Mobility service with Azure Automation DSC for replication of VM
- Azure Automation & Hybrid Cloud Management: Automating deployment of a VM in Amazon Web Services
Azure Portal:
- How to Set Up a Developer Environment (.NET)
- How to Monitor with Application Insights (.NET) (How to Monitor with Application Insights (Java)
Azure Resource Manager (ARM):
- ARM concepts in Azure Stack for the WAP Administrator – In-guest configuration with ARM, and technol...
- Creating and Connecting an ExpressRoute Circuit with Azure Resource Manager
- Simple deployment of a VM Scale Set of Linux VMs with a jumpbox
- Simple Cluster with ANSYS installed
- Simple VMSS Cluster with StarCCM+ installed
- Simple VMSS Cluster with Exa Powerflow installed
- Simple VMSS Cluster with OpenFOAM installed
- Simple VMSS Cluster with StarCCM+ installed
- Azure CentOS 6&7 HPC ARM Template
- Deploy a simple cluster with Open Source Software
- Deploy a Torque cluster
- Simple Cluster with DataSynapse installed
- How to Provision ARM (.NET)
Backup:
- Taking backup of encrypted Azure VMs with ADE (Azure Disk Encryption) using Azure Backup in OMS
Development Setup:
- How to Set Up a Developer Environment (.NET)
- How to Develop Modern Apps (.NET) (How to Develop Modern Apps (Java)
- How to Set Up Identity with Azure AD and Office 365 APIs (.NET)
- How to Set Up DevOps with Visual Studio Team Services (.NET)
- How to Provision ARM (.NET)
- How to Monitor with Application Insights (.NET)
DocumentDB:
- How to Set Up Identity with Azure AD and Office 365 APIs (.NET)
Event Hubs:
- How to store Event Hub events to Azure SQL Database
- How to read events off of Event Hubs from an IoT Hub with the Service Bus Explorer
IoT Hub:
- IoT Sample with Service Fabric and IoT Hub
- How to read events from an IoT Hub with the Service Bus Explorer
- IoT Sample with Service Fabric and Event Hubs
Key Vault:
- More Questions From Customers About SQL Server Transparent Data Encryption – TDE + Azure Key Vault
Redis Cache:
- How to Develop Modern Apps (.NET)
Service Bus:
- How to implement a partitioned SendBatch method for Azure Service Bus entities
- How to read events from an IoT Hub with the Service Bus Explorer
- How to create a Service Bus Namespace and an Event Hub using a PowerShell script
- How to create Service Bus queues, topics and subscriptions using a PowerShell script
- How to handle Service Bus Relay Services in a multi-tenant environment
Service Fabric:
- Using a custom Service Fabric configuration provider with ASP.NET Core
Site Recovery:
- Deploy the Mobility service with Azure Automation DSC for replication of VM
- Add Azure automation runbooks to recovery plans
SQL Data Warehouse:
- Azure SQL DW: How to move to a different region with restore from backup option
SQL Database:
- How to store Event Hub events to Azure SQL Database
Storage:
- How to Develop Modern Apps (.NET)
Stream Analytics:
- How to normalize incoming events in a Stream Analytics job
- How to find absence of signal in a Stream Analytics job
Virtual Machines (VMs):
- Implementing GlusterFS on Azure
- Taking backup of encrypted Azure VMs with ADE (Azure Disk Encryption) using Azure Backup in OMS
- ARM concepts in Azure Stack for the WAP Administrator – In-guest configuration with ARM, and technol...
- Simple deployment of a VM Scale Set of Linux VMs with a jumpbox
- Simple Cluster with ANSYS installed
- Simple VMSS Cluster with StarCCM+ installed
- Simple VMSS Cluster with Exa Powerflow installed
- Simple VMSS Cluster with OpenFOAM installed
- Simple VMSS Cluster with StarCCM+ installed
- SQL Server Availability Groups in Azure VM setup with AAD Domain Services
- Deploy the Mobility service with Azure Automation DSC for replication of VM
- How to Set Up a Developer Environment (.NET)
- How to Size SAP Systems Running on Azure VMs
Visual Studio Team Services:
- How to Set Up DevOps with Visual Studio Team Services (.NET)
Conceptual Articles
Azure Active Directory (AAD):
- Identity In Hybrid Cloud (Download Whitepaper) (new; added 4/10/17)
Azure Resource Manager (ARM):
- ARM concepts in Azure Stack for the WAP Administrator–Introduction Post
- ARM concepts in Azure Stack for the WAP Administrator – Troubleshooting IaaS in Azure Stack
- ARM concepts in Azure Stack for the WAP Administrator – Multi-tier applications
- ARM concepts in Azure Stack for the WAP Administrator – Packaging and publishing templates in Azure ...
- ARM concepts in Azure Stack for the WAP Administrator – Resource Deployment
- ARM concepts in Azure Stack for the WAP Administrator — Offers, Plans, and Subscriptions
- ARM concepts in Azure Stack for the WAP Administrator — Cloud Service Delivery
- Tool: ARM Template Checker for Microsoft Azure Stack
- New Azure PowerShell cmdlets for Azure Enhanced Monitoring
PowerShell:
- New Azure PowerShell cmdlets for Azure Enhanced Monitoring
Premium Storage:
- Where can I find documentation or information for SAP workloads on Azure?
- Azure Premium Storage is available for SAP workloads
SAP HANA:
- Backup guide for SAP HANA on Azure Virtual Machines
- SAP HANA Azure Backup on file level
- SAP HANA backup based on storage snapshots
- Overview and Architecture of SAP HANA on Azure (Large Instances)
- Infrastructure and Connectivity to SAP HANA on Azure (Large Instances)
- Install SAP HANA on SAP HANA on Azure (Large Instances)
- High Availability and Disaster Recovery of SAP HANA on Azure (Large Instances)
- Troubleshooting and Monitoring of SAP HANA on Azure (Large Instances)
SAP on Azure:
- Top 14 Updates and New Technologies for Deploying SAP on Azure
- Where can I find documentation or information for SAP workloads on Azure?
- More offers in SAP Cloud Appliance Library for Azure
- New Azure PowerShell cmdlets for Azure Enhanced Monitoring
- Azure Quickstart Templates for SAP
- Protecting SAP Systems Running on VMware with Azure Site Recovery
- Distribution Standard Application Benchmark for SAP cloud deployments released using Azure IaaS VMs
- How to Size SAP Systems Running on Azure VMs
- Top 10 Key Considerations for Deploying SAP Applications on Azure
- Azure Premium Storage is available for SAP workloads
Site Recovery:
- Protecting SAP Systems Running on VMware with Azure Site Recovery
SQL Data Warehouse:
- Migrating data to Azure SQL Data Warehouse in practice
- Azure SQL Data Warehouse loading patterns and strategies
- Choosing hash distributed table vs. round-robin distributed table in Azure SQL DW Service
SQL Database:
- Migrating from SQL Server to Azure SQL Database using Bacpac Files
- Determining Database Size in Azure SQL Database V12
- Azure SQL DB: Unexpected Database Maximum Size Limit
- Connect to Azure SQL Database V12 via Redirection
- Using Table Valued Parameters with Always Encrypted in Azure SQL Database
- Azure SQL Database Security Features
Storage:
- Parallel File Systems for HPC Storage on Azure
Virtual Machines:
- Parallel File Systems for HPC Storage on Azure
- Top 14 Updates and New Technologies for Deploying SAP on Azure
- Where can I find documentation or information for SAP workloads on Azure?
- More offers in SAP Cloud Appliance Library for Azure
- Azure Quickstart Templates for SAP
- Protecting SAP Systems Running on VMware with Azure Site Recovery
- Distribution Standard Application Benchmark for SAP cloud deployments released using Azure IaaS VMs
- How to Size SAP Systems Running on Azure VMs
- Top 10 Key Considerations for Deploying SAP Applications on Azure
Windows:
- SAP GUI is supporting Windows 10 as operating system
Troubleshooting Articles
Azure Resource Manager (ARM):
- ARM concepts in Azure Stack for the WAP Administrator – Troubleshooting IaaS in Azure Stack
SQL Database:
- Azure SQL DB: Unexpected Database Maximum Size Limit
Storage:
- Backing up a VLDB to Azure Blob Storage
Training
Azure Resource Manager:
- Azure Resource Manager Inside-Out
Templates
- Microsoft OMS Quickstart Template
- Deploy Host Guardian Service (HGS) For Shielded VM in Windows Server 2016
- Simple Cluster with DataSynapse installed
- Simple deployment of a VM Scale Set of Linux VMs with a jumpbox
- Simple Cluster with ANSYS installed
- Simple VMSS Cluster with StarCCM+ installed
- Simple VMSS Cluster with Exa Powerflow installed
- Simple VMSS Cluster with OpenFOAM installed
- Simple VMSS Cluster with StarCCM+ installed
- Azure CentOS 6&7 HPC ARM Template
- Deploy a simple cluster with Open Source Software
- Deploy a Torque cluster
Code Samples
- Using a custom Service Fabric configuration provider with ASP.NET Core
- Secure a Web API with Individual Accounts and Local Login
- BookService (Azure App Service & SQL Server)
- IoT Sample with Service Fabric and IoT Hub
- IoT Sample with Service Fabric and Event Hubs
- Azure Service Fabric: Asynchronous Computing Actors
- Azure Service Fabric: Observer Sample
- IoT Sample: Reading events from an IoT Hub
- Event Hub Sample: Storing Event Hub events to Azure SQL Database
- Service Bus Sample: Handling Service Bus Relay Services in a multi-tenant environment
Tools
- Service Bus Explorer
- Service Bus Extensions
- Service Bus PowerShell Scripts
Announcements
Azure Resource Manager (ARM):
- Tool: ARM Template Checker for Microsoft Azure Stack
SAP on Azure:
- SAP Business Objects support of SQL Server 2016 and Azure products
- SAP Now Supports Azure Resource Manager (ARM) for Windows and Linux
- Top 14 Updates and New Technologies for Deploying SAP on Azure
- More offers in SAP Cloud Appliance Library for Azure
- New Azure PowerShell cmdlets for Azure Enhanced Monitoring
- Azure Premium Storage is available for SAP workloads
Windows Server 2016:
=========================
SQLCAT Guidance
Technical Customer Profiles
SQL Server:
How-To Guides
SAP on SQL Server:
- More Questions From Customers About SQL Server Transparent Data Encryption – TDE + Azure Key Vault
- How to install or upgrade SAP Systems to SQL Server 2016
- How to slow down a SQL Server Database Backup
SQL Server:
- Azure SQL DW: How to move to a different region with restore from backup option
- How to improve query performance on memory optimized tables with Temporal using new index creation e...
- How to deploy SQL Server R Services without Internet access
- How to Determine Database Sizes in Azure SQL Database V12
- How to use SQL Always Encrypted with Azure Web App Service
- How to slow down a SQL Server Database Backup
- How to Install SQL Server 2016 RTM
- How to assign surrogate keys to dimension tables in SQL DW and APS
Conceptual Articles
AlwaysOn:
- SQL Server 2016 AlwaysOn for SAP
- SQL Server 2012 AlwaysOn: Performance Aspects and Performance Monitoring II
- Reading from Database Mirroring or AlwaysOn Secondary Replicas in SAP Configurations
Azure SQL Data Warehouse:
- Migrating data to Azure SQL Data Warehouse in practice
- Azure SQL Data Warehouse loading patterns and strategies
- Choosing hash distributed table vs. round-robin distributed table in Azure SQL DW Service
Azure SQL Database:
- Migrating from SQL Server to Azure SQL Database using Bacpac Files
- Azure SQL DB: Unexpected Database Maximum Size Limit
- Connect to Azure SQL Database V12 via Redirection
- Using Table Valued Parameters with Always Encrypted in SQL Server 2016 and Azure SQL Database
R Services:
- SQL Server 2016 R Services makes you a smarter T-SQL Developer
- Early Customer Experiences with SQL Server R Services
SAP on SQL Server:
- SAP on SQL: General Update for Customers & Partners March 2017
- SAP Business Objects support of SQL Server 2016 and Azure products
- BW Queries by factors faster using FEMS-pushdown
- Recent SAP BW improvements for SQL Server
- SQL Server: Improved SAP compression tool MSSCOMPRESS
- Whitepaper: SAP OS/DB Migration to SQL Server–FAQ v6.1 November 2016
- Moving from SAP 2-Tier to 3-Tier configuration and performance seems worse
- SQL Server: Simplified and faster SAP BW Process Chains
- SAP on SQL: General Update for Customers & Partners June 2016
- SQL Server 2016 Distributed Availability Groups for SAP
- SQL Server 2016 AlwaysOn for SAP
- Whitepaper: SAP on SQL Server 2012 and SQL Server 2014
- SQL Server: Improvements of SAP (BW) System Copy
- Distribution Standard Application Benchmark for SAP cloud deployments released using Azure IaaS VMs
- SQL Server 2012 AlwaysOn: Performance Aspects and Performance Monitoring II
- Reading from Database Mirroring or AlwaysOn Secondary Replicas in SAP Configurations
SQL Server 2016:
- SQL Server Availability Groups in Azure VM setup with AAD Domain Services
- SQL Server: Oops Recovery with Temporal Tables
- SQL Server 2016: Supporting UTF-8 data for Bulk Insert or bcp utilities
- SQL Server 2016: Scripting Always Encrypted operations
- How SQL Server 2016 Cumulative Update 2 (CU2) can improve performance of highly concurrent workloads
- SQL Server 2016: Install Option for Instant File Initialization
- Using Table Valued Parameters with Always Encrypted in SQL Server 2016 and Azure SQL Database
- Changes in SQL Server 2016 Checkpoint Behavior
- Real World Parallel INSERT…SELECT: What else you need to know
- SQL Server 2016 R Services makes you a smarter T-SQL Developer
- SQL Server 2016: Parallel INSERT … SELECT
- SQL Server 2016: Groups Automatic Seeding
- Early Customer Experiences with SQL Server R Services
- Checkpoint process for memory-optimized tables in SQL 2016 and implications on the log
- SQL Server 2016 Distributed Availability Groups for SAP
- SQL Server 2016 AlwaysOn for SAP
- SQL Server 2016: SSIS Data Flow Buffer Auto Sizing benefits data loading on Clustered Columnstore ta...
- Soften the RBAR impact with Native Compiled UDFs in SQL Server 2016
- SQL 2016: Columnstore row group Merge policy and index maintenance improvements
- SQL Server and ‘Instant File Initialization': Buffer Pool Extension
- SQL Server and ‘Instant File Initialization’: What happens when a database file is created
- SQL Server and ‘Instant File Initialization’: Physical and Valid Data Sizes
SSIS:
- SQL Server 2016: SSIS Data Flow Buffer Auto Sizing benefits data loading on Clustered Columnstore ta...
T-SQL:
- SQL Server 2016 R Services makes you a smarter T-SQL Developer
- T-SQL ranking functions
Explains
Short descriptions and explanations:
- What is a DAX Expression?
- Determining Database Sizes in Azure SQL Database V12
- SQL Server 2016: DBCC CHECKDB with MAXDOP
- SQL Server 2016: TRUNCATE Selected Partitions
- The ‘aggregate concatenation’ T-SQL (anti-)pattern
- Common sub-expression elimination in SQL Server
- Finding SQL Server queries with large memory grants
- Azure SQL Database Security Features
Troubleshooting Articles
- Backing up a VLDB to Azure Blob Storage
- Azure SQL DB: Unexpected Database Maximum Size Limit
- Transaction dependency limits with memory optimized tables – Error 41839
- PolyBase Setup Errors and Possible Solutions
- Considerations around validation errors 41305 and 41325 on memory optimized tables with foreign keys...
Announcements
SAP on SQL Server:
- SAP on SQL: General Update for Customers & Partners March 2017
- SAP Business Objects support of SQL Server 2016 and Azure products
- Recent SAP BW improvements for SQL Server
- SQL Server 2016 improvements for SAP (BW)
SQL Server 2016:
- SQL Server 2016: DBCC CHECKDB with MAXDOP
- SQL Server 2016: TRUNCATE Selected Partitions
- Azure SQL Database Security Features
Windows Server 2016:
Leave us comments to let us know what you think and what content is helpful! =========================
Why Blog?
To share content! To share solutions! Like our tag line says, we offer "Hands-on solutions, with our heads in the Cloud." But, yes, somewhere deep down, we enjoy our solutions, and whatever is in our heads should be shouted out to everyone else as well, right? So, with that in mind, we can't publish a "Hello World" blog without digging into Scott Adam's own musings about why blogs exist...
MY OWN DILBERT BLOG When I see news stories about people all over the world who are experiencing hardships, I worry about them, and I rack my brain wondering how I can make a difference. So I decided to start my own blog. That way I won’t have time to think about other people. People who are trying to decide whether to create a blog or not go through a thought process much like this:
- The world sure needs more of ME.
- Maybe I’ll shout more often so that people nearby can experience the joy of knowing my thoughts.
- No, wait, shouting looks too crazy.
- I know—I’ll write down my daily thoughts and badger people to read them.
- If only there was a description for this process that doesn’t involve the words egomaniac or unnecessary.
- What? It’s called a blog? I’m there!
The blogger’s philosophy goes something like this:
- Everything that I think about is more fascinating than the <poopy> in your head.
The beauty of blogging, as compared to writing a book, is that no editor will be interfering with my randumb spilling and grammar yes, my complete disregard for the facts (blogs get you rich), and my wandering sentences that seem to go on and on and never end so that you feel like you need to take a breath and clear your head before you can even consider making it to the end of the sentence that probably didn’t need to be written anyhoo. The Dilbert Newsletter, The Official Publication of Dogbert’s New Ruling Class, October 25, 2005, Issue 61 http://www.unitedmedia.com/comics/dilbert/dnrc/html/newsletter61.html (it used to be there)
And... I may have embellished his jokes a tad. You'll never know that, though! Leave us comments to let us know what you think and what content is helpful! As well as your own musings about why blogs exist. =^) - Ninja Ed
Azure CAT Guidance
"Hands-on solutions, with our heads in the Cloud!"