Top Banner
SOFTWARE DEVELOPMENT SEEN FROM A YOLO^WDEVOPS Jan Wagner [email protected] http://log.c5t.org/about
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

Nov 05, 2018

Download

Documents

hoangngoc
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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]