December 1st, 2020

Optimum Developer Productivity – GitHub + Visual Studio Code + Azure

Abel
Principal Cloud Advocate, DevOps Lead

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.

Image 0cba4698daf913f579a3813f30b25634441b96a73f1e47c167cbe9ea5bea6d9e

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.

Image b056a547a020c75ed168a0979c936e5d85d2d1e20cbae33d3a122aa39fa194af

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.

Image 249fb6aa4e0898e90bff8aaa2072d956d527cf2db64defa0290507db862365b7

GitHub Universe 2020

This is the messaging we’re delivering at GitHub Universe 2020. Check out our booth video:

Conclusion

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.

More Resources

GitHub Actions for Azure | Create workflows to build, test, package, release and deploy to Azure

GitHub Actions for Azure | Microsoft Docs

Automate your workflow with GitHub Actions | Microsoft Learn

Visual Studio Code Azure Extensions

Create free services with Azure free account | Microsoft Docs

Category
CI/CDDevOps

Author

Abel
Principal Cloud Advocate, DevOps Lead

Abel Wang is a Principal Cloud Advocate and DevOps Lead at Microsoft, specializing in DevOps and Azure with a background in application development. He is currently part of Donovan Brown's League of Extraordinary Cloud DevOps Advocates. Before joining Microsoft, Abel spent seven years as a Process Consultant and a Certified Scrum Master helping customers globally develop solutions using agile practices and Team Foundation Server. Prior to that, Abel founded and sold his own software company. ...

More about author

0 comments

Discussion are closed.