## Use Cases


* Okay, I can already see huge benefits of utilizing these tools. But, I’d love to get your opinion on what the benefits are for Developers/Site-builders/Themers?


    * There are two big benefits as I see them, and another not so apparent. First, a lot of these tasks are repetitive.  And things like copying a database may take a bit of time. Or merging code. Or running tests.  Etc.  Anything that you can automate means time you can spend on other things.  Second, not everyone is as experienced - or maybe they don’t have the permissions - to execute all the tasks.  You don’t want mistakes, you don’t want to give everyone permissions.  So you figure out the best way to do it and then you automate it.    The last reason is not as obvious.   I think a lot of times we hack things together in our development environments to get it working - but then may run into issues later on.  We don’t spend the extra time because its temporary.  By spending a little extra time getting it right, we have created a reusable pattern that we can use on our next project.  By encapsulating our best practices, we not only have a quicker setup, but we have a better one too.


* Perfect. So, save time by automating tasks like copying a database. Prevent mistakes by limiting who has permissions to execute tasks, and automating them so that even those who do have permission can’t introduce user error. And by setting up a process that uses best practices, creating new environments is faster, and better than if I had to try to remember all of the steps myself.


    * Exactly.  And I’ll add, ansible can be used for each of installation, configuration, and orchestration.  The examples we’ve talked about so far are orchestration - moving databases, code, etc.  It can also be used to install Apache, Mysql, Mongodb, etc.  Any set of system commands that are repeatable.  


* Oh... So if you’ve got a server that you have full access to, you could actually wipe and rebuild the entire server AND Drupal site? We’re not limited to just configuring the Drupal site?


    * Exactly.  And throw in Vagrant into the mix and now you can do that on your local machines using Virtual machines.  Immagine spinning up a brand new VM and within a few clicks you have your entire development environment with a fresh drupal install all ready for you on a VM.


* Now, I do wonder who this is more geared toward. Developers, Site-builders or Themers. I understand that each of them can use these, and would probably help them all with their daily tasks, but who do you see benefiting the most from these tools. Or, do you have examples of people in each category that you know of that are using them?


    * I think all three benefit from automation.  For example, in a previous life where I didn’t use Ansible, my themer was insanely good at theming, but when it came to running commands remotely on a server to check out his work, he was a fish out of water. I wish I had written an Ansible playbook so that he could check his code out onto staging.   Or even better, if I had set up Jenkins to run an Ansible playbook to automatically check it out his work each time he committed.  He wouldn’t have had to wait on me, sometimes a few days if I was not around.  That said, he would not have been able create the ansible playbook.  


    * As for who is using Ansible, well, Twitter does - they use it to roll out updates across their hundreds of machines.  And of course BlackMesh, the hosting company I work for, also does.    The product Cascade I mentioned uses ansible and Jenkins to do a lot of the things we talked about today, only we set it up so you don’t have to.