Package all the things, from #ihatepackaging to #packaginglove

1,639 views

Published on

Slides as presented at LinuxCon 2014 in Dusseldorf

Automated Software Delivery on Linux,
Continuous Delivery of software on Linux ,

As operations persons we like to have software installed from apt or yum repositories in clean packages.
We want to be able to trace the origin of a file and have smooth upgrade paths.

But distributions make it hard on us, then languages reinvent the wheel, then developers want to ship software in different ways ..

fpm, fpmcookery, omnibus, specfiles to the rescue, or chaos and hairpulls.

This talk will guid you trough the maze of how to deploy software, from different sources in a sane way.
How and when to use different packaging tools that will make your life easier, and how this approach will help you in growing towards a #devops approach

Published in: Technology
0 Comments
15 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,639
On SlideShare
0
From Embeds
0
Number of Embeds
159
Actions
Shares
0
Downloads
15
Comments
0
Likes
15
Embeds 0
No embeds

No notes for slide

Package all the things, from #ihatepackaging to #packaginglove

  1. 1. Package All the things From #packagingsucks to #packaginglove Kris Buytaert @krisbuytaert
  2. 2. KKrriiss BBuuyyttaaeerrtt ● II uusseedd ttoo bbee aa DDeevv,, ● TThheenn BBeeccaammee aann OOpp ● OOppeennMMoossiixx RReelleeaassee MMaannaaggeerr && PPaacckkaaggeerr ● CChhiieeff TTrroolllliinngg OOffffiicceerr aanndd OOppeenn SSoouurrccee CCoonnssuullttaanntt @@iinnuuiittss..eeuu ● EEvveerryytthhiinngg iiss aann eeffffiinngg DDNNSS PPrroobblleemm ● BBuuiillddiinngg CClloouuddss ssiinnccee bbeeffoorree tthhee bbooookkssttoorree ● OOrrggaanniissiinngg ttoooo mmaannyy ccoonnffss ,, ##ddeevvooppssddaayyss,, ##llooaaddaayyss,, ...... ● EEvvaannggeelliizziinngg ddeevvooppss
  3. 3. WWhhyy ttaallkk aabboouutt PPaacckkaaggiinngg ??
  4. 4. ddeevvooppss ==~~ ccllaammss ● CCuullttuurree ● ((LLeeaann)) ● AAuuttoommaattee aallll tthhee tthhiinnggss ...... • BBuuiilldd AAuuttoommaattiioonn • PPaacckkaaggee aallll tthhee tthhiinnggss • TTeesstt AAuuttoommaattiioonn • IIAACC ● MMoonniittoorriinngg ,, MMeettrriiccss ...... ● SShhaarriinngg
  5. 5. LLeett''ss ttaallkk aabboouutt PPaacckkaaggiinngg ● WWhhoo aarree yyoouu ?? ● DDoo yyoouu ppaacckkaaggee ?? • PPaacckkaaggiinngg ssooffttwwaarree iinn aa ddiissttrroo ?? • PPaacckkaaggiinngg llaanngguuaaggeess ?? • PPaacckkaaggiinngg iinn aann eenntteerrpprriissee
  6. 6. #packagingsucks
  7. 7. ##ppaacckkaaggiinnggssuucckkss • RReeaallllyy .... ● MMiissssiinngg uuppssttrreeaamm ● AAnncciieenntt uuppssttrreeaamm ● UUnnnneeeeddeedd ddeeppeennddeenncciieess ● BBrrookkeenn uuppssttrreeaamm ● DDiissttrroo PPoolliicciieess ● ““MMaaxxiimmuumm RRPPMM”” ?? ● PPaacckkaaggiinngg iiss nneeeeddeedd ● DDeeppeennddeenncciieess,, ttoooolliinngg,, rreeppoossiittoorriieess
  8. 8. PPaacckkaaggee aallll tthhee tthhiinnggss
  9. 9. WWhhyy ooppss lliikkee ttoo ppaacckkaaggee ● PPaacckkaaggeess ggiivvee yyoouu ffeeaattuurreess •CCoonnssiisstteennccyy,, sseeccuurriittyy,, ddeeppeennddeenncciieess ● UUnniiqquueellyy iiddeennttiiffyy wwhheerree ffiilleess ccoommee ffrroomm •PPaacckkaaggee oorr ccffgg--mmggmmtt ● SSoouurrccee rreeppoo nnoott aallwwaayyss aavvaaiillaabbllee •FFiirreewwaallll // CClloouudd eettcc .... ● WWeeiirrdd ddeeppllooyymmeenntt llooccaattiioonnss ,, nnoo eeaassyy aacccceessss ● LLiittttllee oovveerrhheeaadd wwhheenn yyoouu aauuttoommaattee ● CCOONNFFIIGG ddooeess nnoott bbeelloonngg iinn aa ppaacckkaaggee
  10. 10. IInn CCoonnttiinnuuoouuss DDeelliivveerryy ● UUnnmmooddiiffiieedd ,, TTeesstteedd aarrttiiffaaccttss ggoo ttrroouugghh aa ppiippeelliinnee.. aapppplliiccaattiioonn ccooddee,, IInnffrraa ccooddee mmeettaaddaattaa tteessttss ● WWee nneeeedd ttoo ppaacckkaaggee tthheessee ssoo tthheeyy bbeeccoommee iimmmmuuttaabbllee
  11. 11. DDeeppllooyy oonnccee vvss MMoorree ● SSccaalleeoouutt ● DDeeppllooyy ffrreesshh ppllaattffoorrmm ● NNoo mmaannuuaall aaccttiioonn ttoo ggeett tthhee aarrttiiffaacctt oonn tthhee ppllaattffoorrmm
  12. 12. LLaanngguuaaggeess aanndd PPaacckkaaggiinngg
  13. 13. CCPPAANN,,RRuubbyyGGeemmss,,PPIIPP,,...... EEvveerryy ssiinnggllee llaanngguuaaggee ttrriieess ttoo ppaacckkaaggee tthheeiirr lliibbrraarriieess,, OOppss ppeeooppllee hhaattee tthhoossee ppaacckkaaggeess AAnndd rreeppaacckkaaggee tthheemm
  14. 14. DDeevvss vvss ooppss ccaarree aabboouutt ● GGeettttiinngg tthhee llaatteesstt vveerrssiioonnss wwoorrkkiinngg oonn tthheeiirr ddeevv sseettuupp ● GGeett tthhaatt ffrroomm tthhee iinntteerrnneett ffaasstt ● AA rreepprroodduuccaabbllee ● SShhiippppaabbllee ● AArrttiiffaacctt
  15. 15. ““Now we ggoo ttoo lluunncchh wwhhiillee MMaavveenn ddoowwnnllooaaddss tthhee IInntteerrnneett”” SSoommee jjaavvaa ddeevveevveellooppeerr oonn tthhee iinntteerrnneett
  16. 16. WWhhyy ddoowwnnllooaadd tthhee iinntteerrnneett ?? ● ----llaatteesstt ● NNoo ssttrriicctt vveerrssiioonniinngg ● DDeeppeennddeenncciieess ● ((rruubbyyggeemmss,, pphhpp ccoommppoosseerr,, ........ )) ● WWhheerree ddoo yyoouu vveerrssiioonn ?? ● ''bbuuiilldd'' oonn pprroodduuccttiioonn ?? ● IItt wwoorrkkss oonn mmyy mmaacchhiinnee !!
  17. 17. WWhhaatt ooppss ddoo .... ● BBuuiilldd aa ffuullll ssttaacckk iinn aa cchhrroooott ● DDeeppllooyy rruubbyy iinn jjrruubbyy ● SSooffttwwaarree CCoolllleeccttiioonnss ● LLoooossee mmoorree hhaaiirr ●
  18. 18. EEnntteerr OOmmnniibbuuss ● EEaassiillyy ccrreeaattee ffuullll--ssttaacckk iinnssttaalllleerrss ffoorr yyoouurr pprroojjeecctt aaccrroossss aa vvaarriieettyy ooff ppllaattffoorrmmss.. ● DDooeessnn''tt bbrreeaakk rruubbyy vveerrssiioonnss iinn //oopptt//
  19. 19. DDiissttrrooss aanndd PPaacckkaaggiinngg
  20. 20. LLaauunncchh aallll ddeeaammoonnss ● BBeeccaauussee iinn aa cclluusstteerreedd sseettuupp II wwaanntt tthhee ddaaeemmoonn rruunnnniinngg oonnllyy oonn tthhee nnooddee mmyy CCRRMM tteellllss iitt ttoo.. ● BBeeccaauussee II ffiirrsstt wwaanntt ttoo rreeccoonnffiigguurree iinnnnooddbb eettcc bbeeffoorree yyoouu llaauunncchh iitt ● MMoossttllyy aaiimmeedd aatt ssiinnggllee sseerrvveerr sseettuuppss ::((
  21. 21. PPaacckkaaggiinngg UUppssttrreeaamm SSooffttwwaarree ● PPaacckkaaggiinngg DDrruuppaall 66 ● PPaacckkaaggiinngg DDrruuppaall 77 ● IInn bbrrookkeenn llooccaattiioonnss ,, aa wweebbssiittee wwiitthh iitt''ss ccoonntteenntt ddooeess NNOOTT bbeelloonngg iinn //eettcc//ddrruuppaall66
  22. 22. SSoommee DDiissttrrooss ● PPaacckkaaggee uunneexxiissttiinngg rreelleeaasseess ● CChhaannggee vveerrssiioonn nnuummbbeerrss ● MMaakkee ddeevveellooppeerrss hhaattee tthhoossee ddiissttrrooss ● TThhee ddiissttrroo tthhaatt oonnccee sshhiippppeedd aann 22..66 KKeerrnneell vveerrssiioonn ooff ooppeennMMoossiixx kknnoowwss II``mm ttaallkkiinngg aabboouutt tthheemm..
  23. 23. CCoonnttrriibbuuttiinngg ttoo DDiissttrrooss ?? DDiissttrriibbuuttiioonn ppaacckkaaggiinngg ppoolliicciieess aarree nnoott ddeessiiggnneedd ffoorr ppeeooppllee wwhhoo ppaacckkaaggee ssooffttwwaarree JJoohhnn VViinncceenntt,, oonn hhiiss bblloogg iinn 22001133
  24. 24. IIss iitt aa ddiissttrroo''ss jjoobb ttoo sshhiipp aallll wweebbaappppss iinn tthhee wwoorrlldd ??
  25. 25. NNoott aallll ppaacckkaaggeess aarree eeqquuaall
  26. 26. ffppmm ● YYeess tthhee FF ssttaannddss ffoorr EEffffiinngg ● ##ppaacckkaaggiinnggssuucckkss ● MMiissssiinngg uuppssttrreeaamm ● AAnncciieenntt uuppssttrreeaamm ● UUnnnneeeeddeedd ddeeppeennddeenncciieess ● BBrrookkeenn uuppssttrreeaamm ● DDiissttrroo PPoolliicciieess ● ““MMaaxxiimmuumm RRPPMM”” ?? ● PPaacckkaaggiinngg iiss nneeeeddeedd ● DDeeppeennddeenncciieess,, ttoooolliinngg,, rreeppoossiittoorriieess ● AAnnggeerr ddrriivveenn ddeevveellooppmmeenntt
  27. 27. ffppmm
  28. 28. ffppmm fpm -t rpm -s dir -n hornetq -v 2.2.5 hornetq Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.nNkVwh + umask 022 + cd /usr/local/build-rpm-hornetq-2.2.5.x86_64.rpm/BUILD + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.yUd4MV + umask 022 + cd /usr/local/build-rpm-hornetq-2.2.5.x86_64.rpm/BUILD + cd /usr/local/build-rpm-hornetq-2.2.5.x86_64.rpm/BUILD + tar -zxf /usr/local/build-rpm-hornetq-2.2.5.x86_64.rpm/data.tar.gz + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.jkpqeA + umask 022 + cd /usr/local/build-rpm-hornetq-2.2.5.x86_64.rpm/BUILD + /usr/lib/rpm/brp-compress + /usr/lib/rpm/brp-strip + /usr/lib/rpm/brp-strip-static-archive + /usr/lib/rpm/brp-strip-comment-note Processing files: hornetq-2.2.5-1.x86_64 Checking for unpackaged file(s): /usr/lib/rpm/check-files /usr/local/build-rpm-hornetq-2.2.5.x86_64.rpm/BUILD Wrote: /usr/local/build-rpm-hornetq-2.2.5.x86_64.rpm/SRPMS/hornetq-2.2.5-1.src.rpm Wrote: /usr/local/build-rpm-hornetq-2.2.5.x86_64.rpm/RPMS/x86_64/hornetq-2.2.5-1.x86_64.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.z2UL3B + umask 022 + cd /usr/local/build-rpm-hornetq-2.2.5.x86_64.rpm/BUILD + rm -rf /usr/local/build-rpm-hornetq-2.2.5.x86_64.rpm/BUILD + exit 0 Created /usr/local/hornetq-2.2.5.x86_64.rpm
  29. 29. ffppmm iinn aaccttiioonn ● hhttttppss::////ggiitthhuubb..ccoomm//KKrriissBBuuyyttaaeerrtt//bbuuiilldd--ggeemmss ● FFoorrkk,, ppuullll ● JJeennkkiinnss ppuullllss ,, bbuuiillddss ,, ppuusshheess ttoo rreeppoo
  30. 30. So wwee ''ssoollvveedd'' ppaacckkaaggiinngg,, nnooww hhooww ttoo sshhiipp ppaacckkaaggeess ??
  31. 31. IItt wwoorrkkss,, iitt ddooeessnn''tt wwoorrkk ● IImmaaggiinnee aa wwoorrkkiinngg ppuuppppeett sseettuupp ● AAtt ddiiffffeerreenntt ccuussttoommeerrss ● UUppssttrreeaamm VVeennddoorr rreelleeaasseess nneeww ssooffttwwaarree ● HHaallff ooff tthhee ccuussttoommeerrss ccaallll ccrryyiinngg tthhaatt tthheeiirr ppllaattffoorrmm iiss bbrrookkeenn
  32. 32. AA bbrrookkeenn mmccoolllleeccttiivvee ● CCuussttoommeerrss wwiitthh sseellff mmaannaaggeedd ((ppaacckkaaggee)) rreeppooss aarree hhaappppyy ● CCuussttoommeerrss uussiinngg uuppssttrreeaamm rreeppooss aarree iinn ppaaiinn
  33. 33. RReeppoossiittoorryy MMaannaaggeemmeenntt
  34. 34. RReeppoossiittoorryy MMaannaaggeemmeenntt ● PPuullpp • PPrroo :: MMiirrrroorriinnggLLoovvee • CCoonn :: MMoonnggoo,, SSttaabbiilliittyy,, ..ddeebb,, ffoorrggee ● PPRRMM ● YYuumm RReeppoo SSeerrvveerr bbyy IISS2244
  35. 35. VVeerrssiioonn vvss LLaatteesstt ● VVeerrssiioonn yyoouurr rreeppooss ?? eennssuurree ==>> llaatteessttss ● LLaatteesstt yyoouurr eennvviirroonnmmeennttss ?? ● SSttrriicctt vveerrssiioonniinngg iinn ccoonnffiigg ?? EEnnssuurree ==>> ''00..9988..44'' UUssee HHiieerraa
  36. 36. BBuutt iitt''ss 22001144,, aanndd wwee hhaavvee ::
  37. 37. PPaacckkaaggeess jjuusstt ggoott bbiiggggeerr
  38. 38. IImmaaggee BBuuiilldd bbyy ddeevvss,, mmaaiinnttaaiinneedd bbyy nnoobbooddyy If all you know is docker, eevveerryy wwhhaallee llooookkss lliikkee aa pprriivvaattee cclloouudd
  39. 39. IInn CCoonnttiinnuuoouuss DDeelliivveerryy ● IImmmmuuttaabbllee ,, TTeesstteedd aarrttiiffaaccttss tthhaatt ggoo ttrroouugghh aa ppiippeelliinnee.. ● GGoollddeenn IImmaaggee ,, • WWhhaatt aabboouutt eennvviirroonnmmeennttaall cchhaannggeess • TThhiiss iiss wwhhaatt wwee ccrreeaatteedd ccffggmmggmmtt ttoooollss ffoorr !! ● MMaakkee ssuurree yyoouu uussee ddoocckkeerr tthhee rriigghhtt wwaayy !!
  40. 40. ##ddeevvooppssddaayyss 22001100 OOppeenn SSppaaccee CCoonncclluussiioonnss ● AAllwwaayyss ppaacckkaaggee ssooffttwwaarree YYOOUU ddeeppllooyy • EExxcceeppttiioonnss:: ccooddee tthhaatt cchhaannggeess ffaasstteerr tthhaann yyoouu ccaann ppaacckkaaggee iitt.. ((VVeerryy rraarree)) ● DDoo NNOOTT ppaacckkaaggee CCoonnffiigg FFIILLEESS ,, • UUssee aa ccffggmmggmmtt ttooooll ffoorr tthhiiss ● LLaanngguuaaggeess aarree ssttiillll rreeiinnvveennttiinngg tthhee wwhheeeell ::((
  41. 41. CCoonnttaacctt KKrriiss BBuuyyttaaeerrtt KKrriiss..BBuuyyttaaeerrtt@@iinnuuiittss..bbee FFuurrtthheerr RReeaaddiinngg @@kkrriissbbuuyyttaaeerrtt hhttttpp::////wwwwww..kkrriissbbuuyyttaaeerrtt..bbee//bblloogg// hhttttpp::////wwwwww..iinnuuiittss..bbee// IInnuuiittss DDuubbooiissttrraaaatt 5500 22006600 AAnnttwweerrppeenn BBeellggiiuumm 889911..551144..223311 ++3322 447755 996611222211

×