Azure And SharePoint A Case Study By Shailen Sukul
About MeWho Am I?Speaker, .NET/SharePoint Consultant, Architect, Trainer and EntrepreneurSpecializing in the Microsoft Stack and HTML 5/CSS3, I work with SharePoint and Azure in my"regular" job and help clients realize the full potential of their investment on the Microsoftstack. I have a deep background in .Net and integration (BizTalk) as well as security(SAML/ADFS/ACS) and have worked at every consulting level from business analysis to projectmanagement to enterprise architecture and training and infrastructure.I also have a lot of experience in working with large geographically dispersed teams based onthe Agile framework and SCRUM in particular and have a strong satisfaction rate from mycustomers for meeting delivery schedules and delivering value.I also tinker with startups and entrepreneurships as an advisory or participant and have an activerole in a disruptive startup in the Australian market releasing in the next 6 months. My work inthe startup area has exposed me to Amazon Web Services, nodeJS and Ruby On Rails as well asASP.Net MVC and mostly open source technologies.You can follow my tips, musings and advice at http://www.shailensukul.com and connect withme on Twitter (@shailensukul) or Skype (shailen.sukul)
SharePoint ArchitectureSingle Web ApplicationMultiple host header tenant site collections – multi-tenant architectureIntegrated reporting – OOB and customSome sites are highly customized – webparts, pages, materpages, etcADFS – Single sign on integrates Live ID, Corpnet users, Partners usersand virtually anyone else that we wantShared Services Taxonomy, Metadata, Managed Columns SharePoint Search (default) FAST Search (non-default) Business Connectivity Services
Syndication GoalsSyndicate content to a wide anonymous audienceMetadata ownership NOT contentTrack statistics to determine popularity of siteAllow content authoring by designersAllow high level of customization in authored contentAllow high level of customization in consumedcontentMake content delivery as fast as possibleDemonstration:http://www.shailen.sukul.org/p/syndication_14.html
Office 365 Why evaluate this? - Natural fit - SharePoint to SharePoint .. Right? - Maximum reuseSource: Official Microsoft 365 website
Office 365When not to use it? When you have a highly customized solution Does not support host header site collections in one web application When you need more than OOB (“peek under the hood”) When you need an application versus a product When you have other applications integrated with SharePoint (ADFS, Data Loads (custom upload tool)) When you need to build DEV/TEST/PPE environments to closely match a highly customized PROD environment Need to govern large taxonomy sets (keep it consistent)
Azure Overview “Time for a rethink”“Windows Azure is an open and flexible cloudplatform that enables you to quickly build, deploy andmanage applications across a global network ofMicrosoft-managed datacenters.”Allowed us to refactor and deploy a highlycustomized solution to a global infrastructure ofserversGet some features for “free” (geo-routing)
Time for A Re-ThinkOk so we cannot leverage Office 365 but can we tradesome functionality for other benefits and leverageSQL and Windows Azure?What we wanted: Full fidelity with SharePoint list data Insert Update Delete Schema AND Data Fidelity
Azure - Time for A ReThinkSame search experience as SharePointFull fidelity Taxonomy replicationCompletely automated failover
Trades OffsSemi-fidelity with SharePoint list data Use a flattened table with a union of all columns Map managed columns using another table Give up automated schema updates Gain performance advantage
Trade OffsSame search experience as SharePoint SQL Azure does not support free-text search. We decided to use structured search with wildcardsFull fidelity Taxonomy replication SharePoint’s Term Store does not raise update events. We had to defer this, but is do-able. See http://tinyurl.com/6wgdnok
Trade OffsCompletely automated failover We can sync Azure web roles to their respective instances of SQL Azure in each data center. We then setup replication between the US and Europe SQL instances, US being the Master. Traffic Manager then routes a common url to the closet data center, based on the originating request location. However, if a whole data center goes down, we have to fail over to another one manually and also reverse the DB roles. This is expected to be fixed in a subsequent update of Azure.
The million dollar question…So how does SharePoint Replicate to Azure?
Azure Comparison SharePoint AzureNo geo-routing Ability to route users to the closest data center. Need to replicated term storeIntegrated taxonomy, values. No automatedmanaged columns and controls replication.. yet No ADFS – anonymousADFS – SSO audience for initial release. Will federate with on-premise ADFS in future
Azure Comparison SharePoint AzureFree Text Search Does not support free text. Structured and wildcard search onlyLimited by data center size Virtually unlimited scale out Servers are automaticallyCost – pay to maintain server updated with latest patches andhardware and update to keep hardware. Does not affectcurrent hosting costs. Get benefit of scale.
Azure Comparison SharePoint AzureStruggled with traffic surges Easily handles traffic surgessometimes. “Hot” and “cold”periodsSome built-in reports Had to build custom reports(SharePoint Analytics)Some failover capacity(multiple servers) World class failover. Server level and data center level.
Azure Comparison SharePoint AzureScale out expensive. Have to Scale out virtually unlimited.add additional machines to Can add or remove Windowsfarm and had to have Azure instances at will. Nodowntime. Stuck with what downtime, can add machinesyou have. to fit usage pattern.
GotchasSecurity Keeping sensitive information in web.config is a big no no Encrypting web.config is painful, requires release for config change Decided to encryt sensitive information in the Service config.. Can change values independent of release Dependency on web.config (ConfigurationManager) required a code refactor
GotchasSingleton Singleton class behaves differently in Azure. Do not assume objects are cached unless you explicitly use a caching service. Always check for existence and create new object
ConclusionLowered IT costs.. No exact figure but roughly one third ofthe hardware costsStable and solid – handles traffic without any issuesGeo-routing – improved user experience for users in Asiaand EuropeBilling – easy to see monthly bills.Oblivious to user – user still interacts with Syndication viaSharePoint UI with data coming from SQL AzureProven – setting the stage for moving the heavy lifting outof SharePoint into Azure