Merken

Continuous Deployment for webapps based on Django

Zitierlink des Filmsegments
Embed Code

Automatisierte Medienanalyse

Beta
Erkannte Entitäten
Sprachtranskript
the of him and from Poland's from companies that and today I would like to and is about how we implemented continues deployment and 1 of our projects if you have any questions just to interact and to have I will be happy to answer so just
just agenda in the beginning some the theory that already acknowledged action and then have more about workflow so more about from assess how war In the 1st part about tools what tools we used to implement continue deployment and to the left of the 4th of parts that I say more about the most interesting our failures and on so how we managers of with which something is 42 may be useful for the and just until be there in 1st part tools there will be a small compass and so listen carefully and so I have small who presence were OK so let's start with it almost almost the and the prices that these sweetie and you area from from
middle cancer and it's a lot of sleep OK direct this
Internet let's let's start with a wall was that the most typical way to the bloody thing especially when you work with prominent with strings you work for a whole springs week 2 or 3 you have a lot of things and so when the time comes after the 2 weeks for example you deploy them and then and and then you start to work next print in and then you wait if you Thursday that the springs you make some change in then you wait for 2 weeks to to use them for that I this is OK but there's Certain away much more
nice for the the continues to evolve so you deploy future when it's ready somebody's this thing here Kewei testing and so when it's that's the you deploy so With this approach you don't have to wear it 2 weeks sometimes too there to have to see the that's use your future but you can see it's just a few minutes later when end you continuously do the same to new feature Golden its finishing units testing and deploying and by you can see the results that this is really the nice were developed because he feels that his work yeah its it is for users in it's not somewhere in the repository I 4 4 4 4 G mobile for 2 weeks here but what's the
users users to yes today I will talk about the value bundles of how we implemented for our internal projects or less and the level of corners and the name of it it's application for managing candidates to our company owner believes about so right now 106 in all and so as you know there's a rotation of little is quite the the bigger it than the number of jobs in SEE it's necessary to another better but still we have it follows the presence of candidates so that we have to manage and to do it efficiently so we created this application for it deals with gender a positive as on the front and insights as you are there are other nice libraries like from boy this is for a man Beijing go from features for doing that it's like library for example
yeah and some other fields this is a theme it's not 25 uh right now uh I think and 20 6 that will cost more committed some of those only few days some of those some of those 4 many months I so it's quite a big thing yeah
and workflow how it works the Starting with the cops uh cold as those that we have just 1 main branch and and the master and each feature is that local news and then this is this is quite normal we call it from the feature branch and so when the futurists ready we develop a greater frequency so in
here nothing new 3rd this is smaller than the visualization of it yeah so we have a new branch created by interval he creates feature he of the unit disk so for creative support requested goes through and there is some conditions integration which dictators best and then and then changes it is so in the last in the left part on the slide so testing check this this interaction so the local don't have to be in here majored yeah when it's when it's OK but so does the switch to this branch it's this that application on graph yeah this is my manual testing and so when the tester a c that's yeah it's working correctly from the business point of view here and there is no error loss so that's right so the test the merge the branch goes to to pick it up and this is the mean about if it's if it's a great poem it have to be so that have to to be the replace them as that will work when its merits of automatically we become production databases we did employ history the just 1 button to deploy point and then we have feature on on the
production OK but also so the context on this there is about is about tools so there will be a bunch of 2 also at the anode and which programming language that tool is written just rights and the rights and and I say loudly the name going now this the
yeah right so this was the the requirements James in we ever jinkies yeah it's written in the image of an India we had a for for built so
we have Pr testing the artists and his fields where that can be his own instances on the branch that he wants to get out of the goes the view the branch ID then he goes to the drinking system configuration really to 1 of the fields a branch of the indicates that deals with and after a few seconds to few minutes we have his for instance on the branch the and he confessed we have also staging In this instance we choose not update that's ultimately a more instance when somebody from for example stockholder wants to see something and then that we have just 1 instance for a some kind of the most trouble with this thing this is a copy of staging but this ultimately lead repudiating when they're in branches match and we have like we have also built in the Jenkins for the life but it's not on the same server that Jenkins but on remote was more about Jenkins some some tips so what you can use to make it more user-friendly for Django you can it is not obvious but cancer like violation by going to reject the base by means there is a nice like in for the tasks that will be what I'm after it was successful successfully built also my major localization this for better and better managing of what users can do for example if we have life instances and we can do for life instance we can be assure that this uh that life will be updated only if only if only for some kind of uses some part of users give plug-in as well as have few of the things that are about so we use created automatic creation of text so we can have also could use some genocide I had no sense knows it is cover which creates this that are understandable by by Jenkins in G Unit X. units as general it's a metal you know this form build up greatest yeah of Python they in front of you spilled doubts not that of usual and because we wanted to have we're just just just the same environment what wherever and whenever and we really on whatever server and and in this case you got better more heavily I could say then the neutral and lots of that you can you can build to many different synopsis many different environments on the same server because Jenkins that we have done it have 30 or 40 different applications there and also in can use the same original so this is the start some kind of plug-ins for generative in this 1 creates a journalist ask received like this for creating the configuration so you can create for example local configurations local quite for GenGO from the real doubts we have received for the you is the form at creating uh compiling day you is the and Mr. Developer is very nice a plug in for download the source code from I stories like he's kept of who we are and so many different yeah that's right this is more almost all known this is about front and the and uh so the JavaScript this is it's the main thing that so about warrants is grant our agenda straight we use it for managing the whole front and side so interior have levels spoke have many useful patterns that you can use every this course title rates to 0 for managing remote task yeah so In this case we used from Jenkins FIL in their in their post-processed built action so the light fields in Jenkins rather tests the tried other things like try to migrate data we've of with a if everything is OK and yet there is that we have that positive plugin in which we have just 1 common we further which which runs fabric which data instance on remote server of the life server of the application and this 1 is
anybody knows president yeah that's right the this is not so that that's that's all well on on the application but it's really nice we use is not in this project at time talking about but in another project that we implemented the same workflow of what's in that a little different way I've got a really is reduce the by and to it so that some combines some things from the Jenkins so we can build you again you have a nice web interface 2 clicks of the great things yeah we're not making comments so it even the taxes which don't know how to several can do that and it's also to use that remote tasks below so you can execute also the same fashion on most their
remote servers I OK this was this was and the
tools and challenge the
1st thing that we I have encountered that that we implemented the continued deployment was there for rest of a party so on the on the server and that's have Jenkins we have seen that the word gender application was what multi with on the same up actually but that will serve there that will serving the a Jenkins so start the rest starts general from the change we had to address the Jenkins as well this was a stupid so we to change it so we don't use the system actually but be compiled uh use the for each instance and the the rest of only this 1 instance that we want this is this is slow the protein is collected and it can be tricky that because B if you run the about in some conditions you can lose the PID file predefined and so on that without the beach Find you will not be able to kill the previews instance yeah so to avoid its and we used to massively photo so the disk people and this is a tricky common to restorative if uh if there people exist and that if there is an instance which listen to the next 1 we had we had a problem with that migration and so the data are in the in the instances so when the test changed that branch a for the future right and yet as the is danger units around and then migrate and if if the is there anything that in this feature runs but so OK this is fine but when tested on the states that noticed this should work with in a different way and so he had to revert to produce previous states so he will be able to around and another to test another feature branch so a so we have to try for sports make migrations which is which are I find that with itself but not in all cases when you when it's ultimately the generated time and migration than fine if it's a it's still as written by the lower bound over also have to do the right thing but migration modest solution and here we are when we are creating a new instance of a new branch we removed at the data rate and we got the data from the staging practically here all that don't have any comments to drug called you have to dropped from 1 by 1 this is a this is common that you can trying to removed or all of this is another the next 1 we had some problem with my migrations itself migrations on different branches with the same number you and when the tests merged with branches here he don't see anything that's that can happen the incorrectly if there are 2 other of migrations with the same number after the might after merger so and we other just new final version DAC we have with a constant number of so if 2 branches have the same changes the same file at the same time Dan that the 2nd 1 will get there will be a conflict and so this rule see that's he can't cancel emergent to the basic and check the migration as well this is the southward migration works quite well but only in cases when 2 different migrations it changes assumption in different places yeah in different tables if 2 of migration works on the same table it doesn't work that way and so
we have a problem so in in this case this 1 the if uh if you have a lot of things that that's something can go wrong then it will definitely go wrong and so we have to be prepared for it made breakups creates stocks so you will be able to revert to produce that and we also have suggests another rule for testers operates only in the office hours so there will be somebody in the office who will help you the and of course monitoring for example
really manually OK this is this is the last 1 the you you could wondering why Jenkins was we want job there will I about were grants with JavaScript white that's use everything with by the because we want to make it easy and so the local so what doesn't mean we already had the danger is that for continues integration we already have a bowel grounds we already have probably yeah so it was more about the reconfiguration of everything and changing them at workflow procedures for developing QoLT notes to you know rewrite all these things the project so we use this this kind of 2 that and it will also point where for over all critical applications so this is so as I said inter application for managing the candidates and so it and we had some problems and uh we talked about time for a few minutes and so it it wasn't a problem for us what the benefits that we feel very well new features faster production so uses and in this case the recruitment team future so use it after not after weeks and also developers have positive feedback from them also and less boring stuff for developers more trees for testers and so we also feel that uh that that the feedback is good and just let let's remind remember about met met that everything can break and so be aware of it and try to try to I think 1 step
forward thank you very much this this is thank
we have time for some questions of this and the thank you for the floor thank you for 1st of all levels and your thing about they little tested on little what little test the other thing the full force that this this is the name for Paul request that testing so In this case there instance works on the same grounds that s is still in the request I think for a in in continuous deployment the idea is that the ultimate the whole process and just putting away all the human interventions and from what I see you have deliberately put humans there like someone is clicking on the deployed about or something like that is this a problem to have faced when the nearer fully automating to assess the of seeing lots of problems and be required to human iterations or maybe because they fear not true data for continues to form and we have some things to do to yeah so In this case the the the this is a
vector it yeah the article about this 1 again so this step is not ultimately
that the test ahead to clique just click 1 but the be
utilized it is because we want them alive fields in their office hours and so why because publication it's not that used out of office hours main users are in that recruitment Dean which is also in the office hours yeah this is 1 thing and the 2nd thing if sometimes something will break there will be happening or other developer which can take a look on the locks or or round the works you but yes it could be could be optimized here this thank you so
comment at home and I'm a member of the EU so of the pollution is as best as I can see that there is only 1 level of of of human distinct from for example in new product where a word of what kind of look what we we have over 15 bodies the the levels of 1 of by the by the way in which humans yeah so we have I don't know exactly how many people we had I could say I could say about 100 employees which only few maybe 5 were broken in only 1 case we had to had it removed drop database and so I get created from the back of so it's not that so often but but still it's yeah it's it's better to to have it's some kind of procedure to getting the was search for from the inference question 2 directions portion of the process and that process all of just about yeah so uh this is no more batch screen but we need to check out the another new ways that about previous step will rancidly about restarts the instances uh and this this is it's only a few comments the bastard but you don't have to remember about this you have just 1 string to rounded it's so not so the only some admin or that will operate to go with Francis agents and do OK thanks for the talk and I would like to know how can you how are you managing your Infrastructure Leasing configuration management the application by are that obligation life applications the Jenkins and some other instances are our own servers in the basement of our of in this project so we infuriated full access full we can do that and whatever you want some servers so in OK so maybe
I will just say this is a
context for me if you want to know I took with me it's
just what think it just might company we have that many projects interesting if you if you want to move to Poland and for all of us just let me know thank you
Projektive Ebene
Computeranimation
Iteration
Zirkel <Instrument>
Gruppenoperation
Mereologie
Physikalische Theorie
Quelle <Physik>
Iteration
Mathematisierung
Computeranimation
Internetworking
Zeichenkette
Resultante
Softwaretest
Komponententest
Dokumentenserver
Mobiles Internet
Zahlenbereich
Kartesische Koordinaten
Speicherbereichsnetzwerk
Computeranimation
Übergang
Metropolitan area network
Gewicht <Mathematik>
Geschlecht <Mathematik>
Prozess <Informatik>
Programmbibliothek
Projektive Ebene
Faserbündel
Metropolitan area network
Arithmetisch-logische Einheit
Datenfeld
Datenfluss
Computeranimation
Softwaretest
Einfügungsdämpfung
Punkt
Sichtenkonzept
Graph
Datenhaltung
Verzweigendes Programm
Interaktives Fernsehen
Kartesische Koordinaten
Biprodukt
Frequenz
Computeranimation
Integral
Rechenschieber
Einheit <Mathematik>
Mini-Disc
Konditionszahl
Mereologie
Visualisierung
Fehlermeldung
Programmiersprache
Metropolitan area network
Softwaretest
Rechter Winkel
Testdaten
Biprodukt
Kontextbezogenes System
Bildgebendes Verfahren
Computeranimation
Desintegration <Mathematik>
Kartesische Koordinaten
Extrempunkt
Computeranimation
Übergang
Metropolitan area network
Einheit <Mathematik>
Datenmanagement
Softwaretest
RPC
Plenoptische Funktion
Mustersprache
Softwaretest
Sichtenkonzept
Plug in
Stellenring
Quellcode
Testdaten
Programmierumgebung
Bitrate
Arithmetisches Mittel
Generator <Informatik>
Datenfeld
Server
Projektive Ebene
Programmierumgebung
Instantiierung
Schnittstelle
Server
Subtraktion
Explosion <Stochastik>
Gruppenoperation
Schaltnetz
Matrizenrechnung
Überlagerung <Mathematik>
Task
Bildschirmmaske
Task
Front-End <Software>
Konfigurationsraum
Stochastische Abhängigkeit
Videospiel
Benutzeroberfläche
Elektronische Publikation
Zwei
Verzweigendes Programm
Plug in
Physikalisches System
Portscanner
Mereologie
Leistung <Physik>
Compiler
Subtraktion
Mathematisierung
Ablöseblase
Versionsverwaltung
Zahlenbereich
Kartesische Koordinaten
Computeranimation
RFID
Metropolitan area network
Einheit <Mathematik>
Hauptidealring
Migration <Informatik>
Mini-Disc
Statistische Analyse
Große Vereinheitlichung
Softwaretest
Anwendungsspezifischer Prozessor
Verzweigendes Programm
Schlussregel
Physikalisches System
Migration <Informatik>
Elektronische Publikation
Bitrate
Rechter Winkel
Geschlecht <Mathematik>
Konditionszahl
Server
Wort <Informatik>
Sigma-Algebra
Versionsverwaltung
Informationssystem
Instantiierung
Tabelle <Informatik>
Aggregatzustand
Softwaretest
Rückkopplung
Softwareentwickler
Euler-Winkel
Schlussregel
Kartesische Koordinaten
Biprodukt
Datensicherung
Algorithmische Programmiersprache
Computeranimation
Office-Paket
Integral
Netzwerktopologie
Arithmetisches Mittel
Metropolitan area network
Office-Paket
Prozess <Informatik>
Mixed Reality
Skript <Programm>
Projektive Ebene
Datenfluss
Softwareentwickler
Binärdaten
Softwaretest
Filetransferprotokoll
Prinzip der gleichmäßigen Beschränktheit
Uniforme Struktur
Prozess <Physik>
Forcing
Iteration
Computeranimation
Instantiierung
Übergang
Softwaretest
Datenfeld
Dean-Zahl
Vektorraum
Softwareentwickler
Computeranimation
Office-Paket
Videospiel
Prozess <Physik>
Inferenz <Künstliche Intelligenz>
Datenhaltung
Systemverwaltung
Kartesische Koordinaten
Biprodukt
Algorithmische Programmiersprache
Computeranimation
Richtung
Übergang
Konfigurationsverwaltung
Server
Projektive Ebene
Wort <Informatik>
Tropfen
Stapelverarbeitung
Instantiierung
Touchscreen
Zeichenkette
Tabusuche
Metropolitan area network
Rechentafel
Extrempunkt
Kontextbezogenes System
Computeranimation

Metadaten

Formale Metadaten

Titel Continuous Deployment for webapps based on Django
Serientitel EuroPython 2015
Teil 126
Anzahl der Teile 173
Autor Lichota, Wojciech
Lizenz CC-Namensnennung - keine kommerzielle Nutzung - 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/20226
Herausgeber EuroPython
Erscheinungsjahr 2015
Sprache Englisch
Produktionsort Bilbao, Euskadi, Spain

Inhaltliche Metadaten

Fachgebiet Informatik
Abstract Wojciech Lichota - Continuous Deployment for webapps based on Django When you see users starting to use your feature, you feel very proud and fulfilled. So why feel this only once every few weeks, why not feel it every day? In this talk I will show how we changed our workflow to automate deployment of code changes to production every time a feature is ready - sometimes even few times per day. I will present how to successfully combine open-source tools like Git, Jenkins, Buildout, Fabric, uWSGI, and South, in order to simplify the process and make it more reliable. I will discuss challenges that we faced implementing this workflow in a real project based on Django and how we resolved them. During this talk you will gain the knowledge required to implement Continuous Deployment in your own project.
Schlagwörter EuroPython Conference
EP 2015
EuroPython 2015

Ähnliche Filme

Loading...