I recently completed the AWS Certified Solutions Architect - Associate exam. This blog post details some of my exam prep experience and testing tips.Read More
When using MS Azure to create Infrastructure as a Service based solutions, choosing an appropriate server type is crucial to not only performance, but controlling costs. B Series Servers might be the right option for your workload.Read More
Sometimes you need a good set of icons to help create a design. I recently discovered just such a set and it's been a pleasant surprise in multiple ways. Not only are the images in this download available in Visio format, but SVG, PNG, and PowerPoint formats are also included.Read More
Amazon Web Services offers several services which are region specific. When encountering an error, the first thing you should do is validate that you are operating in the correct region(s). This was an issue I ran into recently when using CloudFormation.Read More
Virtual Reality was pervasive at the Dell Technologies World show. Not only was it prominently featured in the Day 1 and Day 2 keynotes, but several VR experiences could be had in the Village and in the several vendor booths in the Solutions Expo. One of the themes of this year's show was "Make it Real," and VR was shown as something that exists now and not just in the future.Read More
Now that the Dell Technologies World conference has ended, I've had a little time to reflect. This year's Dell Technologies World conference took place April 30 - May 2. It was a large show encompassing keynotes, breakout sessions, Guru sessions, Customer Meetings, Solutions Center, and so much more.Read More
The DevOps movement has been great at increasing inclusion among the various roles in IT, breaking down solos and creating groups capable of deploying code. But one group seems to have been left out of the mix - DBAs. For whatever reason, DBA tools have been slow to build in features synonymous with DevOps such as source control.
The Phoenix Project and DevOps Handbook spend a great deal of time discussing Flow and how a we’ll run organization will look to eliminate blockages at choke points. Often these blockages occur during hand-offs. The best way to avoid hand-offs is to build teams with all members needed to make a deployable package.Read More
Slack, and the new wave of enterprise chat applications like it, show their value through integration with other tools. One of the most popular integrations is with GitHub. The Github app for Slack documents select GitHub actions in a Slack channel. With the actions logged in a Slack channel teams don't have to jump between tools to look for for status updates. Moreover, teams can search through Slack's logs for history related to commits, issues, pulls, etc. for a project.
The instructions for installing the App are located at https://get.slack.help/hc/en-us/articles/232289568-GitHub-for-Slack . I have attempted to walk through those same instructions an log my notes along the way.Read More
Amazon's AWS public cloud is often used by IT pros to test and prototype ideas on their own often replacing a traditional home lab setup. The ability to quickly spin up virtual infrastructure components and then shut them down after testing completes is a great help for exploring new ideas. Costs for AWS are based upon consumption. Customers "pay by the drink." Because the monthly bill is based on what's consumed, it's important to keep track of the costs.
Recently, I was confronted with a higher than usual monthly bill. I wasn't sure how it was possible as I hadn't used the service very much the previous month. Moreover, I always remember to shutdown unused servers.Read More
Git for Windows is a powerful tool for interacting with CI/CD pipelines. There are specific components that should be avoided during the installation when working with Amazon AWS’s CodeCommit service. More Specifically, the Git Credential Manager component should not be installed if you plan to use Git for Windows with Amazon's CodeCommit source code repository.
I ran into access denied errors a while back with Git and CodeCommit. I'd read the advice on Amazon's troubleshooting website (https://docs.aws.amazon.com/codecommit/latest/userguide/troubleshooting-ch.html) but to be honest, it didn't click with me. It wasn't until I had the errors and re-read the instructions, that it started to set in that I needed to reinstall Git and change the option.Read More
I usually access github from within Visual Studio Code. As such, when I start coding a new project, I often need a reminder, or a cheat sheet for how to connect Visual Studio Code to a Git repository. These notes are more for me than for anyone else, but I'm sharing them nonetheless.
- Create a directory on the local file system.
- Create a repo on Github.
- Select Clone "Clone or download" on Github, copy the link
- In Visual Studio Code, sect File -> Add Folder to Workspace -> Select the newly created directory
- Select Terminal Window
- In the window, type:
git config --global user.name <github userID> git clone <URL from github link copied earlier>
That should be all that's required. any newly created file should be available on github after stage/commit/push.
Slack is a collaboration tool that's well known among the DevOps and developer communities. It has been widely embraced due to the extensible nature of the app. In fact, it's safe to say that Slack is more of a platform than just a chat tool. Slack supports "bots" which are apps that can do all sorts of things, from answering simple questions, to deploying software.
Slack is used primarily by private organizations, however, government agencies have begun to test the waters. Slack is actively pursuing wider use by government customers. They recently posted a position on popular job board LinkedIn for a "Manager, Government Strategy" to work in Washington, DC. Specifically, the role is to "manage relationships with government accounts and help develop our government program at Slack " The posting can be read at this link (https://www.linkedin.com/jobs/view/manager-government-strategy-at-slack-577290692/). If Slack has their way, more government agencies will adopt it.Read More
Microsoft has touted several new features of Windows Server 2019. The last few days have seen multiple release announcements describing features Microsoft wishes to highlight. Containers continue to be one of the features in the spotlight. In fact, container support is hyped by both Microsoft and Docker as part of their partnership.
The first few signs of this were in Windows Server 2106. We also saw a very nice integration in newer builds of the Windows 10 desktop OS. Because of this, I was super excited to see how the integration would work in Windows 2019.
I was surprised to see the installation process documented for newer versions of Windows Server 2016 seemed to be the same process for Server 2019 build 17623 due to the hype of Docker and Kubernetees support in the platform.
Based on a Microsoft quick-start guide, I was able to create a PowerShell Script to install Docker. The code has since been uploaded to my github page here (https://github.com/nathaniel-avery/WS2019_Container_Enable_v1PS).
The process is fairly simple. It consists of downloading the DockerMsftProvider from the PowerShell Gallery. The module has a prerequisite called NuGet, so that gets installed too. Finally, Docker is installed. A reboot is required once everything finishes. The video below demonstrates execution of the script on Windows Server 2019.
*** Note *** These steps enable Windows Containers only. Additional steps are required to run Linux containers. My initial reading and experimentation shows it's not as easy to use Linux containers on Server as it is on Windows 10. I'm considering exploring that topic in a future blog post. Moreover, it will not automatically run Windows containers where the versions do not match.
Double check that the Docker service starts after the first boot, otherwise you may receive an error.
At the time of this article, the version installed was 17.06.2-ee-7
C:\Users\Administrator>docker version Client: Version: 17.06.2-ee-7 API version: 1.30 Go version: go1.8.7 Git commit: 925df35 Built: Fri Mar 16 22:29:37 2018 OS/Arch: windows/amd64 Server: Engine: Version: 17.06.2-ee-7 API version: 1.30 (minimum version 1.24) Go version: go1.8.7 Git commit: 925df35 Built: Fri Mar 16 22:39:05 2018 OS/Arch: windows/amd64 Experimental: false
I'll admit that I was surprised that he install wasn't easier. I'm also surprised by the fact that Windows version compatibility and Linux weren't addressed. Why are these features not already in the box? It seems odd to have to download docker after all the fuss made about it. What I expected was to find a "container host" role similar to the one offered for Hyper-V. It seems that either a feature or role could have sub-components for selecting different support options and kubernetees. This is still an early build. It's entirely possible that the installation of docker will be better integrated. I'll continue to look out for updates from Microsoft and Docker on the situation.
Windows Containers on Windows Server. (n.d.). Retrieved March 28, 2018, from https://docs.microsoft.com/en-us/virtualization/windowscontainers/quick-start/quick-start-windows-server
Introducing Windows Server 2019 – now available in preview. (n.d.). Retrieved March 28, 2018, from https://cloudblogs.microsoft.com/windowsserver/2018/03/20/introducing-windows-server-2019-now-available-in-preview/
Using Windows Server Containers in Kubernetes. (n.d.). Retrieved March 28, 2018, from https://kubernetes.io/docs/getting-started-guides/windows/
Frank, B. H. (2018, March 20). Windows Server 2019 will feature Linux and Kubernetes support. Retrieved March 28, 2018, from https://venturebeat.com/2018/03/20/windows-server-2019-will-feature-linux-and-kubernetes-support/
Windows Container Version Compatibility. (n.d.). Retrieved March 28, 2018, from https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/version-compatibility
In this post, I walk through setup and install of the new Windows Server 2019 Preview build 17623. The install will take place on a Windows 10 laptop running Hyper-V.
The files can be downloaded directly from Microsoft. To download the files, register to be a part of the Insider Preview Program. Registration and Download information can be found here (https://www.microsoft.com/en-us/software-download/windowsinsiderpreviewserver).
The specific version I will install is the LTSC Preview - Build 17623. The download arrives in the form of an ISO.Read More
The recent news of a new Windows Server 2019 build sent me to the Microsoft Insider Preview Download site. As it was a Microsoft app I wanted to download, I decided to use MS Edge. I normally don't use the Edge browser, but I thought it would be best for accessing MS resources. As I attempted to start the download, I hit a wall. Error 715-123130 appeared whenever I tried to download any of the product links. No matter how many times I tried or how many different tabs I used, the same error appeared.Read More
Microsoft has recently released several cross-platform tools for managing code and databases. It's possible that these tools either would not have been developed previously, or would have been made available exclusively for Windows. But as they say, the times are changing. Microsoft's CEO Satya Nadella has promised a new Microsoft, and here it is.
Visual Studio Code is a tool which represents this "new" Microsoft. It's open source, it's free, and it can be used on Windows, MacOS, and Linux OSes. Moreover, there is extensive context sensitive support of multiple programming languages - even non-MS languages. VS Code is a very modern editor offering built-in support of get, modular extensions, and it also offers "IntelliSense," a feature that "provides smart completions based on variable types, function definitions, and imported modules."
Installation of VS code on Windows is pretty straight forward, so I decided to try the process on a recent distribution of CentOS 7. Specifically, I used the CentOS OS below.
The installation Instructions for Fedora and RHEL variants can be found here: https://code.visualstudio.com/docs/setup/linux#_rhel-fedora-and-centos-based-distributions
Step 1. Install the correct keys for the MS repo
Step 2. Install VS Code. Answer "y" if there are needed dependencies.
That's it! VS Code is ready to execute. It is not recommended to run VS Code with elevated permissions, so sudo is not needed. Once running, you may discover that you need to also install Git if it isn't already installed.
While attempting to install the latest build of CentOS on my Windows 10 laptop running Hyper-V, I hit a wall. An error was displayed telling me the hash and certificate weren't allowed.
Background: I chose to use the "Generation 2" version of they Hyper-V vm with the UEFI.
The workaroud is to disable the "Secure Boot" option in the settings screen.
Alternatively, the "Secure Boot" selection can be changed to "Microsoft UEFI Certificate Authority." This selection should work for the majority of Linux distributions according to Microsoft. In my case, it worked with the CentOS-7-x86_64-DVD-1708.iso ISO file.
I tried both options, and they both worked. I was able to install the OS as expected. The system continued to boot as normal.
So what is "Secure Boot" anyways? Microsoft describes Secure Boot as a mechanism to ensure only trusted (non tampered with) components are used. In this case, it's validating that a trusted OS is booting. The trusts appear to be maintained by certificates managed by Microsoft. Only certain OSes are registered.
More information can be found here:
Generation 2 virtual machine security settings for Hyper-V
There's a really good multi-part series of articles by John Howard. Part 6 focuses on Secure Boot. https://blogs.technet.microsoft.com/jhoward/2013/11/01/hyper-v-generation-2-virtual-machines-part-6/
I recently had an experience which underscored for me the power of AWS CloudFormation. My test lab is almost exclusively run in the cloud now. So when I need to demo things before discussing them with a customer, I build environments in AWS. One such environment was for SQL Server 2016. The original idea was to use Windows Server 2012 as the OS with SQL Server 2016 as the database platform. The customer recently decided that we should look at Windows Server 2016 as the OS instead.
I was able to adjust to the customer's request by altering two lines of code - one per EC2 instance. That's it! Just two lines of code, and I could redeploy the whole setup. The only lines that needed to be updated were the ones referencing the ImageId property. Previously, I would have built these servers in VMware workstation or Hyper-V and it would have taken a few hours. Now, it's just minutes.Read More