[MUSIC]
Hi, and welcome to another
episode of Visual Studio Toolbox.
Today we're here to talk about Sprint 124 of
Visual Studio Team Services.
And to do it I have my guest Alex.
Alex, why don't you introduce yourself?
>> Thanks Dimitri.
My name is Alex Nichols.
I'm a PM on the VSTS team, and I focus on the management
of our releases, both for VSTS and also for TFS.
We've got the hosted service and the on prem product.
And with that, with our 42 feature teams out there, I
really help to scale by focusing on things like release notes and
also our customer feedback channels.
>> Yea, you're an important part of the jigsaw puzzle, right?
You're making sure that this train is moving forward and
actually reaching customers.
And I often work with folks behind the scenes, and man,
you have a lot of work on you, typically.
It's not an easy job.
It's not like, you're like, we're just pushing features.
You actually gotta organize this big motion of stuff
that happens.
So kudos to what you do here.
So it's awesome to talk about VSTS prints today.
I think one of the things that folks might not even
realize about the fact that we have TFS in the cloud,
it's something we keep talking about.
But I find lots of customers don't realize that our
Team Foundation Server, it's up there.
We're hosting it, we're running it,
we're releasing through it all the time.
Maybe you can talk a little bit about like what is VSTS mean for
cloud customers and how they get features?
>> Right. Yeah,
we often refer to it internally as one product with two names.
>> Yeah. >> Because as like you said
we're deploying TFS internally and hosting it for customers.
So when we release to the service, we're actually
deploying everyday and sometimes even more frequently than that.
But every three weeks, which is our sprint cadence,
we bundle up the features and that's
what we call our sprintly update >> Right.
>> And those are when features get released to customers.
>> Yeah, and I think you guys found three weeks was kind of
the ideal time.
>> Yeah. >> And it wasn't actually going
to take three weeks right away.
>> Right. >> Soon it became a thing and
now every three weekscustomers get the benefit of features.
But at the same time,
we have this whole protocol around safety for
customers by trying not to impact them with new
capabilities because even with- >> That's right.
>> -your best testing internally,
you could push a feature out to the cloud,
something could go wrong.
It's not something they're choosing, so
we have to take that on our self to do right.
So I think you get some protocol.
>> Yeah. >> What's the protocol for that?
>> Yeah, so we have a concept of ring deployment.
So there's ring zero through ring four.
And everyday we're deploying to those rings and
there's some delay between, so
we make sure that our ring deployment went well.
All right, looks good, so big time.
And then it goes to the next ring.
So we have that, we have those stopgaps in place.
>> Okay, awesome.
So another thing to mention is that everything we push
to the cloud winds up on premises eventually,
everything that makes sense, so to speak.
Certain things to cloud only, but TFS gets update.
So that's a bundling of features we've already shipped and
tested in the cloud, right?
So that's kind of the, it starts with the VSTS and
it moves to TFS.
But back in the original release it was one way.
We took TFS, we put it in the cloud.
And now it's kinda going backwards.
It's cool to think about.
The thing that we have to talk about today specifically is we
wanted to bring attention to the Sprint 124 release.
So maybe you can show people the release notes and
how we communicate what's changed to customers.
>> Right, right.
So, in Sprint 124 update, our headliner is the updated
experience for search, but we've also got a number of features
across code and work build to release to really round it out.
So this is pretty typical where we've got features across
the product.
>> Yeah, and sometimes this release notes could be very
large, sometimes it could be smaller, whatever made it into
that Sprint as a quality check and a gate that you guys have
internally gets out to customers.
And it's worth saying that we published these release notes
when we started the first ring.
So the moment at least one customer could be impacted we
put it up as a public thing.
>> Right. >> But people should know,
they might go through these notes.
They might see a feature, go into their VSDS instance and
it's not there.
And that's because of the ring thing you talked about.
>> Right, yeah, we want to go on the side of having those early
customers be prepared- >> Yeah.
>> -with what's coming up.
And so yeah, we wanna target getting this content out.
>> Cool. >> Great question.
>> And also we have sometimes,
non fully production features that go out to customers, right?
Things that we have in preview, but we feel comfortable enough
that either customers can opt into them or sometimes just
we make them available if we feel they're good enough.
But everything's in release notes.
There's nothing that people have to worry that they're gonna
get a feature, I mean we do our best, right?
>> Right. >> In the sense this is
the complete list version that shipped to customers.
And over the rings it gets out there.
>> Yep, yeah.
>> Okay, awesome.
All right so we have a bunch of features to talk about today,
specifically and we wanted to start with search.
So why don't you tell people what search is,
because it's great to see something is shipped for
search but maybe you never even used search or
realize that it's there for you.
>> Right, right.
Yeah, search is pretty powerful and for
VSTS it's searching both for code and for work items.
And we were talking about preview features before.
This latest feature that we've released is really just
an updated experience, but
it brings a lot of benefits that we've seen.
And talking to the PM for
this one there's been a ton of feedback on the old experience
that really helped shape this one.
So for search this is really about going in and
maybe you're in code and you're browsing through and
you wanna do something like look for a class, even.
We have some context menu that you can jump in from
the code page.
And jump straight into search and
see where else that class might be used or its definition or
its references.
[CROSSTALK] >> It actually
gives you some context to run.
I mean it doesn't work for every single possible language but
we keep expanding that list.
And it works for certain languages that we understand
internally so we can give you much more context around
the files you find in the class.
>> That's right, so I want to jump into,
show us some of what I'm talking about here.
>> Yeah [CROSSTALK]. >> And with code I'm bringing up
the code view here, and I click the search box and
you'll notice first we get a whole bunch of filters.
And there's even more than what's shown here, but
you can really get into finding exactly what you're looking for.
>> Yeah. >> So I might find something
that, let's look for JSON files.
>> Let's leave the hint.
So giving hints of things you can type.
Once you memorize them you don't even look at the list you can
be extension JSON hit enter.
>> Yeah, right.
>> You get your list and this is giving you the real links,
the real files, you get your source code on the right,
you get your history, compare.
It's really the full experience you get if you've manually found
that file.
>> That's right.
Yeah, so this is an example where I'm searching for code.
And you'll notice with this latest experience that
the functionality is more or less the same as what we had
before, but with this we're really bringing consistency and
streamlining it across the product here with a consistent
filter set here that we'll see.
Or we can search within a repo within one or more branches now.
Specify a path or
a new thing called code type that we're showing there.
You can switch on what sort you wanna use for the results or
switch the view.
So these are controls here that we've really streamlined to
help bring the focus to the results and
help you find what you're looking for faster.
>> Yeah, I mean it's great when you get six results,
and sometimes we might get 100,000 results.
I mean, search is search, and it's whatever,
how narrow you want it to be, and the more narrow you can get,
sometimes, on the repo or on the branch, or even just sorting
sometimes can save you, so definitely worth pointing out.
There's changes over there, and
it seems like you can go very specific, if you needed to find.
>> Right, so I'm looking for maybe a specific file here.
And I'd even do this myself as I'm looking for
maybe to route some work items that through the right team that
may be not routed to the right place.
I might look for
this manifestation JSON file and I see it in code here but
I can also switch also to work items and
see, are there any work items that are also referencing this.
And here I found another one.
So I can see both of those and
just with a flip of a panel here.
>> Yeah, that's really powerful.
I mean, that's one of the advantages of VSTS when you have
your code and your work items in the same place.
We don't force you to, you don't have to.
You can just use as a dumb git repo or
you can use some other repo and use us just for work items.
But when you have its here that kind of level of integration.
>> That's right.
>> Yeah, that's pretty awesome.
I think one of the demos that I still love to do is going all
the way out the builds and
showing everything is linked to the work item.
You can see how For life cycle, but that's for
a different episode.
>> Yeah, all right, awesome.
>> So people can basically get to this experience,
that's one of the things I like to show.
How would you get here if you just landed on the dashboard?
How would you get into this view that you just demoed for folks?
>> Is it for the code tab or- >> Right, if we go,
really it's persistent across the entire product.
We've got this search control up here on the right, and
you can specify the context that you'd like to do.
You wanna search for code or you wanna search for work items?
You'll notice, though, that if you're on the Code tab,
we assume that you're searching for code,
so we'll default to context there.
If you're on Work, we'll assume that you're searching for
work items.
>> Okay, awesome, all right.
>> All right, for the next feature that we wanted to talk
about was the wikis.
>> Awesome, so
the wikis is something that I'm quite familiar with,
I use it a lot.
In fact, I'm using it right now to do some planning work.
It's a great way to store some additional metadata along with
your projects, right?
So you might have code, you might have work.
But you often need that level of just documentation or
references, or some kind of plan that's more just generic and
to be outlined.
And the beautiful thing about our wiki is we've
got this great interface in there to create the wiki.
It's easy. You don't have
to create files and edit the files.
You just say, I wanna go in the wiki.
I wanna add a page.
I wanna link the pages together.
I wanna structure them.
And then it's marked down, or HTML, or some combination of.
And I'm usually combining the two especially for
tables and stuff.
It makes it easier.
But it's very clean and now we have the Cyberset editors and
we're shipping all sorts of new features.
Maybe you can talk through some of the capabilities there.
>> Yeah, yeah, wiki keeps getting better and better.
And we like having this concept of your wiki pages and that
content right next to or inside of your engineering system.
>> Yeah, for sure.
>> Right next to your code and your work.
And particularly with this one, a handful of improvements here.
So I'll jump in, and
first one is, just make it easy to save and keep editing, right?
So I've got a page here, I'm open.
I'll go into Edit mode and I'll say, Another line here, and
I can just do a Ctrl+S to save it, very simply, right?
>> Small change but it makes productivity so much better.
>> Right, cuz I may wanna keep editing.
And in this case I wanna say, we've also added the ability to,
as in elsewhere in the product, link directly to a work item.
So I'll go just #3, and that's the work item id.
And it'll give me some suggestions and
I'll go link in that work item.
You can see the preview right over there,
why that it's showing that bug number three.
>> Yeah, that feature I really like and
the fact that it shows you other things.
So if you start typing in a number it gives you
a narrower and narrower search of the work item.
And it's just easier just to click on the one that you found.
If you know the ID,
which often you do if you're a real developer working on this,
it's really easy to add it.
And it lets you build something that is contextual to
that wiki page.
Again, your work item shouldn't be the place you dump
everything, right?
>> Right. >> And I've been guilty of that
in the past as a developer.
You open the work item, you're like my god,
there's like a wiki inside the text box, right?
But this lets you create the context page for
whatever scenario you have.
And if you open up navigation,
if your gonna click on that right with those pages,
it is something that you can structure.
So right here we only have one page, but if you added more,
what I love is you can actually drag them, so
there's a hierarchy.
Home can have a branch off of it, and
something else can have a branch off.
It can have expanders.
Just makes it easy, and
you never have to change actual edit files.
This is all up in the web editor, so it's kind of cool.
>> Right, right, and the other beautiful thing is it's
just a repo behind the scenes.
So you can do all of that advanced stuff, too,
if you really want to.
>> Yeah, we try not to hide anything from view, right?
>> Yeah, and associated with that, another feature that
the team did release here is if you really go into wiki, and you
wanna make that the content on your homepage of your project.
You can even switch that out, so
a lot of projects have the README.
We've added that option to have the wiki home page
right there on your project home page.
>> Cool, so when you land on that home page of your project,
it's up to you what's there for your team.
And the wiki page is what's the most relevant for the home page.
>> That's right.
>> Cool, and you've got the other widgets over there on
the right, so it kind of plays a role within the page but
doesn't take it over completely.
You can still have your widgets,
I guess, is what I'm trying to say.
>> Right.
>> Cool, all right, so that's an awesome feature.
Any other capabilities there?
And I think we have another video people can go
watch, right?
So Donovan Brown did a two box video with Sandeep on it which
they went deeper on the wiki.
I know there's more to come, and the story keeps evolving.
But folks should definitely check out the video and
our link in the show notes for folks to take a look.
All right, so the next feature here that
we have that as part of the three that we're demoing is
something to integrate with Azure Key Vault.
So for those folks that don't know, Azure Key Vault is
part of Azure, one of the capabilities of Azure.
And this is designed to create a really secure and safe place for
customers to store secrets.
And the secret lists, I mean, I have it here so I wouldn't
forget are just some really good examples of indication keys,
storage account keys, data encryption, VFX files,
passwords.
Anything that shouldn't be in the code.
Because you want your code .tiff code and
your build to execute at some point to build that code, and
to only then pull in the secrets in some secure location, right.
You don't want the code to ever have
like all the stories that keep coming out.
If you search code for
this thing you'll find it in OpenSource projects.
I mean, it's an ongoing battle of like secrets need
to be separate.
And every developer probably make this mistake at some point
as your key role at the central service lets you do that.
And as part of VSTS, we're constantly looking for ways,
not only to integrate customers into our ecosystem or
extensions, but just integrate better with our own products.
And that's one of the value adds we hope to add.
So Azure Key Vault being part of Microsoft,
we've added even more support for VSTS.
So what did we do in this release?
>> Yeah, that's right.
So in this particular release, we're bringing
the Azure Key Vault integration into the build definition.
So it's been in release for a bit, right?
Very much more connected up into Azure.
But now we're bring that into build,
in case you need it there, right?
So I'll just hop over to there.
And where you really get started, under build and
release, it's in the library screen.
So in here we have the ability to define a variable group.
So we start that, and these are variables that we
wanna be able to use across multiple definitions.
So that reuse is important.
And things like secrets fall into that category.
So we've got this ability here to switch.
To say, okay I've got a new variable group for
my secrets here.
And I'm gonna link that to Azure Key Vault.
This is where you can connect up to the Azure subscription
that you've integrated with for your account.
And then also specify the particular name of the Key Vault
that you're gonna hook up to.
>> Yeah, it's very cool and
just makes it very reusable within the product.
And again, we're constantly looking for feedback.
If folks find that this is not sufficient in some way,
let us know.
We wanna hear and we can make it even better for you.
>> Right, so if I jump in and
look at what would a build definition look like?
I can jump into one here and see the variables.
And I can see the variable groups that are linked here.
I've got one and I've specified a secret in my Key Vault called
secret one and it's masked there.
But I'll show how you can use this in your build definition.
Here I've just got a simple PowerShell script task, or
I've linked in that secret one right in here and
I wanna output it, right?
So I ran a build earlier, and you'll notice in the steps of
the build there was a downloaded secret, so it went out to
Key Vault, grabbed this from the secret store and grabbed and
tried to output this secret.
So I've got a secret here, and you'll see that the PowerShell
script ran and it's got that masked secret in there.
This is just a demonstration of where you can grab it in.
But you can use it in one of your key tasks.
Like what you were saying,
if you wanna connect up to store your files or
your published artifacts or something into a secret place,
or a secure place, you could do that with this.
>> Awesome, all right, well,
we've got a lot of really great features being released.
And these videos, whenever we'll talk about any [INAUDIBLE]
releases, they'll be as big as necessary.
Sometimes they'll be much longer.
In this case, we think this does justice to it.
Now again, all the release notes are up there from all
the previous releases.
Many times people say, I didn't know this was there.
We can usually point to some release note that
talked about it.
We, of course, have documentation.
Release notes are not the only place.
But there used to be a time at Microsoft, you had to dig for
blog posts to find out what we shipped for our products.
Yes, guilty as charged, we used to do that.
But we've gotten everything much better.
The release notes here are awesome.
We have release notes for the VS Code.
We have Visual Studio release notes, TFS, and
VSTS, Visual Studio team services.
So everything's up there on our site, and
we hope folks get benefit from it.
So I think we'll wrap it up.
>> All right, thanks for having me.
>> All right, thank you very much for
watching Visual Studio Toolbox and we hope you come back for
the next episode.
Thank you for your time.
>> Thank you.