SlideShare une entreprise Scribd logo
1  sur  51
Télécharger pour lire hors ligne
SOFTWARE	DEVELOPMENT	SEEN
FROM	A	YOLO^WDEVOPS
Jan	Wagner
waja@cyconet.org
http://log.c5t.org/about
TOOLS	WE	USED	TO	MANAGE
OUR	SOFTWARE
vi
nano
kate
joe
eclipse
netbeans
cp
rsync
ftp
PROBLEMS	WITH	OUR	(OLD)
TOOLS
no	chronological	revisions
multiple	different	versions	(forks)	in	production
multiple	different	local	versions
f00b4r.php
f00b4r_20040410.php
f00b4r_production.php
distributed	via	scp/rsync/ftp
WAY	OUT?
Version	Control	System
tracks	changes	of	files	and	folder
when	=	date	of	the	commit
who	=	name	of	author
why	=	commit	message
TOOLS	WE	USED	TO	MANAGE
OUR	SOFTWARE
CVS
Subversion
RCS
CLIENT-SERVER	VERSION
CONTROL	SOFTWARE
One	linear	software	repository
with	all	versions
Server	down,	no	development
AND	NOW?
How	to	fix	some	of	those	issues?
DISTRIBUTED	VERSION
CONTROL	(RECENTLY	MOVES)
BitKeeper
Mercurial	/	HG
Bazaar
Git
DISTRIBUTED	VERSION
CONTROL
DISTRIBUTED	VERSION
CONTROL
Local	development	possible
committing,	branching,	tagging	...
working	offline
Exchange	of	code	with	all	participants	possible	-	directly
M-P
MONITORING	PLUGINS
Team	Communication
Mailing	Lists
For	legacy	reasons
Mail	seems	not	much	loved	these	days
Issues	/	Pull	Requests
Fits	developers	workflow
IRC
Most	usual
Realtime	communication	for	peer	coding,	release	work
and	discussions
MONITORING	PLUGINS
Usual	branches
Development	-	master	branch
Hotfixes	-	maint-X.Y	branch
usual	cherry-pick	from	master
Feature	-	no	strict	naming	convention
Pull	Requests	from	external	contributors
Branches	where	developers	are	working	on	specific
problems
MONITORING	PLUGINS
Special	branches
Proposed	Updates	-	pu	branch
Coverity	Tests	-	coverity/master	branch
MONITORING	PLUGINS
Milestones
For	prioritizing	work	and	problems,	we	are	using	Milestones
Issues	and	Pull	Requests	are	targeted	for	Milestones
MONITORING	PLUGINS
Code	contributions
via	Pull	Requests
Work	by	developers
done	in	Feature	branches
even	those	are	reviewed	by	other	members	usually
through	Pull	Requests
MONITORING	PLUGINS
Quality	Assurance
We	ship	test	cases	for	plugins	and	C	library	functions
make	test	runs	those
Can	we	take	further?
Yes	we	did!
MONITORING	PLUGINS
Quality	Assurance
Automation	with	Travis-CI
Compiling	and	running	make	test	on	every	push	(to
github)
MONITORING	PLUGINS
Quality	Assurance
Automation	with	Travis-CI
This	happens	also	for	Pull	Requests
Can	be	observed	directly	in	the	PR
MONITORING	PLUGINS
Quality	Assurance
Reliability	of	(Travis-)CI
Only	as	good	as	coverage	of	make	test
When	depending	on	external	infrastructure,	this	may	vary
Depends	on	reliability	of	CI-infrastructure	/	build	servers
MONITORING	PLUGINS
Quality	Assurance
Code	Quality
Static	code	analysis	performed	by	Coverity	Scan
Merged	master	via	cronjob	once	a	week	into
coverity/master,	Travis	triggers	the	Coverity	Scan
MONITORING	PLUGINS
Infrastruture
On	the	surface	we	massively	rely	on	external	resources
In	fact	we	run	own	project	infrastructure
Website
Git	Mirror
Mailing	Lists
GIT	HOSTING	SOLUTIONS
Gitlab
Gogs	(Go	Git	Service)
GITLAB
Most	comprehensive	alternative	to	github
Community	(CE)	and	Enterprise	(EE)	Edition	(read	OpenCore)
Large	and	great	community
GOGS
Minimal	requirements	(Raspberry	Pi	may	fit)
written	in	go
LDAP	support
CONTINUOUS	WHAT?
INTEGRATION!
Development	practice	where:
Developers	push	code	regularly
(Build	and)	verified	automatically
Developers	(and	PM)	are	notified	of	the	code	(and	build)
status
Usually	when	state	changes
CI	-	WHY?
Be	aware	of	regressions	and	problems	at	an	early	stage
Increase	productivity	and	project	pace
Increase	reliability	of	your	deployments
CI	-	CAVEAT
Automated	tests	depends	on
Quality	of	your	tests
Coverage	of	your	tests
Developers	may	only	focus	on	succeeding	tests
Poor	tests	results	into	bad	code	quality
CI	-	(SELF-)HOSTED	SOLUTIONS
jenkins.io
drone.io
dockunit.io	(abandoned)
gitlab-ci
captain	(abandoned)
docker-jenkins
CI	-	RUNNING	TEST
FRAMEWORKS
Look	into	static	code	analysis	tools	for	you	used	language
Consider	PMD	to	find	inefficient	code
Examples
Get	an	idea	see	Travis-CI	-	Building	a	PHP	project
Using	OCLint	with	Travis	CI	or	Jenkins	CI	for	testing	C,	C++,
Objective-C
CODE	QUALITY
Hosted	Services	(Free	as	Beer	for	OSS.)
Scrutinizer	CI
Code	Climate
SensioLabsInsight
CONTINUOUS	DELIVERY
Extends	CI	through	deployment
Done	by	Pipelines
Jenkins	Pipeline	Plugin
Gitlab	Pipelines	.gitlab-ci.yml
DOMESTICATING	DEVELOPERS
AND	PROJECT	MANAGEMENT
Many	Software	development	methodologies
Kanban
Pair	programming
Scrum
GITLAB	ISSUE	BOARD
SERVERLESS	KANBAN	FOR
GITHUB	ISSUES	USING	GH-
PAGES
SOME	MORE	FANCY	STUFF?
SLACK	LOOKS	PROMISING!
What	if	Slack	servers	are	breached?
What	if	Slack	is	sold?
Is	there	a	working	export	function?
Subscription
WHY	DID	MATTERMOST	HAPPEN?
In	2014,	Slack	became	popular	in	Silicon	Valley,	and	our
company	adopted	it	for	messaging.	But	we	had	a	problem–our
archives	were	in	our	old	messaging	app.	After	our	subscription
expired,	the	old	app	wanted	us	to	pay	them	to	access	our	own
data	(and	export	still	didn’t	work!).	We	hated	being	locked	in.	We
fumed.	Our	discussions,	our	research,	our	analyses,	and
gigabytes	of	our	carefully	tagged	in-game	artwork	was	all	held	for
ransom	by	the	service	we	had	trusted.	Slack	was	good,	but	it
was	another	proprietary	SaaS	app,	and	we’d	just	been	burned.
SELFHOSTED	SLACK
ALTERNATIVES
What	are	the	best	on-site	alternatives	to	Slack?
Mattermost
Rocket.chat
Zulip
Five	Open-Source	Slack	Alternatives
MATTERMOST
DO	YOU	LOVE	FANCY	STUFF?
#CHATOPS
DEVISION	OF	#YOLOOPS
ChatOps	brings	the	context	of	work	you	are	already	doing	into
the	conversations	you	are	already	having.	@jfryman
Remember	Eggdrop	and	IRC?
Now	combination	of:
Hubot,	Lita,	Err
Mattermost,	Rocket.chat,	Zulip
CHATOPS
CHATOPS
CHATOPS
CHATOPS
ChatOps	at	GitHub
pagerduty:	So,	What	is	ChatOps?	And	How	do	I	Get	Started?
ChatOps:	Everything	about	deployments	right	inside	your
chat
Ansible	and	ChatOps.	Get	started
To	Boost	DevOps,	Try	ChatOps
CREDITS
SVN	Structure
Git	client/server
Gitlab	Pipelines
Gitlab	Issue	Board
Serverless	Kanban	for	GitHub	Issues	using	gh-pages
CREDITS
Slack
Mattermost	latest	features
NewRelic	ChatOps
PagerDuty	ChatOps
Netways	ChatOps
SLIDES
waja.github.io/software_development_from_devops_view/sw_dev_from_devops_osmc2016
DeckTape	-	PDF	exporter	for	HTML	presentation	frameworks
Lizenz:	CC-SA-3.0-DE
Mail:	Jan	Wagner	waja@cyconet.org

