This version of the Ed-Fi Dashboards is no longer supported. See the Ed-Fi Technology Version Index for a link to the latest version.

 

Developer's Notes on Microsoft Windows Azure

Overview


This article contains developer's notes taken while setting up the Ed-Fi Dashboards to run on the Microsoft Windows Azure platform. Though not an exhaustive study, licensees considering an Azure-based deployment model may find this information useful.

Application (Azure Web Roles)

  • No problem getting code running using Web Roles
    • Azure WebSites are too "light-weight" not suitable
      • Azure WebSites are bundled with only a limited set of Microsoft libraries, but the dashboard code needs more MS libraries, as well as a number of third party libraries
  • To enable SSL, log in to Azure management console in Web Roles config and navigate to the area for certificate management. Upload SSL certificate. No additional special configuration is necessary.
  • Some special configuration was needed to do to deal with the two sites (main dashboard site and the STS certificate issuance site). They can be set up in the same Web Role, just using different ports.
  • Logging: Azure has only transient storage for logs and can move you to a new server when it feels like it. Need to modify log4net TraceAppender to log to table storage instead, so it would move along when Azure moves servers.
  • In web.config, need to turn off certificate.validationmode=none to avoid certificate error

Database (SQL Server vs. SQL Azure)

  • The expected Operational Data Store size in most use cases is too big for SQL Azure (SQL Azure has 250GB limit)
    • Leveraging the federation solutions MS offers would require many application code changes
    • Must run the ODS on an Azure VM with SQL Server installed (can use the vanilla image offered by MS)
      • Azure VMs are currently in beta/preview
  • It is possible to run the other DBs (Dashboard, Dashboard Application, Dashboard DW) in SQL Azure, but there are connection timeout issues between the ODS in the VM and the target DBs in SQL Azure.
    • SSIS packages will have problems moving data from the ODS on the VM to the dashboard databases on SQL Azure (connections would timeout). Requires ETL code changes to all the SSIS packages to automatically retry when a connection times out.
  • When using a VM with virtual disks, cannot do all the normal disk performance tweaking for SQL Server.
  • Recommend using SQL Database Migration Wizard (SQLAzureMW) (this is an open source utility -- not created by Microsoft, but it is well maintained)
    • Point it to an existing database in SQL Server, and then point it to SQL Azure. The utility will inspect the SQL Server, adjust it as necessary for SQL Azure, and then recreate the database in SQL Azure, and copies everything up
      • No changes resulted in the Dashboard Application database
      • In the Dashboard database: 3 tables did not have a clustered index, which is required for SQL Azure. So it added them.
      • In the ODS: lots of issues identified by the utility. These would all need to be resolved before launching the ODS in SQL Azure. These issues are in addition to the 250GB size limitation.