YOU ARE DOWNLOADING DOCUMENT

Please tick the box to continue:

Transcript
Page 1: FROM A YOLO^WDEVOPS - Home | NETWAYS GmbH · PROBLEMS WITH OUR (OLD) TOOLS no chronological revisions multiple different versions (forks) in production multiple different local versions

SOFTWAREDEVELOPMENTSEENFROMAYOLO^WDEVOPSJanWagner

[email protected]://log.c5t.org/about

Page 2: FROM A YOLO^WDEVOPS - Home | NETWAYS GmbH · PROBLEMS WITH OUR (OLD) TOOLS no chronological revisions multiple different versions (forks) in production multiple different local versions

TOOLSWEUSEDTOMANAGEOURSOFTWARE

vinanokatejoeeclipsenetbeanscprsyncftp

Page 3: FROM A YOLO^WDEVOPS - Home | NETWAYS GmbH · PROBLEMS WITH OUR (OLD) TOOLS no chronological revisions multiple different versions (forks) in production multiple different local versions

PROBLEMSWITHOUR(OLD)TOOLS

nochronologicalrevisionsmultipledifferentversions(forks)inproductionmultipledifferentlocalversions

f00b4r.phpf00b4r_20040410.phpf00b4r_production.php

distributedviascp/rsync/ftp

Page 4: FROM A YOLO^WDEVOPS - Home | NETWAYS GmbH · PROBLEMS WITH OUR (OLD) TOOLS no chronological revisions multiple different versions (forks) in production multiple different local versions

WAYOUT?VersionControlSystem

trackschangesoffilesandfolderwhen=dateofthecommitwho=nameofauthorwhy=commitmessage

Page 6: FROM A YOLO^WDEVOPS - Home | NETWAYS GmbH · PROBLEMS WITH OUR (OLD) TOOLS no chronological revisions multiple different versions (forks) in production multiple different local versions

CLIENT-SERVERVERSIONCONTROLSOFTWARE

Onelinearsoftwarerepository

withallversions

Serverdown,nodevelopment

Page 7: FROM A YOLO^WDEVOPS - Home | NETWAYS GmbH · PROBLEMS WITH OUR (OLD) TOOLS no chronological revisions multiple different versions (forks) in production multiple different local versions

ANDNOW?Howtofixsomeofthoseissues?

Page 10: FROM A YOLO^WDEVOPS - Home | NETWAYS GmbH · PROBLEMS WITH OUR (OLD) TOOLS no chronological revisions multiple different versions (forks) in production multiple different local versions

DISTRIBUTEDVERSIONCONTROL

Localdevelopmentpossible

committing,branching,tagging...workingoffline

Exchangeofcodewithallparticipantspossible-directly

M-P

Page 11: FROM A YOLO^WDEVOPS - Home | NETWAYS GmbH · PROBLEMS WITH OUR (OLD) TOOLS no chronological revisions multiple different versions (forks) in production multiple different local versions

MONITORINGPLUGINSTeamCommunication

MailingLists

ForlegacyreasonsMailseemsnotmuchlovedthesedays

Issues/PullRequests

Fitsdevelopersworkflow

IRC

MostusualRealtimecommunicationforpeercoding,releaseworkanddiscussions

Page 12: FROM A YOLO^WDEVOPS - Home | NETWAYS GmbH · PROBLEMS WITH OUR (OLD) TOOLS no chronological revisions multiple different versions (forks) in production multiple different local versions

MONITORINGPLUGINSUsualbranches

Development-masterbranchHotfixes-maint-X.Ybranch

usualcherry-pickfrommaster

Feature-nostrictnamingconvention

PullRequestsfromexternalcontributorsBrancheswheredevelopersareworkingonspecificproblems

Page 14: FROM A YOLO^WDEVOPS - Home | NETWAYS GmbH · PROBLEMS WITH OUR (OLD) TOOLS no chronological revisions multiple different versions (forks) in production multiple different local versions

MONITORINGPLUGINSMilestones

Forprioritizingworkandproblems,weareusingMilestonesIssuesandPullRequestsaretargetedforMilestones

Page 15: FROM A YOLO^WDEVOPS - Home | NETWAYS GmbH · PROBLEMS WITH OUR (OLD) TOOLS no chronological revisions multiple different versions (forks) in production multiple different local versions

MONITORINGPLUGINSCodecontributions

viaPullRequestsWorkbydevelopers

doneinFeaturebrancheseventhosearereviewedbyothermembersusuallythroughPullRequests

Page 16: FROM A YOLO^WDEVOPS - Home | NETWAYS GmbH · PROBLEMS WITH OUR (OLD) TOOLS no chronological revisions multiple different versions (forks) in production multiple different local versions

MONITORINGPLUGINSQualityAssurance

