During 2018, I changed jobs from more of a Technical Manager role to a DevOps Engineer working on Amazon Web Services (AWS). I had always wanted to change to a career focusing on the cloud, and I’m so joyful I could fulfill it mid-2018. I learned so much about DevOps in this past 6 months. Below are just some of the things I’ve discovered.
What I Have Discovered
- Although DevOps focuses on “Dev”, there is still a lot of “Ops” tasks. For example, you will still need to participate in on-call rotation to support your applications and infrastructure. You may also have to hand-roll infrastructure instead of writing Cloudformation/Terraform code.
- If you need to do anything more than a couple of times, you should have a script. If you need to do anything more than a week, you should automate. Automation takes time to implement, so only spend this time to automate if you know it’s something that will be happening repeatedly.
- You need to know basic networking and system administration. Understanding how IP CIDRs work and how to troubleshoot Windows and Linux environments will go a long way.
- Knowing one tool is not enough. You need to know how to use these tools together. For example, using Cloudformation/Terraform is great, but we can make it better if our IaC is deployed as part of a CI/CD pipeline and once the instances are provisioned, our configuration/management tool (Chef/Ansible/Puppet) can automatically configure the server.
Goals for 2019
My main goal for 2019 is to become more skillful at DevOps. I realized even though I have learned a lot these past few months, there is still much more to learn.
First I want to get better at Python. Python has been so useful developing scripts and writing lambda code. It is only going to be more and more relevant as FaaS becomes more widely used.
Second, I want to learn Golang. Due to Go’s concurrency support, Go really shines for DevOps stuff such as cloud systems (web servers, caches), microservices, distributed systems.
Last, I want to get good with Kubernetes. After playing around with Kubernetes with Minikube on my local machine, I believe this is the future of cloud computing. With Kubernetes, we can become cloud agnostic as worker nodes can lie anywhere from Google to AWS to local servers. This enables the development of hybrid clouds, and creates a more distributed architecture.
My stretch goal for 2019 is to write one blog article every week. I want to share what tips and tricks I have been using with the cloud and hopefully learn from others as well.
Please comment on what you have learned in 2018, and what you’re planning for in 2019!