Microsoft has a cloud platform which runs .NET, NodeJS and PHP. All 101 talks out there will show you the same: it’s easy to deploy, it scales out on demand and it runs WordPress. Great! But what about doing real things? In this session, we’ll explore the things they don’t teach kids in school. How about trying to find out the architecture of this platform? What about the different deployment options for Windows Azure Web Sites, the development flow and some awesome things you can do with the command line tools? Did you know you can modify the automated build process? Join me in this exploration of some lesser known techniques of the platform.
6. Start Simple Your way Go Live
start free, scale up and out with asp.net, php or deploy live in seconds,
as you go, friction-free node.js, develop on easily monitor
and without the headaches Windows, OSX or Linux performance, rapidly
diagnose and
fix issues
7.
8.
9.
10.
11.
12.
13. Web Worker
IIS ARR
(LB)
Azure Runtime Other
LB DB databases
Storage
Controller
14. Web Worker
IIS ARR
(LB)
Azure
LB Other
databases
Storage
Controller
15.
16.
17. Web Worker
IIS ARR SQL Azure
(LB)
Site (W3WP.exe) Blob storage
Site (W3WP.exe)
Site (W3WP.exe)
Runtime Windows Azure Worker
DB Role
Other
Azure Metering
databases
LB
DWAS
Provisioning /
API Frontend
Storage
Deployment Controller X-Drive
Server
18.
19.
20. Need more
proof?
Windows Azure
Services for Windows
Server
(http://www.microsoft.com/hosti
ng/en/us/services.aspx)
Or:
http://blog.maartenballiauw.be/
post/2012/07/24/Hands-on-
Windows-Azure-Services-for-
Windows.aspx
Launch PhpStorm, create new websiteExplain command line toolsazure site create WAWSdeepdive --location "North Europe" --gitConfigure gitAdd index.php <phpphpinfo();Commit and pushDisplay in browser and go through “environment”COMPUTERNAME “RD….”NUMBER_OF_PROCESSORS -> x-large instancesAll ARR___ variables (cookies for affinity and so on)WAWebSiteSID for determining the website SIDApparently C:\\DWASFiles\\Sites\\WAWSdeepdive seems “da bomb”Browse through the portal and note:All URLS for FTP and SCM are different hostnames and thus potentially a different group of serversazure site delete WAWSdeepdive
Clone from git, run buildWhile build runs, explain what’s happening (NPM stage, …)Run Kudu.Webas administratorCreate a site, show folders, …KuduExec! – browse the filesystem and so onExplore someCd .. Until no more is possible and dir – show \\\\10,x,x,x
Show logging applicationExplain nothing special configuredEnable through portalShow stream: azure site log tailstackedlogging(other options are download)Configure verbosity
Create an application and use ConfigurationManager.AppSettings["MyKey"] tospecify a ‘dev’ variable or somethingShow environment variable printingUpdate setting in portalFTP into the system and note that the web.config is UNTOUCHED!We can use this for storing secrets
Show Hg repository in which I have created two branches: the default one and a “staging” oneConfigure one production websiteConfigure one staging websiteExplain hostnames, scaling, configuration and so on
Explain solution structure: two web projectsCreate .deployment fileAdd:[config]project = MultiTier.WebApi/MultiTier.WebApi.csproj
Create .deployment fileAdd:[config]command=deploy.cmdAdd deploy.cmd@echo offecho Stacked is TEH AWESOME!echo We are deploying to %MYENV%- Set environment variable in portal
Too long for slides!Run azure site deploymentscript --basicOr azure site deploymentscript –aspWAPRun through script
Explain unit test projectDeploy with successDeploy with failure