Friday 1 February 2019

Automation: starting small


Automation in IT is the future, but the future is already here for some organisations.  However, this is not the case for all organisations.  Lots of enterprise level organizations are still working in a traditional way and using traditional enterprise systems (Unix, Oracle, ...).  So, as a simple engineer, how can you guide them to the automation era?

For 17 years now, I have been working on Unix systems and for the last 7 years I'm also using linux systems.  This was always in big organisations like government institutions and banks.  Organisations of this magnitude evolve very slowly.  It takes years before they even decide what would be the next hardware to use to replace this old HPUX system, just to replace it with ... a new HPUX system.  I also worked on Solaris and I remember a company buying 14 extra SUN blades (Solaris) just because there was still room in the budget.  The years to come, we could make all new applications land on these extra blades.

How would you get these enterprise environments to take the giant leap to the cloud?  Well, you hope the CIO has seen this in action and wants to go into this direction, but still, it would take 5 to 10 years to change the minds of the decision makers...  As an engineer you are not able to make a difference at this level ... or most engineers won't.  I will come back to this in another blog post.

Start Small

So, your enterprise company is using Unix systems, Linux systems, Windows systems, traditional network parts (e.g. F5), can you automate this?  Yes you can!!!

Forget about the big picture, that looks too complicated since these systems are not really fancy.  But, why would that stop you?  For this, you start thinking small.  What small tasks do you do on these systems daily:
- create a volume
- extend a volume
- create a user
- stop a database
- stop a cluster group
- ...

the list can go on and on, but don't let that stop you.  Now that you know what your targets are, go ahead and automate them one by one.  On Linux and Unix, make shell scripts or if you are a real programmer (and you will in the future if you are reading this post) start using python, perl, ... On windows, use powershell.  The next time you need one of these tasks, use the script you created.  Stop doing these things manually.  If the script fails, fix it and try again.  After a while, it will be nearly perfect.

Central orchestrator

Next step is to use a centralised orchestrator.  You can use Jenkins (my favorite), but ansible is very popular among system engineers.  Whatever orchestrator you use, make sure you can make small entities (like jobs in jenkins) that can handle your small task.  All they need to do is trigger your scripts with the correct parameters.

Now that you have linked the orchestrator to your script, start using that instead of the script.  Keep going until it is working perfectly.  Never use the script again.

Create flows

Ok, now we have a bunch of tasks all centralised in an orchestrator tool.  This is were the magic happens.  You can link these tasks together and make flows that handle 5 or 50 steps.  Now you can start looking at the big picture.  Make sure you make a flow chart, you will see that you forgot something if you did.  Once that is ready, implement the flow in the orchestrator and you're done.

What we have automated in the past is a complete Site DRP test with HPUX and Linux systems running lots of databases and applications.  One push of a button!  Impressive right ;-).

The same approach can be used for network hardware or even to tooling that is accessible trough Rest APIs.  Every action becomes a different action in your orchestration tool.

Conclusion

So, don't let legacy systems scare you off, give it your best and automate the damn thing ;-).

If you have questions, you can contact me.


No comments:

Post a Comment