June 28th, 2019

The need for speed: Azure DevOps

Joel Day
Account Technology Strategist

I recently had the opportunity to discuss Azure DevOps at the Microsoft Azure Government DC Meetup. During my presentation, The Need for Speed – Azure DevOps, I demonstrated how a new member of a dev team can quickly integrate and become productive with an existing project using Azure DevOps which facilitates productivity by combining multiple aspects of DevOps into a single, integrated UI.

Azure DevOps doesn’t just benefit developer onboarding, however. Whether your team is just starting off in their DevOps transformation journey; or, you already have robust version control, work item tracking, and continuous integration/continuous deployment (CI/CD) pipelines, Azure DevOps can help increase your team’s performance.

In this blog post I’ll provide a brief overview of Azure DevOps, highlight some of my own personal experiences, and provide links to more resources to help you get started.

Plan smarter, collaborate better, and ship faster

Azure DevOps provides development collaboration tools including high-performance pipelines, free private Git repositories, configurable Kanban boards, and extensive automated and continuous testing capabilities. You can access these tools through our cloud service, Azure DevOps Services; or, on-premises platform, Azure DevOps Server (previously named Visual Studio Team Foundation Server)1.

Azure DevOps provides an integrated set of features that you can access through your web browser or IDE client. You can acquire one or more of the following services based on your business needs:

  • Azure Repos provide Git repositories or Team Foundation Version Control (TFVC) for source control of your code
  • Azure Pipelines provide build and release services to support continuous integration and delivery of your apps
  • Azure Boards deliver a suite of agile tools to support planning and tracking work, code defects, and issues using Kanban and Scrum methods
  • Azure Test Plans provide several tools to test your apps, including manual/exploratory testing and continuous testing
  • Azure Artifacts allow teams to share Maven, npm, and NuGet packages from public and private sources and integrate package sharing into your CI/CD pipelines
  • Collaboration tools that include customizable team dashboards with configurable widgets to share information, progress and trends; built-in wikis for sharing information; configurable notifications and more.

In addition, the Azure DevOps ecosystem also provides support for adding extensions and integrating with other popular services, such as: Campfire, Slack, Trello, UserVoice, and more, and developing your own custom extensions2.

I personally like to connect to Azure DevOps using Visual Studio Code; an open source, lightweight, and powerful source code editor. It’s available for Windows, macOS and Linux. It comes with built-in support for JavaScript, TypeScript and Node.js and has a rich ecosystem of extensions for other languages (such as C++, C#, Java, Python, PHP, Go) and runtimes (such as .NET and Unity).  It also integrates wonderfully with both Azure and Azure DevOps.

My need for speed: Why I use Azure DevOps

When I first started developing applications, I quickly learned the pain of having files modified by “external forces” (I’m looking at you, 1990s virus scanner!). Back then, my version control was making multiple copies of source files, compressing complete folders to ZIP, and even backing up to floppy disks. I didn’t have access to free git repositories in the cloud; I didn’t even have ubiquitous access to the internet! Development was slow.

I started my first programming job while I was in college and working for the Utah Army National Guard as a civilian in the J6 shop. I was tasked with building various enterprise applications which I needed to have validated before they were deployed into production. Once again, I quickly learned the pain of trying to share source files.

My dev team was a Windows shop and we were developing .NET and ASP.NET applications using Visual Studio. I stood up an SVN server and we were using that for our version control. Despite my efforts, I could not convince my extended team to use SVN. We were back to making multiple copies of source files, compressing complete folders to ZIP, and backing up to CD.

In 2010, as part of my MSDN subscription, I got a DVD with a new product called Team Foundation Server. I was intrigued by the product description and immediately stood up some servers to test it out. It was love at first sight! And even better, my team finally found a system that worked for them. No more duplicated code files! This led to a pretty dramatic decrease in changes being deployed into production. I didn’t think things could get any better. Finally, we had some speed to our deployments.

Fast-forward nine years, and TFS has grown up and transformed into both a cloud service and matching on-prem offering. Azure DevOps and Azure DevOps Server are more than just version control, they’re a full suite of tools that give developers end-to-end capabilities to facilitate code sharing and organization, work item tracking, CI/CD, package management, and user testing.

Every tool in the suite interfaces directly with each other. Work items can be linked with build packages, change sets can be associated with user stories, user tests can generate bugs that can be linked with git commits that all roll up under a single deployment. That’s a lot of collaboration!

My current job at Microsoft requires that I create proof of concepts to showcase various services in Azure. Sometimes I’m only given a few days’ notice to prepare a working demo. The only way to meet this condensed schedule is by reducing all overhead tasks to almost nothing. 

Most of the time, I can fork an existing demo and extend its functionality to include the highlighted services. I need to keep all those demos clean, and I need to know at a glance which repos are healthy enough to form a foundation. This is where build indicators from Pipeline Status in Azure DevOps really comes in handy.

I also can’t spend time pushing my code into production; that needs to happen automagically.  Azure Pipelines are just what the doctor ordered!

Finally, since I’m usually scrambling to get my demos out the door, I sometimes forget to remove sensitive strings from my code (things like SQL connection strings, Cosmos DB keys, or other API secrets). Credential Scanner (CredScan) has me covered. CredScan is a tool developed and maintained by Microsoft to identify credential leaks such as those in source code and configuration files. Super handy after those late-night code binges.

Essentially, Azure DevOps gives me the tools that I need to quickly and safely get my job done.  My job requires that I have a need for speed, and I rely on ADO to get me there.

Where can I learn more about Azure DevOps?

Here are some of the best places to learn about Azure DevOps:

You can also reach out to me on LinkedIn to ask me any questions. Also, I invite you to watch my presentation and join the Microsoft Azure Government DC user community at future meetups to engage and learn about the latest in government cloud innovation.

 

Author

Joel Day
Account Technology Strategist

1 comment

Discussion is closed. Login to edit/delete existing comments.

  • Cody Schouten

    This is all great information but why is part of the Azure Gov blog if Azure DevOps is still unavailable in Azure Gov?