Video : Ansible Playbooks : Roles

In today’s video we demonstrate how to use role with Ansible Playbooks.

The video is based on the following article.

You might find some useful stuff here.

The star of today’s video is Anton Els, who I first met when he worked for DBvisit.

Cheers

Tim…

Video : Ansible Playbooks : Tags


In today’s video we demonstrate how to use handlers in Ansible Playbooks.

The video is based on the following article.

You might find some useful stuff here.

The star of today’s video is Tanel Poder, who thinks he’s at the bow of a Viking ship by the look of it. 🙂

Cheers

Tim…

Technology Evolution : What does “the best” even mean?

I was watching a Twitter thread develop, where people were discussing which of two pieces of technology were “the best”, and I found myself thinking of evolution and selection pressure. I’m going to speak in simple terms, so I apologise in advance to folks with an education in this stuff, who are irritated by my simplifications…

Selection Pressure

Organisms evolve because of selection pressure. There is something about their environment that makes certain changes advantageous. Take the case of the peppered moth. To cut a long story short, it was a pale moth. Being pale was good camouflage as the places it hung around were a similar colour, so predators found it hard to spot them. Any mutations that made a peppered moth darker, made it more likely to be spotted and eaten, so mutations that caused the darker moths were unlikely to get through to the next generation. If you get eaten, you are less likely to breed. So there was a selection pressure in favour of being a pale peppered moth. Then along came the industrial revolution, which covered trees and walls in soot. All of a sudden, being pale made it easy for predators to see you and reduced your chances of breeding. Any moths with a mutation causing a darker colour were at an advantage, were more likely to breed, and quickly the predominant colour of peppered moths in industrial regions changed. The selection pressure was now for darker peppered moths.

In contrast, alligators have remained relatively unchanged since before the extinction of the dinosaurs. Sizes vary, but they look pretty much the same. Why? They are already the perfect design for their lifestyle, so there is no selection pressure forcing a change. If some new mutation happens, but it doesn’t give an advantage that affects the alligators chances of breeding, it’s unlikely to spread through the population. The selection pressure is low for the new mutation.

So what’s this got to do with technology? I’m hoping that’s simple for you to see.

If you invent a really smart bit of technology, but it has no major advantages over the existing technology out there, it’s unlikely to obliterate its competitors. Even if there is a technical benefit, that benefit has to be sufficiently large to make people stand up and take notice.

When we look at the database market, relational databases are the alligators. They are really well suited for the role they play. Every time a new non-relational engine comes along, it’s easy to get excited and think of it as the RDBMS-killer, but they are typically targeting different problems. The biggest threat to a specific relational database at the moment is other relational databases…

Survival of the Fittest

When people read “survival of the fittest”, they often forget that “fittest” relates to ability to breed and pass on your genes. The male peacock has stupid tail feathers that slow it down and put it at a higher risk of predation, but the peahens are all about the crazy tail feathers, so the physical disadvantage of the crazy tail feathers is a breeding advantage. Effectively the “least fit” for survival becomes the “most fit” for breeding…

But what about the peacock’s tail feathers in technology? There are a number of factors that make a technology attractive apart from technical excellence, so it’s not always “the best” that wins. For example:

  • Brand : I guess this is the obvious one. Apple is a premium brand. People will often spend extra money for a technically worse product because of the attraction of a brand. There is a reason companies spend big money on advertising and promoting their brand.
  • Community Support : If a product has a vibrant community, where it’s easy to get answers and support, it will be more attractive than a product with bad support and a weak community. Why intentionally put yourself at a disadvantage?
  • Staffing : It doesn’t matter how good a product is, if you can’t get staff with those skills, it’s probably not a great idea to base your future on it. This can be a problem for new technologies, but it also goes for old technologies that are falling out of favour. I wouldn’t be starting a new project using COBOL, even if it were well suited to the task.
  • Cost : There is a reason Android phones have a bigger market share than iPhones. They are cheaper, and therefore more attainable. Cost should be judged on total cost of ownership (TCO), not just the headline price tag…

I know this post has rambled a lot, but coming back to my original point, when I hear someone arguing about technical merits of a product, I find myself wondering if that’s actually relevant at all. Maybe it’s only a small fraction of what really matters…

Cheers

Tim…

PS. The first picture is a crocodile, not an alligator. I know they are different, but I liked this picture… 🙂

Video : Ansible Playbooks : Files and Templates

