GUIs Considered Harmful


Using Ansible has fundamentally changed the way I interact with the applications on my network. Not long ago I would have sought applications that had a GUI. Now I avoid them. This is why I changed my mind about Zentyal. It’s a nice piece of software but I no longer want to manage my systems with a GUI.

GUIs mean manual changes and manual changes are bad. My preferred mode is now total automation. Want to change a file permission? Automate it. Want to add a user? Automate it. My goal is to automate 100% of all systems administration tasks, no matter how trivial.

Though it sounds extreme the benefits of this approach are:

  • A record of all changes.
  • Changes can be easily undone (backed out).
  • The knowledge behind the change now become part of the company knowledge base because now it’s documented.
  • Reduces security threats from unauthorized manual changes.
  • Reduces stability issues from unauthorized manual changes. Instead, automated changes go through the test process.
  • Assists recovery by making it possible to fully recreate the application’s previous state. No odd work-arounds to remember, it’s all written down.

Application Anti-patterns

From this perspective I now view the ability to fully automate the installation, configuration, and management of an application as a part of good design. Hence its absence now becomes an anti-pattern. I’ll call it the “manual configuration anti-pattern”. When you install an application and it stops and asks you for input, that is an example of this anti-pattern.

Commercial software often suffers from this problem. They will provide a nice GUI to configure their software. Their intent is to make it more usable so I can’t blame them. Still, times have changed. I hope they will keep their GUIs but make their apps automation friendly. This is exactly the situation I’m in with Jira. It’s a nice piece of software but it isn’t easy to find the information needed to fully automate it with Ansible. Its documentation is geared towards manual changes via its web GUI.

I think eventually the needs of the automated CM tools will prevail and the developers will take notice. I find it ironic that the old school Unix command-line-plus-text-configuration-file method is now a good fit for 21st century automated systems management.



Categories: DevOps, Software

Tags:

Share Your Ideas

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: