From 0 to Web

advertisement
The Windows Web Platform
Michael Epprecht
Microsoft Switzerland
michael.epprecht@microsoft.com
twitter: fastflame
Star Map
•April 1994 to
August 1995
•Page Views per Day:
124'655
•Number of Servers:
3
3
The Microsoft Web Platform is the software of choice when building web solutions or applications for your business, large or small. Whether you’re looking to create your company’s global web presence, building applications for your small business, or just getting started on the web, Microsoft has the solutions for you. Trusted by Fortune 500’s, used by millions of individuals.
Built to work with YOU in mind
Elements of a Successful Web Platform
Community
Applications
Marketplace
Choices
Windows 2003: IIS6, FTP 6
Windows Server 2008: IIS7, FTP 7
Windows Server 2008 R2: IIS7.5, FTP 7.5
IIS Configuration Editor
Configuration Tracking
Application Warm Up
Server core Support
PowerShell Snap‐in
Delegation of Custom Errors
Bit Rate Throttling
Smooth Streaming
IIS 7/7.5 Architecture
Service Host
(SVCHost.EXE)
Configuration
(applicationhost
.config)
Worker Process (W3WP.EXE)
Windows Process
Activation Service
(WAS)
World Wide Web
Service (W3SVC)
HTTP.SYS Kernel-Mode Listener
Request Flow
Service Host
(SVCHost.EXE)
Bindings:
http://*:80:site1
Applicationhost
.config
Worker Process (W3WP.EXE)
Windows Process
Activation Service
(WAS)
World Wide Web
Service (W3SVC)
HTTP Protocol Host
HTTP.SYS Kernel-Mode Listener
Request
Queue
Respons
e Cache
HTTP.SYS
Accepting HTTP (and HTTPS) connections
Parsing and validating HTTP requests Queuing of HTTP requests in application‐specific queues
Caching of HTTP responses
New
SSL Kernel‐Mode Windows authentication
WAS
Windows Process Activation Service (WAS) W3svc
Configuration Manager
Reads configuration from applicationhost.config and reacts to changes in configuration
Passes configuration to the World Wide Web Service
Process Manager
Starts worker processes when a listener (e.g. HTTP.SYS) receives the first request
Monitors state and health of worker processes
Recycles worker processes based on certain parameters, e.g. lifetime, number of requests, schedule etc.
Prevents resource exhaustion, e.g. by limiting number of worker processes that can be active at the same time. W3SVC
HTTP specific listener adapter site binding information (IP address, port, host header)
Application Pool and Application settings
configuration changes
W3WP.EXE
Worker Process Infrastructure
Worker Process == Application Pool (99% case)
Establishes a connection with WAS at startup
Responds to WAS requests, e.g. when asked to shutdown. Picks up requests from the HTTP.SYS request queue
Manages request pipeline
Process requests and send responses
Runs all third‐party code Modules, handlers, isapi filters and extensions, assemblies, COM
objects etc. IISAdmin Metabase / ABOMapper
Host: INETINFO.EXE
FTP
MSFTPSVC
Host: INETINFO.EXE
SMTP
Host: INETINFO.EXE
Application Host Helper Service (ApphostSvc)
Configuration History
ApplicationPool SID Mapping
Host: svchost.exe
Take me to the movies!
Intelligent media streaming support out of the box with the IIS Media Pack. Support for all media types including WMV, FLV and MP4.
Deliver HD Video with Silverlight and Smooth Streaming
http://www.iis.net/media/experiencesmoothstreamin
g
http://www.nbcolympics.com/video/
Microsoft
1
Confiden
6
There is a solution for virtually everything
http://learn.iis.net/page.aspx/36/managing‐and‐
maintaining‐iis‐70/
http://www.iis.net/expand
Microsoft
1
Confiden
7
Supports FTP over Secure Sockets Layer (FTPS) protocol for encrypted data transfer
Allows FTP host headers for configuring multiple FTP sites on a single host server
Enables FTP and Web content on the same Web site, making it easier to manage content
Optionally integrates with existing Active Directory authentication policies
Microsoft
1
Confiden
8
FastCGI module allows IIS7.0 to host PHP
applications
High-performance version of CGI interface
used by many Web client applications
Build applications that deliver a visually
compelling user experience
Communicate across technology boundaries
Support a wide range of business processes
IIS 7.0/7.5 can run HTML, Classic ASP, ASP.NET, and PHP
applications, all on a single easy-to-manage platform
Before
Now
No Core developer working
on or for Windows
Windows Internals Team
Windows was a 2nd class
platform
Windows is now a primary platform
•2 core developers
•7 regular helpers, contributors or
testers (growing)
Synchronized releases
•5.2.6, 5.2.7, 5.2.8, 5.3.0, 5.3.12
Binaries releases days or
weeks after the sources
releases
Absence QA on Windows
Lack of documentation and
communication
QA on Windows
•95% of the core tests pass on
Windows
Dedicated communication channels
•Mailing list, Windows internal list,
iis.net/php(http://www.php.net/mailinglists.php)
•IRC channel on freenode #php-dev-win
•
FastCGI: The best of both CGI and ISAPI
–
–
–
–
–
–
•
Enhancement to CGI protocol
Web server creates FastCGI process pool for very first request
Web server re-uses existing FastCGI processes for subsequent requests
Configurable Resources
Download for IIS 6
Ships in IIS 7/7.5, installed with the CGI feature
Benefits of FastCGI for Windows
– Much faster than CGI because there is no process creation cost
– Much more stable than ISAPI because of single
threaded execution environment
IIS Worker Process
FastCGI protocol
over named pipes
or TCP
FastCGI process pool for
PHP5
php-cgi.exe
FastCGI process pool for
PHP4
Request
queue
php.exe
FastCGI Process Pool
App Pool #1 (user1)
Web site #1
FastCGI Process Pool
App Pool #2 (user2)
Web site #2
…
…
FastCGI Process pool
App Pool #N (userN)
Web site #N
Integration. Interoperability.
The SQL Server Driver for PHP is designed to enable
reliable, scalable integration with SQL Server for PHP
applications deployed on the Windows platform.
•
Native PHP 5 extension
•
Reading and writing of SQL Server
data from within PHP scripts.
•
Compatible with all editions of SQL
Server 2005 and SQL Server 2008,
SQL Server 2008 R2 (including
Express Editions)
Logical architecture
Overview
Enables PHP developers to take advantage of the Microsoft Cloud Services Platform – Windows Azure. Open source project being contributed to Zend Framework (http://framework.zend.com)
Your PHP application
REST
Features
PHP classes for Windows Azure Blobs, Tables & Queues (for CRUD operations)
Helper Classes for HTTP transport, AuhN/AuthZ, REST & Error Management
Manageability, Instrumentation & Logging support
Project site: Deployment scenarios
http://phpazure.codeplex.com/
PHP Runtime
REST
REST
PHP Runtime
WebPI
The “plumbing” associated with web
solutions should not get in your way
building great applications.
It’s a mess.
The Microsoft Web Platform Installer is our way of making that mess a
little easier to deal with.
It won’t take away all the pain of setting up an environment, but it takes
away a lot of it.
Today I’ll show Version 2 of the WPI and how you can
use it to set up your web environments.
Makes it simple for anyone using Windows Server or Windows Client to design, develop, discover, deploy and run web applications.
Install the latest versions of FREE Microsoft Web Platform tools, web server and extensions, database and frameworks including Stay up‐to‐date and explore what’s new. PHP Runs on Windows XP, Windows Vista, Windows 7, Windows Server 2003, Windows Server 2008, Windows Server 2008 R2
Windows Web App Gallery
Explore, discover, install and deploy popular Web
applications on the Windows Platform through a
streamlined process.
Customers, Partners, and developers have downloaded over 450,000 applications from the Windows Web Application Gallery since March 2009
Partners & communities that have included their application in the Windows Web Application Gallery are seeing on average a 2‐3x increase in their downloads above their current average rate
3
Users around the world
discover and install your
web app on dedicated
and shared hosting
servers.
1
You build, package and
submit your web app to
the app gallery.
2
We publish your approved
app and make it available
through the Windows
Web App Gallery
channels.
Internet Information Services 7.5 in Windows Server® 2008 R2 provides a secure, easy‐to‐
manage Web platform for reliably hosting rich Web applications, Media and Web services. Easily deploy ASP.NET and PHP applications on the same server. One server to manage, one server to configure.
http://www.microsoft.com/web
For more Information please contact
Michael Epprecht
IT Pro Evangelist
michael.epprecht@microsoft.com
Tel +41 43 456 66 68
Mobile +41 78 844 66 68
Microsoft Schweiz GmbH
Richtistrasse 3
CH‐8304 Wallisellen
Download