Bestand wählen
Merken

Elephant Puppets

Zitierlink des Filmsegments
Embed Code

Automatisierte Medienanalyse

Beta
Erkannte Entitäten
Sprachtranskript
bayesian framework and before we get into that a bit about who I am I have been members of course this community working with cost well what if you years I am 1 of the maintainers of this morning's replication system and I do this while working at affiliates of affiliates is a top level domain registry operator to so who in the
room knows what is our top level registry operator dies so a a lot of people going on we run registries so . info . or at the top domains that we run if you want to register and name in 1 of these registries you would go to the registrar someone like a go Daddy your to count you go to the website to type in the name you want if it's available until you wanna register behind the scenes they're talking to our servers their open up the connection to our servers checked the domain name is available and register it on your behalf without so we used stress as the database for for storing the system of records for all the top-level domains we run and we tend to use force pressing a lot of our back-office processing systems for are operational means yelling and reported we then that cause stress users and Thousand One herself back in the set X stays on back in those days affiliates was 1 of the higher profile larger reports press uses these days there are a lot of other all your process installations but were still involved community forceful heavily involved in cloning and we're quite happy with the experience of course so a bit
about the systems are we have over 100 production cost that's spaces and when I mean databases on different servers running process instances are those people at the conference who how you know 1 database server with tens of thousands of databases inside of it we run lots of servers are with different databases many of these databases are replicas of each other and being you'd be slower users will tell that needs a lot of replicas so for many of our operational registered database we will have a master database and 5 or 6 replicate databases these replica databases we use for things like failover and reporting an on offloading back-office functions to then we have other systems that are not replicated we how about tracker you or stress we have billing data warehouse systems using cost breast so we have a lot of databases and we need to manage multi year ago
a year and a half ago all with time to replace the hard work we had been running or stress on a acts are using servers idea the servers will over 5 years old with warranties expire they were not as fast as machine you can buy today it was generally time for a her rock refresh we want to get an evaluation and decided we're going to move to Red Hat Linux on RBM where virtualized and at the same time we decided hey we're moving all of our servers let's move data centers as well our data center contracts for and we decided we wouldn't change our dataset so we have a lot of new servers were written by provision stalled migrate to enter a relatively short time so how could we use automation to help and that's what we had already been using CI engine which is another configuration management systems deployment system to deploy our course present binaries we were really using SIFT and a lot more than the point binary made point contact other departments in affiliates had been using public article particularly assisted in system is to maintain our Registry application this awful we write house they were deployed with puppet and we decided let's standardized pockets will use public for the database stuff and we'll do that as part of this migration questions but basically because the other team had already been using up at the 3 big players are that you hear about our CF engine puppet Shaft 6 seasons like tf engine is losing popularity you hear about puppet and check all the time so we pick up because we were using already so the point in
automation for those who part familiar with it is to get the idea is you want to automate the task in setting up a server on surrounding non automated call stress installation so the extreme case you have to install a database server you down on the top I'll watch this website you will compress it into will figure you and make you want make installed you have to be you copy over file into the in it's there there are and so on this gets very tedious and long particularly this desperately once on anything so that is more automated than what I just described is a form deployment of which some people have been using shell scripts for this type of stuff for decades this is Deployment Automation some of the deployment automation packages like puppet and shaft however frameworks for doing these common tasks easier and with more use then if you're getting it right on shelves on
we have a couple of sort of general goals for deployment automation project we wanted service to look this which doesn't really want be we want the again think of a web server where you have 10 web servers for the same way back on all doing exactly the same thing behind a load balancer various servers are pretty much identical for us while we have 100 databases but none of them are really identical many running different versions of course many in running different database schemas for different completely different products and then others are configured essentially the same so we needed a way to keep things look mostly the same but managed differences so on before we get automation of back by axis we had an instance where the directory we were writing it was lots and you are on a couple of servers was 1 level higher in the directory tree and the file system then it was how did we discover this it was a movement maintenance of that at the year was doing something the lawn directory was not worry expected it to be you might have been running running running a script to check something that wasn't were script expected it and this is not to take anything you like discovery in the middle of maintenance of the and the deal with the other directors about directory moving but it's a we wanted ways of managing this in preventing that type of situation we also want
consistency between a production development in a few ways of objects as we move to more deployment of the formation of a more automated tasks in general we wanted to be confidently tests are scripts into way and staging and know that they have a good chance of working reduction while we're on an X. we have 3 database servers in our staging environment and maybe 5 in QA environment for all of its products all a different projects systems and so all of those 100 databases to test something we might have in the way we might have 5 servers to choose from so QA would install different versions of course rests on the same server create multiple happens within the ports on and do whatever they needed to do so they goal the data and test the application functionality on a server with lots of other activities going on this was fine for testing application functionality of but it tended to have some problems are particularly if you want to test maintenance type tasks it works so well I no matter while this was 1 of our goals did not been so successful yet in making are way environments look as close to production as I would like was still working on making progress on that we also wanted to
reduce manual commands before I did you know the the Temple of doing the installed manually if you have to upgrade post press on 100 servers may have changed the version rather quickly this this here the patch you need to roll out the last type in you have to be on each of the 100 servers the better so we wanted to reduce that and deployment automation in that way as
I mentioned we picked up at the top is an open source project with a commercial of edition that you can buy the our Union public the public labs . com on public lands that most of the maintenance of public the open source version or community version of topic will probably you everything you want we initially launched with the open source version where we get our stuff and then we of a body commercial support contract with Puppet Labs mostly for access to their professional services and then we migrated to the Enterprise version is a bit fancier you we been nicer packaging but most everything I talk about in this talk applies to both the communicative and our commercial version so a bit
about how public works and property you have a puppet master the puppet master his will is a server that will have all of your puppet model source code on and a list of what goes on which server then you can have your servers which might database servers server L about servers the servers do you really work and they will run a program called the Puppet agent because the agent contact the puppet master and ask the puppet Master for instructions on what it should do and puppet master should step down the agent to make changes on the region server some
terminology and all referring to the impact that when the when you tell a server what should be deployed on and that's the known definition and you know definition of the consists of a set of classes so for a particular mold you might be saying very deployment TTS role class and going class the public master will take this no definition which is a list of classes and the actual source code for these classes and patch them up together and produce a catalog this catalog a set of instructions for the agent on what to do and how do you see also agent should make this server this catalog that ship to the age what a puppet class
this is sort of a very basic public class puppet classes can contain can instantiate other puppet classes they can instantiate puppet resources are and they can have things like variables being set in basic control structures like this the puppet resource is something in public that you instantiate to do something puppet ships with a whole bunch of default free provided resource types 1 of them is the packages or the package resort install packages from with operating systems package management functions so this particular example will create an instance of a package resources to install which restaurant server package using out so honor and system this will install prosperous on and that's what the class will do have it is
also declarative another resource type puppet ships where is the final resource the file resource managers files and file system so the ideation declared what on that file should exist on your server can have a world you declare what the content of that file to do so in this example and saying I want to have a file temple world and it should contain the content Ottawa when the puppet agent runs if there's no file and called Hello world it'll period I am saying what model if when the poverty agent runs and find a file intent Hello world but it says welcome to Toronto Public will change that file to say welcome to Ottawa so you run puppet once and make some changes run up but again and you haven't changed anything else puppeteer really do not think it checks to see that everything that you declare is still true and I will do nothing if something has changed public will make what he declared true to be true again and this is the philosophy of art on there's ways you can do something but don't follow this philosophy but you're going to get into trouble puppet is meant to be declarative and you want field your post stressed or your puppet classes to do things in this declarative fashion
so the way we deployed puppet at affiliates is we have a puppet master and we have our servers database servers Apache servers are Tomcat servers except we write our public classes of and we check them into a data repository the get server which of course things to have some talks that course things onto the puppet master and to make it was always available when we do things and get on the branch that branch is then pushed it to the puppet master and we can have multiple the branches of public classes available at once this allows us to have different servers running different burden of our public classes which is very useful if let's say you want to test your public changes in the way before you want to course the reduction you tell topic that you or you want to use the you know test 1 2 3 branch on a QA server what's using Praat branch of productions yet allows us to do this rather nicely with the books mentioned i before I talk about no definition you know definition you can write a file and topic that says for server 1 i it's running classes stress and Sloan a server to which return classes tomcat and you're job but for if you have a lot of servers in 1 file with all this gets in there and we we we already use held back for managing a lot of our infrastructure what servers there was but the names are etc. so with help that you can have what's called an external node classifier and stromal classifiers program that public will contact during the run this says for server 1 2 3 what classes should I install here and there is a bunch of tree
written external classifiers 1 of the interfaces without doubt on and that's what we do so in L . 4 server 1 2 3 we list the party classes as actually it's now that that should be installed on the server we also list the branch from the at the environment we call it that we want to on a run on that those classes of so server context a puppet master puppetmaster context l that that's what it should what it should install the Puppet Master builds up the catalog of ships it to our server couple slides ago I showed you a web page with a management console on that's the Puppet Enterprise Management on so we can launch a puppet run into the on off I just servers so I can say all of our you know our servers in Texas we want to run popular publicaron now the database servers I select the molecule we launch puppet it'll go on run puppet now and I give you the results in reports if you're not using offensive you will you can all want puppet on the main line of each of your servers you could write shell scripts for log on interior of the servers and do this a lot of people run up on an intervals so they have had it automatically runs once an hour of the were not doing this yet we might eventually get to that point that's so the other way the point of that so it always runs make sure that things declaring that that's true we
had some specific roles for deploying are databases we wanted to deploy binaries we wanted or con files managed on files are we won the handling it be because as we were rolling out our 100 databases onto these new servers we wanted to get that done very quickly and easily we also have a lot of crime tabs that we have to manage each of these things all talk about in more detail of slides and we did something slimy that are easier to manage puppet as well so there
is a module for pocket up to manage stress pattern has these different modules collect collections of classes many of them are available on the project's public lands websites there's 1 propose graphs i.e. does many of the things I talked about this slide starting stopping for stress and when the product files you can get the out Europe you can get this module lattice Europe we don't actually uses the on reason being that we had a perceived need to install multiple versions multiple minor versions of course rests on the same server so we thought we wanted to install a 9 to 5 . 4 and a 9 to 5 on a server at the same time and have the same time on the PostgreSQL PM's and get you don't really do that so we had to build a RPM and it seems to be to be easier to right own class for managing post-stressed then it would be to modify the community of classes here to do that but I would recommend you take this as a starting point and see if it would be so what we
instead do if we have a resource called the TGS grow cluster resource it manages a single data due home so it will launch created data performing it install con files and want to here and we have a whole bunch of infrastructure that's it's all about this layer for managing actually what can't files and what is more useful to Web server and so 1 of the more
interesting things and more common in Japan 1 of you is managed files like course press caught fire part that has the templating language it's the ruby templating language on the river used rubyonrail on apps HTML it's the same templating language that that users have it is actually written in Ruby and there are many places in public or you write out in your classes and basically right Ruby code to do things on and often you will need to do that when there is no easy way to accomplish what you want in power and so the weight of these templates works is you might have a positive constant you want shared buffers to in variable so you put that in in service specific value for shared buffers like 30 to make you would say you know within the square brackets were triangle brackets are shared buffers and shared by is a variable and that will get evaluated at runtime so when you're deploying your catalog on that by variable will be substituted with let's say 300 beds so the templated year B it's turned into a specific conf file with the variable substitution on the way you
would use that template is using the same file resource we discussed for you set the variables in your public passes on soldier buffet might be 300 managers and with the template we want you then we're saying let's this file is for the course that's on which means the data and the content of this file instead of being a static string like my previous slide and it should be the use the template and pass it will attempt topic goes evaluates the 10 late in the context of the variables is set up above the core in the class and gives you a result you can also do ordering on public resources on so here and were saying that we also want to make sure we run this file after we've done in it I have another package called exact which exactly units in the command of an or it's another of resource that exactly the command and were just saying in order to run the course file Conf on we require the unity that thing with that if you install the template for you get over right so on OK in post in pocket each resource instance has to be unique winning so if I had a different topic class that was installed on my server that had this strange here would be needed here being the same value it would be a problem but that would say 0 this file reverse in this class wants part and this file also this other classes also defining office part as it is the same thing which like shoes I don't know I'm confused and error so every resource all has and every class has in in this case the name of the file resource and instantiating the instance name is the path data here slash 1st of all on the class that I'm including this to also has name and the net dollar name evaluates to the name of the current Institue running out for that for the passes the inside is that sort of answer your question like so I find that I have no idea that's probably how I mean there's there's no good reason 1 dollar name will give you the uniqueness it could even be a typo on the slide the title of my so some
parameters in your post this while you're gonna want based on information on the server you're actually the point to a good example is the IP address you might offer newly listen addressable start a list all the reasoning devices but you might only want listed on the 1st is that rights of course this part requires you to type in the address of the 1st device but this is something you can automate has a program called factor that runs as part of the population from the collapse of facts about the system and ships them back to the puppet master to make these facts available as variables during the public right for example the IP address of the 1st season at device and the 2nd is the device and all your other reading devices are available as facts you memory on your machine is available at the operating system you're running is available so fact and you can also write custom facts you can write a Ruby code that will run on the server the agent server as part of the agent or do whatever you want to compute a value that gets shipped back to the server the puppet Master as a variable then inside of your attempt plates you can ask that you look at the variables and use them as values
some variables you're using are coming from your agent services but other variables want to control and set as configuration I to manager configuration and a lot of usability between Europe classes C 1 have you have your public financing of 100 database ideally you would have won puppet ask for all your database servers to maximize called readers like if you're doing this you need to take the configuration parts of your class and put them somewhere else but it has a library APIs will be called higher which is indeed look up our library for looking at data in a hierarchical fashion what it allows you to do is move your data out of your classes into these gamble files and you can then do look ups and very you configuration hierarchically so the way it
works is you might have a DB server class and you might want to find out what cortical stressed writing off and it might be that heard of different all approaches selling doing you have different sports a watercourse Christian so you'd say my applications pose that's my product or and the hierarchy what is my prospects for all and however will come back with the support it should use how this however do this 1st you have define higher this is a different sample of a higher were what I'm saying is for a particular Fully Qualified Domain Name offer my application would is cost I want to be able to set things on a particular server but other things for prosperous I wanna set for the entire domain so for all my toward out affiliate start info servers I want set some stuff there and then the Texas but if we start involved I wanna set other values but some environments some settings might not very based on where your servers located within the meaning of the server some of our settings vary based on what we call environment type which is whether it's a QA server a production server stating so we've made that another variable and then other things that maybe the court varies based on the product of everything in yellow is a variable that I we define we decided the which is the control things we want use to build our configuration truth you can pick other things that work for you on the important thing is you know if hidden variable in your higher configuration this variable should be be set either by factor or explicitly as we did in our slide here so how does this
thing work you then writes all files Demo is of language for writing it up it's kind of like sort on hierarchy it's the quality of all but there are other back-ends you could use on any right these files that will continue configuration in a tree structure of file system so this tree structure matches the structure of my previous slide so some values we might have a server the 1 that foreign affiliates and we set the values and post this here so when I go look up my report on higher will 1st check this file this process file for D 1 because that's the fully qualified domain name it doesn't bind the value it moves on all this is production server I have defined at the production level now I don't see it there all this server is other the product was or is that the the value us at the variable on 2 slides ago yes I see a port value higher real will return the value if it down the court value at the top of the 1st file looked that's what it with and have a higher will walk through your hierarchy in the order you define it looking for the values of you've said what do 1 of these general files look like on the pretty simple you have the right key and a value so the key in this case has cost of support value is 5 4 3 2 you can also build more complicated structures so at the bottom here we have our DB-list which is a hash are so devout that he is course the stimulus the value is a hatch the hash of the key of a hash is con which is not a database name and the value that points to is the owner of the database there's another value in the hash for different conference with the different order so we then have some particle of walks through this past creating databases with great database with the created a sequel command for every database we defined the the list and are setting the did the role in post press that owns a database to be the role always set here this allows us and we have some databases where of or some clusters I guess I should say a word about the databases in the cluster very of for a lot of miscellaneous things will have 1 database with a handful of 4 or 5 different databases in it and another cluster of will have you know 3 of those 4 but although we use this to manage all but databases go on a server and it works pretty well as you
manage your Europe for stressed configuration you're going to need to come up with a strategy for differentiating on different parts files and grouping unintelligible to strategies this is the 1 we actually used mostly for every major version of stress we start off immunity you didn't even and we get to deep all content providers of conscripts and then we start to change and there are some things that we change the con file that apply to all of our database servers are and then there are
some things that differ based on for the possibility that some of the databases are small they're operating on its systems they don't have a lot of activity so we created a grouping of servers called small and we have con files for 9 0 9 1 9 2 etc. that are small other databases do new batch processing systems are these systems typically you connections use lots of memory so we set up a set of files for a batch systems are Max connections are low workmen high mean duration of for logging what along inquiries is rather high things appropriate for batch jobs then our 0 Ltd systems and we tend to do a lot of hot very high mass connections much smaller work man that's connections is so high and we have a lot of connections and on you know our main duration with a lot of what we consider reported went along with its 100 ms of of the system so we want while on our batch processing systems the corre of like a minute is not long at all so we built the things into groups and we try many things on these groups and even though different applications are using the same group we tried it with that together yes you probably could all the questions for the audio was the we get a lot of value above having different versions templates for each major version and I like the fact that you can see the values that we have not changed and sometimes the default values change in Paris France and I we should find that's helpful at all but it's not necessary might you know it might work well for others not to do this on the overhead of how you know there's not that many major versions of course pressure the overhead and this is not a big deal and there are settings we change from different versions stress sometimes you could you know there are things that are appropriate for a free but are not appropriate for lying to as an example you could conditional life some of the stuff on what
sort of brings me to my next slide instead of having 1 file for this class of systems you could have 1 file for each major version of course best make everything that you might change variable and then set up a higher up level or use higher to manage the different respects this is probably a better way of doing it and I'd like to move from having the you know 1 of complex upper class to 1 . 5 per version of what Peter suggested that is survived it's another level we could build you just 1 classifier for all versions by hoping to go to this sort level and so we would say then that are you know shared buffers and work man is all variables and at some higher level we would say that for B and it would be on you know certain values and the smaller the other values and sentenced and we would override another thing we do
a fair amount of these projects we have a lot of contacts for things like back ups urging jobs both things in database purging log files and file systems etc. and so while I say you know it wasn't a big deal for us to rewrite gap of marginal for installing course present you and he was probably like 75 per cent of our public passes in terms of volume of cold deals with all this other stuff that is not not reusable between other places with respect to managing from jobs are what files we go on we actually run most of our product we have database servers and we have what we call bait based applications here's a database application server is does not run the POS presentation and it has purchased and sold and it runs from jobs in our response other things that connect to the database and make and on we do this to move all off of our database servers on to other servers as are back at you know between and some of our backups within their consent places it's actually experiments is fueled and getting this stuff off of a database and is helpful in so managing the strong jobs is a big part of what we do question that is probably OpenOffice misbehaving on yes so to do the crime on France puppet has a brought package so across resource types and and the from resource type managers of your project so for a particular line your product have you will declare a for instance of the primary source time saying on high wanna try for a back up and the burning and this is the name I was talking about again were because we have so many different servers on and you cannot have duplicate instances instances of a crime so name might be a product in this case are class making are you know that server or and we would so crime would been created contact with a name which is a will be coming in the tableau file on that server backup under embark and it'll put the command we specified here but and the command can have variable so this way we have the same a public class or proper resource that lets us back up all of our different of products and some of our products we might be running the backup at 1 time others we might make the minute you variables that have 0 so we draw over time but we have a lot of different crops products and content to do different things and we've been managing contents puppet and we have switches to say which crontab should run on which on products and we have switches in our higher files to control what options we passed to them and the other switches to control what servers and backup which should be launched from the world so it gets kind of complicated but higher has turned out to be a pretty good way of managing it and it definitely is working better than trying to manage all these contacts patterns of German manually with CBS and forcing them everywhere
another thing we use the public to help us do is manage some of our slowly stuff for those of you who don't know what's funny user a replication system and to configure slowly you would slowly has this command line language called slot slot is how you tell slowly what it is you want people to do and this is an example of a typical slowly script it's they start out you name the cluster of and these different pastas in your environment will have different then you tell Saloni how the contact each of the nodes in this past and that provide the host name and users from except trapped in this part of part then you actually do interesting things there's 1 commands this file will not work in both the QA and production environments because at the top were specified post names and the host names are not the same in the way in production so how do we solve this problem with other we have
a template in puppet of that generates only variables these are files basically containing not hot hot are slanted commands that are the same for any man we go 0 look past the cluster name should be there from the variable cost and then we use some more advanced templating stuff all we can do loops in the templates we loop over all of our nodes on slum con is a hash comes from higher and we loop over it we get the node ID which is the key and some values and the values another hash on and the values might have a portmanteau of the host name we could put users and passwords in this hash as well and we write out back on an incline involve line from the previous slide using are on public template slowly also has the idea of the variable that you can reference later we also in addition to the content of this same information is available as this 1 variable so we can reference that half of the posts later smallest path this is an example of how you can build up things and public to seperate the stuff that is the same on all servers let's say that's sat at table from stuff that very so then we run a spot of commands on situated production we 1st include the scrambled file then we do our set at table or whatever actually want to harm so how do worry
Jamil firewood hire look something like this that hash I showed you that we will go over will look like this at you know it might be the key you might be put this 1 nodes and what do I will look up a sign that to a variable corn and then we have you know the node ID 9 1 8 1 that's the 1st level of the hash back and it's another hash has host and 4 and then we have another entry that's a different host in a different work for a difference cloning node like this might be our production costs and then again for the way we would have a different general file that had different values for these things that would generate a different preamble home on the server where up for all talk
a bit about what has been a bit challenging for us on 1 issue is removing stuff you declare these public classes that you run the puppet agent and solves a bunch of things are then decide all I no longer want to be running this database on the server maybe you decide to move it and maybe decommissioning and you don't want to throw away the whole server and if you doing this for web applications for web server often what people do is they will just build a new web server and replaced the old web server with the new 1 behind the load balancer and throw away the old 1 on with virtualization it's very easy do in web servers because you can just throw it away place with another 1 if you can load balancer this doesn't work so well what it is that you can't really unless you're going away the entire server you have to keep that data as you know if you're only trying to out where 1 of the databases on your server keeping the other ones you can throw away the data keeping by the provision so what we found we needed to do for every class that does something and that we had to write a 2nd class that and as so we have sort of these removal classes and removal so will install things with the installed 1 and then when we decide all we want actually remove this from server instead of having that server unless you install class it was 1st class on the server it might list because of removed facts in the manifest in the list I should say so it and I spent on testing this is a bit of a pain in didn't appear as you have to you know install things make sure things are how they look up right right deployed removal last minimal for any changes any leftover things on and usually you wouldn't stolen something you wanna get out there you're not worried about removal when you're writing the upper class initially you just get out there and it's only when you uninstall something you have to bother about writing his removal classes well yes yes ah yes a puppet for example the final resource has an insurer president drops to just like we were ensuring that the file was there were in the example I gave you can also set out an action given drop set were puppet will make sure the file is not there R. for your resources that somehow we removing and 1 way of doing this instead of having a separate class for rules you can have an insurer absent mode that will and you what we've mostly not cause not group maybe that is a better route to go up by doing separate classes on I don't have a lot the Government and the reason why our but in either case you have to actually think about what should happen in a removal and spend the time writing the code to rule that we also had some challenges yes well the issue is all so let's say we have cost press and we have to databases in constrast database 1 database to on and he won removed database 1 but not database to you can do that but even if we if we have a class of removed hostess and it stops PostgreSQL deletes the data but has not often for deleting something we want that space we don't want that 18 year laying around has were will likely going to deploy something else on that server on so we have you know again you can just ignore this big due partly to implement half problem and perhaps the solution by just stopping parts that not completely clean it up but eventually you don't wanna completely clean things up so password management is also a challenge but if you put your password in your higher files and put this into it and lots of people have access to get branches you just expose passwords to lots of people that's not so good and so when we 1st check tackle this we actually work using hierarchy and I wrote some custom Ruby functions that ran on the puppet master the look past it was sort of like hierarchical custom stuff that just look up passwords and passwords were only on a puppet master that only assessments had access to and that worked OK except adding and removing password you address this system and we do that then hierarchy 1 with the higher WER we discovered that there were different back higher has in addition the EML back and it has an back and that works and GPG and files so you write up your demo files and you inject them and you inject them into many different source repository and and somehow deployed onto the puppet master and then deployed decryption keys on the puppet master you control fairly tightly and then the puppet master Khandekar these yeah mobile look passwords and push them on their own to into the catalog so they get point on your server you can do this for right to things like writing the gym past files etc. and change password is also a bit of a challenge in that if you wanna changes database user password use of password you might need both the old and the new password available at once you need the password to have European-style log in and you need a new password said something different and this is something not yet solved are 1 way is other you know 1 way of doing this is to have the hospitals 2 variables and other ways to have a different users that you're using for changing passwords on but we haven't actually implemented solution there are some next steps were looking at doing on 1 we're not I spoke about how would managing databases as a database as let we define a list of databases will create were not doing this for a typical database login users right now we're still manually log your server is issuing crucial role or dropped roles and it's getting harder this but I'd like to sort of have hearted managed login users roles were databases and I think that's quite doable also when we caught a quantile change we're not we're starting off so we we put we change but said shared buffers in our content later higher we push this down it gets in decompilers chains on a database server that has no effect because we're not the start poster we you could tell public to just Vostok core stress on but that means courses and be shut down public from if you're running puppet every hour you probably really don't want to have your database go down and if it's important database so I still have to figure out some good techniques for managing you know we're starting things that we're starting servers that can started so that we so a lot of our replicas of actually can you started out with what's the not yet been used things but not the starting service that can be restored the where and then getting an idea about when we look for something to a server up that doesn't take effect until respect has has changed in the current file but not having taken that is a good way to users are so that's sort of all my next list of to do stuff any
questions yes I know that that we use I think it's good to light as a good server are and then we've written custom books are we've written something that involves Robert and you I believe and I think yellow works are custom are we might be a world of released under open-source 1st interest I can talk to the guy who wrote them and see what they look like and may be worse than that of any other questions idea
Web Site
Bit
Prozess <Physik>
Computeranimation
Datenhaltung
Übergang
Demoszene <Programmierung>
Domain-Name
Datensatz
Softwarewartung
Datenreplikation
Datentyp
Installation <Informatik>
Konfigurationsdatenbank
Einfach zusammenhängender Raum
Nichtlinearer Operator
Softwareentwickler
Physikalischer Effekt
Profil <Aerodynamik>
Physikalisches System
Aliasing
SISP
Softwarewartung
Arithmetisches Mittel
Menge
Forcing
Server
Information
Normalspannung
Verkehrsinformation
Subtraktion
Punkt
Prozess <Physik>
Data-Warehouse-Konzept
Mathematisierung
Kartesische Koordinaten
Kombinatorische Gruppentheorie
Binärcode
Raum-Zeit
Computeranimation
Rechenzentrum
Virtuelle Maschine
Multiplikation
Datenmanagement
Migration <Informatik>
Konfigurationsdatenbank
Leistungsbewertung
Lineares Funktional
Zehn
Datenhaltung
Physikalisches System
Biprodukt
Design by Contract
Konfigurationsverwaltung
Mereologie
Server
Normalspannung
Instantiierung
Standardabweichung
Web Site
Subtraktion
Nabel <Mathematik>
Versionsverwaltung
Computeranimation
Übergang
Lastteilung
Task
Netzwerktopologie
Bildschirmmaske
Benutzerbeteiligung
Datentyp
Skript <Programm>
Dateiverwaltung
Datenhaltung
Systemaufruf
Biprodukt
Elektronische Publikation
Quick-Sort
Softwarewartung
Dienst <Informatik>
Server
Projektive Ebene
Normalspannung
Verzeichnisdienst
Instantiierung
Softwaretest
Lineares Funktional
Subtraktion
Datenhaltung
Versionsverwaltung
Kartesische Koordinaten
Physikalisches System
Biprodukt
Computeranimation
Objekt <Kategorie>
Softwarewartung
Task
Patch <Software>
Datentyp
Server
Dateiformat
Skript <Programm>
Projektive Ebene
Installation <Informatik>
Ordnungsreduktion
Softwareentwickler
Programmierumgebung
Widerspruchsfreiheit
Bit
Architektur <Informatik>
Kategorie <Mathematik>
Open Source
Datenhaltung
Mathematisierung
Versionsverwaltung
Mailing-Liste
Quellcode
E-Mail
Computeranimation
Design by Contract
Dienst <Informatik>
Informationsmodellierung
Server
COM
Projektive Ebene
Optimierung
Unternehmensarchitektur
Lineares Funktional
Server
Datentyp
Klasse <Mathematik>
Online-Katalog
Mailing-Liste
Quellcode
Physikalisches System
Objektklasse
Quick-Sort
Computeranimation
Service provider
Patch <Software>
Variable
Datenmanagement
Menge
Datentyp
Server
Kontrollstruktur
Installation <Informatik>
Default
Instantiierung
Klasse <Mathematik>
Mathematisierung
Computeranimation
Netzwerktopologie
Knotenmenge
Informationsmodellierung
Datenmanagement
Prozess <Informatik>
Deklarative Programmiersprache
Datentyp
Dateiverwaltung
Inhalt <Mathematik>
Optimierung
Hilfesystem
Softwaretest
Datenhaltung
Verzweigendes Programm
Elektronische Publikation
Biprodukt
Frequenz
Ordnungsreduktion
Datenfeld
ATM
Server
Normalspannung
Repository <Informatik>
Resultante
Punkt
Nabel <Mathematik>
Klasse <Mathematik>
Schreiben <Datenverarbeitung>
Online-Katalog
Web-Seite
Binärcode
Computeranimation
Datenhaltung
Datenmanagement
Skript <Programm>
Spielkonsole
Gerade
Schnittstelle
Binärdaten
Datenhaltung
Verzweigendes Programm
Kontextbezogenes System
Elektronische Publikation
Rechenschieber
Server
Programmierumgebung
Verkehrsinformation
Innerer Punkt
Web Site
Klasse <Mathematik>
Versionsverwaltung
Einfache Genauigkeit
Ungerichteter Graph
Instantiierung
Elektronische Publikation
Biprodukt
Modul
Computeranimation
Datenhaltung
Rechenschieber
Multiplikation
Datenmanagement
Verbandstheorie
Standardabweichung
Mustersprache
Server
Projektive Ebene
Installation <Informatik>
Normalspannung
Modul
Perpetuum mobile
Resultante
Subtraktion
Gewicht <Mathematik>
Formale Sprache
Klasse <Mathematik>
Online-Katalog
ROM <Informatik>
Template
Code
Computeranimation
Eins
Puffer <Netzplantechnik>
Poisson-Klammer
Variable
Einheit <Mathematik>
Reverse Engineering
Inhalt <Mathematik>
Substitution
Umwandlungsenthalpie
App <Programm>
Template
Aeroelastizität
Eindeutigkeit
Mathematisierung
Rechenzeit
Kontextbezogenes System
Elektronische Publikation
Quick-Sort
Office-Paket
Rechenschieber
Dienst <Informatik>
Gruppenkeim
Rechter Winkel
ATM
Mereologie
Server
Speicherabzug
Ordnung <Mathematik>
Baum <Mathematik>
Message-Passing
Zeichenkette
Instantiierung
Fehlermeldung
Punkt
Adressraum
Klasse <Mathematik>
Ablöseblase
Schreiben <Datenverarbeitung>
Code
Netzadresse
Computeranimation
Virtuelle Maschine
Variable
Datenmanagement
Code
Netzbetriebssystem
Datentyp
Programmbibliothek
Optimierung
Parametersystem
Benutzerfreundlichkeit
Datenhaltung
Mailing-Liste
Physikalisches System
Elektronische Publikation
Teilbarkeit
Dienst <Informatik>
Konfigurationsverwaltung
Rechter Winkel
Festspeicher
Mereologie
Server
Information
Ultraviolett-Photoelektronenspektroskopie
Lesen <Datenverarbeitung>
Domain <Netzwerk>
Demo <Programm>
Subtraktion
Prozess <Physik>
Formale Sprache
Klasse <Mathematik>
Hierarchische Struktur
Fortsetzung <Mathematik>
Kartesische Koordinaten
Information
Computeranimation
Übergang
Netzwerktopologie
Domain-Name
Front-End <Software>
Datentyp
Stichprobenumfang
Hash-Algorithmus
Minimum
Dateiverwaltung
Biprodukt
Datenstruktur
Cluster <Rechnernetz>
Schnelltaste
Datenhaltung
Mailing-Liste
Objektklasse
Biprodukt
Elektronische Publikation
Quick-Sort
Teilbarkeit
Rechenschieber
Arithmetisches Mittel
Konfigurationsverwaltung
Hierarchische Struktur
Menge
Gamecontroller
Server
Wort <Informatik>
Partikelsystem
Information
Ordnung <Mathematik>
Programmierumgebung
Schlüsselverwaltung
Verkehrsinformation
Server
Subtraktion
Extrempunkt
Mathematisierung
Gruppenkeim
Versionsverwaltung
Kartesische Koordinaten
Service provider
Computeranimation
Inhalt <Mathematik>
Default
Hilfesystem
Metropolitan area network
Einfach zusammenhängender Raum
Nichtlinearer Operator
Videospiel
Template
Datenhaltung
Ruhmasse
Physikalisches System
Elektronische Publikation
Arithmetisches Mittel
Konfigurationsverwaltung
Druckverlauf
Menge
Festspeicher
Mereologie
Strategisches Spiel
Server
Overhead <Kommunikationstechnik>
Stapelverarbeitung
Normalspannung
Randverteilung
Subtraktion
Klasse <Mathematik>
Versionsverwaltung
Kartesische Koordinaten
Kombinatorische Gruppentheorie
Term
Datensicherung
Computeranimation
Übergang
Puffer <Netzplantechnik>
Variable
Datenmanagement
Prozess <Informatik>
Endogene Variable
Mustersprache
Datentyp
Dateiverwaltung
Flächeninhalt
Inhalt <Mathematik>
Spezifisches Volumen
Gerade
Metropolitan area network
Datenlogger
Datenhaltung
Quellcode
Physikalisches System
Biprodukt
Elektronische Publikation
Quick-Sort
Gruppenoperation
Konfiguration <Informatik>
Rechenschieber
Puffer <Netzplantechnik>
Mereologie
Server
Projektive Ebene
Ultraviolett-Photoelektronenspektroskopie
Eigentliche Abbildung
Message-Passing
Instantiierung
Formale Sprache
Information
Computeranimation
Loop
Variable
Knotenmenge
Datenreplikation
Hash-Algorithmus
Skript <Programm>
Passwort
Inhalt <Mathematik>
Gerade
Metropolitan area network
Addition
Template
Physikalisches System
Elektronische Publikation
Biprodukt
Rechenschieber
Mereologie
Server
Information
Geneigte Ebene
Programmierumgebung
Schlüsselverwaltung
Tabelle <Informatik>
Bit
Demo <Programm>
Punkt
Virtualisierung
Web-Applikation
Gruppenkeim
Information
Login
Raum-Zeit
Marketinginformationssystem
Computeranimation
Übergang
Eins
Datenmanagement
Vorzeichen <Mathematik>
Tropfen
Softwaretest
ATM
Addition
Lineares Funktional
Extremwert
Dokumentenserver
Datenhaltung
Mobiles Internet
Quellcode
Biprodukt
Dienst <Informatik>
Verkettung <Informatik>
Chiffrierung
Rechter Winkel
Server
Schlüsselverwaltung
Normalspannung
Subtraktion
Gruppenoperation
Mathematisierung
Klasse <Mathematik>
Implementierung
Hierarchische Struktur
Online-Katalog
Code
Lastteilung
Puffer <Netzplantechnik>
Knotenmenge
Variable
Benutzerbeteiligung
Hash-Algorithmus
Installation <Informatik>
Passwort
Inhalt <Mathematik>
Hierarchie <Mathematik>
Trennungsaxiom
Soundverarbeitung
Verzweigendes Programm
Schlussregel
Routing
Mailing-Liste
Physikalisches System
Elektronische Publikation
Quick-Sort
Mereologie
Speicherabzug
Open Source
Server
Mehrrechnersystem
Aliasing
Computeranimation

