Why no GUI installations anymore?

I had the following comment on a RAC article yesterday.

“this way of training is not good. please train as previous method.”

I believe the person in question didn’t like that I no longer do those massive articles showing how to install RAC using the GUI. Instead I do automatic silent builds using Vagrant and shell scripts. My recent RAC articles just describe the Vagrant builds. I’ve written about this before, but I think it’s worth repeating.

GUI is dead to me!

For a long time I was only running the GUI installations to get screen shots for articles. All the installations I did at work were scripted. This started to feel wrong, as it felt like I was promoting something I don’t do, and don’t believe in. As a result, I stopped putting the GUI stuff in most of my articles also. Instead including the silent installation and configuration commands, and typically giving a link to my Vagrant builds.

GUI takes a long time!

I run lots of builds. Every weekend I am running Vagrant and Docker builds almost constantly on OL7, Windows 10 and macOS hosts. RAC builds of various versions. Data Guard builds of various versions. Single instance builds of various versions. Docker builds of Oracle and non-Oracle stuff. If I had to do those builds manually using the GUI I would be lucky to complete a couple a day.

Doing archaic style builds and gathering screen shots of them takes a long time, and that’s wasted time.

What about people learning the tech?

If you are trying to learn something new, you should start straight away using the silent builds. Try to ignore the GUI stuff even exists. Why?

  • Doing something like a RAC build using the GUI is really hard. There are loads of things to click on, and it’s really easy to make mistakes along the way. Typos and picking the wrong options etc. It’s far easier if the only thing you are having to change is the parameters in a property file.
  • If you do make a mistake in a manual build and have to start again, it’s soul destroying. Throwing away a days work and having to start again makes you want to cry, especially if you don’t get much time to do this anyway. I have people contacting me, spending weeks trying to fix things that are beyond repair. When they finally bite the bullet and start again their mystery problem goes away. In contrast, restarting an automatic build is no big deal. Throw it away, start a new build and go and grab some food. No drama.
  • The scripted builds make the individual steps incredibly clear. You can look at the individual scripts in order and see what is happening, and just run the builds and prove they actually work, rather than having to trust things haven’t changed since the article was written.
  • No professional DBA should be using a GUI for anything, if there is a possibility to script that action. If you have DBAs or consultants working that still use GUIs, you should be questioning if they are really the people you want with hands on your systems. Their work will be inaccurate, and they are wasting your money by wasting your time. In some cases taking days to complete what can be done in minutes. If that is the way we expect people to work, why teach them a different way of working as a beginner? It feels wrong to me. You are getting them into bad habits from day one.
  • You are going to have to learn the scripted way to build things at some point, so why not start there. I think we’ve been fooled into thinking the GUI is easier, but it’s really not. It is a burden, not a help for most things.

If you want to still use the GUI, that is your choice. Just don’t expect me to enable your bad choices, and please don’t try and get a job working with me. You are not welcome. Sorry, but not sorry.

What about people who are not focusing on DBA work?

Then the GUI is an even bigger disaster. If you are a developer who just needs a database to work with, use an automatic build to give you what you need and start doing the stuff you care about. Why would you waste time learning to install a database? Fire up an autonomous database for free. Use a vagrant build or a docker image to give you what you need.

I really don’t see a reasonable defence for using a GUI for basic, repeatable administrative tasks anymore.

Conclusion

This is how I feel about it. If other people feel differently and want to still keep producing those GUI build articles, that’s their choice, but I would urge them to consider the message they are sending to beginners. In this day and age, the last thing we need is a bunch of people making DBAs look like dinosaurs, and wasting time on stupid stuff when they could be spending that time preparing for the future!

Cheers

Tim…

Update: Based on my reply to a comment here and on Twitter.

  • Companies demand self-service calls to do everything. They don’t want to ask a DBA to do anything. The DBA must help provide these self-service features, which will require scripting.
  • Developers need Continuous Integration and Continuous Deployment (CI/CD). That is all scripted, including creation of short lived databases for some Test/QA systems.
  • Companies demand infrastructure as code. All config and builds in source control (like Git). You can’t put button presses in Git.
  • Companies are not paying you to waste time. If we did a race, with me doing a Vagrant build of RAC and you doing it manually, I would finish several hours before you. That’s wasted time and money. I’m not sure how your company thinks about this time usage.
  • I guess it’s harder to invest the time if you only ever do something once, but the counter argument is you should be confident to replace everything if something breaks. I am never confident without a script.

If you are using a GUI to do something that can be scripted, you are failing. You may not have realised it yet though. I’m sorry if that sounds harsh, but it’s what I believe.

Author: Tim...

DBA, Developer, Author, Trainer.

10 thoughts on “Why no GUI installations anymore?”

  1. But Tim, we live in an age of point and click. Doing things at a command line or filling in a parameter file is difficult stuff.

  2. Philip: Not true. We live in an age of automation, which means scripting.

    – Companies demand self-service calls to do everything. They don’t want to ask a DBA to do anything. The DBA must help provide these self-service features, which will require scripting.
    – Developers need Continuous Integration and Continuous Deployment (CI/CD). That is all scripted, including creation of databases for some Test/QA systems.
    – Companies demand infrastructure as code. All config and builds in source control (like Git). You can’t put button presses in Git.
    – Companies are not paying you to waste time. If we did a race, with me doing a Vagrant build of RAC and you doing it manually, I would finish several hours before you. That’s wasted time and money. I’m not sure how your company thinks about this time usage.

    If you are using a GUI to do something that can be scripted, you are failing. You may not have realised it yet though. I’m sorry if that sounds harsh, but it’s what I believe.

    Cheers

    Tim…

  3. I am very interested to know, please share, what kind of business/user requirement that needs builds every weekend

  4. Hi.

    The majority of this builds I do at the weekend are for me. Just stuff I do at home to test builds and setup environments to test things.

    I have one project where there is a weekly maintenance window where we throw away all kit (web servers, app servers and database servers) for all environments including prod and replace the lot. It’s all done with containers and takes about 15 minutes. 🙂

    Cheers

    Tim…

  5. Wow, that’s impressive. To follow your’s, Connor’s, and other techies footsteps (in technology), where do you get the hardware (you use laptop, cloud, or …) – so that I can do similar stuff, rather than waiting for an opportunity…

  6. Narendra: A mix really.

    Windows 10 : That’s my laptop, which is my main desktop. 32G RAM, i9 6 core, 1TB M2.
    macOS : My old Mac, which used to be my main desktop. 16G RAM, i7 4 core, 1TB Flash.
    Oracle Linux 7 : Old server. Lots of memory. 2 x 4 core Xeon, Many TB spinning rust disks.

    One good laptop will be fine these days. You can throw away builds you are not using, because you can rebuild them at will. No need to keep backups of hundreds of VMs like I used to. 🙂

    If you are not doing things regularly, the cloud is a really good option, provided you destroy everything when you aren’t using it, so you are no longer paying. Consider using the Autonomous Database stuff on the free tier in Oracle cloud. It’s good!

    https://oracle-base.com/articles/vm/oracle-cloud-free-tier-account-sign-up

    Cheers

    Tim…

  7. It’s about scale/capacity/efficiency.

    If you have ever faced a scaling environment, you get this. If your a DBA in a small static environment, where you maybe upgrade or patch a very small number of databases every Year or two – you might have a harder time seeing the logic.

    Those managing databases in the three, four or higher digits understand – time, ease, repeatability and consistent reliability is EVERYTHING.

    Go Tim!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.