Oren Eini on DevOps Success at RavenDB (Part 2) - Episode 56

This is the second part to the two-episode series with Oren Eini! If you haven't listened to the first part already be sure to tune into that one first!

Oren Eini, pseudonym Ayende Rahien, is a frequent blogger at Ayende.com and has over 20 years of experience in the development world, with strong focuses on the Microsoft and .NET ecosystem. As an internationally acclaimed presenter, Oren has appeared at DevTeach, JAOO (now GOTO) QCon, Oredev, NDC, Yow! and Progressive.NET conferences; sharing his knowledge via conferences and written works such as DSLs in Boo: Domain-Specific Languages in .NET, published by Manning and now another book, Inside RavenDB. Oren remains dedicated and focused on architecture and best practices that promote quality software and zero-friction development. And of course, Oren is also the founder and CEO of RavenDB; a fully transactional, NoSQL, all-in-one database.

In this second episode, Oren and Jeffrey continue their discussion about RavenDB and how Oren built the DevOps environment for it. There are many unique complexities to their environment and Oren details them all out — from the tests they conduct to the migration process, and much, much more — you won't want to miss the second part to this fascinating conversation!

Topics of Discussion:

[:53] Diving right back into the conversation, Jeffrey asks Oren how he has designed his DevOps environment to identify when he's encountering tricky stuff?

[1:45] Roughly how many test cases are there?

[4:04] What is Oren's server of choice?

[4:22] Where and how to check out and download all the code for yourself!

[6:05] The problem with unit tests.

[8:37] Oren explains how, after building, they fan out and do multiple deployments in different scenarios and platforms at once so that they can execute their tests.

[9:29] What longevity tests are and what they accomplish.

[13:00] A word from Azure DevOps Podcast's sponsor: Clear Measure.

[13:28] Oren speaks about the value they're getting from static analysis.

[28:50] For those who have never used a document database before, when should they consider taking a look at or utilize RavenDB?

[34:15] How does one migrate their data structure? How does that concept come into play with RavenDB?

[35:29] Is there a migration process or tool for when you need to transform from time-to-time as part of your deployment?

[35:40] In regards to integrating with other tools for people who only use SQL Server — what is there experience going to be like?

[39:29] For those who want to learn more, Oren gives some recommendations on resources to follow-up on.

Mentioned in this Episode:

Azure DevOps

Clear Measure (Sponsor)

.NET DevOps for Azure, by Jeffrey Palermo

bit.ly/dotnetdevopsproject

bit.ly/dotnetdevopsbookforcommunity — Visit to get your hands on two free books to give away at conferences or events!
Oren Eini (LinkedIn)

DSLs in Boo: Domain-Specific Languages in .NET, by Ayande Rahien

Inside RavenDB, by Oren Eini

RavenDB

GitHub.com/RavenDB/RavenDB

Jeffrey's .NET DevOps Bootcamp (Oct. 28-30th, in Lakeway, TX)

Microsoft Ignite 2019

Jeffrey Palermo's Youtube

Jeffrey Palermo's Twitter — Follow to stay informed about future events!

Ayende.com

Want to Learn More?

Visit AzureDevOps.Show for show notes and additional episodes.


Download this episode (MP3, 41:06, 39.4 MB)

Watch this episode on YouTube

This episode on the AI DevOps Podcast site

Oren Eini on DevOps Success at RavenDB (Part 1) - Episode 55

Today's guest is Oren Eini, pseudonym Ayende Rahien. Oren is a frequent blogger at Ayende.com and has over 20 years of experience in the development world, with strong focuses on the Microsoft and .NET ecosystem. As an internationally acclaimed presenter, Oren has appeared at DevTeach, JAOO (now GOTO) QCon, Oredev, NDC, Yow! and Progressive.NET conferences; sharing his knowledge via conferences and written works such as DSLs in Boo: Domain-Specific Languages in .NET, published by Manning and now another book, Inside RavenDB. Oren remains dedicated and focused on architecture and best practices that promote quality software and zero-friction development.

Another interesting tidbit about Oren is that he is the founder and CEO of RavenDB — which also happens to be the topic of today's podcast! They discuss how Oren came to start his own company, RavenDB, as well as how he built the DevOps environment for it.

