[chef] Re: RE: Re: How to manage databases with chef?


Chronological Thread 
  • From: "Julian C. Dunn" < >
  • To: " " < >
  • Subject: [chef] Re: RE: Re: How to manage databases with chef?
  • Date: Wed, 20 Aug 2014 10:38:02 -0400

On Wed, Aug 20, 2014 at 5:22 AM, Kevin Keane Subscription
< >
 wrote:

> Thank you for the response! First off, normally I would agree with
> Vladimir’s suggestion – creating a database manually is indeed the easiest
> way to handle this specific situation. Another easy solution would be to
> simply keep the database on the same server.
>
> But I was looking for a more generic solution, because I have run into
> similar types of coordination issue on several other occasions before (and
> usually resolved them manually)
>
> As for your suggestion, Seth, I am not quite sure I follow how this should
> work. Step 1 is easy enough. Step 2 is the problem: the owncloud recipe
> would not be running on the database server, but on the owncloud server
> which, in my scenario, doesn’t even have permission to create databases.
> Yes, of course I know that it is possible to create a database remotely with
> the right permissions, but for a number of reasons, I don’t want to do it
> that way.
>
> The main reason is that this is really just an example for the more generic
> scenario. The other reason is that I prefer to keep root access to MySQL
> limited to the database server.
>
> So the more generic problem is:
>
> Chef recipe runs on server 1, but the final state, and thus the success or
> failure of the recipe, also depends on something being done on server 2. I’m
> sure that this is a fairly common scenario; I’m just wondering how others
> handle it.

In my view, this kind of problem is best solved by designing it as a
system of autonomous actors a la Mark Burgess promise theory.

In other words, perform the database operations solely on the database
server, and don't introduce cross-node dependencies or "orchestration"
unnecessarily. Design the application that is connecting to the
database in such a way that it is resilient to errors like not knowing
what its username and password are, inabillity to connect to the
database yet, etc. As soon as it gets that information and has all its
required operational parameters, it automatically recovers and begins
receiving live requests.

- Julian

-- 
[ Julian C. Dunn 
< >
          * Sorry, I'm    ]
[ WWW: http://www.aquezada.com/staff/julian    * only Web 1.0  ;]
gopher://sdf.org/1/users/keymaker/           * compliant!    ;]
[ PGP: 91B3 7A9D 683C 7C16 715F 442C 6065 D533 FDC2 05B9       ]



Archive powered by MHonArc 2.6.16.

§