Gearing up for DevOps
RHEL
Member Posts: 195 ■■■□□□□□□□
Morning all.
Reflecting on my now 8 year career as a UNIX engineer, I am quite sure I will be ready for a change soon. I'd like to drop the on-call, but I don't see that happening too easily. If anything, I just want to switch things up... Oh, and make more money.
I'm not a programmer, but do have a solid understanding of the fundamentals. I'm quite good at shell scripting, and very good at automating things. In fact, I've made it a general rule as a lazy/efficient sysadmin that I automate any task that has to be done more than three times. That being said, I think I'd like to give DevOps a try.
I feel like now is a great time to utilize all of the training resource my company is throwing at us for Red Hat, but need some direction for where to start. I want to utilize the Red Hat Learning Subscription my company has purchased for me, if possible (allows unlimited access to any Red Hat course).
I've already taken the sysadmin courses, am ready to sit for the RHCE exam and am proficient using Satellite and Red Hat Enterprise Virtualization platforms; however, which other classes/subjects do I need to focus on for jumping into DevOps in the next year or two?
There's ~8 separate courses on OpenStack, so I figure the administration courses would be a good place to start. There's also several courses on OpenShift.
There's also a course on Puppet as well as Ansible. Which would be better to focus on?
Finally, I'm going to make an effort to develop some solid Python skills. Anything else? Am I on the right track for this?
Reflecting on my now 8 year career as a UNIX engineer, I am quite sure I will be ready for a change soon. I'd like to drop the on-call, but I don't see that happening too easily. If anything, I just want to switch things up... Oh, and make more money.
I'm not a programmer, but do have a solid understanding of the fundamentals. I'm quite good at shell scripting, and very good at automating things. In fact, I've made it a general rule as a lazy/efficient sysadmin that I automate any task that has to be done more than three times. That being said, I think I'd like to give DevOps a try.
I feel like now is a great time to utilize all of the training resource my company is throwing at us for Red Hat, but need some direction for where to start. I want to utilize the Red Hat Learning Subscription my company has purchased for me, if possible (allows unlimited access to any Red Hat course).
I've already taken the sysadmin courses, am ready to sit for the RHCE exam and am proficient using Satellite and Red Hat Enterprise Virtualization platforms; however, which other classes/subjects do I need to focus on for jumping into DevOps in the next year or two?
There's ~8 separate courses on OpenStack, so I figure the administration courses would be a good place to start. There's also several courses on OpenShift.
There's also a course on Puppet as well as Ansible. Which would be better to focus on?
Finally, I'm going to make an effort to develop some solid Python skills. Anything else? Am I on the right track for this?
Comments
-
RHEL Member Posts: 195 ■■■□□□□□□□Here is the list of full Red Hat courses the learning subscription provides access to. Python will have to be learned externally:
Already Taken:
RH124: Red Hat System Administration I
RH134: Red Hat System Administration II
RH199: RHCSA Rapid Track
RH254: Red Hat System Administration III
RH299: RHCE Certification Lab
RH318: Red Hat Enterprise Virtualization
RH403: Red Hat Satellite 6 Administration
Available:
CL110: Red Hat OpenStack Administration I
CL210: Red Hat OpenStack Administration II
CL220: Red Hat CloudForms Hybrid Cloud Management
CL275: OpenShift Enterprise Development
CL306: Neutron Networking with Red Hat Enterprise Linux OpenStack Platform
CL310: Red Hat OpenStack Administration III
CL314: Apache Qpid Messaging with Red Hat Enterprise Linux OpenStack Platform
CL315: RabbitMQ Messaging with Red Hat Enterprise Linux OpenStack Platform
DO276: Containerizing Software Applications
DO280: OpenShift Enterprise Administration
DO290: OpenShift Enterprise Development
DO405: Configuration Management with Puppet
DO407: Automation with Ansible
JB225: JBoss Enterprise Application Development I
JB232: Monitoring with JBoss ON
JB234: Systems Management with JBoss ON
JB248: Red Hat JBoss Application Administration I
JB325: Red Hat JBoss Enterprise Application Development II
JB348: Red Hat JBoss Application Administration II
JB417: SwitchYard Development with Red Hat JBoss Fuse Service Works
JB421: Camel Development with Red Hat JBoss Fuse
JB427: Developing Workflow Applications with Red Hat JBoss BPM Suite
JB435: Enterprise Service Bus Deployment with Red Hat JBoss Fuse
JB437: Red Hat JBoss A-MQ Development and Deployment
JB439: Red Hat JBoss Fuse with Red Hat JBoss A-MQ and Camel
JB450: Red Hat JBoss Data Virtualization Development
JB453: Red Hat JBoss Data Grid Development
JB461: Authoring Rules for Red Hat JBoss BRMS
JB463: Developing Rules Applications with Red Hat JBoss BRMS
JB465: Implementing Red Hat JBoss BRMS
JB501: Building Advanced Red Hat Enterprise Applications
RH236: Red Hat Gluster Storage Administration
RH270: Managing Containers with Red Hat Enterprise Linux Atomic Host
RH342: Red Hat Enterprise Linux Diagnostics and Troubleshooting
RH413: Red Hat Server Hardening
RH436: Red Hat High Availability Clustering
RH442: Red Hat Enterprise Performance Tuning -
Verities Member Posts: 1,162I prefer Ansible over Puppet and I recommend the same to you since Ansible is written in Python, you intend to learn Python, and its agent less (think performance). I can spin up an Ansible master node and be pushing out changes to all my systems within a matter of minutes (no joke!). I used Ansible Tower briefly and really didn't like it, so I do everything via the command line. However, if you have Satellite 6 in your environment, it might be worth it to pursuing Puppet instead. They are both great choices and having either one or both under your belt is going to benefit you. You could even try using Ansible for your day to day sys admin tasks across all your systems and use Puppet specifically for ensuring positive control of your server side configurations.
Maybe do an intro to OpenStack (IAAS) and skip the rest then move to OpenShift (SAAS), since that's more DevOps related (Kubernetes + Docker). The next part is up to you since you're already proficient in BASH, you have all the fundamentals of programming, now you just need to pick another language...Red Hat has a lot of Java based development courses (JBOSS) so that's another option to pursue over Python. Also, Jenkins is a huge asset in your skill set, but it is definitely intimidating to learn (at least to me) since its so powerful.
Here's a pretty generic job posting that you can use as a framework for a DevOps role that I copied from Indeed:
The position involves the following day to day responsibilities:
- Structure and maintain the software configuration management system
- Automate and maintain the software build process
- Automate software deployment and monitoring
- Automate software testing at multiple levels (component, configuration item, subsystem, system) and monitor results
- Monitor site stability and performance and troubleshoot site issues
- Scale infrastructure to meet rapidly increasing demand
- Collaborate with developers to bring new features and services into production
- Provide support to development teams that use the automated infrastructure
- Develop and improve operational practices and procedures
Qualifications:
- Experience in 24x7 production operations, preferably supporting a highly available environment for a SaaS or cloud service provider.
- Knowledge of cloud infrastructure environments (e.g. AWS, Azure)
- Container based architecture and deployments (Docker, Ansible, etc.)
- Release automation (e.g. Jenkins), system administration, system configuration, and system debugging experience.
- Experience using scripting languages (Ruby, Python, etc), configuration management tools (Git, ClearCase, Chef, Puppet, etc) and command execution frameworks.
- Knowledge of automated code review and testing tools (e.g. Smartbear, Cucumber)
- Knowledge of workflow tools (e.g. Atlassian)
-
DoubleNNs Member Posts: 2,015 ■■■■■□□□□□You should try to learn both Puppet and Ansible, tho feel free to focus on the one that you enjoy more. Personally, I like using Salt[Stack] as my configuration management solution.
Python is a great skill to pick up, or Golang. If you're already good at shell scripting and have programming fundamentals down, you should be able to quickly get into one of those 2 languages.
Docker, AWS (/Azure/GCP), monitoring, and Git are also great supplemental skills to learn.
Red Hat also has an RHCA DevOps certification, but I have no idea what the objectives are.Goals for 2018:
Certs: RHCSA, LFCS: Ubuntu, CNCF CKA, CNCF CKAD | AWS Certified DevOps Engineer, AWS Solutions Architect Pro, AWS Certified Security Specialist, GCP Professional Cloud Architect
Learn: Terraform, Kubernetes, Prometheus & Golang | Improve: Docker, Python Programming
To-do | In Progress | Completed -
DoubleNNs Member Posts: 2,015 ■■■■■□□□□□The Server Hardening, RabbitMQ, and High Availability courses look good from that list you posted.Goals for 2018:
Certs: RHCSA, LFCS: Ubuntu, CNCF CKA, CNCF CKAD | AWS Certified DevOps Engineer, AWS Solutions Architect Pro, AWS Certified Security Specialist, GCP Professional Cloud Architect
Learn: Terraform, Kubernetes, Prometheus & Golang | Improve: Docker, Python Programming
To-do | In Progress | Completed -
UnixGuy Mod Posts: 4,570 ModFinish RHCE first.
Puppet vs Ansible ===> Pick the one you use at work. Puppet seems more popular tho.
I would gear up on AWS as well. -
RHEL Member Posts: 195 ■■■□□□□□□□Excellent advice, all. Thank you very much!
I do plan on getting my RHCE very soon. My work will pay for it, the only problem is that I have to travel 4 hours each way by car and stay overnight to take the exam! It's just hard to schedule time for that. I took the RHCSA a few weeks ago and it went well.
I think I will have more work support for learning Ansible over Puppet, at least for now. The reason being that Red Hat now owns Ansible and plans to integrate it into Satellite at some point in 6.3. I've also built and am testing out Ansible Tower in our lab environment. At the moment, we have BigFix (crap product, mainly to automate AIX patching), and utilize a mixture of NIM initiated scripts and ssh loops to automate tasks. Environment is about 500 UNIX servers.
OpenStack and OpenShift definitely seem like good options. I would like to learn some AWS/Azure, though we don't currently utilize public cloud solutions.
Seems like I have a good foundation for DevOps, but still a lot to learn. I'd be looking to get my foot in the door and also learn a lot as I go, probably within the next year or two. I'd also be looking to relocate, so hopefully that will help me with potential opportunities! -
sp00nfeeder Registered Users Posts: 3 ■□□□□□□□□□I'm not a programmer, but do have a solid understanding of the fundamentals
What criteria do you use to decide if you're going to label/categorize yourself as a "programmer"? What if you already are one? -
sp00nfeeder Registered Users Posts: 3 ■□□□□□□□□□Oops I hit enter too quick. Just joined today, so to continue:
Maybe you haven't held a paid full time programming job or you haven't ever had the job title. But IMHO if you script you program. You say you have a solid understanding of the fundamentals. Now you can show it - make your own github. As you go through everything else you're learning, make code ("scripts", "programs", etc) that mirror in some way the topics you learn. Build your portfolio at the same time as you learn.
Might be stuff you already heard but I figure I'll try to make a meaningful 1st post.