Contenu connexe

Tendances

SVN Best Practices
SVN Best PracticesSVN Best Practices
SVN Best Practices
abackstrom
 
Source code management
Source code managementSource code management
Source code management
Widoyo PH
 

Tendances (19)

From SVN to Git
From SVN to GitFrom SVN to Git
From SVN to Git
 
SVN Basics
SVN BasicsSVN Basics
SVN Basics
 
Pipeline based deployments on Jenkins
Pipeline based deployments  on JenkinsPipeline based deployments  on Jenkins
Pipeline based deployments on Jenkins
 
Nguyễn Vũ Hưng: Subversion best practices
Nguyễn Vũ Hưng: Subversion best practicesNguyễn Vũ Hưng: Subversion best practices
Nguyễn Vũ Hưng: Subversion best practices
 
Jenkins Declarative Pipelines 101
Jenkins Declarative Pipelines 101Jenkins Declarative Pipelines 101
Jenkins Declarative Pipelines 101
 
Version Control with SVN
Version Control with SVNVersion Control with SVN
Version Control with SVN
 
LCA14: LCA14-403: Importance of migrating external projects used in Android t...
LCA14: LCA14-403: Importance of migrating external projects used in Android t...LCA14: LCA14-403: Importance of migrating external projects used in Android t...
LCA14: LCA14-403: Importance of migrating external projects used in Android t...
 