WeshiptestcasesforpluginsandClibraryfunctionsmaketestrunsthoseCanwetakefurther?

Yeswedid!

Page 17: FROM A YOLO^WDEVOPS - Home | NETWAYS GmbH · PROBLEMS WITH OUR (OLD) TOOLS no chronological revisions multiple different versions (forks) in production multiple different local versions

MONITORINGPLUGINSQualityAssurance

AutomationwithTravis-CI

Compilingandrunningmaketestoneverypush(togithub)

Page 18: FROM A YOLO^WDEVOPS - Home | NETWAYS GmbH · PROBLEMS WITH OUR (OLD) TOOLS no chronological revisions multiple different versions (forks) in production multiple different local versions

MONITORINGPLUGINSQualityAssurance

AutomationwithTravis-CI

ThishappensalsoforPullRequestsCanbeobserveddirectlyinthePR

Page 19: FROM A YOLO^WDEVOPS - Home | NETWAYS GmbH · PROBLEMS WITH OUR (OLD) TOOLS no chronological revisions multiple different versions (forks) in production multiple different local versions

MONITORINGPLUGINSQualityAssurance

Reliabilityof(Travis-)CI

OnlyasgoodascoverageofmaketestWhendependingonexternalinfrastructure,thismayvaryDependsonreliabilityofCI-infrastructure/buildservers

Page 20: FROM A YOLO^WDEVOPS - Home | NETWAYS GmbH · PROBLEMS WITH OUR (OLD) TOOLS no chronological revisions multiple different versions (forks) in production multiple different local versions

MONITORINGPLUGINSQualityAssurance

CodeQuality

StaticcodeanalysisperformedbyCoverityScanMergedmasterviacronjobonceaweekintocoverity/master,TravistriggerstheCoverityScan

Page 21: FROM A YOLO^WDEVOPS - Home | NETWAYS GmbH · PROBLEMS WITH OUR (OLD) TOOLS no chronological revisions multiple different versions (forks) in production multiple different local versions

MONITORINGPLUGINSInfrastruture

OnthesurfacewemassivelyrelyonexternalresourcesInfactwerunownprojectinfrastructure

WebsiteGitMirrorMailingLists

Page 22: FROM A YOLO^WDEVOPS - Home | NETWAYS GmbH · PROBLEMS WITH OUR (OLD) TOOLS no chronological revisions multiple different versions (forks) in production multiple different local versions

GITHOSTINGSOLUTIONSGitlabGogs(GoGitService)

Page 23: FROM A YOLO^WDEVOPS - Home | NETWAYS GmbH · PROBLEMS WITH OUR (OLD) TOOLS no chronological revisions multiple different versions (forks) in production multiple different local versions

GITLABMostcomprehensivealternativetogithubCommunity(CE)andEnterprise(EE)Edition(readOpenCore)Largeandgreatcommunity

Page 24: FROM A YOLO^WDEVOPS - Home | NETWAYS GmbH · PROBLEMS WITH OUR (OLD) TOOLS no chronological revisions multiple different versions (forks) in production multiple different local versions

GOGSMinimalrequirements(RaspberryPimayfit)writteningoLDAPsupport

Page 25: FROM A YOLO^WDEVOPS - Home | NETWAYS GmbH · PROBLEMS WITH OUR (OLD) TOOLS no chronological revisions multiple different versions (forks) in production multiple different local versions

CONTINUOUSWHAT?INTEGRATION!Developmentpracticewhere:

Developerspushcoderegularly(Buildand)verifiedautomaticallyDevelopers(andPM)arenotifiedofthecode(andbuild)status

Usuallywhenstatechanges

Page 26: FROM A YOLO^WDEVOPS - Home | NETWAYS GmbH · PROBLEMS WITH OUR (OLD) TOOLS no chronological revisions multiple different versions (forks) in production multiple different local versions

CI-WHY?BeawareofregressionsandproblemsatanearlystageIncreaseproductivityandprojectpaceIncreasereliabilityofyourdeployments

Page 27: FROM A YOLO^WDEVOPS - Home | NETWAYS GmbH · PROBLEMS WITH OUR (OLD) TOOLS no chronological revisions multiple different versions (forks) in production multiple different local versions

CI-CAVEATAutomatedtestsdependson

QualityofyourtestsCoverageofyourtests

Developersmayonlyfocusonsucceedingtests

Poortestsresultsintobadcodequality

Page 29: FROM A YOLO^WDEVOPS - Home | NETWAYS GmbH · PROBLEMS WITH OUR (OLD) TOOLS no chronological revisions multiple different versions (forks) in production multiple different local versions

CI-RUNNINGTESTFRAMEWORKS

LookintostaticcodeanalysistoolsforyouusedlanguageConsiderPMDtofindinefficientcode