Oren and Jeffrey dove incredibly deep into this topic — so deep in fact that the interview had to be split up into two parts! Look forward to the second part of this two-part series next week!

Topics of Discussion:

[:40] Be sure to visit AzureDevOps.Show for past episodes and show notes!

[:50] Jeffrey gives some announcements and lets you know where to get a hold of his book, .NET DevOps for Azure.

[2:35] About today's guest, Oren Eini.

[3:43] Jeffrey welcomes Oren to the show!

[4:04] Open Source is the norm now, but it wasn't back then! Oren speaks about some of the differences in the industry.

[9:13] Why did Oren decide to start his own company, RavenDB?

[11:13] Oren explains Object-Relational Mappers (ORM) and provides some examples.

[15:11] A word from Azure DevOps Podcast's sponsor: Clear Measure.

[15:38] Jeffrey and Oren continue their conversation about and getting his company, RavenDB, off the ground.

[20:20] Oren speaks about becoming an expert in a handful of major databases and understanding what it means to talk to the database (because he was a prolific committer and maintainer for NHibernate a mature, open-source object-relational mapper for the .NET framework.)

[25:25] How did Oren build a DevOps environment for RavenDB?

[35:45] This is where part 1 of the interview ends — look forward to part 2 coming soon!

Mentioned in this Episode:

Azure DevOps

Clear Measure (Sponsor)

.NET DevOps for Azure, by Jeffrey Palermo

bit.ly/dotnetdevopsproject

bit.ly/dotnetdevopsbookforcommunity — Visit to get your hands on two free books to give away at conferences or events!
Oren Eini (LinkedIn)

DSLs in Boo: Domain-Specific Languages in .NET, by Ayande Rahien

Inside RavenDB, by Oren Eini

RavenDB

GitHub.com/RavenDB/RavenDB

Jeffrey's .NET DevOps Bootcamp (Oct. 28-30th, in Lakeway, TX)

Microsoft Ignite 2019

Jeffrey Palermo's Youtube

Jeffrey Palermo's Twitter — Follow to stay informed about future events!

Ayende.com

Scott Guthrie

Groups.Yahoo.com/neo/groups/altnetconf/info

NHibernate

Want to Learn More?

Visit AzureDevOps.Show for show notes and additional episodes.


Download this episode (MP3, 36:31, 35.0 MB)

Watch this episode on YouTube

This episode on the AI DevOps Podcast site

Kayla Cinnamon and Rich Turner on DevOps on the Windows Terminal Team - Episode 54

On this week's podcast, Kayla Cinnamon and Rich Turner are joining the show! Kayla is a Program Manager on the Windows Terminal Team and has been working for Microsoft for the last 8 years, and Rich is a Senior Program Manager, also on the Windows Terminal Team and has been with Microsoft for nearly 4 years.

Kayla and Rich are speaking with Jeffrey today to discuss how the Windows Terminal Team does DevOps. They'll be speaking about all the recent news regarding the new Windows Terminal, the history of what it has meant to the command line on Windows (as such a critical part of the operating system), and all that they do to ship code and set up their DevOps environment! They also share information on which dependencies and environment you need to have in place to actually build it and run it locally for yourself.

Tune in to get the full scope on this really critical piece of software!

Topics of Discussion:

[:44] Be sure to visit AzureDevOps.Show for past episodes and show notes!

[:51] Jeffrey gives some announcements and lets you know where to get a hold of his book, .NET DevOps for Azure.

[2:15] About today's guests, Kayla Cinnamon and Rich Turner.

[2:28] Jeffrey welcomes Kayla and Rich on to the podcast!

[3:23] How Kayla and Rich landed on the Windows Terminal Team and how the creation of the new Windows Terminal came about.

[13:11] What is Kayla's tool of choice for creating wireframes and mockups?

[14:20] Rich picks their story back up from when Kayla joined the Windows Terminal Team.

[16:21] Starting with their thought process around architecture, Rich speaks about what goes on before they even put hands to keyboards.

[24:40] A word from Azure DevOps Podcast's sponsor: Clear Measure.

