It's that time of the year again. Birds are chirping. Flowers are blooming. And just as bears leave their dens at the end of hibernation, so too are sysadmins from all over the world leaving their cold, dark, cavelike offices to bask in the greatness of PowerShell.
That's right, PowerShell + DevOps Global Summit 2022 is here, and we're all in. To make sure we don't miss any of the exciting knowledge being shared by experts, we've sent two of our very own PowerShell aficionados, Jordan Hammond and Andrew Pla, to attend the conference and recap their findings of each of the day's events. Not content with just sitting on the sidelines, we're also stoked to have Andrew presenting at the conference!
If you weren't able to attend, strap on your thinking caps and read on to see what you missed from day one of the conference.
State of the Shell (Woo! PowerShell!!!)
Speakers: Jason Helmick, Jeffrey Snover, Sidney Smith, Danny Maertens
PowerShell Summit always opens with State of The Shell, which is a great way to see what's new and what's coming up with PowerShell. Interestingly enough, the first thing Jeffrey Snover focused on was not being afraid to screw up. PowerShell is a community-driven platform, and if we are sitting on the sidelines, afraid to contribute because we might mess up, then PowerShell is less because of it.
My experience has always been positive when I try to contribute, even if I make a mistake. The PowerShell community is great and wants you to succeed. If you are willing to contribute, they will help you be successful. Jeffrey then showcased not being afraid by struggling to hold the mic for others on stage during the presentation. You got this, Jeffrey!
Another topic that was discussed was PowerShell turning 15! In its infancy, it was never a guarantee that PowerShell would grow into a heavily utilized platform. Fast forward to today, and PowerShell is thriving as it has been enthusiastically adopted by the community and has now become a core skill set of many jobs. They likened PowerShell to a glue that helps admins bind together technologies, which I thought was a really great comparison. Maybe for PowerShell's 16th birthday, we can get an Autopilot module for fully autonomous driving?
The presentation ended with a showcase of features that have been added over the last few years. Foreach being able to run parallel is a huge time-saver. Just make sure you are testing so that you don’t overburden your environment. PSStyle allows you to add colors to your output, making it easier to read and interact with. Errors can now be used in a concise mode, which cuts out a lot of the noise and can help you track and resolve issues more quickly. Last but definitely not least, PowerShell 7 has been crushing it! The incredible adoption rate means that the value we are used to in Windows is now cross-platform, making PowerShell more versatile than ever and constantly improving.
Putting the Ops in DevOps
Speaker: April Edwards
April opened up with a video to hammer home the impact DevOps can have on an environment. In the video, we see a race car driver from long ago pull into the pit stop. Four people frantically get to work making the changes needed. One guy was hitting a tire with a hammer, and while I'm no mechanic, this seems less than efficient. Overall, the car was back on the track in about a minute. The next clip was a modern race car pulling in. I could not even track what happened if I am being honest. It took longer for the car to park than it took to replace four tires as well as a few other changes. It was orchestrated by well over a dozen people, all doing a small part, and it was amazing to watch.
Just as a modern pit crew has radically increased the efficiency of a pit stop, DevOps can drastically change the effectiveness of your environment.
Nobody enjoys working late nights making repairs or critical system changes. Instead, DevOps is all sides working together, removing the need for manual input and creating the most efficient version of your environment. Implementing it requires everyone to buy in completely, which is not always an easy feat. However, the first time you hear of an outage and instead of driving in to try and fix it, you replace it with infrastructure as code, you will be happy you got there.
April used a fantastic analogy that your workspaces should not be like a pet. Pets require your love and all of your focus. Instead, it should be more like cattle. It serves a purpose, but if a cow has to go, then it can go. No more siloes blocking anyone from making critical changes.
The last piece of the puzzle for this to be successful is source control; nobody wants to have weeks of hard work removed because of a careless button push.
Think abstract, abstracting your PowerShell code
Speaker: Jaap Brasser
Jaap Brasser presented a deep dive into abstracting your PowerShell code. Abstraction is hiding all but the relevant data about an object to reduce complexity and increase efficiency.
The first thing Jaap pointed out is that PowerShell is an abstraction on .NET. When abstracting your code in PowerShell, you are basically writing code for tasks as building blocks that can plug into functions. For example, writing code to change a registry key is pretty simple, but it will need to be copied over or rewritten each time you need that code. If the code is abstracted out, it just needs to be called in and pointed at the correct key to work. This allows the code to be easily plugged into any future module.
Abstraction adds value in four primary ways:
Eliminates copying and pasting old code
Eventually speeds up development
Simplifies code contributions
That is all extremely valuable, though it does come at a cost. Initially, using abstraction is far more complex, requires more documentation, and takes more time. However, it is essentially the first step in achieving laziness. You put in a lot of work upfront, and it pays dividends in the future.
One of the best parts of the presentation was when Jaap highlighted a module that he felt really exemplified great abstraction. It turns out that the person who wrote the module was in the room attending his lecture. It led to an interesting conversation and new insights into what abstraction could bring.
Many Hands Make Light Work
Speaker: Andrew Pla
This was my first ever soft skills talk at Summit. I will be honest; I avoid them because I stick to the tech when I can. However, when Andrew talks, I listen, and he was compelling enough that I will definitely seek out more soft skill talks in the future.
He opened by talking about how the support from the PowerShell community helped him thrive with the platform. He quickly realized he wanted to pass that support on to others. Teaching adds value to both teacher and student, and he found that sharing knowledge and supporting others is really fulfilling.
He shared a few stories about times that he taught others PowerShell and what he learned from his mistakes. His last story shared a magnum opus project where he empowered a coworker to develop an awesome internal tool that positively impacted both the people and the organization.
It became clear that being great teacher requires emotional intelligence. It allows you to know when you are getting through to those that are learning as well as acknowledge when you have gaps in your knowledge. He also recommends the book "Emotional Intelligence 2.0" for anyone looking to grow in this area. Being able to adapt is going to make you a better teacher and help you have a better life, which you deserve.
The last point was that learning needs to be done in a safe environment. When someone is learning, a mistake should not come with massive consequences. If a bad code shuts down production, the user was set up to fail. They would not attack the issue the same way if they could learn by trial and error as they progress. Also, it’s important that you have a culture where it is safe to make mistakes and ask questions.
Speaker: Danny Maertens
I attended this presentation after listening to Danny highlight the potential of OpenSSH. What I did not account for is being green with both Azure and SSH. These things are critical for getting the full value of his talk.
What I was able to take away from this presentation is that with Azure Arc, you can SSH connect to machines with no public IP address and no inbound ports required, allowing you to interact with machines not in your Azure environment.
While this one quickly went over my head, the value of being able to update and fix servers that might fall outside of your cloud environment is obvious.
This presentation is one that I'll definitely revisit when it is published in six months (after I have played around with it in my home lab).
Day one is a wrap. Bring on day two!
That wraps things up for our coverage of day one from the PowerShell + DevOps Global Summit 2022. If you weren't able to attend the conference, we hope you found this content beneficial and that it inspires you to advance your understanding and use of PowerShell.
Check back tomorrow as we continue our coverage and recap the events from day two of the summit. And if you just can't get enough PowerShell in your life, check out the PowerShell Podcast, featuring Jordan Hammond and Andrew Pla, where they talk about all things PowerShell.
Jordan had spent his life wondering why tasks he didn’t like to do had no options to complete themselves. Eventually he had to make that happen on his own. It turned out that he enjoyed making tasks complete themselves, and PDQ thought that is something he should talk about on the internet while drinking most Thursdays on the PDQ webcast.