Cloudfest-Building Real World Cloud Apps wtih Azure

Download Report

Transcript Cloudfest-Building Real World Cloud Apps wtih Azure

Cloudfest
Cloud patterns and best
practices for Building
Modern Applications
Randy Pagels
Sr. Developer Tools Technical Specialist
Java in Hosted Builds
Azure Active Directory
European Datacenter
REST APIs
Service
Hooks
Today’s Goal
Cover key development patterns and
practices that will help you build real
world cloud apps
Dev/Ops Workflow
Develop

Deploy
Learn



Operate
Repeatable
Reliable
Predictable
Low Cycle Time
Source Control
•
Use it! 
•
Treat automation scripts as source code and version it
together with your application code
•
Parameterize automation scripts –> never check-in secrets
•
Structure your source branches to enable DevOps workflow
Example Source Branch Structure
Master
Staging
Development
Feature
Feature
Branch A Branch B
Code that is live in production
Code in final testing before production
Where features are being integrated
Feature
Branch C
Need to make a quick hotfix?
Master
Staging
Development
Feature
Feature
Branch A Branch B
Hotfix 145
Feature
Branch C
How We Did It
Code and debug for weeks (months?)
Build on one person’s machine
Manually deploy parts via file copy
Run manual tests against deployed app
How We Did It…Which Resulted In
Code and debug for weeks (months?)
Infrequent releases reducing business agility
Build on one person’s machine
Inability to reliably reproduce builds
Manually deploy parts via file copy
Tedious and error-prone due to missing dependencies
Run manual tests against deployed app
Code and debug for weeks (months?)
How can we do it?
Plan
Requirements
Backlog
Monitor & learn
All stakeholders
Development
Developers
& testers
Develop & test
Collaboration
Production
Operations
Release
Continuous Integration & Delivery
•
Development, Staging and Master branches kick off
•
Use automation scripts with Development and Staging to
automatically deploy to environments
•
automated build + check-in tests
Deploying Master to Production can be automated, but
more commonly requires an explicit human to sign-off
before live production updated
http://www.visualstudio.com
Code
Insights
•
•
•
•
Deploy
Work
Build
Test
•
•
•
TFS and Git support
Elastic Build Service
Continuous Integration
Continuous Delivery
Load Testing Support
Team Room Collaboration
Agile Project Management
Windows Azure Web Sites

Build with ASP.NET, Node.js, PHP or Python

Deploy in seconds with FTP, WebDeploy, Git, TFS

Easily scale up as demand grows
AutoScale – Built-into Windows Azure
•
•
•
•
AutoScale based
on real usage
CPU %
thresholds
Queue Depth
Supports
schedule times
Web Development Best Practices
•
Scale-out your web tier using stateless web servers
behind smart load balancers
•
Dynamically scale your web tier based on actual usage load
•
Avoid using session state (use cache provider if you must)
•
Use CDN to edge cache static file assets (images, scripts)
•
Use .NET 4.5’s async support to avoid blocking calls
Windows Azure AD

Active Directory in the Cloud

Integrate with on-premises Active Directory

Enable single sign-on within your apps

Supports SAML, WS-Fed, and OAuth 2.0

