Closing the gap between Distros(devs) and their Users(ops)
-
Upload
kris-buytaert -
Category
Technology
-
view
4.078 -
download
0
Transcript of Closing the gap between Distros(devs) and their Users(ops)
Closing the gap Closing the gap between Distros (devs) between Distros (devs) and their Users (ops)and their Users (ops)
Kris Buytaert
@krisbuytaert
Kris BuytaertKris Buytaert● 20+ years of Linux System Administration20+ years of Linux System Administration
● Release manager of upstream open source Release manager of upstream open source software (back in 2001)software (back in 2001)
● Assisting organisations in deploying software , Assisting organisations in deploying software , better, faster, stronger,better, faster, stronger,
● Slackware, SLS, RedHat, Debian, Suse, Fedora, Slackware, SLS, RedHat, Debian, Suse, Fedora, RHEL, CentOS, SLES, UbuntuRHEL, CentOS, SLES, Ubuntu
● Busy building stufBusy building stuf
devops =~C(L)AMSdevops =~C(L)AMS● CultureCulture
● (Lean)(Lean)
● AutomationAutomation
• Build, Deploy, Package,ConfigureBuild, Deploy, Package,Configure
● MeasurementMeasurement
● SharingSharing
Damon Edwards and John WillisDamon Edwards and John Willis
Culture,Culture,automation, automation,
Measturement,Measturement,
sharingsharing
How I illustrate dev-oopsHow I illustrate dev-oops● ““Put this Code Live, here's a tarball” NOW! Put this Code Live, here's a tarball” NOW!
● What dependencies ?What dependencies ?
● No machines available ?No machines available ?
● What database ?What database ?
● Security ?Security ?
● High Availability ? High Availability ?
● Scalability ?Scalability ?
● My computer can't install this ?My computer can't install this ?
How I illustrate distro-How I illustrate distro-oopsoops
● We've introduced “XYZ” in the releaseWe've introduced “XYZ” in the release
● What where .. What where ..
• Shit just broke ..Shit just broke ..
• All tests gone redAll tests gone red
• That's a major refactorThat's a major refactor
• 6 renamed packages and diferent defaults6 renamed packages and diferent defaults
• Where's the disable buttonWhere's the disable button
Root CauseRoot Cause● Ops are to busy fixing … Ops are to busy fixing …
● Someone else will react to this .. this is “trivial”Someone else will react to this .. this is “trivial”
● They can't be this … They can't be this …
● No trivial feedback loopNo trivial feedback loop
● Ops Ops folks are not involved in the communitiesOps Ops folks are not involved in the communities
● Is your community, your userbase ? Is your community, your userbase ?
Your Team
Your community : Power users, evangelists contributors
Upstream
Users Users active in other Open Source Communities
Your Customers ?
Your Team
Your active vocal usersaka community
Upstream
Users Users active in other Open Source Communities
Difer
ent U
se C
ases
,
Difer
ent N
eeds
Culture, Culture,
Automation,Automation,Measurement,Measurement,
SharingSharing
Launch all deamonsLaunch all deamons● Because in a clustered setup I want the Because in a clustered setup I want the
daemon running only on the node my CRM tells daemon running only on the node my CRM tells it to.it to.
● Because I first want to reconfigure that service Because I first want to reconfigure that service etc before you launch itetc before you launch it
● Or I`m building a containerOr I`m building a container
● Mostly aimed at single server setups :(Mostly aimed at single server setups :(
Idea Idea ● apt-get install vs apt-get runapt-get install vs apt-get run
● yum install vs yum runyum install vs yum run
#packagingsucks#packagingsucks• Really ..Really ..
● Missing upstreamMissing upstream
● Ancient upstreamAncient upstream
● Unneeded dependenciesUnneeded dependencies
● Broken upstreamBroken upstream
● Distro PoliciesDistro Policies
● Packaging is needed Packaging is needed
● Dependencies, tooling, repositoriesDependencies, tooling, repositories
Languages and PackagingLanguages and Packaging
CPAN,RubyGems,PIP,...CPAN,RubyGems,PIP,...
Every single language tries to package their Every single language tries to package their libraries,libraries,
Ops people hate those packagesOps people hate those packages
And repackage themAnd repackage them
fpm -s gem -t rpm fpm fpm -s gem -t rpm fpm
Devs vs ops Devs vs ops ● Getting the latest Getting the latest
versions working on versions working on their dev setuptheir dev setup
● Get that from the Get that from the internet fastinternet fast
● curl http://shaky.li.nk | curl http://shaky.li.nk | sudo /bin/bashsudo /bin/bash
● Works on my machineWorks on my machine
● A reproducableA reproducable
● Shippable Shippable
● ArtifactArtifact
● MaintainabilityMaintainability
What ops do ..What ops do ..● Deploy ruby in jruby Deploy ruby in jruby
● Software Collections (newer versions)Software Collections (newer versions)
●
What ops do ..What ops do ..● Build a full stack in a chroot Build a full stack in a chroot
• Virtualenv, rbenv, rvmVirtualenv, rbenv, rvm
• Build in containersBuild in containers
Distros and PackagingDistros and Packaging
Some DistrosSome Distros● Package unexisting releasesPackage unexisting releases
● Change version numbersChange version numbers
● Make developers hate those distrosMake developers hate those distros
● The distro that once shipped an 2.6 Kernel The distro that once shipped an 2.6 Kernel version of openMosix knows I`m talking about version of openMosix knows I`m talking about them.them.
Contributing to Distros ?Contributing to Distros ?
Distribution packaging policies are not designed Distribution packaging policies are not designed for people who package softwarefor people who package software
John Vincent, on his blog in 2013John Vincent, on his blog in 2013
Should this even be in a distro ?Should this even be in a distro ?
● ““What do you mean there is php code in /etc ?”What do you mean there is php code in /etc ?”
● /etc/drupal ?/etc/drupal ?
● Are you kidding me ?Are you kidding me ?
● Just kill that package, don't ever use it again Just kill that package, don't ever use it again and let our jenkins roll our own.and let our jenkins roll our own.
Hey Distro:Hey Distro:● There is no way you can keep up with the There is no way you can keep up with the
speed of some webapps releasing new speed of some webapps releasing new versions.versions.
● Maybe you shouldn't even tryMaybe you shouldn't even try
Culture, Culture,
Automation, Automation,
Measurement,Measurement,
SharingSharing
Distro's do great workDistro's do great work• OBS OBS
• CBS CBS
● Not all of it is known Not all of it is known
CI for UpstreamCI for Upstream● Engage with upstreamEngage with upstream
● Provide tools for them to build packages easyProvide tools for them to build packages easy
Who is your user ?Who is your user ?● Junior Software developer who needsJunior Software developer who needs
• Database, webserver etc Database, webserver etc
• Running trivially Running trivially
● Ops guy who needs to deploy , manage and Ops guy who needs to deploy , manage and monitor large inframonitor large infra
Get your power users involvedGet your power users involved
● More MeetupsMore Meetups
● Lugs are dissapearingLugs are dissapearing
● User Advisory boardUser Advisory board
● Engage them, before they complain, or switch Engage them, before they complain, or switch to another distroto another distro
ContactContactKris Buytaert [email protected] Buytaert [email protected]
Further ReadingFurther Reading@krisbuytaert @krisbuytaert http://www.krisbuytaert.be/blog/http://www.krisbuytaert.be/blog/http://www.inuits.eu/http://www.inuits.eu/
Find Inuits inFind Inuits in
Brasschaat,Ghent,Brasschaat,Ghent,Rotterdam,Prague,Rotterdam,Prague,Kiev,BrnoKiev,Brno