Optimum Developer Productivity – GitHub + Visual Studio Code + Azure
By Isaac Levin & Abel Wang
Let’s face it, as the demands of writing software increase, more pressure is put on devs to be as productive as humanly possible. And with this demand, the landscape for being a developer has never been more challenging.
With increased responsibilities and technology options, developers are asked to not just worry about the code they write, but all other aspects of the application development life cycle.
The plethora of tools at a developer’s disposal has also made developer responsibilities even more challenging. Determining what tools and platforms to develop on and with have caused a “too many options” scenario in lots of cases.
GitHub To The Rescue
As challenging as this landscape is, there are solutions. One thing that’s abundantly clear, GitHub is the place where developers go to learn and collaborate with the community.
GitHub has enabled developers to have the power of the entire Open-Source community at their disposal and the freedom to learn from the work of others to better themselves as a developer. GitHub has unveiled many tools aside from hosting source code to make the ecosystem as comfortable as possible.
One of those tools I am fired up about is “GitHub Actions”. Look, as you all know, I’m a DevOps guy , and I think about DevOps every time I put on my developer hat. I believe that no matter the app, if you are going to send it somewhere that isn’t your local machine, that app deserves to have some continuous integration and continous delivery (CI/CD), simple as that.
The question becomes, if my code is already in GitHub, what is the easiest way to hook CI/CD into my app? The answer is GitHub Actions.
GitHub Actions allow us to easily configure custom workflows, using a bounty of existing community-created workflows to fulfill the needs of our app. It isn’t just starting from scratch as there are workflows to do nearly everything, and your goal is to just build your Action in the way YOU need it. With GitHub Actions, getting your app to the Cloud is super easy.
But What About Developing My App?
Talking about where it goes before I write and compile my app seems non-sensical, but I believe that thinking about these things early will allow us to choose the technology/tools we need to be most productive.
In my opinion, one of the best tools to write the code that powers our software is Visual Studio Code. Visual Studio Code is a cross-platform, multi-language editor that provides extensive extensibility to create the perfect environment to write code.
Whether you are writing express apps in Node.js, multi-thread highly scalable applications in Go, or writing cutting-edge modules on your Raspberry Pi with Python, VS Code gives you the ability to work in the way that benefits you the most.
The best part, VS Code offers deep integrations with GitHub, which allows you to clone/pull/push your repositories as well as manage your work on issues and pull requests, without leaving the editor, HOW COOL IS THAT! Once you have your repo in VS Code, the editor gives you access to an oversupply of Open-Source extensions to do everything from configure your experience, down to your font and background of choice. Nearly anything is possible with VS Code, and with first-class GitHub support, it truly is one of the best options.
What Should Host My App?
With our code being built in VS Code and stored in GitHub and DevOps’d with GitHub Actions, the last thing we need to think about is now what?
Personally, I think Azure is the ultimate Cloud for GitHub. There is no other Cloud that best enables developers to be the most productive, and with integrations to VS Code AND GitHub, you truly have “best of breed” capabilities at your disposal.
Let’s start with VS Code Integrations, and boy there are a ton of them. Existing extensions enable developers to seamlessly connect to their Azure tenants and have full management capability of the resources in their subscriptions, including creation, scaling, configuration, debugging and if we want, even deployment!
Microsoft has built an extension pack called “Azure Tools” which includes extensions to manage every major Azure resource type as well as Azure CLI support AND Docker. There are also other extensions published by Microsoft that connect and manage nearly every Azure Resource. This means when new features come to the platform, they will be coming to the Microsoft published extensions.
Azure Loves GitHub
Finally, it is safe to say that Azure loves GitHub and the integrations are plentiful. From Azure Portal authentication with GitHub Ids, to individual services interfacing with GitHub (one great example of this is Azure Static Web Apps, which allow CI/CD to be configured on creation of the resource).
There is no better integration story between GitHub and Azure than “GitHub Actions for Azure” a set of pre-built GitHub Action workflows that helps you automate your app’s story on Azure, from deployment to monitoring and everything in between.
The team has built over 30 of these workflows and they are documented in a way that you will be able to use them without hesitation. One of my favorite examples is container image scan which allows you to scan the container images you are using for known vulnerabilities as well as linting to ensure you are using best practices.
GitHub Universe 2020
This is the messaging we’re delivering at GitHub Universe 2020. Check out our booth video:
GitHub + Visual Studio Code + Azure ensures you as a developer can just trust the tools and get your work done. There are tons of more features that I didn’t talk about here, so please take a look at some of the resources below to get started enhancing your developer productivity.