Add to Watchlist

Continuous Deployment for webapps based on Django

11 views

Citation of segment
Embed Code
Purchasing a DVD Cite video

Formal Metadata

Title Continuous Deployment for webapps based on Django
Title of Series EuroPython 2015
Part Number 126
Number of Parts 173
Author Lichota, Wojciech
License CC Attribution - NonCommercial - ShareAlike 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this license.
DOI 10.5446/20226
Publisher EuroPython
Release Date 2015
Language English
Production Place Bilbao, Euskadi, Spain

Content Metadata

Subject Area Computer Science
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.
Keywords EuroPython Conference
EP 2015
EuroPython 2015
Series
Annotations
Transcript
Loading...
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
Computer animation
Projective plane
Group action
Dataflow
Computer animation
Iteration
Compass (drafting)
Mereology
Theory
Mathematics
Spring (hydrology)
Computer animation
Iteration
Internetworking
Multiplication sign
String (computer science)
Mobile Web
Metropolitan area network
Gender
Projective plane
Weight
Unit testing
Cartesian coordinate system
Hand fan
Number
Process (computing)
Computer animation
Repository (publishing)
Energy level
Software testing
Fiber bundle
Resultant
Metropolitan area network
Library (computing)
Computer animation
Field (computer science)
Point (geometry)
Slide rule
Product (category theory)
Graph (mathematics)
INTEGRAL
View (database)
Interactive television
Branch (computer science)
Insertion loss
Mereology
Cartesian coordinate system
Frequency
Flow separation
Computer animation
Visualization (computer graphics)
Database
MiniDisc
Software testing
Error message
Units of measurement
Condition number
Programming language
Medical imaging
Context awareness
Product (category theory)
Computer animation
Testdaten
Right angle
Group action
View (database)
Multiplication sign
Covering space
Source code
Combinational logic
Compiler
Interface (computing)
Mereology
Independence (probability theory)
Video game
Bit rate
Testdaten
Physical system
Covering space
Metropolitan area network
Link (knot theory)
Electric generator
Computer file
Instance (computer science)
Port scanner
Front and back ends
Arithmetic mean
Configuration space
Software testing
Pattern language
Remote procedure call
Remote Access Service
Data management
Task (computing)
Server (computing)
Disintegration
Computer-generated imagery
Branch (computer science)
Average
Field (computer science)
2 (number)
Energy level
Integrated development environment
Software testing
Subtraction
Plug-in (computing)
Units of measurement
Form (programming)
Task (computing)
World Wide Web Consortium
User interface
Plug-in (computing)
Server (computing)
Projective plane
Cartesian coordinate system
Power (physics)
Explosion
Computer animation
Integrated development environment
Personal digital assistant
Light field
Matrix (mathematics)
Local ring
Email
Server (computing)
Computer file
State of matter
Multiplication sign
Cloud computing
Branch (computer science)
Protein
Rule of inference
Number
Revision control
Flow separation
Mathematics
Human migration
Bit rate
Statistics
Software testing
Information systems
Subtraction
Units of measurement
Physical system
Condition number
Metropolitan area network
Link (knot theory)
Real number
Gender
Principal ideal domain
Instance (computer science)
Cartesian coordinate system
Higher-order logic
Table (information)
Human migration
Sign (mathematics)
Word
Computer animation
Personal digital assistant
MiniDisc
Right angle
Software developer
INTEGRAL
Multiplication sign
Rule of inference
Software testing
Backup
Office suite
Arithmetic logic unit
Newton's law of universal gravitation
Metropolitan area network
Product (category theory)
Dataflow
Scripting language
Software developer
Feedback
Projective plane
Euler angles
Cartesian coordinate system
Arithmetic mean
Process (computing)
Computer animation
Network topology
Personal digital assistant
Mixed reality
Office suite
Procedural programming
Curve fitting
Process (computing)
Personal digital assistant
Multiplication sign
Forcing (mathematics)
Energy level
Iteration
Software testing
Instance (computer science)
Dean number
Computer animation
Vector space
Software developer
Demo (music)
Software testing
Office suite
Field (computer science)
Batch processing
Server (computing)
Process (computing)
Touchscreen
Product (category theory)
Direction (geometry)
System administrator
Projective plane
Drop (liquid)
Instance (computer science)
Cartesian coordinate system
Configuration management
Inference
Word
Video game
Computer animation
Personal digital assistant
Database
String (computer science)
Energy level
Procedural programming
Metropolitan area network
Sign (mathematics)
Context awareness
Computer animation
Gamma function
Uniform space
Loading...
Feedback

Timings

  573 ms - page object

Version

AV-Portal 3.8.0 (dec2fe8b0ce2e718d55d6f23ab68f0b2424a1f3f)