sharepoint and azure - a match made in the clouds
DESCRIPTION
Presentation on case study of a real world implementation of a hybrid SharePoint and Azure solutionTRANSCRIPT
Azure And SharePointA Case Study
By Shailen Sukul
Who Am I?Speaker, .NET/SharePoint Consultant, Architect, Trainer and Entrepreneur
Specializing 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 Microsoft stack. 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 project management to enterprise architecture and training and infrastructure.
I also have a lot of experience in working with large geographically dispersed teams based on the Agile framework and SCRUM in particular and have a strong satisfaction rate from my customers for meeting delivery schedules and delivering value.
I also tinker with startups and entrepreneurships as an advisory or participant and have an active role in a disruptive startup in the Australian market releasing in the next 6 months. My work in the startup area has exposed me to Amazon Web Services, nodeJS and Ruby On Rails as well as ASP.Net MVC and mostly open source technologies.
You can follow my tips, musings and advice at http://www.shailensukul.com and connect with me on Twitter (@shailensukul) or Skype (shailen.sukul)
About Me
SharePoint Architecture
Single Web Application Multiple host header tenant site collections – multi-tenant
architecture Integrated reporting – OOB and custom Some sites are highly customized – webparts, pages,
materpages, etc ADFS – Single sign on integrates Live ID, Corpnet users,
Partners users and virtually anyone else that we want Shared Services
Taxonomy, Metadata, Managed Columns SharePoint Search (default) FAST Search (non-default) Business Connectivity Services
Syndicate content to a wide anonymous audience Metadata ownership NOT content Track statistics to determine popularity of site Allow content authoring by designers Allow high level of customization in authored
content Allow high level of customization in consumed
content Make content delivery as fast as possible Demonstration: http://
www.shailen.sukul.org/p/syndication_14.html
Syndication Goals
Evaluating Office 365First Try
Office 365
Source: Official Microsoft 365 website
Why evaluate this?- Natural fit- SharePoint to SharePoint .. Right?- Maximum reuse
When 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)
Office 365
Azure Overview“Time for a rethink”
“Windows Azure is an open and flexible cloud platform that enables you to quickly build, deploy and manage applications across a global network of Microsoft-managed datacenters.”
Allowed us to refactor and deploy a highly customized solution to a global infrastructure of servers
Get some features for “free” (geo-routing)
Ok so we cannot leverage Office 365 but can we trade some functionality for other benefits and leverage SQL and Windows Azure?
What we wanted: Full fidelity with SharePoint list data
Insert Update Delete Schema AND Data Fidelity
Time for A Re-Think
Same search experience as SharePoint Full fidelity Taxonomy replication Completely automated failover
Azure - Time for A ReThink
Semi-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
Trades Offs
Before
After
Same search experience as SharePoint SQL Azure does not support free-text search.
We decided to use structured search with wildcards
Full 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 Offs
Completely 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.
Trade Offs
So how does SharePoint Replicate to Azure?
The million dollar question…
Azure Comparison
SharePoint
No geo-routing
Integrated taxonomy, managed columns and controls
ADFS – SSO
Azure
Ability to route users to the closest data center.
Need to replicated term store values. No automated replication.. yet
No ADFS – anonymous audience for initial release. Will federate with on-premise ADFS in future
Azure Comparison
SharePoint
Free Text Search
Limited by data center size
Cost – pay to maintain server hardware and update to keep current
Azure
Does not support free text. Structured and wildcard search only
Virtually unlimited scale out Servers are automatically
updated with latest patches and hardware. Does not affect hosting costs. Get benefit of scale.
Azure Comparison
SharePoint
Struggled with traffic surges sometimes. “Hot” and “cold” periods
Some built-in reports (SharePoint Analytics)
Some failover capacity (multiple servers)
Azure
Easily handles traffic surges
Had to build custom reports
World class failover. Server level and data center level.
Azure Comparison
SharePoint
Scale out expensive. Have to add additional machines to farm and had to have downtime. Stuck with what you have.
Azure
Scale out virtually unlimited. Can add or remove Windows Azure instances at will. No downtime, can add machines to fit usage pattern.
Security 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
Gotchas
Singleton 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
Gotchas
Lowered IT costs.. No exact figure but roughly one third of the hardware costs
Stable and solid – handles traffic without any issues Geo-routing – improved user experience for users in
Asia and Europe Billing – easy to see monthly bills. Oblivious to user – user still interacts with Syndication
via SharePoint UI with data coming from SQL Azure Proven – setting the stage for moving the heavy lifting
out of SharePoint into Azure
Conclusion
Blog: http://www.shailensukul.com Twitter: @shailensukul LinkedIn:
http://www.linkedin.com/in/shailensukul
Contact Me
Checkout my open source projects Taxomatic:
http://taxomatic.codeplex.com/ SharePoint Smart Serve
http://smartserve.codeplex.com/ Multi-Threaded File Download
Manager http://bloodhound.codeplex.com/
DBRef http://dbref.codeplex.com/
Other Cool Stuff