Version your build process as you version your code
Version your build process as you version your codeVersion your build process as you version your code
Version your build process as you version your code
 
SVN Best Practices
SVN Best PracticesSVN Best Practices
SVN Best Practices
 
CI/CD on Android project via Jenkins Pipeline
CI/CD on Android project via Jenkins PipelineCI/CD on Android project via Jenkins Pipeline
CI/CD on Android project via Jenkins Pipeline
 
Pipeline as code - new feature in Jenkins 2
Pipeline as code - new feature in Jenkins 2Pipeline as code - new feature in Jenkins 2
Pipeline as code - new feature in Jenkins 2
 
Pipeline as code using Jenkins -Ministry of Testing
Pipeline as code using Jenkins -Ministry of TestingPipeline as code using Jenkins -Ministry of Testing
Pipeline as code using Jenkins -Ministry of Testing
 
SCM (Source Control Management) - Git Basic
SCM (Source Control Management) - Git Basic SCM (Source Control Management) - Git Basic
SCM (Source Control Management) - Git Basic
 
Version Control Systems -- Git -- Part I
Version Control Systems -- Git -- Part IVersion Control Systems -- Git -- Part I
Version Control Systems -- Git -- Part I
 
SVN Best Practices
SVN Best PracticesSVN Best Practices
SVN Best Practices
 
PHP Deployment With SVN
PHP Deployment With SVNPHP Deployment With SVN
PHP Deployment With SVN
 
Source code management
Source code managementSource code management
Source code management
 
Version Control and Continuous Integration
Version Control and Continuous IntegrationVersion Control and Continuous Integration
Version Control and Continuous Integration
 
Svn tutorial
Svn tutorialSvn tutorial
Svn tutorial
 

