DjangoCon 2015

Cómo desplegar bien aplicaciones Django

Peter Baumgartner  · 




Extracto de la transcripción automática del vídeo realizada por YouTube.

cool thanks everybody sorry for the issues getting the display going I am going without my notes here so hopefully I remember everything really quick about me I'm the founder at Lincoln loop here's a shot of a few of us at PyCon last year this year

and at lincoln loop we do django development and consulting and everything that goes along with building django sites like devops javascript ux design today we'll talk about deployment which is something a topic i'm kind of interested in at the moment

i'm also the co-author of this book high-performance django and it's all about how to build django sites that scale and are fast you can get a copy at high-performance django comm and there's little coupons in your swag bag as well so today's

talk is django deployments done right but really I probably could have called a Python deployments done right there's not a whole lot of django specific stuff in here and honestly deployments done right probably would have fit most of it as well deployments

for web applications all look kind of similar and so you know whether we were doing rails or node or Python or Django or whatever a lot of these things will still apply so first off what is a deployment I think it is in two ways one is the noun like the deployment

is kind of all your stuff you have set up your servers your software how it all interacts and then the verb like the actual act of getting all that stuff onto your servers and keeping it up-to-date so today we're mostly going to be talking about the verb

but I may interchange these a little bit so why do you want a good deployment first off uptime this is obvious like you don't want deployments to take down your site that's a problem you don't want to be scared to do deployments because they're

going to take down your site but maybe less obvious is the humans that are working with the deployments one thing I've noticed is having bad to point that sort of feels like this it's like showing up at a messy office you can't find anything it's

stressful you know there's probably one person that knows where the thing that you need is and there's these gatekeepers and it's it's really it's really bad for for people like I do a lot of consulting work and I work on lots of different

sites and I know it's the difference at the end of the day when I'm working with a site that's you know got a really poor process and not well-managed and kind of a mess versus one that's kind of clean and tidy and does what I expect it's

stressful it tends to lead to burnout and burnout leads to people leaving your company so there's a case that you know the the humans are very important to the deployment process and for me this is a good deployment you know it's kind of neat tidy

you know everything is there aren't a lot of moving parts it's it's just simple good deployments are non-events it shouldn't be a you know hand wringing palms sweating like oh gosh I hope nothing breaks event when you do a deployment it should

just happen and nobody really notices and good deployments are also empowering good deployments let's let your all your users users in the sense of developers get software onto servers where you know it's at staging or production that's our job

as developers you know we built software and we want the world to see it and sort of not letting people manage that process of getting their software under production and having gatekeepers in the middle it is really kind of limiting so you know empowering

develop - to do this stuff it's pretty powerful and then finally there's a business case for good deployments so if you know you can't convince your boss that burnout and stress is a bad thing you know good deployments you ship faster you get new

features out to production quicker you fix bugs quicker and you recover from failure more quickly in my notes I had something from the state of DevOps report by puppet labs and they have you know they did a study on the differences between high-performing

IT organizations and low-performing IT organizations and the numbers are really fascinating if I had my notes I would tell you what they were but like it's like you know they deploy 30 times more per day and they are you know 60 times faster to fail or

to recover from failures and all this stuff so so there's a really big business use case here and then also having happy people that are at your company happy people are more productive and they're gonna leave less and you're not going to have

brain drain and be training people all the time so there's a great business case for good deployments now what makes a good deployment first off it works it's surprising how many times we see people get this wrong like you know they've got a deployment

process and they deploy and you know we had an issue a while ago where we made a bunch of changes to somebody's celery worker queue and they deployed it and things broke and nothing worked and we said well well you know what happened and you know the one

guy who was in charge of the deployment said oh I have to go in and restart celery manually after we do deployments nobody else knew that but the one person did and so this kind of stuff is really common so yeah when it works and it's reliable it works

every time and you know in the off event it doesn't work it doesn't break things in the process next up it's boring this is kind of the part where I go on a little rant about docker Daka is really cool technology and I think it's interesting

for a lot of stuff if you're just getting started with deployments it's very likely not not the best choice for you docker solves a lot of interesting problems but it also kind of brings in a lot of problems of its own so I prefer kind of using technology

that's tried to true tried and true true and proven and and docker you you know you end up using a lot of kind of bleeding edge technology it's it's great for a lot of use cases but for your standard hey I just need to get a Django site out on

the web it's probably overkill for your purposes next up it's user friendly so you know everybody should know how to use your deployment system that doesn't mean they need to know all the internals of how your system works but they should know

how to get the code from their laptop to get to a server next up it's fast I'll give you an anecdote here as well so so we worked with somebody who had a deployment system and the idea was all the tests had to pass every time before they could deploy

their software sounds like a really good idea you know we want to make make sure our test suite passes before we put it into production their tests we took something like 45 minutes to an hour to run so when they wanted to do a deployment they needed to wait

an hour before their servers ever got updated well a problem snuck through their continuous integration you know it didn't get caught in their tests and they deployed a change that took down their sites they knew what the fix was if they could push it

[ ... ]

Nota: se han omitido las otras 3.503 palabras de la transcripción completa para cumplir con las normas de «uso razonable» de YouTube.