DrupalCon Portland 2013

Lo que los programadores deben saber sobre la administración de sistemas

Greg Lund-Chaix , Lance Albertson, Kenneth Lett, Rudy Grigar  · 

Presentación

PDF (pincha para descargar)

Vídeo

Transcripción

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

this is my puppets script to move this side of the room to the other side we really should that we've saved some time alright everyone sitting comfortably can see enough of the slide or as much of the slide as they want to see so I'm going to talk

a little bit about sis ops it sounds like a lot of you are kind of sis ops our DevOps already you guys do some development and some systems so I'm gonna try to convince you if you're not already convinced that knowing a lot about systems and infrastructure

will make you a better developer so some things you should know as developer about infrastructure and just a quick question how many people are just developing modules and things like that themes how many are deploying and maintaining entire Drupal sites yeah

that's a lot of you so this a lot of the stuff look at home you want to know where your code is going to live you're going to know want to know what resources it's going to need memory bandwidth dis things like that you're going to want to

know how it gets deployed is this getting deployed with address script puppet script is it something you manually have to do is some hidden perl script and a directory somewhere that you don't know and how does it get maintained how is it going to be upgraded

who's going to upgrade it are you responsible for upgrading is it going to automatically upgrade from a particular git branch when you update that gift branch it would be good to know that before you commit to that git branch in other words you need to

know about operations or ops for short so knowing the system which your code lives can make you write better code if you know something about the bandwidth situation you'll know if your code needs to deal with a lot of latency low bandwidth are you on

a cluster of VMs behind a big load balancer with a big fat pipe maybe you can code a little differently understanding those issues will help what's the storage situation you have all of your de storage on a NFS share over a slow link to Kansas City it

would be good to know that before you write your code and set up your assets house lows are really going to be do you have a way to know how slow its going to be do you have a way to measure how slow it is can you use a content delivery network can you cash

it is memcache available is a key value store like Retta civ ailable can you store it on a disk cache what is the system that your codes can live what does it look like and what can you do with it knowing the system and you're mature code runs means you

can plan so what version of PHP is on that system what version of Drupal core is on that system what libraries are available are you using a system library for graphics manipulation do you know if the correct version is on that system what tools are available

are they using dress or is it all manual they have arsenic other kind of tools that you might need to maintain your code and yeah PHP 52 it's out there is your code able to gracefully handle a situation where it's on a server with HP 52 so they're

often reasons for old libraries old systems old PHP and understanding the system side of things understanding why those things are in place will help you deal with that situation knowing when things get upgraded why they get why they get upgraded and how they

get upgraded for instance a PHP 52 might be there because some core application needs it and they cannot upgrade because it's a shared environment understanding that will give you a lot more understanding what's going on in system side and make the

system's admins a little more sympathetic to you when you come begging at their door to upgrade to 53 so when are they going to upgrade it understanding that cycle understanding when to expect an upgrade will help you plan ahead understanding things like

security updates sometimes things get upgraded you know tonight at midnight because there's a security hole that was just found in mod whiskey does that affect you if you don't understand systems you don't know so understanding what's going

on in system side will help you plan for that um the other thing that knowing the system helps you do is means you can develop and test your code safely so how many people have a dedicated dev environment that they can develop their code in I'm gonna have

a dedicated test environment how many people's dev and test environments are just their laptop there's a couple so understanding systems will help you create those and maintain those dev environments not just a box that has a lamp stack on it you can

install Drupal but an actual environment that completely mirrors what the production environment is going to look like because if it's different from production you can test all you want but you don't know what's going to happen when actually goes

into production so the fastest way to know infrastructure and get familiar with system and tasks is to build some infrastructure and virtual machines make this very very easy there are tools that are free and easy to use on all platforms a virtual box and

vagrant are the ones that I use vagrant is a sort of a friend framework for virtual box it allows you to script and automate creation of virtual machines but there are VMware parallels and in other systems that you can use and their configuration management

tools how many people are familiar with puppet chef CF engine there are a lot of them out there and if you're working on a system where you have sis amends maintaining your servers find out what they use learn those tools if you understand puppet you can

apply those same rules to your production environment that the operations guys are applying to the production environment you can create a set of VMs with it exactly mirrored production and when production production settings or libraries change you can easily

change those on your virtual machines if you're not deploying to a site and you don't have system in people to talk to learning these tools is very useful anyway we'll help you understand how systems operate how things work in the real world so

even if you're just developing a module I really recommend you looking into chef and puppet so great thing about virtual machines they are disposable the other great thing is you can build machines that exactly replicate your production environment you

can actually talk to your system ins and get the same scripts that they use and apply them to your your virtual machines and you can make lots of boxes make a test box make a dev box make an a/b test box make an a test box and a/b test box make you know make

dozens and dozens of boxes and if you've ever in frustration wanted to go into your main server and do a RM r f / virtual machines are the way to do that you can destroy destroy them all so I hope that I've started to convince you that knowing systems

is a good thing it sounds like most of you were already at least halfway there so go forth and use your new system and superpowers to develop better code and with that I'm going to turn it over to the rudy alright so be a dev up how to get ready for deployment

there's a few things to know are you releasing too frequently or not frequently enough there's a careful balance to maintain their no one would it is time to actually deploy your changes to production is important and having a simple easy-to-follow

a deployment process helps keep everyone happy and if you're a dev off that he just keeps you a be your dev side can rest easy you know knowing updates have been tested before they go out if you have a good deployment process your offside can rest easy

knowing there's a simple deployment process in place there's not a lot of things that could go wrong when your ops guy is deploying your code you don't want to let your infrastructure on fire so it is important to know your upgrade path and the

dependencies that may come into play during your release so reduce your moving parts that's just a general you know less is more in this sense to make things easier doing deployments trying to couple as much as possible you know avoid depending on things

just to depend on them sometimes this is inevitable because you need to depend on something but you know understand you know whether it's a drupal module depending on other modules or library versions but we're on a lower level things like package

dependencies at the OS level things like sent OS 5 comes bundled with PHP 516 I believe it's very old so how do you upgrade that separate from having to upgrade to sent OS six so an example of that would be like using an external like third party package

repository that has PHP 53 the IUS repository has this lets you upgrade within since os5 to PHP 53 you know test your code without having to actually upgrade to sent to us six then when you're ready to upgrade to sent to us six you can do that separate

from upgrading PHP the same time so it kind of reduces the amount of changes required to deploy whatever you're trying to deploy when do we really need to upgrade there's a few you know security fixes critical bugs obviously those are important these

[ ... ]

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