Metadaten

Formale Metadaten

Titel Elephant Puppets
Untertitel Deployment automation for PostgreSQL
Serientitel PGCon 2013
Anzahl der Teile 25
Autor Singer, Steve
Mitwirkende Heroku (Sponsor)
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/19045
Herausgeber PGCon - PostgreSQL Conference for Users and Developers, Andrea Ross
Erscheinungsjahr 2013
Sprache Englisch
Produktionsort Ottawa, Canada

Inhaltliche Metadaten

Fachgebiet Informatik
Abstract Deployment automation for PostgreSQL Puppet is a platform for I.T. automation and configuration management that has gained popularity in the devops movement. This talk will provide an introduction to puppet and talk about how Afilias uses puppet to deploy and maintain over one hundred servers running PostgreSQL that support key parts of the DNS infrastructure Puppet allows DBA's to automate the installation and configuration of PostgreSQL across multiple servers. This talk will explain how puppet can be used to install and configure PostgreSQL. Automated configuration of your database servers keeps servers looking the same allowing you to control differences. Managing your database servers through puppet also allows your to easily reproduce your configuration for development and QA purposes. The talk will cover the basics of puppet and best practices for deploying puppet to manage PostgreSQL including: How to install PostgreSQL via puppet and create database clusters How to manage postgresql.conf, pg hba.conf and .pgpass via puppet Best practices for dealing with configuration differences between different database servers and different environments Afilias is a registry services provider running registries for numerous TLDs including: .INFO, .ORG, .MOBI, .XXX, .IN, .ME, .ASIA, .MOBI. Afilias has been using PostgreSQL since the 7.x days and currently has more 100 production database servers running PostgreSQL.

Ähnliche Filme

Loading...
Feedback