Du har säkert hört begreppet många gånger vid det här laget. Continuous Delivery är en av de hetaste trenderna just nu inom mjukvaruutvecklingsindustrin. Idéen är enkel: leverera mer mjukvara, snabbare, med bibehållen kvalitet. Men hur gör man det egentligen?
1. Continuous Delivery med Microsoft
Team Foundation Server och Azure
Mathias Olausson, Jesper Fernström, Solidify AB
Jonas Torstendahl, Microsoft AB
2. Solidifys processer för
mjukvaruutveckling låter dig som
utvecklingschef, IT-chef eller
affärsutvecklare fokusera på rätt saker.
Resultatet är mer programvara, av
bättre kvalitet, snabbare och till lägre
kostnad.
5. “Continuous Delivery is a software development
discipline where you build software in such a way
that the software can be released to production at
any time”
Martin Fowler, ThoughtWorks
6. The Value Delivery Cycle
REQUIREMENTS
Implement Monitor
WORKING SOFTWARE
Define
Ideation
Develop
From Idea to
working software Operate
Working software
in production
Value realized
7. Ett ramverk för Continuous Delivery
2) Code Repository
1) Team
3) Build 4) Test 5) Deploy (to Cloud)
6) Monitor and Improve
“The App”
Azure
10. Vilken process är bäst för Continuous Delivery?
• Scrum
• Kanban
• Traditionell (vattenfall)
• Prince2
• Process Based Management (CMMI)
• …
11. Definition of Done
• Vad menar vi med att något är klart?
– Kodat?
– Testat?
• Hur?
– Dokumenterat?
– Incheckat?
– Uppfyller kraven?
• Hur säkerställer vi det?
14. Strategier för branching
dev ft1
main
release
dev ft2
dev ft3
B B
v1.1 ft3 start
v1.1 ft2 start
v1.1 ft1 start
BM
RI
v1.1 ft1
v1.1 ft1
FI
v1.1 ft2
RI
RI
v1.0 hotfix
v1.1 ft3
v1.1
RI
v1.1 golden
FI
v1.1 release
[]
FI FI FI
16. Feature switch istället för feature branch?
• Feature switch kan ersätta behovet av feature branch
• Feature switch kan också användas för A/B testning, begränsat betatest
• Feature branch och feature switch kraftfull kombination
• Se upp för
– Feature leaks
– För många switchar
25. Modern infrastruktur
Test/Dev VMs in the Cloud.
Leverage existing skillset to
move Test/Dev to the Cloud.
Connectivity with on-premises
data and applications.
Common identity.
Common tools and
frameworks for on-premise
and the Cloud.
Accessed by a geographically
dispersed team.
VHDs
Deploy
Data Center
Test/Dev VMs Azure Storage
Dev
Team
Saved
Disk
State
VPN
Azure
33. Hur går det till?
Del 4: testning och kvalitetssäkring
34. Snabba releaser – snabba tester
• Mer och mer måste testas
• Manuella tester kommer snart ta för lång tid
• Automatisera
– Så mycket som möjligt
– Så tidigt som möjligt
Visa ”0” version av http://s-lab-l04.cloudapp.net:10000/
Website med SQL Server backend.
Körs i Azure
Ny applikation, utvecklat i .Net (MVC) mha Visual Studio ALM
Körs också i Azure
För att kunna svara på snabbt skiftande trender och populära nya funktioner hos konkurenterna vill vi rigga vår systemutveckling för att möjliggöra Continuous Delivery
Agila metoder är nog de som passar bäst men kan köra CD med vad som helst.
Att bryta ner utveckling i enskilda features lämpar sig bäst
En feature levereras när den är klar (DONE)
Prata lite om TFVC kontra Git
För och nackdelar med både
”With great power comes great responsibility”
Utvecklar features. Vet inte hur lång tid det kommer ta men så fort en feature är klar vill få ut den i produktion
Vi bygger och deployar från develop (/main/master/vad man nu vill kalla den)
När en feature bedöms som ”ok” bör switchen tas bort.
Pris? Ca 1500 SEK/mån
Komma från A till B på ett så effektivt sätt som möjligt.