Enterprise Graph REST API
Data Storage Options on Windows Azure
Platform as a Service
(managed services)
Infrastructure as a Service
(virtual machines)
Understanding the 3-Vs of Data Storage
Volume
How much data will you ultimately store?
Velocity
What is the rate at which your data will grow? What will the usage pattern look like?
Variety
What type of data will you store? Relational, images, key-value pairs, social graphs?
Scale out your data by partitioning it
Vertical Partitioning
Horizontal Partitioning (Sharding)
Hybrid Partitioning
It is a lot easier to choose one of these
partitioning schemes before you go live….
Blob Storage
Process automation that simplifies cloud
management
Optimize and extend
existing investments
Integration
Integrate into existing systems
with PowerShell integration
modules
Build additional PS modules to
enable integrating into other
systems
Deliver flexible and
reliable services
Lower costs and
improve predictability
Orchestration
Accelerate time to value
with flexible process
workflows
Improve service reliability
across multiple tools,
systems, and department
silos
Automation
Enable service owners to focus
on work that adds business
value
Reduce error-prone manual
activities while lowering costs
Azure Automation Capabilities
Runbook Authoring in Azure:
Create runbooks to automate all aspects of
cloud operations, from deployment,
monitoring, and optimizations
Highly Available Engine:
Support requirements for scale and H/A.
Built on PowerShell Workflow. Isolation for
runbook jobs
Integration into other systems:
Import PS modules and create additional
modules and runbooks for Azure services or to
connect into 3rd party systems
Azure
Automation
Monitoring
Systems
Change
Control
Systems
Anything 
Buy/Rent a Telemetry Solution
Application
Insights
Application Insights
1. Telemetry is collected at each
tier: Mobile applications, server
applications and browser
2. Telemetry arrives to
Application Insights service
where it is processed & stored
3. Get 360° view of the
application covering availability,
performance & usage
Telemetry for 360° view
app
platform
infrastructure
1
Outside-in monitoring
2
Observed user behavior
3
Developer-emitted traces and events
4
Observed application behavior
5
Infrastructure performance
URL pings and web tests from 8 global points
of presence
How is the application being used?
Whatever the developer would like to send
to Application Insights
No coding required – service dependencies,
queries, response time, exceptions, logs, etc.
System performance counters
New Azure “preview” Portal
Azure Portal
 Built from the








ground up
Apps are now
center of the
experience
Rich DevOps
dashboards
Resource Map
Usage Analytics
Service Health
Pricing & Billing
Customizations
Touch enabled
Read more:
DEMO
Azure SDK for .NET 2.6
Platform support
Diagnostics improvements
QuickStarts
Event Hubs
Load Balancer
New SDK Tools in Visual
Studio 2013 Update 4 and
Visual Studio 2015 RC
• Azure Resource Manager Tools
• Folders in Storage Explorer
• Manage WebJobs from Server
Explorer
• HDInsight Tools
• Add Connected Services
• Sign-in and view resources for
multiple Azure accounts
• Environments hub in Team
Explorer
Azure SDK for .NET 2.5 Release Notes
Kanban board
Taskboard
Other
Version control
Backlog / Work Items
http://www.visualstudio.com/en-us/news/release-archive-vso
Kanban board
Taskboard
Other
Version control
Backlog / Work Items
http://www.visualstudio.com/en-us/news/releas
Next generation
team build
Release management
Release management
Sneak Peak
Release Management
vNext
Power BI
SonarCube
VSO & Power BI
Integration
“How many pull requests per day? Per week?”
Gain understanding and
insights into projects in VSO
Team Foundation
Server 2015 RC
Innovation delivered in
Visual Studio Online now in TFS
New updates to Team
Foundation Server
Agile and Kanban improvements
Quick code editing
Server extensibility
Expanded basic license
Build vNext preview
SonarQube
 Helps to control technical debt
 Build info used for deep analysis and problem prioritization
Coming soon…
www.visualstudio.com
Call to action
Get Started with Visual Studio Register to Visual Studio Online
Apply for Application Insights Limited Preview
http://www.visualstudio.com
MSDN Subscribers
Download Visual Studio 2013 Get access to your benefits
http://msdn.microsoft.com
Visit Team System Café Today!
The door is open 24/7 at the café! Stop by for a cup of joe and delicious tidbits on AppDev topics!
http://www.teamsystemcafe.net
Download slides on Resources page, search tag “Cloudfest”
Application Insights
Application Insights
Application Insights
Application Insights
Application Insights
MSDN credits
3 VMs for 16 hours a day
80 VMs for 20 hour load test
Up to 500 web sites plus SQL DB