In today’s video we demonstrate how to use handlers in Ansible Playbooks.

The video is based on the following article.

You might find some useful stuff here.

The star of today’s video is Dan Norris, who is looking to the heavens for inspiration. 🙂

Cheers

Tim…

Video : Ansible Playbooks : Lists and Loops

In today’s video we demonstrate how to use lists and loops in Ansible Playbooks.

The video is based on the following article.

You might find some useful stuff here.

The star of today’s video is Øyvind Isene, who took a break during coffee time to let me film this clip.

Cheers

Tim…

Operating Systems for Oracle Databases (Poll Results Discussed)

I put out some questions on Twitter a couple of days ago, asking about the operating systems people were using for their Oracle database servers.

As with all these polls, we have to discuss some caveats. Most of the people that follow me are from the Oracle community, so that puts a heavy bias on the outcome. The questions relate to Oracle databases, which also influences the results. Someone may choose one distribution to run Oracle workloads, and a different distribution to run non-Oracle workloads. We also have to remember the sample size is small. Despite this, I’m going to discuss the results as if this were a representative sample of people, even though I accept it may not be. 🙂

This was the first question I asked.

Which operating system are you using for your Oracle Databases servers?

You’ll notice I totally forgot to include Windows, which was a shame because it would have been nice to see that. My main focus was to see how many people were still holding on to the traditional UNIX systems. There was a really strong showing for Linux over UNIX, which was hardly surprising. Every year the dominance of Linux is increasing. A few years back a lot of big companies were still using the traditional UNIX systems, but I guess a lot of people have got sick of spending that sort of cash, and some have probably switched to buying Exadata kit instead. I cant say I’m surprised by this result.

Something I’ve said repeatedly over the years is you should stick to the operating system that is the most popular, as that is the one that is going to get tested the most. There is no point in purposely making yourself a minority IMHO. Having lived through the death of Oracle on Tru64 and HP-UX, I wouldn’t dream of using anything other than Linux now.

This was the next question.

For Linux users, which Linux distro are you using for your Oracle database servers?

Over 65% of the folks picked Oracle Linux, and about 27% picked RHEL. The fact this is a poll about Oracle database servers no doubt added to the skew in this result. Oracle have done a good job of promoting Oracle Linux, and the fact it is free probably helps a lot. I thought Oracle Linux would be the winner here, but I’m not sure I expected it to be by this much. Personally I wouldn’t run on anything other than Oracle Linux by choice. Remember, this is what Exadata uses, and this is what Oracle Cloud uses.

I suspect some of the people that picked “Other” were speaking about non-production systems. Perhaps I should have made it clear I was thinking about production, not test labs…

This was the final question.

For Enterprise Linux users, which version of Oracle Linux and/or RHEL are you using for your Oracle database servers?

It’s good to see that nobody is owning up to OL5/RHEL5. There are still a few things lingering on OL6/RHEL6, but I guess those are probably running old versions of the database.

OL7/RHEL7 is still the most common version, but I guess a lot of this is down to the long lifespan of database servers. I suspect many of these servers were provisioned some time ago. I’m hoping most new deployments are using OL8/RHEL8.

So nothing really that surprising about the outcome of this batch of questions. Pity I didn’t include Windows in the first question. Maybe next time…

Cheers

Tim…

Video : Ansible Playbooks : Introduction

In today’s video we’ll introduce Ansible Playbooks.

There’s quite a lot to cover, so this is only one of several videos covering playbooks. The video is based on the following article.

You might find some useful stuff here.

The star of today’s video is Bailey, who has been known to associate with Connor McDonald at times…

Cheers

Tim…

Video : Ansible : Installation and Configuration

In today’s video we’ll cover the installation and configuration of Ansible.

The video is based on the following article, and will be the first in a series of videos.

You might find some useful stuff here.

The star of today’s video is Neil Chandler, who took time out of his busy bathroom schedule to record this clip.

Cheers

Tim…

Death of the DBA… Again…

If you’ve followed the blog for a while you will know I’ve revisited this topic several times since I first wrote about it in 2007. Here are some links if you want to go down memory lane.

I think I’ve been pretty consistent with my opinion on this subject, but I still get people misunderstanding the argument, so I’m going to try again, without revisiting the contents of all those previous articles.

What is a DBA?

This means something different in each company and each person I speak to.

In some companies it can mean a basic operations job. Install, patch, check backups and run scripts that other people send to you. All of these tasks are easily automated on-prem, and essentially don’t exist on the cloud. If this is the role you do, and this is all you do, you are going to have a bad time unless you gain some new skills. In other companies it can mean something completely different. My official title is “Lead DBA”. What do I do? Just off the top of my head:

  • DBA work with Oracle, SQL Server, MySQL.
  • Administration of middle tier stuff like WebLogic, Tomcat, NGINX etc.
  • I look after the load balancer configuration for a big chunk of the back-end business systems, including writing iRules in TCL.
  • Support for a few proprietary 3rd party apps.
  • Docker/containers.
  • APEX and ORDS. I’m the worlds worst APEX developer (see here), but I have to look after it, and support the APEX developers.
  • I don’t do much traditional development in this company, but I provide support when people have SQL and PL/SQL questions, because I’ve done that for a minute. 🙂
  • I’m increasingly being drawn into automation using shell scripts, Ansible, Terraform, Liquibase etc.

I’ve already got rid of some of the operational aspects of my job. Over time I’m hoping more will go, but that mostly depends on external constraints holding me back. Even if my involvement with databases stopped completely, I can still remain busy. Am I saying my role is what a DBA should be? No. I think my position is a little more extreme than some. I’m saying DBA is a title that various people and companies use, but it doesn’t really mean anything now. It can be anything from basic operations to “Do Bloody Anything”.

When is it going to happen?

For some companies it already has. Some companies will hang on to the old ways until the bitter end. It won’t happen overnight, but if it is not happening already in your company, what you are likely to see is a gradual drop in operational tasks as they get automated. This allows either the same number of people to cover more systems, or less people to do all the current work.

If you are seeing pieces of your role disappearing, you have to do something else to add value!

But person X disagrees with you!

That’s fine. This is only my opinion and you don’t have to agree, but please check the context of what people are saying. Often the responses to my comments include mentions of performance tuning and diagnosing architectural issues. I have consistently said the “operations DBA” role would go. The job that focuses on the basic grunt work. There will be a continued need for people who can diagnose and solve performance problems, both in the databases and in the application architecture. Moving to the cloud won’t magically cure all performance issues, and some would say they will increase the number of issues. You can still deliver architecturally crap solutions on the cloud. You can still do bad database design and write bad applications. Good people will always find a home, provided they don’t stick rigidly to the past.

You also have to look at the person making the comments. If someone is a performance consultant to the stars, but identifies as a DBA, they are probably going to take these comments personally and hear me saying they are redundant, which I am not. If someone runs a DBA as a service company, they won’t like the sound of this and will go into defensive mode.

I’ve been a regular DBA for most of my working life, and I’ve watched the job evolve. You may have a different experience, and that is fine, but I speak to a lot of people, and I think my opinion on this subject tracks pretty well with what is happening out there.

You are really talking about the cloud aren’t you?

Not. Automation is the thing that is removing the need for the operational DBA and basic system admin roles. Even if your company is in cloud denial, it doesn’t mean they won’t want to take advantage of automation. The cloud makes some things easier from an automation perspective, because the cloud providers have done some of the leg-work for you, but automation existed long before the cloud…

What should I do?

When you know, please let me know so I can do it too. 🙂 Seriously though, keep your mind open to new opportunities, and if you get a chance to try something new, give it a go. Nothing is ever wasted. Some people will gravitate to the data and analytics side of things. Some to development. Some to the architectural end of things. In all cases, there is a lot to learn and the less you know when you start, the harder the journey will be, so get learning whatever you like the look of…

Cheers

Tim…

Update 1: In social media comments, some people have mentioned the term “Data Engineer”. To me a data engineer needs to understand data, and requires and understanding of the development process. I’ve met some operational DBAs that can barely string together a SQL statement. These types of operational DBAs have a lot to learn before they can consider themselves a data engineer. A DBA can become a data engineer, but being a DBA does not mean you are a data engineer.

Update 2: Don’t get distracted by the name DBA. I don’t care about the name of the role. I’m talking about the function the person is performing. If they are performing basic operational tasks, whatever they are called, they need to start getting some new skills.

AZ-900 Microsoft Azure Fundamentals (my thoughts)

I recently had to sit the AZ-900 Microsoft Azure Fundamentals exam for work. Here are some thoughts about it.

Preparation