Similaire à OSMC 2016: Software Development seen from a #yolo^wdevop by Jan Wagner

Practical SVN for PHP Developers
Practical SVN for PHP DevelopersPractical SVN for PHP Developers
Practical SVN for PHP Developers
Lorna Mitchell
 
Digital Fabrication Studio 0.3 Information
Digital Fabrication Studio 0.3 InformationDigital Fabrication Studio 0.3 Information
Digital Fabrication Studio 0.3 Information
Massimo Menichinelli
 
Introduction to Version Control and Configuration Management
Introduction to Version Control and Configuration ManagementIntroduction to Version Control and Configuration Management
Introduction to Version Control and Configuration Management
Philip Johnson
 
Webforum1
Webforum1Webforum1
Webforum1
naomi
 
Subversion @ JUG Milano 11 dic 2009
Subversion @ JUG Milano 11 dic 2009Subversion @ JUG Milano 11 dic 2009
Subversion @ JUG Milano 11 dic 2009
Andrea Francia
 
Version control with Subversion
Version control with SubversionVersion control with Subversion
Version control with Subversion
O. R. Kumaran
 

Similaire à OSMC 2016: Software Development seen from a #yolo^wdevop by Jan Wagner (20)

Practical SVN for PHP Developers
Practical SVN for PHP DevelopersPractical SVN for PHP Developers
Practical SVN for PHP Developers
 
Feature Based Web Development with Bazaar
Feature Based Web Development with BazaarFeature Based Web Development with Bazaar
Feature Based Web Development with Bazaar
 
SVN Tutorial
SVN TutorialSVN Tutorial
SVN Tutorial
 
Digital Fabrication Studio 0.3 Information
Digital Fabrication Studio 0.3 InformationDigital Fabrication Studio 0.3 Information
Digital Fabrication Studio 0.3 Information
 
De-centralised Version Control with Bazaar
De-centralised Version Control with BazaarDe-centralised Version Control with Bazaar
De-centralised Version Control with Bazaar
 
Introduction to Version Control and Configuration Management
Introduction to Version Control and Configuration ManagementIntroduction to Version Control and Configuration Management
Introduction to Version Control and Configuration Management
 
Webforum1
Webforum1Webforum1
Webforum1
 
Versioning for Developers
Versioning for DevelopersVersioning for Developers
Versioning for Developers
 
Subversion @ JUG Milano 11 dic 2009
Subversion @ JUG Milano 11 dic 2009Subversion @ JUG Milano 11 dic 2009
Subversion @ JUG Milano 11 dic 2009
 
Gerrit linuxtag2011
Gerrit linuxtag2011Gerrit linuxtag2011
Gerrit linuxtag2011
 
Kubernetes_Webinar_Slide_Deck.pdf
Kubernetes_Webinar_Slide_Deck.pdfKubernetes_Webinar_Slide_Deck.pdf
Kubernetes_Webinar_Slide_Deck.pdf
 
Intro To Version Control
Intro To Version ControlIntro To Version Control
Intro To Version Control
 
Subversion
SubversionSubversion
Subversion
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
TDC2018FLN | Trilha Containers - Kubernetes para usuarios Docker.
TDC2018FLN | Trilha Containers - Kubernetes para usuarios Docker.TDC2018FLN | Trilha Containers - Kubernetes para usuarios Docker.
TDC2018FLN | Trilha Containers - Kubernetes para usuarios Docker.
 
Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2
Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2
Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2
 
SVN Tool Information : Best Practices
SVN Tool Information  : Best PracticesSVN Tool Information  : Best Practices
SVN Tool Information : Best Practices
 
SVN Information
SVN Information  SVN Information
SVN Information
 
Kubernetes Workshop
Kubernetes WorkshopKubernetes Workshop
Kubernetes Workshop
 
Version control with Subversion
Version control with SubversionVersion control with Subversion
Version control with Subversion
 

Dernier

Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 

Dernier (20)

%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 

OSMC 2016: Software Development seen from a #yolo^wdevop by Jan Wagner