Wondering if it's possible to re-deploy farm solution wsp file without downtime?
In some circumstances, it's possible.
You can do no-downtime deployment if following is true:
- Your modified wsp file doesn't contain new files or features. The most common scenario, you want to change some code logic that is an existing dll. Once you deploy your modified wsp, the new dll will be placed in GAC (in case you don't have versioning enabled).
- You have load-balanced WFEs. (ISA with SharePoint Farm ( a little bit more complicated scenario with off-box SSL termination))
You can do no-downtime deployment if following is true:
- Your modified wsp file doesn't contain new files or features. The most common scenario, you want to change some code logic that is an existing dll. Once you deploy your modified wsp, the new dll will be placed in GAC (in case you don't have versioning enabled).
- You have load-balanced WFEs. (ISA with SharePoint Farm ( a little bit more complicated scenario with off-box SSL termination))
Here is how it works:
1. ISA test.
Test first if site is up with one server drained. Test for
all severs in the ISA farm object for portal.
2. ISA switch.
Drain the first WFE.
3. WFE work. Update-SPSolution
Copy new wsp file on the local drive.
Run
Update-SPSolution -Identity
{name}.wsp -LiteralPath "{path}\{name}.wsp" -Local
–GACDeployment
Make sure that you specify the parameter –local.
It will deploy files locally and locally restart IIS.
After such update you will see following:
I have 2 boxes in QC env: SOA-MOSS01-QC, SOA-MOSS02-QC.
In the last operation result I see that operation is been performed only on one box SOA-MOSS01-QC.
The second box haven’t been updated yet and at this time actively serving user requests with old functionality in place.
In the last operation result I see that operation is been performed only on one box SOA-MOSS01-QC.
The second box haven’t been updated yet and at this time actively serving user requests with old functionality in place.
NOTE:
The Update-SPSolution cmdlet upgrades a deployed SharePoint
solution in the farm. Use this cmdlet only if a new solution contains the same
set of files and features as the deployed solution. If files
and features are different, the solution must be retracted and redeployed by
using the Uninstall-SPSolution and Install-SPSolution cmdlets, respectively.
Uninstall-SPSolution also has –local parameter.
But, The Install-SPSolution cmdlet deploys an installed SharePoint
solution in the farm. Use the Add-SPSolution cmdlet to install a SharePoint
solution package io the farm.
I haven’t tested this option.
And I can see a caveat here, if we need to add-spsolution , we need to
remove-spsolution first. And this command doesn’t have –local option. Most
likely in the scenario when we need to re-install spsolution instead of update,
we have to bring the portal down.
4. Test the result locally on that drained and already updated WFE.
5. ISA Switch
Re-switch the servers.
6. Repeat steps from 3-4.
Done.
P.S.
That is how it looks from an end-user:
He is still accessing the portal while the specific WFE IIS
is down.
No comments:
Post a Comment