<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Vladimir Vuksan&#039;s blog &#187; DevOps</title>
	<atom:link href="http://blog.vuksan.com/category/devops-2/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.vuksan.com</link>
	<description>Documenting the systems and network infrastructure madness</description>
	<lastBuildDate>Tue, 03 Jan 2012 03:50:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>RESTful way to manage your databases</title>
		<link>http://blog.vuksan.com/2012/01/02/restful-way-to-manage-your-databases/</link>
		<comments>http://blog.vuksan.com/2012/01/02/restful-way-to-manage-your-databases/#comments</comments>
		<pubDate>Tue, 03 Jan 2012 03:43:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Systems Management]]></category>

		<guid isPermaLink="false">http://blog.vuksan.com/?p=490</guid>
		<description><![CDATA[I have a need in my development environment to easily create/drop mySQL databases and users. Initially I was gonna implement a simple hacky HTTP GET method but was dissuaded by Ben Black from doing so. He suggested I write a proper RESTful interface. Without further ado I present to you dbrestadmin https://github.com/vvuksan/dbrestadmin It is my [...]]]></description>
			<content:encoded><![CDATA[<p>I have a need in my development environment to easily create/drop mySQL databases and users. Initially I was gonna implement a simple hacky HTTP GET method but was dissuaded by <a href="https://twitter.com/b6n">Ben Black </a>from doing so. He suggested I write a proper RESTful interface. Without further ado I present to you dbrestadmin</p>
<p><a href="https://github.com/vvuksan/dbrestadmin">https://github.com/vvuksan/dbrestadmin</a></p>
<p>It is my first foray into writing RESTful services so things may be rough around the edges. However it allows you to do following</p>
<ul>
<li>manage multiple database servers</li>
<li>create/drop databases</li>
<li>list databases</li>
<li>create/drop users</li>
<li>list users</li>
<li>give user grants</li>
<li>view grants given to the user</li>
<li>view database privileges on a particular database given to a user</li>
</ul>
<p>For example need to create a database called testdb on dbserver ID=0 use this cURL command</p>
<pre>curl -X POST http://myhost/dbrestadmin/v1/databases/0/dbs/testdb</pre>
<p>Create a user test2 with password test</p>
<pre>curl -X POST "http://localhost:8000/dbrestadmin/v1/databases/0/users/test2@localhost" -d "password=test"</pre>
<p>Give test2 user all privileges on testdb</p>
<pre>curl -X POST "http://localhost:8000/dbrestadmin/databases/0/users/test2@'localhost'/grants" -d "grants=all privileges&amp;database=testdb"</pre>
<p>There is more. You can see all of the methods here</p>
<p><a href="https://github.com/vvuksan/dbrestadmin/blob/master/API.md">https://github.com/vvuksan/dbrestadmin/blob/master/API.md</a></p>
<p>Improvements and constructive criticism welcome</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.vuksan.com/2012/01/02/restful-way-to-manage-your-databases/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Slides from the Boston DevOps meetup</title>
		<link>http://blog.vuksan.com/2010/08/25/slides-from-the-boston-devops-meetu/</link>
		<comments>http://blog.vuksan.com/2010/08/25/slides-from-the-boston-devops-meetu/#comments</comments>
		<pubDate>Thu, 26 Aug 2010 01:38:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Systems Management]]></category>

		<guid isPermaLink="false">http://blog.vuksan.com/?p=355</guid>
		<description><![CDATA[Here are slides from the August 3rd, 2010 Boston DevOps meetup where Jeff Buchbinder and I spoke about deployment and other helpful hints http://www.scribd.com/doc/35757228/Deploying-Yourself-Into-Happiness Slides have been slightly modified based on the feedback we received at the meetup. If you have any questions please post them in comments and I'll attempt to answer them.]]></description>
			<content:encoded><![CDATA[<p>Here are slides from the August 3rd, 2010 Boston DevOps meetup where Jeff Buchbinder and I spoke about deployment and other helpful hints</p>
<p><a href="http://www.scribd.com/doc/35757228/Deploying-Yourself-Into-Happiness">http://www.scribd.com/doc/35757228/Deploying-Yourself-Into-Happiness</a></p>
<p>Slides have been slightly modified based on the feedback we received at the meetup. If you have any questions please post them in comments and I'll attempt to answer them.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.vuksan.com/2010/08/25/slides-from-the-boston-devops-meetu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Deployment rollback</title>
		<link>http://blog.vuksan.com/2010/08/12/deployment-rollback/</link>
		<comments>http://blog.vuksan.com/2010/08/12/deployment-rollback/#comments</comments>
		<pubDate>Thu, 12 Aug 2010 17:55:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Systems Management]]></category>

		<guid isPermaLink="false">http://blog.vuksan.com/?p=328</guid>
		<description><![CDATA[This is a question that often comes up in deployment discussion. How do you rollback in case of a "bad" deploy ? Bad deploy can be any of the following Site completely broken Significant performance degradation Key feature(s) broken There are obviously a number of ways to deal with this issue. You could put up [...]]]></description>
			<content:encoded><![CDATA[<p>This is a question that often comes up in deployment discussion. How do you rollback in case of a "bad" deploy ? Bad deploy can be any of the following</p>
<ul>
<li>Site completely broken</li>
<li>Significant performance degradation</li>
<li>Key feature(s) broken</li>
</ul>
<p>There are obviously a number of ways to deal with this issue. You could put up a notice on the site that x and y feature is broken while you work to fix it. Same with performance degradation. Let's however deal with rollback ie. you decided (determined by a number of different factors) that the stuff you just deployed is broken and you should roll back to a previous last know version. In such a case you would</p>
<ul>
<li>Undo any configuration changes you may have applied (often none)</li>
<li>Deploy last known good version that worked. This is one of the reasons why I prefer using labelled binary packages. I simply instruct the deployment tool to install version 1.5.2 which was last good version and off we go.</li>
</ul>
<p>The only caveat are database changes. In general you can't easily undo DB changes especially in the situations where you discover a deployment problem couple hours after deployment has taken place since by then users may have added new posts, changed their profiles etc. It would be a major effort to undo all DB changes, evaluate newly added data and whether it needs to be changed. That said DB changes are usually not a problem if you follow these easy steps</p>
<ol>
<li>Don't do any column drops immediately after the release. You can do those in QA but in production those can wait. In most cases they only take up space. I have heard of places that would first zero out then drop "unused" columns once a quarter or so.</li>
<li>Related to 1. never ever use SELECT * since if you drop or add a column your code may break during roll back</li>
<li>If there are data changes you have to do ie. update carrier set name="AT&amp;T" where name="Cingular", have the reverse SQL statement ready as the insurance policy. Those are quite easy to implement.</li>
<li>You don't have to worry about added tables since older version will not use them.</li>
<li>You don't have to worry about added columns provided you don't do 2. and have not placed constraints ie. NOT NULL. In that case you may need to adjust those or drop them during rollback.</li>
</ol>
<p>The wildcard in all this is added or removed constraints ie. new foreign keys. There is no single solution for this one. Perhaps the right policy is to discuss constraints prior to deployment and have a plan ready on what to do. Good luck.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.vuksan.com/2010/08/12/deployment-rollback/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Next Boston DevOps meetup</title>
		<link>http://blog.vuksan.com/2010/07/21/next-boston-devops-meetup/</link>
		<comments>http://blog.vuksan.com/2010/07/21/next-boston-devops-meetup/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 23:35:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[DevOps]]></category>

		<guid isPermaLink="false">http://blog.vuksan.com/?p=293</guid>
		<description><![CDATA[Next Boston DevOps meetup we'll try something new, Jeff Buchbinder of FreeMed Software fame and myself will talk about "Deploying your way into happiness". If you want flavor of the kinds of things we'll talk about you can check out my Devops homebrew post. We will go into much more detail with actual code snippets and [...]]]></description>
			<content:encoded><![CDATA[<p>Next Boston DevOps meetup we'll try something new, Jeff Buchbinder of <a href="http://freemedsoftware.org/">FreeMed Software</a> fame and myself will talk about "Deploying your way into happiness". If you want flavor of the kinds of things we'll talk about you can check out my <a href="http://blog.vuksan.com/2010/04/09/devops-homebrew/">Devops homebrew</a> post. We will go into much more detail with actual code snippets and some of the omitted nitty gritty details. We will also open the floor for questions.</p>
<p>Date for the meetup is August 3rd, 2010 from 6-8 pm and we'll be meeting at Microsoft's New England R&amp;D center. I expect we'll start presenting around 6:45 or so.</p>
<p>Please register at</p>
<p><a href="http://www.eventbrite.com/event/770217742">http://www.eventbrite.com/event/770217742</a></p>
<p>since we need to provide building security at NERD with the list of people attending.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.vuksan.com/2010/07/21/next-boston-devops-meetup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

