Bestand wählen
Merken

Delivery Dependency Support (or How Your Project is Not an Island)

Zitierlink des Filmsegments
Embed Code

Automatisierte Medienanalyse

Beta
Erkannte Entitäten
Sprachtranskript
so and I'll set my name is just think of an attack We on workflow k delivery and we're gonna talk about dependencies so if you're not here to talk about dependencies you're in the wrong talk i will not be offended if you but if you are welcome thank you for coming so let's step back white is workflow white delivery while that product exist what are we trying to accomplish we've got all these freedoms
stages we do all the things we unit testing were inland syntax we need humans interact with it make sure it's the right thing what are we trying to accomplish which I doesn't break
production that's the point of this whole thing right we go through all these hoops to make sure that are changes safe to ship there were not scared to push to production but all the things I just talked about or for 1 single project right you may get lucky you might catch cross-project dependencies In acceptance but in general all they're tested targeted around 1 particular project and not how projects interact with each other and the reality of our ecosystem rate is that it so many of our really interesting but these are where different pieces of code hit up against each other because that's where King boundaries are that's where people are thinking about things differently so we talk about dependencies there's a couple different types of dependencies right so 1 type of dependency people mean our library dependencies right but that's nowhere talking about here you're gonna catch those at build time when you go and build your project as a 2nd stage you're gonna catch build and dependencies using will fail to build so that's not very interesting when you talk about is EPI level dependencies so you're your project exposes some type of interface that another project and other application consuming so the example I'm going to use here today is a project is that tiny oral server so we've got an we've given your l and it gives you a little summary right or vise versa and you either made it easier to deal with so clearly they're interacting the API they're builds the deployed and then they interact so let's say 1 data product person comes to you and they're like do this Yuri PI design fact it's not RESTful at all and you go back and make a RESTful so you you update all the the eyes and then while you're at you update T U I you know that part of the new regulations that you don't break everything but in the attention the API gets to production 1st this so we have all these tasks we don't
all these things how to avoid this type of
failure rate and like you can tell your product person you know you have to check every single page of every single thing in acceptance about just over there well rate when the business of automating things not making people's lives miserable so what else can we do to help with us so in terms of thinking about this let's go back and look at all the stages and delivery and talk about what
they're for To that'll tell us where we need to change things so we verified right this is is your code review all right like I you just throwing but the marriage your code look all hole it doesn't make me cry right do we wanna take it into our code base is going to get merged together so that's it that's about build Bell time-dependent rate does that thing don't can we use it we've already accepted it but like let's make sure we can build on their way to acceptance sorry bring our product people did you build directory containing silicon really ugly because we're engineers and we don't always know about you I think this is where we bring the rest of the company and they mess with what we have to make sure that what we wanna ship out production acceptance is also an interesting place because it's the 1st time your project is dealing with its dependencies right runtime and if the PID is because we've taken all those who knew him pull them over because if you're playing with that tiny your LUI right to use the API to try it out but when you get to Union is when life gets really interesting confront everything on its head suddenly that everyone else has to deal with you so this is where we should be finding those CPI level incompatibilities and historically have any way to do that right you got to union you ran your projects smoke functional tests but if you just change the API you might not even know what you lies really relating to you right like in the tiny neural example sure but in a real organization do you really always know who all depending on you all your consumers are even that means that you didn't ever forget 1 have been known to an independence and your project you know about like it doesn't happen right so we need some way to automate up and then rehearsal were the tests from union to make sure that they still work in a clean environment you know union may have had breakages that we Sexton delivered as your production
so as I alluded to you want a way to programmatic declare you can read your runtime dependencies so here we've got an example the top there is the code in and think . Ju-Sung will actually make the you I depend on API is some bottom it's pretty on and when you do that when that change gets to union because union is where we have to interact with other projects the on we actually update the workflow you why so it'll show you dependencies and who depends on you which is cool right and a person your project can go on the like I of this is the lab this is this is worth something is happening like I understand now how these projects in Iraq so some value but that still doesn't keep you from breaking production this
this is what keeps you from breaking the because all we did so is were actually running the test this is the API running and were running the UI test because it has a dependency on now in Union were going to run the tests every single project that have a dependency on us and that's how we're going to know your break thinks rate this broke out in the test before it needed to production yes that's what we want to make a if you have to
hit it the it so now
we go and shift the API the you read we can fix it that's where in the poem never seen that before the buttons orange was about knowledge but buttons orange because things and broke right the union environment is very sad right now it's not just sat in general it's some ways that relate to this project so please don't shipping changes it's not it it's not going to make this better grade don't pile onto the problem that's what that word but you a new things are broken let's go fix them the but in this case were fixing them right we're worshiping that came about about same thing happened except you get to work efficiently to again and now a new new we ran a test the past the we had a bug
week on it in our tests good how yeah so so regenerated their everything everyone knows what to do right just about aligning the advantages are not good you know there's no question yeah I don't think so so here I'm talking about delivery controlling promotion and those of you who use delivery a lotta workflow a problem in like in kind of has to do that I wrote my deployed cookbook and dealing with deploying applications and yet it's true delivery directly can control owing to buy
but that just warns you right that's not actually controlling work of art production
of so what's happening behind the scenes is a delivery truck it actually managing a bunch of version things for you and this is a screenshot from Chef server because that's where delivery truck puts them don't check if you don't know if they build cookbook that is recommended to be used as the basis for your belt cookbooks you can include it and you can include those recipes and then you can add extra stuff your recipes you like and in predict predict that In particular it's the provision stage of delivery truck does all this surgeon management 2 you really you really wanna use delivery truck the provision is at the very least because that's how you get that so your priming like he had about delivery truck I mean how many of you have heard of delivery truck and uses at coal and Europe have heard the delivery truck is just for cookbooks it so it's not of so it also does
obligations and was a total pain in the butt before but we made it easy you just do that you just put that in your published phase and delivery truck would keep track of what applications in your version go with what project and we actually stored in the override attributes sitting need to be dividing so if you need to debug stuff you can go into the over attributes actually see what all the version our on and of course delivery attracts can automatically deploy your application but you can query and pull the version numbers and figure out what you want want to deploy on in using the version used in Virginia build artifacts right and that's how it all ties together so those were documentation of a delivery truck here I knew that the tiny URL but you're not taking notes anyway you know precisely this also if you google the chef delivery truck dark it's but I
so In Mary talked about failed projects straighten things being related to a failed project and how you know 1 thing is related to a failed project to promote so you understand what I mean by promote now but what I mean by relating to help project trade the most obvious thing is like wanted of interdependency irritancy consumer you know if there's a dependency relationship with the felt project by but as I really mean great plate
if you just have short range you get your field starts to get healthy stuff that whole the stuff can keep shipping and we'll just hold the field stuff back and I really mean this straight this'll get stuck in union this about a reversal in the labor union isn't a bottleneck grade you can have a field project in union and still ship all the things that are unrelated your entire company doesn't have to come grind walls which it did before but but and that you're all thinking that's not what my company looks like may convey looks like this
this this is I never had completely unrelated projects that is not my life the so so you have this
again you gotta fill projects it as new stuff that's of related to that's trying to test against that got anything that tries to test you from brain but blocked diff block the simplest way to put it so this means that if you have a union failure you can ship completely unrelated thing we wanna get on that union failure as quickly as you can because it's going to grow like an amoeba but consuming the universe until things that you would never expect and getting blocked and you're probably wondering why the heck would you do that why is that of all consuming blockages and it's actually pretty simple so the this change trade which broke the red 1 then we tested this to green ones on the test have but they tested against that red 1 right because it against a version not the dish and don't actually know how they would have tested against the version of RED in rehearsal and already delivered rate it might break horribly against the version that's further along in the pipeline so we can shift them into we have a chance to test them against a version actually shippable so the whole freakin thing is blocked the until you fix sorry we can but we can it's not magic right so yes Victor union
fast otherwise people are going to get fat it's going to get confusing if you see that below that yellow square if you go the dashpot you'll see with broken in union so you probably want this magic rate the sounds pretty cool on your reading habits by using a delivery that less than 6 months old and you using delivery truck you already have all this functionality all you have to do is go modifier can think that you find dad the dependency theory that if all you have to do and you get all this power and if you don't remember
what I said this documentation that says that all those possibly with left eagle so
here is the summary which i he met API-level dependencies we don't mean we know mean compile-time that's a completely different kettle of fish we mean across project at runtime you need to use delivery trapped in particular you need to use the provision of phase on if you don't or if you use a really old version of delivery trucks that you have to be your company you're going to be sad because very old versions of delivery truck just promote everything is a block of and your safety is gone so don't do that is 1 that's less than 6 months old I keep union healthy because it's going to become a very and block everything and that's where the dark side what questions you all have so look and the the end of the what about a lot more of this using you have an application of what what of so far so I'm going to I also say saying you have a cookbook you have an application and you need the cookbook to be updated before the application for it's lot 1 of this into that point of view was shared shares so if you have a dependency on the part the it's kind of long to hand them to fit in the the yeah so basically my understanding of your question is you have a cookbook you have an application and their they and they have to be in trade secrecy rate they could they could almost be in the same code repo but you've decided to make them separate projects but they're really tied together and they have to move in lockstep are this and this is the source of that so that's the case then basically the dependency on each other and is actually nothing against putting secular dependencies and so you can just make it so whenever 1 of them changes at all run the test for the other 1 that a break union until you get the change for the other 1 out there were deferred corporate can't deployed application about exchange old character acceptance saying the how do you how do you get them accept now the group of components to it get all the way that the project barbecues spectra bookish amongst moderates the genetic JavaScript work that that just this application need to change to the to the floor and like a it friends but I you think so yeah it's just update cookbook 1st and then and then your project can get through acceptance anyway said see you don't even need to set up a formal dependency relationship whether questions you have this is a time and I purposely left a lot of time for questions because there's so many freakin directions people can go in with us so far I've been using delivery while if it's a around the flood them using delivery for a lot of trouble other projects my doing dependency management of a trombone and someone happens with all the projects shirt-making acting the way they are on well so back in January when you have data delivery track something subtle happened but it used to be that no matter what all projects would be updated at once what happened instead is the only successful projects we get promoted at once and so on what I mean by that is they have a project through broken in union a year ago if you're using an ancient version of delivery truck what would happen is when you shift bar to union if it passes the test to n bar would go down the pipeline and your broken through would go out and you would be very sad and on the sense last winter and what'll happen is who will stay there and Bob have we go through the pipeline that fool stay in union and will not get promoted through until on so that's the current state of the world before you add your dependencies and as you add dependencies in it just increases the set of things that'll get stuck in union but everything else is independent and can flow through basically the assumption right now is all your projects are completely independent the government some of really you not to delivery that you have question in your example where you had to cream once they're depending on the red 1 it can stop there is so my
question is so this 1 yeah so if if 2 2 1 if the the red 1 version of the roman production is still valid is there a way for me to test those 2 green ones in its current state against the production version In that passes like which this through not and that kind of fundamental region inside of delivery is the world forward we don't really give away to roll back if you decide that you can fix that red wine reasonably the thing to do it is to push an older version through the pipeline and not unlock your pipeline again right that is a different story about yes yes so if you can't push went through that make everything work that works but no we don't have any way to say it ignore this particular project and roll back without putting a change their distance it yeah keeps things simpler and so if I have some really terrible working code that says my uh version stuff today in that example that you gave does it allow me to just basically set the project named the version number and then just pass an arbitrary a patch of like these that I want to know about later yeah was
thing you can give an arbitrary list of attributes half it's like 3 1 coat just 1 1 yeah the questions you cool so that's what I had put together and I wanted to make sure there's a lot of questions I'm going to be out front if people have additional competitions they want to have to the
Biprodukt
Subtraktion
Komponententest
Punkt
Mathematisierung
Interaktives Fernsehen
Kartesische Koordinaten
Code
Übergang
Task
Datentyp
Programmbibliothek
Kontrollstruktur
Regulator <Mathematik>
Schnittstelle
Datentyp
Gebäude <Mathematik>
Einfache Genauigkeit
Bitrate
Biprodukt
Knotenmenge
Teilmenge
Randwert
Rechter Winkel
Mereologie
Server
Projektive Ebene
Teilmenge
Einfache Genauigkeit
Biprodukt
Bitrate
Term
Homepage
Softwaretest
Videospiel
Dualitätstheorie
Selbst organisierendes System
Stochastische Abhängigkeit
Mathematisierung
Gebäude <Mathematik>
Rechenzeit
Biprodukt
Bitrate
Code
Übergang
PROM
Wurm <Informatik>
Teilmenge
Hauptidealring
Rechter Winkel
Klon <Mathematik>
Projektive Ebene
Verzeichnisdienst
Programmierumgebung
Schreib-Lese-Kopf
Bell and Howell
Wurm <Informatik>
Softwaretest
Transinformation
Kontrollstruktur
Trägheitsmoment
Projektive Ebene
Bitrate
Biprodukt
Knotenmenge
Softwaretest
SLAM-Verfahren
Mathematisierung
Kartesische Koordinaten
Projektive Ebene
Wort <Informatik>
Knotenmenge
Programmierumgebung
Gradient
Programmfehler
Demoszene <Programmierung>
SLAM-Verfahren
Datenmanagement
Basisvektor
Server
Versionsverwaltung
Primideal
Biprodukt
Knotenmenge
Weg <Topologie>
Versionsverwaltung
Attributierte Grammatik
Zahlenbereich
Projektive Ebene
Kartesische Koordinaten
URL
Figurierte Zahl
Hilfesystem
Phasenumwandlung
Funktion <Mathematik>
Attributierte Grammatik
Videospiel
Sondierung
Farbverwaltungssystem
Gradient
Arbeit <Physik>
Spannweite <Stochastik>
Lemma <Logik>
Datenfeld
Reverse Engineering
Projektive Ebene
Ganze Funktion
HMS <Fertigung>
Gammafunktion
Normalvektor
Softwaretest
Lineares Funktional
Subtraktion
Quadratzahl
Hecke-Operator
Rechter Winkel
Mathematisierung
Versionsverwaltung
Projektive Ebene
p-Block
Bitrate
Grundraum
Physikalische Theorie
Lesen <Datenverarbeitung>
Eins
Subtraktion
Punkt
Gemeinsamer Speicher
Mathematisierung
Formale Grammatik
Gruppenkeim
Versionsverwaltung
Kartesische Koordinaten
Code
Richtung
Weg <Topologie>
Datenmanagement
Webforum
Kontrollstruktur
Zusammenhängender Graph
Phasenumwandlung
DoS-Attacke
Softwaretest
Sichtenkonzept
Rechenzeit
p-Block
Quellcode
Bitrate
Natürliche Sprache
Teilmenge
Menge
Mereologie
Projektive Ebene
Repository <Informatik>
Prozessautomation
Aggregatzustand
Mathematisierung
Versionsverwaltung
Zahlenbereich
Mailing-Liste
Biprodukt
Code
Eins
Attributierte Grammatik
Fundamentalbereich
Projektive Ebene
Abstand
Gleitendes Mittel
Aggregatzustand
Attributierte Grammatik

Metadaten

Formale Metadaten

Titel Delivery Dependency Support (or How Your Project is Not an Island)
Serientitel ChefConf 2016
Autor Mink, Jess
Lizenz CC-Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported:
Sie dürfen das Werk bzw. den Inhalt zu jedem legalen und nicht-kommerziellen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen und das Werk bzw. diesen Inhalt auch in veränderter Form nur unter den Bedingungen dieser Lizenz weitergeben.
DOI 10.5446/34627
Herausgeber Confreaks, LLC
Erscheinungsjahr 2016
Sprache Englisch

Inhaltliche Metadaten

Fachgebiet Informatik
Abstract Want to get a handle on dependency support and safe promotion, what does that mean anyhow and how can they help? You've come to the right place. This talk will dive into the philosophy of dependencies, how to use 'em and a bit about how the sausage is made.

Ähnliche Filme

Loading...
Feedback