2. About Me
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)
3. 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
4.
5. Syndication Goals
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
8. Office 365
Why evaluate this?
- Natural fit
- SharePoint to SharePoint .. Right?
- Maximum reuse
Source: Official Microsoft 365 website
9. Office 365
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)
10. 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)
11.
12.
13. Time for A Re-Think
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
14. Azure - Time for A ReThink
Same search experience as SharePoint
Full fidelity Taxonomy replication
Completely automated failover
15. Trades Offs
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
17. Trade Offs
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
18. 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.
23. Azure Comparison
SharePoint Azure
No geo-routing Ability to route users to the
closest data center.
Need to replicated term store
Integrated taxonomy, values. No automated
managed columns and controls replication.. yet
No ADFS – anonymous
ADFS – SSO audience for initial release. Will
federate with on-premise ADFS
in future
24. Azure Comparison
SharePoint Azure
Free Text Search Does not support free text.
Structured and wildcard search
only
Limited by data center size Virtually unlimited scale out
Servers are automatically
Cost – pay to maintain server updated with latest patches and
hardware and update to keep hardware. Does not affect
current hosting costs. Get benefit of
scale.
25. Azure Comparison
SharePoint Azure
Struggled with traffic surges Easily handles traffic surges
sometimes. “Hot” and “cold”
periods
Some built-in reports Had to build custom reports
(SharePoint Analytics)
Some failover capacity
(multiple servers) World class failover. Server
level and data center level.
26. Azure Comparison
SharePoint Azure
Scale out expensive. Have to Scale out virtually unlimited.
add additional machines to Can add or remove Windows
farm and had to have Azure instances at will. No
downtime. Stuck with what downtime, can add machines
you have. to fit usage pattern.
27. Gotchas
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
28. 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
29. Conclusion
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