SOFTWAREDEVELOPMENTSEENFROMAYOLO^WDEVOPSJanWagner
[email protected]://log.c5t.org/about
TOOLSWEUSEDTOMANAGEOURSOFTWARE
vinanokatejoeeclipsenetbeanscprsyncftp
PROBLEMSWITHOUR(OLD)TOOLS
nochronologicalrevisionsmultipledifferentversions(forks)inproductionmultipledifferentlocalversions
f00b4r.phpf00b4r_20040410.phpf00b4r_production.php
distributedviascp/rsync/ftp
WAYOUT?VersionControlSystem
trackschangesoffilesandfolderwhen=dateofthecommitwho=nameofauthorwhy=commitmessage
TOOLSWEUSEDTOMANAGEOURSOFTWARE
CVSSubversionRCS
CLIENT-SERVERVERSIONCONTROLSOFTWARE
Onelinearsoftwarerepository
withallversions
Serverdown,nodevelopment
ANDNOW?Howtofixsomeofthoseissues?
DISTRIBUTEDVERSIONCONTROL(RECENTLYMOVES)
BitKeeperMercurial/HGBazaarGit
DISTRIBUTEDVERSIONCONTROL
centralVCS
DISTRIBUTEDVERSIONCONTROL
Localdevelopmentpossible
committing,branching,tagging...workingoffline
Exchangeofcodewithallparticipantspossible-directly
M-P
MONITORINGPLUGINSTeamCommunication
MailingLists
ForlegacyreasonsMailseemsnotmuchlovedthesedays
Issues/PullRequests
Fitsdevelopersworkflow
IRC
MostusualRealtimecommunicationforpeercoding,releaseworkanddiscussions
MONITORINGPLUGINSUsualbranches
Development-masterbranchHotfixes-maint-X.Ybranch
usualcherry-pickfrommaster
Feature-nostrictnamingconvention
PullRequestsfromexternalcontributorsBrancheswheredevelopersareworkingonspecificproblems
MONITORINGPLUGINSSpecialbranches
ProposedUpdates-pubranchCoverityTests-coverity/masterbranch
MONITORINGPLUGINSMilestones
Forprioritizingworkandproblems,weareusingMilestonesIssuesandPullRequestsaretargetedforMilestones
MONITORINGPLUGINSCodecontributions
viaPullRequestsWorkbydevelopers
doneinFeaturebrancheseventhosearereviewedbyothermembersusuallythroughPullRequests
MONITORINGPLUGINSQualityAssurance
WeshiptestcasesforpluginsandClibraryfunctionsmaketestrunsthoseCanwetakefurther?
Yeswedid!
MONITORINGPLUGINSQualityAssurance
AutomationwithTravis-CI
Compilingandrunningmaketestoneverypush(togithub)
MONITORINGPLUGINSQualityAssurance
AutomationwithTravis-CI
ThishappensalsoforPullRequestsCanbeobserveddirectlyinthePR
MONITORINGPLUGINSQualityAssurance
Reliabilityof(Travis-)CI
OnlyasgoodascoverageofmaketestWhendependingonexternalinfrastructure,thismayvaryDependsonreliabilityofCI-infrastructure/buildservers
MONITORINGPLUGINSQualityAssurance
CodeQuality
StaticcodeanalysisperformedbyCoverityScanMergedmasterviacronjobonceaweekintocoverity/master,TravistriggerstheCoverityScan
MONITORINGPLUGINSInfrastruture
OnthesurfacewemassivelyrelyonexternalresourcesInfactwerunownprojectinfrastructure
WebsiteGitMirrorMailingLists
GITHOSTINGSOLUTIONSGitlabGogs(GoGitService)
GITLABMostcomprehensivealternativetogithubCommunity(CE)andEnterprise(EE)Edition(readOpenCore)Largeandgreatcommunity
GOGSMinimalrequirements(RaspberryPimayfit)writteningoLDAPsupport
CONTINUOUSWHAT?INTEGRATION!Developmentpracticewhere:
Developerspushcoderegularly(Buildand)verifiedautomaticallyDevelopers(andPM)arenotifiedofthecode(andbuild)status
Usuallywhenstatechanges
CI-WHY?BeawareofregressionsandproblemsatanearlystageIncreaseproductivityandprojectpaceIncreasereliabilityofyourdeployments
CI-CAVEATAutomatedtestsdependson
QualityofyourtestsCoverageofyourtests
Developersmayonlyfocusonsucceedingtests
Poortestsresultsintobadcodequality
CI-(SELF-)HOSTEDSOLUTIONSjenkins.iodrone.iodockunit.io(abandoned)gitlab-cicaptain(abandoned)docker-jenkins
CI-RUNNINGTESTFRAMEWORKS
LookintostaticcodeanalysistoolsforyouusedlanguageConsiderPMDtofindinefficientcode
Examples
GetanideaseeTravis-CI-BuildingaPHPprojectUsingOCLintwithTravisCIorJenkinsCIfortestingC,C++,Objective-C
CODEQUALITYHostedServices(FreeasBeerforOSS.)
ScrutinizerCICodeClimateSensioLabsInsight
CONTINUOUSDELIVERYExtendsCIthroughdeployment
DonebyPipelines
JenkinsPipelinePluginGitlabPipelines.gitlab-ci.yml
DOMESTICATINGDEVELOPERSANDPROJECTMANAGEMENTManySoftwaredevelopmentmethodologies
KanbanPairprogrammingScrum
GITLABISSUEBOARD
SERVERLESSKANBANFORGITHUBISSUESUSINGGH-PAGES
SOMEMOREFANCYSTUFF?
SLACKLOOKSPROMISING!WhatifSlackserversarebreached?WhatifSlackissold?Isthereaworkingexportfunction?Subscription
WHYDIDMATTERMOSTHAPPEN?In2014,SlackbecamepopularinSiliconValley,andourcompanyadopteditformessaging.Butwehadaproblem–ourarchiveswereinouroldmessagingapp.Afteroursubscriptionexpired,theoldappwantedustopaythemtoaccessourowndata(andexportstilldidn’twork!).Wehatedbeinglockedin.Wefumed.Ourdiscussions,ourresearch,ouranalyses,andgigabytesofourcarefullytaggedin-gameartworkwasallheldforransombytheservicewehadtrusted.Slackwasgood,butitwasanotherproprietarySaaSapp,andwe’djustbeenburned.
SELFHOSTEDSLACKALTERNATIVES
Whatarethebeston-sitealternativestoSlack?
MattermostRocket.chatZulip
FiveOpen-SourceSlackAlternatives
MATTERMOST
DOYOULOVEFANCYSTUFF?
#CHATOPS
DEVISIONOF#YOLOOPSChatOpsbrings thecontextofworkyouarealreadydoing intotheconversationsyouarealreadyhaving.@jfryman
RememberEggdropandIRC?Nowcombinationof:
Hubot,Lita,ErrMattermost,Rocket.chat,Zulip
CHATOPS
CHATOPS
CHATOPS
CHATOPSChatOpsatGitHubpagerduty:So,WhatisChatOps?AndHowdoIGetStarted?ChatOps:EverythingaboutdeploymentsrightinsideyourchatAnsibleandChatOps.GetstartedToBoostDevOps,TryChatOps
CREDITSSVNStructureGitclient/serverGitlabPipelinesGitlabIssueBoardServerlessKanbanforGitHubIssuesusinggh-pages
CREDITSSlackMattermostlatestfeaturesNewRelicChatOpsPagerDutyChatOpsNetwaysChatOps
SLIDESwaja.github.io/software_development_from_devops_view/sw_dev_from_devops_osmc2016
DeckTape-PDFexporterforHTMLpresentationframeworksLizenz:CC-SA-3.0-DEMail:[email protected]