SharePoint 2010 als ontwikkelplatform Ton Stegeman 9 Januari 2013 - DIWUG
Introductie
• Ton Stegeman – SharePoint architect bij PGGM –
[email protected]
• PGGM – Pensioenuitvoeringsorganisatie • Pensioenbeheer • Vermogensbeheer • Bestuurlijke advisering
– Coöperatie Introductie
Versies
OTAP
Teams
Configuratie
Uptime
Open deuren
Applicaties op de internet farm Introductie
Versies
OTAP
Pfzw.nl
Pggm.nl
Website
Geld voor Later Wijzer
MijnPFZW
2013: Leden
Pensioen contract
2013: WerkenBij
Arbeidsmonitor
2013: Website
Teams
Configuratie
EMI
Uptime
Bestuurders portaal
Applicatie profiel Anonieme content
Pensioen planner
Business Intelligence
Samenwerken
Open deuren
Pensioenfonds cultuur.nl
Rabo Bedrijven Pensioen
Architectuur SharePoint applicaties Introductie
Versies
OTAP
Project 1
Teams
Project 2
Configuratie
Uptime
Open deuren
Project 1
Project 2
Project 3
App X BLC A
Project ASP.NET
App Z BLC B
Gedeelde platform componenten
SharePoint Intranet
Project 3
SharePoint Internet
BLC C
Wat betekent dat? Introductie
Versies
OTAP
Teams
Configuratie
Business Afhankelijkheden Project 1 Project A BLC B: versie 2.1.0.4
Project 2
Uptime
Project 1
Project 3
Project B
Project 2
App X Project A
BLC B: versie 2.2.0.0
Open deuren
Installeren op T
BLC A
App Z
Project B
BLC Installeren B
naar T, A, P
Gedeelde platform componenten
SharePoint Intranet
Downtime bij installaties
Project 3
SharePoint Internet
BLC C
Project A Installeren naar A
Mogelijkheden tot versioning van componenten Introductie
Versies
OTAP
Teams
Configuratie
Uptime
Site Collection
Sandbox
Web Application
BIN
Farm
GAC
Open deuren
In de praktijk Introductie
Versies
OTAP
Teams
Configuratie
Uptime
Site Collection
Sandbox
Farm
BIN
Farm
GAC
Open deuren
Versiebeheer cruciaal! Introductie
Versies
OTAP
Teams
Configuratie
Versie = tekst file in de WSP Erin gezet door TFS teambuild Component = WSP + Installatie + Configuratie Ga uit van aanpassingen aan deze infracomponenten!
Uptime
Open deuren
Heldere OTAP strategie Introductie
Versies
OTAP
Teams
Configuratie
Uptime
Open deuren
OTAP – Build omgeving Introductie
Versies
OTAP
Teams
Configuratie
Uptime
Open deuren
• Introduceer Build omgeving – Niet beheerde omgeving – Finetunen installaties – Eerste multi-server farm – Regressie testen
• Zoveel mogelijk gelijk aan T snapshots • Quality gate
OTAP - Deployment Introductie
Versies
OTAP
Teams
Configuratie
Uptime
Open deuren
• Is onderdeel van ontwikkeling • Ontwikkelaars verantwoordelijk voor werkende installatie procedure • Definition of Done: testbaar in testomgeving • Vergeet Visual Studio Deployment • Neem tijd voor het schrijven van release notes • Automatiseer alles!
OTAP – Upgrades Introductie
Versies
OTAP
Teams
Configuratie
Uptime
Open deuren
• Houd upgrade paden zoveel mogelijk gelijk Van T:
R1.4 R1.3 R1.2
NIET zo naar A: R1.4
R1.1
R1.0
R1.0
OTAP – Server beheer Introductie
Versies
OTAP
Teams
Configuratie
Uptime
Open deuren
• Houd de Health Analyzer schoon • Health Analyzer meldingen blokkerend voor installatie op A • Custom analyzer rules
Teams Introductie
Versies
OTAP
Teams
Configuratie
Uptime
Open deuren
• Scrum • Technisch beheer in het team – Beheerder en implementatie manager – Ontwikkelaar en beheerder installeren T samen
• Tester in het team – Vanaf dag 1 – Schrijven coded UI tests
Configuratie Farm / Web Applications Introductie
Versies
OTAP
Teams
Configuratie
Uptime
Open deuren
• Doorvoeren van farm en web applicatie level configuratie • Oorspronkelijk: Farm WA-1
WA-2
Project-A
WA-3
Project-B
WA-4
Project-C
Configuratie Farm / Web Applications Introductie
Versies
OTAP
Teams
Configuratie
Uptime
Open deuren
• Oplossing: introduceer Farm en Domein projecten (versioning) Farm WA-1
PGGM.Web. Farm
WA-2
WA-3
PGGM.Web. Domain.D1
PGGM.Web. Domain.D2
Project-A
Project-B
WA-4
Project-C
Versiebeheer!
Houd controle Introductie
Versies
OTAP
Teams
Configuratie
Uptime
Open deuren
• Controle over web app scoped features • Scenario: kopieer .browser files naar alle Web Frontend servers in de farm Farm WA-1
WA-2
WSP-X
FeatureActivated
Copy Timerjob
WA-3
WA-4
WSP-Y
Resources Feature
FeatureDeactivating
Delete Timerjob
Houd controle Introductie
Versies
OTAP
Teams
Configuratie
Uptime
Open deuren
• Uninstall: – Retract WSP – Automatisch: FeatureDeactivating Timerjob – Solution deployment: remove WSP Farm WA-1
WA-2
WA-3
WA-4
Full Install
WSP-Y
Resources Feature
FeatureDeactivating
Delete Timerjob
Houd controle Introductie
Versies
OTAP
Teams
Configuratie
Uptime
Open deuren
• Install: – Add solution – Deploy solution; uhmmm, welke web apps?? – Install-SPSolution -AllWebApplications Farm WA-1
WA-2
WA-3
WSP-Y
FeatureActivated
Copy Timerjob
Resources Feature
WA-4
Full Install
Houd controle Introductie
Versies
OTAP
Teams
Configuratie
Uptime
Open deuren
• Oplossing: – Installatie scripts onthouden welke web apps – Per domein feature die Resources eventreceiver gebruikt – Activeren in installatie ipv Activate On Default Farm WA-1
WA-2
WSP-X
FeatureActivated
Copy Timerjob
WA-3
WSP-Y
Resources Feature
WA-4
PGGM.Web. Domain.D1
PGGM.Web. Domain.D2
FeatureDeactivating
Delete Timerjob
Design voor uptime Introductie
Versies
OTAP
Teams
Configuratie
Uptime
Open deuren
• Design je solutions voor minimale verstoring op farm bij installatie IISReset
Farm WA-1
WA-2
WA-3
DeploymentTarget = GlobalAssemblyCache
WSP-Y
Farm
AppPool recycle
WA-1
WA-4
AppPool recycle
WA-2
WA-3
WSP-Y
WA-4
DeploymentTarget = WebApplication
Pas op met farm level objecten Introductie
Versies
OTAP
Teams
Configuratie
Uptime
Open deuren
• Pas op met custom fields Farm level! Web Frontend Server IIS
WA-1
WA-2
WebAnalytics Service
WA-3
Global Assembly Cache
• Oplossing: – Resetten services in scripts – Gebruik custom fields echt nodig?
DLL
WSP-Z DLL
• Geldt voor alle farm level objecten (STS, claim provider, audience provider)
Open deuren Introductie
Versies
OTAP
Teams
Configuratie
Uptime
Open deuren
Web.config wijzigingen Automatiseer alles Ontwikkelservers zelfde config als P Ontwikkelaars: denk aan stabiliteit P ipv je eigen gemak • Component = WSP + Configuratie • Standaard structuur TFS • Heldere branching afspraken • • • •
Vragen? Introductie
Versies
OTAP
Teams
Configuratie
Uptime
•
[email protected]
Open deuren