There are lots of ways to prepare for this exam. Here are the things I used…

  • Microsoft Certified: Azure Fundamentals – Learn : My initial plan was to just work through these notes and sit the exam. After I had completed two of the six modules I was going crazy. I found the material really dull. Even though I switched to using video tutorials, I still came back to this material, and used the knowledge check questions. There are also some things in this material that was not covered elsewhere.
  • AZ-900 | Microsoft Azure Fundamentals Full Course, Free Practice Tests, Website and Study Guides : One of my colleagues suggested this YouTube playlist. It made the process of covering the material a lot easier. The guy who put this together included linked materials, which was handy. I used the free practice questions he provided to check my knowledge. This playlist was my main preparation.
  • Microsoft Azure Fundamentals Certification Course (AZ-900) – Pass the exam in 3 hours! : Someone on Twitter recommended this video. I only watched about 20 minutes of it, but it seemed OK. A number of people said it was good. You might want to give it a go.
  • Microsoft Virtual Training Days : This is a Microsoft provided 4 hour training session, spread over two days. It’s free, and if you attend it you get an exam voucher for free. They claim it is all you need to pass the exam, but I don’t think that is true. I did all my prep using the YouTube playlist mentioned previously, and attended this course as a revision session before sitting the exam. It is pre-recorded material, but there are people available to answer questions during the course. There are 2-3 sessions per month, so it’s easy to register for.

Remember, it’s a fundamentals exam, so it doesn’t go into any great depth, and it doesn’t qualify you for anything, but it visits a wide variety of features available in Azure. Despite the lack of technical content, it takes quite a lot of time to prepare to pass the exam.

The Exam

My company uses Azure, and we are encouraged to take this cert. As mentioned above, if you attend the free Microsoft Virtual Training Days for the “Fundamentals” training, you get an exam voucher that will allow you to sit the exam for free.

The exam is multiple choice. There are traditional multiple choice questions, drag and drop questions, and sentence completion questions. There are between 40 and 60 questions and you need to score at least 700 out of 1000 points to pass. Some questions are simple True/False answers. Some are more complex, with multiple sub-questions, and are worth more points. The number of questions you get asked varies depending on how many of the complex multi-point questions you get asked. I read someone saying they had 30 questions, but the official site says 40-60. I had 37 questions in 45 minutes. 🙂

There are questions that are not covered in any of the training materials I used, but you can hopefully guess at them, knowing what you do know. I believe the Microsoft Learn, Virtual Training Days and exam are due to be updated in April 2022. We were told the exam would track what is in the current training materials. That was not true. There were questions on subjects not in the current Microsoft Learn training materials, or the Virtual Training Days. Sneaky.

I’m sure some people will attend the Virtual Training Days course and pass the exam if they have great memory retention and get lucky with the questions that come up. For most people, I think just attending the training days course would result in a failure in the exam. I would not have passed with just the Virtual Training Days course.

BTW: During the Virtual Training Days course someone asked what happens if you fail the exam. The tutor said you can get another free exam voucher if you attend the training course again. Free is a good deal. 🙂

Thoughts

I had a bit of a rant on Twitter while I was preparing for the exam, because I found the content really dull. I had a look through the equivalent exams for AWS and Oracle Cloud and I think I would have a similar experience with them also. The problem as I see it is cloud providers support a huge number of services, and most of them are of little interest to me. Despite that you have to visit loads of them for the fundamentals/foundations courses. The result is:

  • For things you are interested in, you don’t get any useful information.
  • You have to waste time learning stuff you are not interested in.

But it’s a fundamentals exam stupid! Yeah I know, but it doesn’t stop it being annoying.

In my company I will never get to define identity, governance, networking, pricing etc. At best I will be given a resource group and be told to work in there. As a result I couldn’t help but feel most of this was pointless.

As I said on Twitter,

“The vast majority of the cloud is amazingly boring, drab and shite! The fun thing is building solutions with it, not the boring fuckin’ paper work…”

Me, 2022

So I’m not a fan of these types of cloud certifications. I don’t want to do any more cloud certifications, but that’s just my opinion. I guess as long as they are free, you can decide for yourself. There is no way I would pay for this…

Cheers

Tim…

PS. I passed it.

PPS. I know I’m a grumpy old git, but it wasn’t my choice to do this certification, so that kind-of coloured my whole view of it.

PPPS. I’ve suggested to other people they should attend the Virtual Training Days course, and then decide if they want to revise for the exam. I think the course gives you a good idea of what you can do on Azure. Whether you want to spend the time to prepare for the exam is another matter.