[25:06] How will they be documenting this going forward?

[25:52] How do they have the code for Windows Terminal organized?

[29:46] Rich shares the GitHub URL for the new (and original) Windows Terminal and Kayla explains which dependencies and environment you need to have in order to actually build it and run it locally.

[31:52] Kayla and Rich talk about the build process and the whole flow of making changes.

[33:52] Kayla begins explaining the process piece-by-piece (from their method of branching, what testing framework is used, how many tests are in the terminal codebase to how they automate the workflow in GitHub, the workflow for members, and more).

[42:09] What's the breadth of static analysis that's part of the build? And what are their tools of choice for the steps involving static analysis?

[45:05] Rich gets into what's at the end of the chain after the pull request gets accepted and merges into master (i.e. what the process looks like and what steps are there).

[48:09] What is their opinion about the viability of small text-based user interfaces?

[54:20] Rich gives his recommendations on where to get started and learn more.

[55:48] Jeffrey thanks Rich and Kayla for joining the podcast!

Mentioned in this Episode:

Azure DevOps

Clear Measure (Sponsor)

.NET DevOps for Azure, by Jeffrey Palermo

bit.ly/dotnetdevopsproject

bit.ly/dotnetdevopsbookforcommunity — Visit to get your hands on two free books to give away at conferences or events!

Windows Terminal (Preview)

Microsoft Ignite 2019

Jeffrey Palermo's Twitter — Follow to stay informed about future events!

Jeffrey Palermo's Youtube

Jeffrey's .NET DevOps Bootcamp (Oct. 28-30th, in Lakeway, TX)

Kayla Cinnamon's LinkedIn

Rich Turner's LinkedIn

Figma

Microsoft Visio

GitHub.com/Microsoft/Terminal

TAEF

Turbo Vision

Chocolatey
Kayla's Twitter: @Cinnamon_MSTF

Rich's Twitter: @RichTurn_MS

DevBlogs.Microsoft.com/CommandLine

Want to Learn More?

Visit AzureDevOps.Show for show notes and additional episodes.


Download this episode (MP3, 56:29, 54.2 MB)

Watch this episode on YouTube

This episode on the AI DevOps Podcast site

Jared Parsons on DevOps on the C# Compiler Team - Episode 53

Today, your host, Jeffrey Palermo is speaking with Jared Parsons, the Principal Developer Lead on the C# Compiler Team. Everybody tuning in probably uses his code on a day-to-day basis! Jared started out at Microsoft 15 years ago as a Developer; moved on to become a Senior Developer; then Principal Developer on Midori OS; and most recently, the Principal Developer on C# Compiler Team, which he has been with since 2014.

In this episode, Jeffrey and Jared are taking a look at what the DevOps environment looks like for the C# Compiler. They take a look at how the source code is organized, the configuration process, some of the challenges they've run into and how they've solved them, as well as Jared's career journey with Microsoft.

The C# Compiler is a highly depended on, complex, widespread piece of software — so tune in to get all the behind-the-scenes insight with Jared Parsons!

Topics of Discussion:

[:39] Be sure to visit AzureDevOps.Show for past episodes and show notes!

[:49] Jeffrey gives some announcements and lets you know where to get a hold of his book, .NET DevOps for Azure.

[2:13] About today's guest, Jared Parsons.

[2:27] Jeffrey welcomes Jared on to the podcast!

[3:17] Jared speaks about his background with Microsoft and how long he has been with the C# Compiler Team!

[4:09] Jeffrey and Jared begin to discuss what the DevOps environment looks like for the C# Compiler, starting with how the source code is organized.

[4:51] Is everything public on GitHub?

[5:15] If someone clones the Roslyn .NET compiler repository, will they be able to build it locally?

[6:44] Besides the compiler, what other components are included?

[7:35] Do they use Azure DevOps Services?

[8:13] Do they have branching models?

[9:47] Is it YAML-based?

[11:44] Jared explains the goal of their CI build, as well as all that they do in CI.

[13:25] Some of the early issues they ran on to on the Roslyn project.

[13:55] Jared dives back into describing the DevOps environment for the C# compiler.

[15:28] What platforms are the fastest to do this process with?