Examples

GetanideaseeTravis-CI-BuildingaPHPprojectUsingOCLintwithTravisCIorJenkinsCIfortestingC,C++,Objective-C

Page 30: FROM A YOLO^WDEVOPS - Home | NETWAYS GmbH · PROBLEMS WITH OUR (OLD) TOOLS no chronological revisions multiple different versions (forks) in production multiple different local versions

CODEQUALITYHostedServices(FreeasBeerforOSS.)

ScrutinizerCICodeClimateSensioLabsInsight

Page 33: FROM A YOLO^WDEVOPS - Home | NETWAYS GmbH · PROBLEMS WITH OUR (OLD) TOOLS no chronological revisions multiple different versions (forks) in production multiple different local versions
Page 35: FROM A YOLO^WDEVOPS - Home | NETWAYS GmbH · PROBLEMS WITH OUR (OLD) TOOLS no chronological revisions multiple different versions (forks) in production multiple different local versions

SERVERLESSKANBANFORGITHUBISSUESUSINGGH-PAGES

Page 36: FROM A YOLO^WDEVOPS - Home | NETWAYS GmbH · PROBLEMS WITH OUR (OLD) TOOLS no chronological revisions multiple different versions (forks) in production multiple different local versions

SOMEMOREFANCYSTUFF?

Page 38: FROM A YOLO^WDEVOPS - Home | NETWAYS GmbH · PROBLEMS WITH OUR (OLD) TOOLS no chronological revisions multiple different versions (forks) in production multiple different local versions

SLACKLOOKSPROMISING!WhatifSlackserversarebreached?WhatifSlackissold?Isthereaworkingexportfunction?Subscription

Page 39: FROM A YOLO^WDEVOPS - Home | NETWAYS GmbH · PROBLEMS WITH OUR (OLD) TOOLS no chronological revisions multiple different versions (forks) in production multiple different local versions

WHYDIDMATTERMOSTHAPPEN?In2014,SlackbecamepopularinSiliconValley,andourcompanyadopteditformessaging.Butwehadaproblem–ourarchiveswereinouroldmessagingapp.Afteroursubscriptionexpired,theoldappwantedustopaythemtoaccessourowndata(andexportstilldidn’twork!).Wehatedbeinglockedin.Wefumed.Ourdiscussions,ourresearch,ouranalyses,andgigabytesofourcarefullytaggedin-gameartworkwasallheldforransombytheservicewehadtrusted.Slackwasgood,butitwasanotherproprietarySaaSapp,andwe’djustbeenburned.

Page 42: FROM A YOLO^WDEVOPS - Home | NETWAYS GmbH · PROBLEMS WITH OUR (OLD) TOOLS no chronological revisions multiple different versions (forks) in production multiple different local versions

DOYOULOVEFANCYSTUFF?

Page 43: FROM A YOLO^WDEVOPS - Home | NETWAYS GmbH · PROBLEMS WITH OUR (OLD) TOOLS no chronological revisions multiple different versions (forks) in production multiple different local versions

#CHATOPS

Page 44: FROM A YOLO^WDEVOPS - Home | NETWAYS GmbH · PROBLEMS WITH OUR (OLD) TOOLS no chronological revisions multiple different versions (forks) in production multiple different local versions

DEVISIONOF#YOLOOPSChatOpsbrings thecontextofworkyouarealreadydoing intotheconversationsyouarealreadyhaving.@jfryman

RememberEggdropandIRC?Nowcombinationof:

Hubot,Lita,ErrMattermost,Rocket.chat,Zulip

Page 45: FROM A YOLO^WDEVOPS - Home | NETWAYS GmbH · PROBLEMS WITH OUR (OLD) TOOLS no chronological revisions multiple different versions (forks) in production multiple different local versions

CHATOPS

Page 46: FROM A YOLO^WDEVOPS - Home | NETWAYS GmbH · PROBLEMS WITH OUR (OLD) TOOLS no chronological revisions multiple different versions (forks) in production multiple different local versions

CHATOPS

Page 47: FROM A YOLO^WDEVOPS - Home | NETWAYS GmbH · PROBLEMS WITH OUR (OLD) TOOLS no chronological revisions multiple different versions (forks) in production multiple different local versions

CHATOPS

Page 51: FROM A YOLO^WDEVOPS - Home | NETWAYS GmbH · PROBLEMS WITH OUR (OLD) TOOLS no chronological revisions multiple different versions (forks) in production multiple different local versions

SLIDESwaja.github.io/software_development_from_devops_view/sw_dev_from_devops_osmc2016

DeckTape-PDFexporterforHTMLpresentationframeworksLizenz:CC-SA-3.0-DEMail:[email protected]


Related Documents