Merken

Packaging and Shipping Rails Applications in Docker

Zitierlink des Filmsegments
Embed Code

Automatisierte Medienanalyse

Beta
Erkannte Entitäten
Sprachtranskript
the red and the the the the the end of the day and everyone you start the presentation thanks for coming welcome to end yards sponsored talk time island Espinosa and I am a support engineer and today I'll be talking about the aspects of deploying the reuse applications with with buffer so my background is that I'm an operations engineer for the past few years i've used Ruby mostly from my day-to-day work so I used Ruby back in the day when it was still popular to build uh systems before go came alone but it still may go to language of choice but I am not reuse developer more but my last class families fears were 6 30 years ago I think but I do a lot of the development not just with so I'm the author of the Dr. high-performance book by packet publishing the so that given thought changes so that the book would probably have all to the content the next few months of so I with writing the book I tried to make that sure what what are the concepts that uh again last through that the doctor updates and I delete of top of that in this session so I'll be talking about a bit the from the mother 2nd chapter of the book on how to optimize Doctor of images the so so yeah so and then I'll be it so that you can figure out how to do your deployments on with using Doppler all with reals in my so optimizing the the way you rollout reuse in Darfur so when we say about the
optimization of so most of us think about having a faster response times in the they had in your controllers respond really facet have a synchronous workers spinning up most things but I was not if you look at the broader picture like performance is all about the improving the experience with our customers so from the expressive power customers trace the Value Stream then you can start doing things like prefactor controllers your business logic based on the feedback received from basically production traffic when interacting with your customers also and another way to optimize down the line in this that you can tune the middle ware so you you configure your unicorn workers of homework threads and dense set the memory allocation so that you're utilizing a machine I can chew and SQL queries where is a fast uh so all the schooling you you you you don't operate in a vacuum like these tuning this in the the training you make is informed through your instrumentation in your application on in your machines so you put in like laughter logging and an application metrics were the same like my applications OK how users are interacting so given something as simple as Google Analytics can give you a lot of insight and then you can correlate not weird of systematics in which then you can use that to inform your scaling decisions so use scale-out your application to keep up with demand from the customer so you add you just architecture you yet touching like capacity so uh so like how many of you knows when the need to spin up a new instance of furious application how do you know that the limits so yeah so having good uh at story about how you operationalize your application it's important when the the optimizing so you take to tune this here application on so it performs faster but In then like you need to roll changes the environment so if your deployment and uh process slowed this the tuning you might do now might be obsolete by the time to get production so there is also a need to chew and the delivery of your software to production so here in this talk uh thought was more about that so even though I thought was most and offered this concepts are a very broad in general so most early adopters like wrote in the container height so now we're starting to get back to that point now that so uh in there and like even though you can packaged other containers and stuff like that but it all boils down to focusing today what's the value of our application and Doppler only a tool to reinforce the way you deliver so I was in our booth at engineered here and I started going to people on how the use of Doppler and was at the time like there's a lot of light for parents of muscle now we're just starting at testing were trying to convince people running in production and that's a lot of resistance to that and I said and operations of on like that I can understand some of them has advanced so trying to all of what it means to change your stack top and data base will help people are convinced if you think really think it's for you because it all boils down to the to delivering or at least the so in delivering that so it's normally normally we just stop about deployment but there's also like the build phase so so that it a natural tendency to think the build phase ass compiling code of binary image under your Gold code to be binary so but this doesn't seem intuitive at 1st for reuse in Ruby developers because rupees and interpreted language but if you look at how things are like there is an equivalent of a binary so I when I say BUY entities it means that anything that's needed to be dropped in the environment like in production in order to run the application so it's important to know what will get deployed so that in case I get aged at 3 in the morning I know where to look at so the areas like you have your your genome packages so there's a nice way to do so you do a gem install in production and you're done but but aside from that like there's it's not really the final binary itself because when you do a gender stores sometimes if you depend on Native Bindings like the fovea identify Larry you you you install and you compile stuff and produced the shared object files so the cold in areas out this part of the binary so the controllers the models and the out so if you don't get as far as its everything there is quite a few binary and then you have the dependencies between the gem dependencies for their application so you German that bundle installed and then finally you have your views assets so the half binaries when it comes to making a ready to run really at so the the thing with the Doppler is that a it it gives a nice ideas interface the wrap our brains around because Doppler has notion of about the image that data which needs to run so all those areas by the he needs to be merged into 1 of called the doctor image that needs to be deployed so you build it in European server like Jenkins and then you push it to our what they call a doctor registered big this it's an an artifact repository late RubyGems where you you from get coming at you because the doctor in each of which is that periodicity and then your the ops off the meats that OK I have my image you can now put it and apply them so when you so there's
just 1 thing that changes in your application please but you add a buffer file which defines how the doctor images built uh so so for those of you who who was start to
starting with other so this is just a basic but Dr. file that define the image so here you have the environment you want do so from 2 . 2 and then you have you add your current directory in your build basically it's all the files needed by and then you do a bundle installed with interdependencies and article bad assets and that then you you also define how to run your your application so here you're running server on production you should be running the unique on passenger or Boomer instead of leverage so in the build process so we have because it so she runs the doctor build command and specify the name so here I am naming it this up so you can see it's starting to compile the image so here you see it's it's adding that Rio's directory thank you there is there at the end of your application and then after that independence helix bundle do abundance so so here you can see it's compiling of binaries native bindings to that X and so have over installed and then here's just
a short view of what the bill it will look like In so you when you do a doctor building will run for a few minutes because you're putting a Jan you're gonna legions in your compiling the gems so it took 1 and a half minutes so that the the number of features and Doppler that helps in the build process is it the pot because it's it's concept of a bill dash so if you run the same build again without any changes to the code that build will finish right away so here's to stop 1 2nd so behind the scenes you can see that since there were no changes fear application it's you Facility Building earlier it will be used step back to the building image saying we of bundle style however you to the that however
if you make a change your application and the and you make a small change for example you updated the router and change the model and so the bill will be just as long because since the end of upper via a build so you you had a new new content in your applications and created a new holiday quality image here so the next preceding steps would need to be revealed because the dependent 1 this but this is this is annually as we had to run bundle installed again so this is a not not much of a problem problem if you're starting out but once you have a lot of these or you're trying to do a larger factor that trying to do a bundle installed and every time in make a change starts to get people those 1 minute start piling up so what you can do is you can optimize your doctor builds where you separator application on according to which 1 doesn't get updated and each 1 gets more updated so here I split my gym file and my actual applications so that uh I have been able to exploit the catch more often so it's the same concept as having a separate the great for your unit tests released finishing away versus your integration tests were and where you need to spin out the database or a bachelor and is everything else in notes that the so the initial initial idea is the same at around 1 and half minutes it will take just as long but if you make a change to adjust your application but it will finish as it's about it it was nothing was changed when acid something change but here the change happen at the leaders that when you add added your application code so said if you didn't add anything in your jet file that lot it will be used to cash you had here so it it will greatly improve the double time
so in the in the bicycle late having a build process when making your ears that but is being able to get feedback as fast as you can see is that the the artifact order reused binary that's ready to deploy its is good a 2nd good to deploy so after computing the document you that you through a series of tests like your unit testing integration testing you're delivery pipeline and guaranteed its good to go and when it's good to go you're now the off to the play so that I found this on the internet where the such substituted compiling with deploying since like that at it deployment takes most of the time I think specially on a friday nite In the cost of the suspicion rate the afternoon doing to deploy and supporting this yeah so we've had customers who thought about us for support were their deployment takes 30 minutes to finish and those things so we got we got the other rapid deployment process then the you don't have the valuable feedback of knowing if what you change is actually useful for you customers so as shown in a a few items that can delay the deployment process and shows like how this can be improved so as the operations engineer and I going to be like doing this type of deployment process where you log in to the server and do I get cause of the the latest deployment and do a model in Salt Lake and it's it's a personal preference but it's it's what 1 it's not because you have to know if something there's a lot of change up will in another giant and the compiler everything like in the build process so so sure you can paralyze it across need to have abstraction and at some other things that the states In parallel to the bundle installed but of intent of being able to roll out the changes safely and and that the ability to roll back so you want to do it a little by little so your your your parallelisation is limited by how much you want to update at a time so if you got kind law you want maybe to deploy 1 1st and then the next 2 3 4 and and you finish your will feed off a server so that it will slow down the process so contrast that to deploying the Doppler images so that doctors command called will which music downloads the image from the doctor repository so deployment workflow he's just download they made and right so it's it's simplifying cure the deployment process and if you have a patent law you can do that as well so you you you're now bound to how fast you can download your images from your doctor is to topic and not from a make other sources like the regions so I'll talk more about that in a bit so in In the end of even though we rely on a lot of community of apodous the make our application it's the last through school committee responsible for the availability of our application so like this was this this site that opulent with their during the day and the and left bad thing but it's concept of this a very powerful for evidence at the site is he call my availability . com it says so if you refresh that it will send out random articles about availability and the points of of reliability and like the notion introduced by human British answers so it's a nice uh site to check out if you want to be being 1 of operations related stuff so so this is at the
because of the architecture of the architecture but how distinct the values stream move so we have our customers relied on our application to be up all the time because it serves their our whole and business use each well and then conversely we are dependent ourselves on other services for their availability for us to be able to make our applications so we're dependent on Ruby gems then using the idea of Europe and and OR and apt-mirror of AP was authority and so we and we introduced Dr. inter so now we're dependent on the other hand the polar images so so I guess this is where all your operations the means are having dinner has does because you're adding another a dependency can cost things to break so so if you're relying on the services it's good to be able to vendor again and not realize your deployment process in them so that even though RubyGems goes down the number of was down your application can still be deployed or you can still run out changes if you need to update things so you don't need to declare a snow day or something like that for a end so so what I like to do when and you can only get machine is lad proxies everywhere so that no ocean in in corporate environments where developers hate the considering the proxy settings for their but active at for in development environment so of and there's a lot of friction there but they so there was a pop yesterday from genie this the decision about trying to understand op scheme so really come from and what's the source of the grumpiness so trying to understand and show empathy and goes a long way and we can all you can also learn a lot of stuff from our but he needs in other departments so the
yeah so here are actually in mind in machine have the proxy servers for each type so I speed of service I have a mirror for AP and then I have a mirror for a doctor is in have a mirror for my RubyGems so you can do in you can do these things in your machine or you're jinking server so you can't so but by the has the mirror setting which basically states in in your genome file if I'm if I have a source of regions that model it will download to to another endpoint so it's like a man-in-the-middle in the middle attack here that environment and it produces this and but it it produces this entry in your mobile users level of the so like I also do this 1 in my gym see so I actually move regions that way in my gym sources and add my local 1 I and then I like any of the proxy repositories so you have an artifact in the annexes that 3 for Doppler images so they they off of out of the box that nexus in a factory supports different formats so so I so I actually just installed 1 like just nexus because it's free but so I have my own proxy regions and and my own and operate the so when I do a bundle installed by it's it's I'm not dependent all or downloading images all the time so actually when i the development and I can do did did clean digest the and and it will remove all the costumes audible by gems and and I do abundance and I can solve it right away ended up not depending on the dependencies also I also works for databases so if your data bases down then uh your application that is applications should be able to degree a degree of successfully so you you're your master database may go down by so people in Canada Post updates to the make a accounts but but if you have a same database then there is application can read from there so you can still serve the request on I read he basis so you have you everything doesn't just fall down like it's bit maybe it's falling down but you can it's like if you have a hole in the ship you can start for that but the thing on the water while another part of even just plugging in of the whole so it's it's going to have figure gracefully so yeah in conclusion but even though containers in Rio's abstract abstract a lot of information from us so that we can focus on actually writing a act like it's need we see need a a good and reliable infrastructure that we can build upon otherwise it all from goes down if you have bad Fundación so it may be that the magic in the elegance of food we introduced it attracted us through our careers but a growing us of engineers knowing the magic behind what were you saying and knowing the higher level 1st principle was dead can help us of holiday by changes in the stacked in their application in unit of low a debugging things when things are on fire production of knowing when things fail so knowing all these things with is having a make have more operable application environment so that we can so we can focus on their serving 1 serving the needs of our users and that and on the top questions like and if you go by the protein and engineered with a we have limited copies of my another book so if you pass by and you can talk to me in that up and about the story and using doctor or convincing management use upper and so on care where the among the among my fellow
Autorisierung
Nichtlinearer Operator
Bit
Minimierung
Mathematisierung
Klasse <Mathematik>
Formale Sprache
Familie <Mathematik>
Kartesische Koordinaten
Physikalisches System
Kombinatorische Gruppentheorie
Doppler-Effekt
Computeranimation
Puffer <Netzplantechnik>
Reelle Zahl
Inhalt <Mathematik>
Softwareentwickler
Bildgebendes Verfahren
Auswahlaxiom
Prozess <Physik>
Punkt
Minimierung
Kartesische Koordinaten
Binärcode
Computeranimation
Streaming <Kommunikationstechnik>
Arithmetischer Ausdruck
TUNIS <Programm>
Konfigurationsdatenbank
Gamecontroller
Gerade
Phasenumwandlung
Softwaretest
Nichtlinearer Operator
Zentrische Streckung
Schnelltaste
Sichtenkonzept
Siedepunkt
Dokumentenserver
Installation <Informatik>
Datenhaltung
Gebäude <Mathematik>
Globale Optimierung
Abfrage
Biprodukt
Frequenz
Entscheidungstheorie
Hochvakuum
Geschlecht <Mathematik>
Refactoring
Server
Identifizierbarkeit
Ordnung <Mathematik>
Binärbild
Programmierumgebung
Faserbündel
Instantiierung
Rückkopplung
Wellenpaket
Mathematisierung
Virtuelle Maschine
Analytische Menge
Äquivalenzklasse
Mathematische Logik
Doppler-Effekt
Code
Puffer <Netzplantechnik>
Virtuelle Maschine
Informationsmodellierung
Software
Vererbungshierarchie
Inverser Limes
Thread
Installation <Informatik>
Response-Zeit
Softwareentwickler
Speicher <Informatik>
Bildgebendes Verfahren
Leistung <Physik>
Binärdaten
Elektronische Publikation
Linienelement
Datenmodell
Kanalkapazität
Elektronische Publikation
Sichtenkonzept
Objekt <Kategorie>
Flächeninhalt
Mereologie
Zentrische Streckung
Gamecontroller
Speicherverwaltung
Computerarchitektur
Modelltheorie
Faserbündel
Server
Prozess <Physik>
Mathematisierung
Zahlenbereich
Kartesische Koordinaten
Binärcode
Doppler-Effekt
Code
Kontextbezogenes System
Computeranimation
Demoszene <Programmierung>
Bildgebendes Verfahren
Caching
Schnelltaste
Sichtenkonzept
Installation <Informatik>
Stochastische Abhängigkeit
Gebäude <Mathematik>
Schraubenlinie
Elektronische Publikation
Biprodukt
Server
Verzeichnisdienst
Programmierumgebung
Versionsverwaltung
Faserbündel
Bit
Komponententest
Prozess <Physik>
Punkt
Compiler
Atomarität <Informatik>
Kartesische Koordinaten
Gesetz <Physik>
Computeranimation
Internetworking
PROM
Einheit <Mathematik>
Gruppe <Mathematik>
Klon <Mathematik>
Randomisierung
Kontrast <Statistik>
Caching
Softwaretest
Nichtlinearer Operator
Dokumentenserver
Physikalischer Effekt
Installation <Informatik>
Datenhaltung
Reihe
Globale Optimierung
Quellcode
Bitrate
Dialekt
Teilbarkeit
Parallelrechner
Server
Ordnung <Mathematik>
Versionsverwaltung
Faserbündel
Aggregatzustand
Faserbündel
Rückkopplung
Server
Web Site
Mathematisierung
Maßerweiterung
Doppler-Effekt
Code
Informationsmodellierung
Datentyp
Endogene Variable
COM
Inhalt <Mathematik>
Bildgebendes Verfahren
Bildauflösung
Elektronische Publikation
Integral
Rückkopplung
Proxy Server
Prozess <Physik>
Mathematisierung
Reibungskraft
Zahlenbereich
Kartesische Koordinaten
Computeranimation
Streaming <Kommunikationstechnik>
Virtuelle Maschine
Konfigurationsdatenbank
Proxy Server
Mixed Reality
Softwareentwickler
Bildgebendes Verfahren
Nichtlinearer Operator
Finite-Elemente-Methode
Video Genie
Nummerung
Quellcode
Programmierumgebung
Entscheidungstheorie
Arithmetisches Mittel
Dienst <Informatik>
Menge
Computerarchitektur
Programmierumgebung
Faserbündel
Proxy Server
Freeware
Quader
Wasserdampftafel
Mathematisierung
Kartesische Koordinaten
Doppler-Effekt
Computeranimation
Übergang
Quellcode
Virtuelle Maschine
Einheit <Mathematik>
Datenmanagement
Datentyp
Softwareentwickler
Figurierte Zahl
Bildgebendes Verfahren
Nichtlinearer Operator
Fehlermeldung
Dokumentenserver
Abstraktionsebene
Datenhaltung
Mobiles Internet
Anwendungsspezifischer Prozessor
Quellcode
Elektronische Publikation
Biprodukt
Dialekt
Dienst <Informatik>
Minimalgrad
Mereologie
Basisvektor
Server
Dateiformat
Faktor <Algebra>
Information
Programmierumgebung
Faserbündel

Metadaten

Formale Metadaten

Titel Packaging and Shipping Rails Applications in Docker
Serientitel RailsConf 2016
Teil 44
Anzahl der Teile 89
Autor Espinosa, Allan
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/31540
Herausgeber Confreaks, LLC
Erscheinungsjahr 2016
Sprache Englisch

Inhaltliche Metadaten

Fachgebiet Informatik
Abstract You’re very happy as a Rails developer for drinking the Docker kool-aid. You just need to toss a Docker image to your Ops team and you're done! However, like all software projects, your Docker containers start to decay. Deployment takes days to occur as you download your gigantic Docker image to production. Everything’s on fire and you can’t launch the rails console inside your Docker container. Isn’t Docker supposed to take all these things away? In this talk, I will discuss some Docker optimizations and performance tuning techniques to keep your Rails packaging and shipping pipeline in shape.

Ähnliche Filme

Loading...