This is a webinar done with Acquia introdcing how well you can run Drupal on Windows with a demo about WebPI and Drush.
Here's a link to the recorded webinar:
http://tinyurl.com/6rfz3px
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Windows Loves drupal
1. Windows
Drupal
Alessandro Pilotti
@alexpilotti
MVP ASP.NET / IIS
Windows Azure Insider
MCSD, MCAD, MCSE, MCDBA, MCT
Red Hat Certified Engineer
2. Some Facts About the
Windows OS
Based on Windows NT, released in July 1993
Hardware independent OS
POSIX subsystem
Provides excellent command line tools
PowerShell
Excellent security model
Server Core option for minimal GUI and footprint
3. Windows and IIS
Product Name OS Version IIS Release
Windows XP 5.1 5.1 08/01
Windows Server 2003 5.2 6.0 03/03
Windows Vista 6.0 (Build 6000) 7.0 01/07
Windows Server 2008 6.0 (Build 6001) 7.0 03/08
Windows 7 6.1 7.5 07/09
Windows Server 2008 6.1 7.5 07/09
R2
Windows 8 6.2 8.0 ?
Windows Server 2012 6.2 8.0 ?
4. IIS 6
Kernel level component (http.sys) listens to HTTP requests
HUGE performance improvement over IIS 5
All user code runs in separate processes
Worker Process (w3wp.exe)
Crashes in worker processes don’t affect the stability of the service
Web gardens
Multiple WP per single web applications
Configuration stored in a XML metabase
MetaBase.Xml
MBSchema.Xml
5. IIS 7.x / 8.0
Complete redesign over IIS 6.0
Modular design
http.sys is still part of the architecture
Improved remote administration and delegation
Enhanced command line and scripting tools
Including PowerShell cmdlets
Flexible model not limited to HTTP
Tight integration with WCF
6. Security
Windows is a very secure OS!
Running Internet Explorer as administrator and getting malware
does not mean that the system is flawed
RunAs permits to execute processes as different users
Windows Server 2008 introduced some unique security
features
Windows Firewall
Since Windows Server 2008:
Address space layout randomization (ASLR)
Network Access Protection (NAP)
7. Comparing PHP Stacks
Linux + Apache + MySQL + PHP
Windows + Apache + MySQL + PHP
Windows + IIS + MySQL + PHP
Windows + IIS + MS SQL Server + PHP
8. Linux + Apache + MySQL + PHP
Pros
Most known and deployed stack in OSS world
Linux is a highly configurable operating system
Most Linux distributions can easily be configured for Apache,
MySQL and PHP (yum / apt-get / etc)
Apache is a highly modular and scalable web server
Lots of documentation available
Tightly integrated update process (yum / apt-get)
Cons
Lack of simple configuration tools
Configuration requires a wide knowledge
Deployment differences between distributions
9. Windows + Apache + MySQL + PHP
Pros
Most of the components are shared with the LAMP stack
Suitable for solutions that require integration with both Apache
modules (e.g. mod_rewrite) and Windows
Until FastCGI for IIS showed up, undoubtfully the best PHP
stack on Windows
Tools like XAMPP provide an easy deployment option
http://en.wikipedia.org/wiki/Comparison_of_WAMPs
Cons
Performance
Limited documentation and examples
Limited integration in the Windows ecosystem
Heterogeneous scenario for security updates
10. Windows + IIS + MySQL + PHP
Pros
Performance (FastCGI and WinCache)
Tightly integrated in the IIS 7.x ecosystem
Easy to configure an deploy via WebPI
Easy to manage via IIS Manager
Easy to script via WebDeploy and Powershell
Cons
Web apps requiring integration with Apache modules
need to be reviewed
11. MySQL and Microsoft SQL Server
Using PHP Data Objects PDO eases portability issues
SQL Server is a choice to evaluate in scenarios that
require high availability
PHP Drivers for SQL Server 3.0 just released!
Drupal + SQL Server through Commerce Guys module
12. PHP on Windows
COM integration
Simplest way to access OS native 3rd party features
Marshaling performance is not brilliant (IDispatch / late
binding)
.NET integration (experimental)
W32Api (experimental)
Register / Invoke API functions
Be careful with the parameters on the stack
win32service
start/stop/register/unregister services
Note: flock() has a slightly different behavior on Windows
13. IIS 7 Modules
Individual features used to process a request
Executed in a pipeline
Native
OS specific binaries (e.g. written in C++)
More performant
Managed
.NET assemblies, executed by the .NET CLR
More secure and manageable
14. Windows Server 2012 - SNI
Windows Server 2012 introduces some important
features
Huge performance improvements for multi-tenant!
Server Name Indication (SNI)
Assign different X509 certificates to different host headers
Requires IE >= 7.0, Chrome >= 6.0, FF >= 2.0,
SafariMobile >= 5.0
Non supported in IE on Windows XP (even on IE 9)!
15. CPU Throttling
CPU resource pooling is a problem in IIS 7.x
Processes exceeding their quota get killed, not throttled
Lots of errors in user applications
Not suitable for multitenant scenarios
This feature required specific kernel support
17. WebPI
Microsoft Web Platform Installer (WebPI) is a free tool
that simplifies deployment of web solutions
IIS features and extensions
WinCache, PHP Drivers for SQL Server, PHP Manager
Frameworks
PHP 5.2 / 5.3, .Net, etc
Web applications
Drupal, Joomla, Wordpress, DotNetNuke, Orchard, etc
Database
MS SQL Server Express, MySQL, etc
WebMatrix
WebMatrix 2 RC available!
18. Drupal via WebPI
Fastest way to setup Drupal on IIS
Takes care of all the steps
Deploy of Drupal (6.x or 7.x)
Dependencies
PHP, IIS: CGI, URL Rewrite, VC9, WinCache, etc
File permissions
Database creation
19. Windows Cache Extension for
PHP
Open source project developed by Microsoft
IIS Specific accelerator
Requires PHP 5.2 or 5.3 x86
Non thread safe version
Provides features not available in APC and
other accelerators
Current version: 1.1
20. Drush 5.x
A command line shell and scripting interface
Written in PHP
MS SQL Server is supported
Windows setup available on
http://drush.ws/drush_windows_installer
Takes care of all required dependencies
Requires elevation
22. Server Farm
IIS extensions:
Application request Routing (ARR)
Web Farm Framework (WFF)
You can enable independently
Load balancing and caching
Server farm provisioning
Platform / applications
23. WebDeploy
Web Application Packaging
Application or site, including DBs
Sources and destinations can be
Live servers
Zip files
Deployment
Administrative rights not required
Integration with VMSVC for remote deployment
IIS server synchronization
Entire server / site / application
Differential
Detects missing dependencies
24. http://www.microsoft.com/web/websitespark/
Software
Production licenses for self hosting: Windows Web Server 2008 R2; SQL Server 2008 Web
Edition and development tools
Azure
WebsiteSpark members get up to $1400* in annual Windows Azure resources
Training
Free online training and access to the MSDN developer community and resources
Support
2 professional support incidents
Criteria
An individual or a company with < than 10 employees engaged in website design &
development
Check out also BizSpark for startups
http://www.microsoft.com/bizspark/
25. Resources
http://groups.drupal.org/drupal-windows
http://channel9.msdn.com/Series/PHP-at-Scale-on-the-Microsoft-Platform
Free Webcasts!
Deploying Drupal on IIS with Web Platform Installer (WebPI)
Deploying Drupal on IIS without Web Platform Installer (WebPI)
Building a Drupal Web Farm with IIS and Application Request Routing (ARR) -
Part 1
Building a Drupal Web Farm with IIS - Part 2
IIS URL Rewrite for PHP and Drupal
Web Deployment Tool (WebDeploy) for Drupal sites
Optimizing Drupal and PHP sites on IIS, including Profile Guided Optimization
(PGO)
Optimizing Drupal in IIS with Memcache and Solr
Configuring and managing Drupal with SQL Server
Managing Drupal on the Windows Platform with Drush