If you're seeing this message, your browser does not support HTML5 audio elements.
Enough introductions, let’s jump right in!
Show Notes
- Jake is a development manager for Project Zombie, an orchestration framework that drives a lot of the automation behind VMware’s vCloud Air service.
- Having automation is important, but scale of one’s learning ability is also important.
- The rise of the software-defined data center has also given rise to a new archetype, the “data center developer,” who leverages automation tools, APIs, scripting languages, etc., to programmatically define and orchestrate resources within a software-defined data center.
- Automation is driven by business needs—to move more quickly, to stay ahead of the competition. The business needs demand that we (IT professionals) are able to deliver software and/or infrastructure more quickly and more consistently.
- Jake finds that learning happens best when centered around a “problem,” a key thing you’re trying to solve. This is especially true for automation and/or learning programming/scripting languages.
- PowerCLI is an outstanding interface to vSphere, and offers a really easy learning curve for folks getting started in automation.
- Running reports–like listing all the VMs in your environment, or something similar—is a useful way to get started with PowerCLI.
- So how does one help build “programmatic thinking” skills?
- CodeAcademy is a good tool you can use to interactively play with various languages, and allows you to build your “programmatic thinking” skills.
- Scratch is another tool, oriented a bit more towards children, that can be used to help build “programmatic thinking” skills. The board game Robot Turtles is another tool (again oriented toward children).
- Using these kid-centric tools offers a secondary purpose as well: it helps encourage your kids to be involved in developing these sorts of skills in a way that also helps promote work-life balance.
- It’s OK to admit you don’t know something, and ask the “dumb question.” You just have to be brave enough to ask the question.
- IFTTT.com is another, easy-to-use way to build programmatic thinking and incorporating automation into your regular workflows.
- Learning automation doesn’t necessarily have to be data center-focused.
- Along the lines of “low-hanging fruit” that listeners can tackle as an easy first project, reports (as mentioned earlier) are a great way to get started.
- Start with simple reports on your VMs.
- Then add more information.
- Next, add some formatting of the output.
- You can then have the report delivered to you via e-mail on a regular basis.
- As you can see, you can start small and build upon your success as you go.
- Digging into other peoples’ code can be helpful in your own learning journey.
- While your early code doesn’t have to be perfect, you do have to balance the accrual of technical debt.
- Don’t have expectations that are too high for your early code projects. Every task you automate is a learning process, and your code will get better over time.
- Set reasonable goals for yourself.
- It can be helpful to break a larger problem down into a number of smaller problems. This goes back to “programmatic thinking” (being able to break a problem down into the steps required to fix a problem).
- DRY = Don’t Repeat Yourself
- Don’t expect to write perfectly DRY code in the beginning—give yourself room to learn and get better over time.
- For Jake, learning the language was the easy part, and those skills tend to apply themselves to other programming languages. The hard part was the associated “tooling” that accompanies a language.
- Practice, practice, practice—it’s the only way to get better. There’s no easy road. It will take effort in order to improve.
- Other tools that might be helpful:
- Online communities (don’t be afraid to ask the “dumb” questions!) are a good resource.
- When it comes to communities, you’ll get out of it what you put into it.
- In-person meetups can also be helpful.
- Keep in mind that automation takes many forms—not just scripting.
- Determine the right tool to use, and then you can find resources to help learn/use that tool.
- What is the best tool to use/learn? “It depends.” Of course! A few resources that Jake likes:
- Puppet is a good tool for managing desired state of a node.
- Maybe combine a tool like Ansible (for orchestrating multiple tasks) and Puppet for managing node state.
- Of course, there’s also PowerCLI, as mentioned earlier.
- If you’re new to “programmatic thinking,” use some of the tools described earlier to help build those skills.
- If you’re familiar with a scripting language, push yourself to learn a new language, new tool, or new framework.