Continuous Integration - Continuous Delivery (CI-CD) with Visual Studio 2015 and Team Foundation Server 2015
1) CI/CD Introduction: CI/CD Advantages; CI/CD Practices
2) CI/CD with VS2015&TFS2015
3) Continuos Inspection with SonarQube
2. About me
• NguyenThanhTung
• Technology Manager at MISA JSC
• Microsoft Certified Professional Developer
• Technologies:
• ASP.NET MVC/Web API
• Windows UAP
• Windows Forms
• WCF/WPF/XAML/Silverlight
• AngularJS/ExtJS/Ext.NET
• Community:
• Blog at: http://tungnt.net
• Facebook Page: https://www.facebook.com/tungnt185
• Facebook Group: https://www.facebook.com/groups/hanoinetgroup/
5. What is CI?
• CI is a software development practice:
• Members of a team integrate their work
frequently
• Usually each person integrates at least daily
• Leading to multiple integrations per day
• Each integration is verified by
• An automated build (including test) to
detect integration errors as quickly as possible.
• Source:http://martinfowler.com/articles/continuousI
ntegration.html
6. CI/CD Advantages
• For development the benefit of CI/CD are:
• Removed of manual copy/paste deployment
• Prevention and reduction of production & staging
errors
• Generation of analysis & reporting on the health
of the code base
• For operation the benefit of CI/CD are:
• Reducing risk
• Reducing cost across the development &
deployment process
• Enhancing the reputation of the company by
providing Quality Assurance
9. Continuous
Integration
1 - Maintain a Single Source Repository
4 - Everyone CommitsTo the Mainline Every Day
5 - Every Commit Should Build the Mainline on an Integration Machine
2 - Automate the Build
3 - MakeYour Build Self-Testing
6 - Fix Broken Builds Immediately
7 - Keep the Build Fast
8 - Test in a Clone of the Production
Environment
9 - Make it Easy for Anyone to Get the Latest
Executable
10 - Everyone can see what’s happening
(Source: http://www.martinfowler.com/articles/continuousIntegration.html)
CI/CD Practices
10. CI/CD to DevOps
• DevOps practices:
• Communication
• Collaboration
• Automation
• Monitoring
13. TFS Build Architecture
• Build Agent:
• Perform actual work
• Can installed on any machine
supportTFS
• Installed as Windows Service
• Build Pool
• Contains agents
• Defined on server
• Have own security
permissions
• Build Queue
• Defined at project collection
level
• Group build definitions to
specific pool
20. Using FxCop Code Analysis
/p:RunCodeAnalysis=True
/p:CodeAnalysisRuleSet=AllRules.ru
leset
21. SonarQube
• Sonarqube is an open source quality
management platform, dedicated to continuous
analyze and measure source code quality =>
continuous inspection
• http://www.sonarqube.org/
We have had an end to end ALM solution for many years with Team Foundation Server on-premises which is built on a core set of capabilities to help development teams:
Source control
Agile planning tools
Team rooms
Test case management
Feedback management and
Automated builds
Layered on top of that core ALM functionality, Team Foundation Server has the ability to
Manage, deploy to, and test on environments with Lab Management
Configure and manage releases with Release Manager
Perform on premises load testing
Integrate completely with SharePoint and customized SharePoint sites
Integrate seamlessly with Project Server and System Center
We are now introducing Visual Studio Online which builds on top of that core ALM functionality as well and provides additional capabilities and unique services like:
Cloud Build Service
Cloud Load Testing Service
Application Insights
Continuous deployment to Microsoft Azure
Lightweight Code Editing Experience
Microsoft’s ALM toolset is flexible and allows you to adopt a mixture of on-premises or cloud-based services. You can even use TFS on-premises and use services on Visual Studio Online that make sense to your team like the Load Testing Service and Application Insights