[15:53] A word from Azure DevOps Podcast's sponsor: Clear Measure.

[16:20] Jared continues the conversation about CI.

[20:06] After the CI build, Jared speaks about what's next in the configuration.

[21:12] After the CI build finishes, Jared explains how they package it up and release it.

[22:27] Do they use Azure Artifacts to store the result of the build? And what format of Artifacts have they chosen?

[23:53] Jared explains the final step in their release pipeline.

[25:33] Jared explains the next pipeline that's kicked off after they complete their release pipeline.

[26:02] Jared shares how they enforce compatibility.

[26:50] Does Jared have static code analysis in place in their pipeline?

[30:08] Where to find everything Jared has been talking about today.

[31:13] Do they use any third party Visual Studio add-ins?

[31:54] How are they planning on targetting a platform that runs from a URL?

[34:17] Jeffrey wraps up this week's podcast and thanks Jared for joining!

[34:39] Jared recommends a few resources for those looking to learn more.

Mentioned in this Episode:

Azure DevOps

Clear Measure (Sponsor)

.NET DevOps for Azure, by Jeffrey Palermo

bit.ly/dotnetdevopsproject

bit.ly/dotnetdevopsbookforcommunity — Visit to get your hands on two free books to give away at conferences or events!

.NET Conf 2019

Microsoft Ignite

Jeffrey Palermo's Youtube Channel

Jeffrey Palermo's Twitter

Jared Parsons (LinkedIn)

GitHub.com/dotnet/Roslyn

GitHub.com/dotnet/Roslyn-Analyzers

GitHub.com/dotnet/CSharpLang

Visual Studio

Azure DevOps Services

Azure Artifacts

Visual Studio SDK

Xunit Analyzers

Microsoft Build 2019

Want to Learn More?

Visit AzureDevOps.Show for show notes and additional episodes.


Download this episode (MP3, 35:58, 34.5 MB)

Watch this episode on YouTube

This episode on the AI DevOps Podcast site

Patrick Smacchia on Static Code Analysis - Episode 52

Patrick Smacchia is the founder and CEO of NDepend — a tool for .NET static analysis — and has been in the software world for over 20 years. He's one of the world's top tier experts in static code analysis. And today, with more than 8,000 client companies (including many Fortune 500s), NDepend offers deeper insight and understanding about their code bases to a wide range of professional users around the world.

In this episode, Jeffrey and Patrick will be discussing static code analysis. Patrick elaborates on exactly what it is, how to think about it, why you should implement it, and gives his recommendations on how to get started as well as further learning. Everyone in the DevOps world needs to know what static code analysis is and how to put it in place, to tune in to learn all about this key concept!

Topics of Discussion:

[:40] Be sure to visit AzureDevOps.Show for past episodes and show notes!

[:46] Jeffrey gives some announcements and lets you know where to get a hold of his book, .NET DevOps for Azure.

[1:39] About today's guest, Patrick Smacchia.

[1:56] Jeffrey welcomes Patrick on to the show!

[2:18] Patrick explains what static code analysis is and how he thinks of it.

[7:46] Patrick further elaborates on the concept of treating the code as data with static code analysis.

[15:25] How should we think about this realm of static code analysis? What advice would Patrick give someone on how to think about when it comes to static code analysis?

[23:03] A word from Azure DevOps Podcast's sponsor: Clear Measure.

[23:30] When it comes to finding problems in the code, how does Patrick determine which code is too complex?

[37:10] Resources Patrick recommends to listeners who would like to learn more!

[39:34] Jeffrey thanks Patrick for joining him on today's episode.

Mentioned in this Episode:

Azure DevOps

Clear Measure (Sponsor)

.NET DevOps for Azure, by Jeffrey Palermo

bit.ly/dotnetdevopsproject

bit.ly/dotnetdevopsbookforcommunity — Visit to get your hands on two free books to give away at conferences or events!

Patrick Smacchia

NDepend

Want to Learn More?

Visit AzureDevOps.Show for show notes and additional episodes.


Download this episode (MP3, 40:13, 38.6 MB)

Watch this episode on YouTube

This episode on the AI DevOps Podcast site