code in the cloud - december 8th 2014
TRANSCRIPT
![Page 1: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/1.jpg)
![Page 2: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/2.jpg)
• Introduction
• Managing your project
• Working with code
• Tracking your progress
• Continuous
• Lunch break
• Getting your hands dirty
![Page 3: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/3.jpg)
Modern app development Continuous value delivery and rapid response to change
![Page 4: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/4.jpg)
Industry trends
![Page 5: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/5.jpg)
![Page 6: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/6.jpg)
DevOps: the three stage conversation
3 Products2 Process1 People
![Page 7: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/7.jpg)
Visual StudioUpdate 1
Visual StudioUpdate 2
Visual StudioUpdate N
Visual Studio Online
Visual Studio continuous value delivery
![Page 8: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/8.jpg)
![Page 9: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/9.jpg)
Plan, build, deploy and manage applications using a comprehensive suite of services that is accessible to the entire team
![Page 10: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/10.jpg)
ALM your way
![Page 11: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/11.jpg)
BACKLOG
REQUIREMENTS
No infrastructure overhead | Pay as you use services | Available anywhere | Connected IDE
Agile Portfolio Management
Kanban customization
Work item tagging
Work item charts
Team Rooms
Code discussionsFlexible version control
Cloud load testing
Web-based test management
Continuous Deployment
Automated builds and CI
Application Insights
Stakeholder feedback
requests
Browser-based lightweight IDE
![Page 12: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/12.jpg)
3) New cloud-only monthly user plans
2) Included for MSDN subscribers
Increased value to existing and new MSDN subscribers User plans purchased via Microsoft Azure.
1) Completely free for small teams
FREE: 5 users
FREE: 60 minutes Cloud Build per month
FREE: 15K virtual user mins per month
FREE: 5 users
Additional users $20/month
All users $45/month
Max 10 per account with this plan
Includes use of the VS Pro IDE
All users $60/month
![Page 13: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/13.jpg)
Unlimited projects/repositories
Agile planning
Work item tracking
Code discussions
Work item chart viewing
= Basic capabilities +
Agile Portfolio Management
Team Rooms
Work item chart authoring
Request & manage feedback
= Advanced capabilities +
Web test case management
![Page 14: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/14.jpg)
![Page 15: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/15.jpg)
![Page 16: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/16.jpg)
![Page 17: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/17.jpg)
Benefits of an Agile
Team
![Page 18: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/18.jpg)
![Page 19: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/19.jpg)
![Page 20: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/20.jpg)
Visibility
Time
Value
Time
Value
Adaptability
Time
Value
Business Value
Time
Risk
Agile Development Traditional Development
Value
![Page 21: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/21.jpg)
scope
design
plan
stage
deploy
testmonitor
triage
plan
deploy
testlog defect
build
automated testcheck
in
run
code
unit test
run
Business Hypothesis
Validated Learnings
![Page 22: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/22.jpg)
Modern App Teams
![Page 23: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/23.jpg)
Product BacklogCustomer prioritized
customer featuresTime-boxed
Test/Develop
Working codeReady for deployment
Time-boxed iteration cycles (i.e. 2 weeks)
Product Backlog Back log tasks
Sprint Backlog
Feature assigned
to sprint
Sprint planning meeting• Review Product Backlog• Estimate Sprint Backlog• Commit
Daily Standups• Done since last standup• Plan for today• Any impediments
Sprint Review Meeting• Demo features to
stakeholders• Retrospective
Elaborated and
Estimated by team
Team Commitment
![Page 24: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/24.jpg)
Sprint 2 – Mobile Workforce
![Page 25: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/25.jpg)
Kanban cards
Kanban (かんばん(看板)?) (literally
signboard or
billboard) is a
scheduling system
for lean and just-in-
time (JIT) production
![Page 26: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/26.jpg)
![Page 27: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/27.jpg)
![Page 28: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/28.jpg)
Modern Version
Control
![Page 29: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/29.jpg)
Strengths Best for
Check-inCheck-out
• Fine level permission control
• Allows usage monitoring
• Large integrated codebases
• Control and auditability over source code down to the file level
• Offline editing support
• Easy to edit files outside Visual Studio or Eclipse
• Medium-sized integrated codebases
• A balance of fine-grained control with reduced friction
• Fast offline experience
• Complete repository with portable history
• Flexible advanced branching model
• Modular codebases
• Integrating with open source
• Highly distributed teams
![Page 30: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/30.jpg)
![Page 31: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/31.jpg)
Source History
![Page 32: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/32.jpg)
Source History
History History
![Page 33: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/33.jpg)
Team Foundation Server / VS Online
Project 2Project 1
3rd Party 3rd Party
Local
Repo
Other Remote Git
Repo
![Page 34: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/34.jpg)
Git fully integrated into TFS
![Page 35: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/35.jpg)
![Page 36: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/36.jpg)
![Page 37: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/37.jpg)
![Page 38: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/38.jpg)
![Page 39: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/39.jpg)
TDD is a robust way of designing software
components (“units”) interactively so that
their behavior is specified through unit
tests.
Whenever you are tempted to type
something into a print statement or a
debugger expression, write it as a test
instead.
Manual or automated testing is much
better for finding bugs.
Automated integration tests are much
better for detecting regression (things that
used to work but have unexpectedly stopped
working).
[TestMethod]public void Debit_WithValidAmount_UpdatesBalance(){
// arrangedouble beginningBalance = 11.99;double debitAmount = 4.55;double expected = 7.44;BankAccount account =
new BankAccount("Mr. X", beginningBalance);
// actaccount.Debit(debitAmount);
// assertdouble actual = account.Balance;Assert.AreEqual(expected, actual, 0.001,
"Account not debited correctly");}
![Page 40: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/40.jpg)
Visual Studio Test Explorer is designed to
support developers and teams who
incorporate unit testing in their software
development practices.
Unit testing helps you ensure the correctness
of your program by verifying that the
application code does what you expect it to
do.
In unit testing, you analyze the functionality
of your program to discover discrete testable
behaviors that you can test as
individual units.
You use a unit testing framework to create
tests of those behaviors and to report the
results of those tests.
![Page 41: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/41.jpg)
Controller
![Page 42: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/42.jpg)
![Page 43: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/43.jpg)
![Page 44: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/44.jpg)
![Page 45: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/45.jpg)
![Page 46: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/46.jpg)
Business challengesCustomers desire frequent updates
Comprehensive manual testing can impede delivery speed
Long cycle times result in increased defects and decreased quality
SolutionsReduce scope of feature set
Integrate new features frequently
Use gated check-in to ensure unit tests are run
Automate build processes
Minimize code churn after breakage
Business valueShorter cycle times lead to quicker delivery of value
Enforced unit testing increases quality threshold
Release of quality code ensures continual value delivery
![Page 47: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/47.jpg)
Continuous integration
automatically creates a
build after check-in
Create multiple build definitions
to support various build scenarios
![Page 48: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/48.jpg)
Configure the gated check-in
build to fail if a test fails, ensuring
the code won’t be checked in
Identify specific test to be run
during the gated check-in build
![Page 49: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/49.jpg)
![Page 50: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/50.jpg)
Continuous Deployment
Modern Release
Management
![Page 51: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/51.jpg)
Deploying early and often delivers business value fast, generates early customer feedback and ensures ‘Go Live’ day ends with Champagne
and not a sleepless night
![Page 52: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/52.jpg)
origin\
master VisualStudio.com
http://northwind-test.comAzure Websites
Continuous Deploy
Push Pull
master Local Workstation
![Page 53: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/53.jpg)
![Page 54: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/54.jpg)
origin\
master VisualStudio.com
http://northwind-test.comAzure Websites
Continuous Deploy
Push Pull
master Local Workstation release
Merge
origin\
release
Push Pull
http://northwind-
staging.com
Continuous Deploy
http://northwind.com
Deploy
![Page 55: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/55.jpg)
![Page 56: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/56.jpg)
Monitoring Applications
![Page 57: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/57.jpg)
![Page 58: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/58.jpg)
Movement to the cloud exacerbates the problem – IT is out of the picture, and the picture is a black
box.
![Page 59: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/59.jpg)
![Page 60: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/60.jpg)
User experience is what ultimately matters
![Page 61: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/61.jpg)
Plenty of opportunities for things to go wrong
Mobile app crashed
Server request too slow
Database overloadedDownstream service down
Feature too hard to use
![Page 62: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/62.jpg)
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
Application
Insights
![Page 63: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/63.jpg)
platform
infrastructure
app
1
3
4
5
Outside-in monitoring
Developer-emitted traces and events
Observed application behavior
Infrastructure performance
URL pings and web tests from global pointsof presence
Whatever the developer would like to sendto Application Insights
No coding required – service dependencies,queries, response time, exceptions, logs, etc.
System performance counters
2 Observed user behaviorHow is the application being used?
![Page 64: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/64.jpg)
Performing
What’s wrong?
Show me performance problems, memory usage, and
exceptions
The solution – Application Insights
Available
Is my application available and
performing for users?
One Dashboard
Succeeding
Where do we invest next?
Show me top features and customer
Usage patterns
Health Dashboards Notifications & Deep Insights Usage Dashboards
![Page 65: Code in the Cloud - December 8th 2014](https://reader036.vdocuments.us/reader036/viewer/2022081401/55a1c6b41a28ab72758b46ce/html5/thumbnails/65.jpg)