 Hello and welcome everyone. Thanks for joining us today. We're excited to have you on. Today, in this webcast, we will be going over our latest release 11.3 where we'll have lots of exciting new features. My name is Agnes and I work on the marketing program team here at GitLab. I'm joining you from sunny San Jose, California today. Also joining us this morning is Tina Sturgis from our product marketing team. Dan Gordon from our technical marketing team and Atar Hamid from our support team. We're going to give people just a couple more minutes to get locked on. While we're waiting, I'm going to launch a poll you can take part in if you'd like. The graphic on this slide may be useful as you think through your answer for this first poll question. Thank you to everyone who participated in the poll. Before we get started, I'm going to cover a couple of housekeeping items. First, feel free to ask questions throughout the presentation. You can use the Q&A function at the bottom of your screen for that. We'll have dedicated time for questions at the end of the presentation and demo, but you can go ahead and send in your questions as you think of them and we'll make sure to get to them at the end. If you're experiencing any technical difficulties, you can use the chat function to get in touch with a moderator, me, for help. Now I'm going to turn it over to Tina to talk about the results. Excellent. Thank you so much, Agnes. I just want to verify I had a small technical glitch as I logged on here. Can you see the screen here that we have? Excellent, excellent. So, unfortunately, with my technical glitch, I cannot see the poll results. So can you tell me what we have for our polling results? Using GetLap for privately create, but then there's also... Oh, excellent. That sounds great. So, looks like we have a bit of, you know, most of the people kind of looking in to create. So let's take a look at the reason why I came on this screen is, as you can see... Oh, there we go. Now I see it. You must have relaunched it. Thank you. So, as you can see, GetLap is more than just, you know, sort of our traditional issue board, source control management and CI, which were the areas kind of where we grew up and we focused on in the past. Over the last year plus, you know, GetLap has really moved toward being a single application around for the entire DevOps lifecycle. And that's, you know, pretty much what we've shown here in this sort of graphic where you can see all of the nine different phases that we have. And again, we added a little bit of, you know, since, you know, 2016, et cetera, to give you an idea of when these functions within the stages were introduced. So let's go on to the next slide. Let's see, I'm just going to... All right. So one of the areas that we really focused in on over the last year here, and before we jump in to highlight those new features and GetLap 11.3, let's level set and talk about what is AutodevOps. So AutodevOps is kind of the subset of what we just saw in the previous slide here. It's these seven stages of create, verify, secure package, release, configure and monitor. These are the ones that actually are basically automated within the pipeline itself, right? So GetLap AutodevOps eliminates the complexities of automating software delivery. It will automatically help you to set up your pipeline and any necessary integrations that you may have. So we help to simplify and accelerate the delivery with the complete delivery pipelines basically out of the box. You simply commit your code, it will eventually, you know, we will do the rest. AutodevOps, you know, will help you detect the language of the code, automatically build, test and measure the quality of the code, scan for security and licensing issues, package things up for you, set up the instruments for monitoring purposes and deploy the application. So, you know, you can understand and look at the breadth of that AutodevOps piece that we have here and, you know, essentially understand how this can really help to create efficiencies within your software development lifecycle. So on to the next slide, because I know you all, you know, really don't want to hear me go on and on about what the features and functions are, because we know from past experience here that the demo is really kind of where it's at, if you will. But let's talk about sort of the release highlights here and what are the new GetLab 11.3 features. Our main theme this month was around compliance, specifically features that help automate controls around environments and code while furthering efficiencies for Java developers. So now, Agnes, if we can, can we take our poll now just to see if, you know, we have anyone out there that's currently using Maven repositories? We'll just wait a couple seconds for folks to answer. Excellent. So it looks like about 40% of our folks out there are using Maven repositories. So this is great because you'll be pretty happy with what we've done here with our Maven repositories. One thing to note, kind of as, you know, before I move forward with some of these release highlights, down at the bottom you'll see, well, it is the 87th consecutive monthly release we have done here at GetLab. We're very proud of that. I'm sure this is something that you come to know and love from us having this monthly release. So for that, you know, we are very thankful for our team here at GetLab in and across all the teams here. Additionally, at the bottom on the left hand side of my screen here, you'll see the URL there. If you want to get any specific details about this release, you can just click on that, that URL and that will take you to the release notes. Super helpful. Obviously, we don't have time to go through everything here today, but this is definitely something that you have access to at any time. So it looks like, you know, 40% of you guys are using, you know, the Maven repository, which I think is great. So you'll appreciate the new capability that we have. And then the several of you, the 60% of you who aren't, you know, you know, have a look, check it out. Check around your organization. If other, you know, folks and developers are using Maven repositories, it may be something that they would be interested in. So I'm going to click this off here. Okay, so let's take a look specifically. So we have Maven repositories, protected environments and code owners, and Epic forecasting as our release highlights. So I won't bore you with this screen because I do want to give you right into some details here. So in this release, we've expanded our support for Maven repositories that are built directly into GetLab. We're expanding our support for those Java projects and developers by building that Maven repository. In staying true with our GetLab values around minimal viable change or MVC, you can expect more functionality and upcoming releases specifically in this area. Dan Gordon, our technical marketing folk here, team member, will be demoing this feature for you today. So I'll try not to steal all this thunder because, but really, you know, this helps GetLab to provide those Java developers with a secure standardized way to share version control into Maven libraries and save time by reusing these libraries across their own projects. So here's a snapshot for you as you can see here and again Dan will be delivering this information here pretty quickly in our demo. Moving forward, as organizations move toward more automated practices across their SDLC and increase their velocity of delivery, compliance standards, and assurance of separation of duties becomes a very obvious area where automation can ensure governance standards are being met. With our protected environments feature that you see here, operators can now set permissions to determine who can deploy code to production environments. This significantly reduces the risk of the wrong person committing something they shouldn't and increases overall security of the environment. So let's go to the next one, which should be our code owners. So code owners is very similar to our protected environments feature here. We now support the assignment of code owners to files to indicate the appropriate team members responsible for the code. Again, in True GetLabs MVC, we added these definitions into 11.3 and it prepares us for the future releases that will help to enforce internal controls at the code level. Moving on to Epic Forecasting with Integrated Milestones, we have the last 11.3 highlight specifically around Epic Forecasting with Integrated Milestones. If you're using the PPM capabilities that we have today, you'll know that you've always been able to establish planned start and end dates at the Epic level. With 11.3, you'll be able to gain insights into potential slippage in Epic delivery by analyzing the work that is scheduled through the milestones. You will also be able to understand that delta difference that change between what you thought you could deliver at the Epic level versus the milestone work that's scheduled to deliver. This will also enable faster, better decision making on what can be delivered and what plans need to be adjusted. Okay, and then lastly, we have some additional enhancements, some of which we will demo today with Dan. We have the first one, if you recall in the beginning of our presentation, we talked about AutoDevOps. AutoDevOps is that pipeline that automatically is generated. One of the new enhancements that we added into this release is that we are enabling this by default. So go ahead and take a look at this feature and function and how it works in this new release. Additionally, we have included interactive web terminal for Shell and Kubernetes runners. This is, you know, pretty techie feature here and Dan's going to highlight this throughout his demo. And then we have our, if you're using the Web IDE, one of the new features and enhancements that we have there is you'll be able to use templates in that Web IDE. So myself as sort of a non-technical user of GitLab, I love using this new Web IDE. So again, if you haven't, you know, done this or used this feature within GitLab, you know, definitely take a look at it, especially now that we have the file templates. Lastly, we have in 11.3, we now have the SAS support for Groovy as well. So now from my dialogue about what's new, let's take a look and see what Dan has to show us in the demo. So I'm going to stop sharing Dan and I am going to turn this over to you. Thank you very much, Tina. Give me just a minute while I get my desktop sharing set up properly. As I do that, you might see strange parts of my screen zipping by. Okay, so you guys should be seeing a browser in your window. I definitely see it Dan. I think we're good. Okay, great. So thank you everyone for joining us. Excuse me. I'm really excited to show you what we've got here. I'm going to start with the first thing that that was on the list that Tina talked about, which is the Maven repository being built right into GitLab. This is a Maven compatible binary repository. And we're going to start by just, we're sitting on a project here, which just is a sample project for exercising this new capability. To quickly just jump over to this tab here. This is the release announcement that was mentioned earlier. And if you go down to the information about the Maven repository edition, there is a link to this sample project. So you're welcome to pull that down and play with it. Check it out. I did make a few configurations to the project on the way. So I'll point those out. And you can go back and watch the video and see what I did. So in this project, we really have just a few files that let us define what we're going to do with Maven. And then we have a few small source files of really not much consequence because the point is really to show the creation of the artifact and then pushing that into the repository. I'm going to pop over here to where you would find that binary repository and that's under packages. So that has to be enabled both at the instance level and the project level. Once your setup is enabled for that, then you can you'll see this packages. This is a new item on the menu system here. And if we take a quick look at that. Right now I have a couple of things in there just to start us out. Really one thing, this is the representation of the artifact, and this is a version of it. And if we go into that version of this artifact, I can see that we've got the pretty typical Maven set of information, the group ID artifact ID, the version information. This is really what Maven uses as metadata as it says here to find what you're asking for and how you ask for it. But I can also see the files that are underlying it. At this point, I cannot click into those files or download them or get them. But that is something that we are looking at. We do have an issue open for that. And as Tina mentioned, we like to work in NBC and get your feedback and input as you've used the capabilities so that we can properly steer these features so that they fit exactly what you need. And we continue to build this out. So this is a representation currently of an artifact in the repository. I'm going to leave that there on that page and we're going to go ahead and take a look at some of those files. I'm going to do that by going to the Web IDE because I like it too. I am a VI guy, command line guy, but you know what I'm doing, the editing and whatnot, it's pretty handy for a lot of reasons. One is it lets me get to a lot of the files and have them up at the same time if they're typical kind of IDE, but I didn't have to set up my development environment. So the source information is where we have our files. No big deal. This is our code, the important stuff. We'll start by taking a look at the authentication authorization settings, which is in the CI underscore settings file. So you add this. This is all kind of typical Maven configuration. The key here, though, is that you can, by your choice, decide to authenticate by either a personal access token or by CI job token, which is something that our system generates so that you can actually authenticate to the repository using the job token of your current running job. And this will talk about how that gets replaced in just a minute. In the POM XML, which is also, again, typical Maven configuration, we've set our repository information to point back to our host, and that is the host that we're on, to Nukey host. And beyond that, you have, again, kind of your typical sets of information, your group ID, artifact ID, packaging type, and then here we've got our version information. So this is the one.io. So that's pretty much it. Again, pretty typical setup. Then the magic happens in the CI YAML file. So this is actually what you would write in your pipeline. This is just our little automation to exercise this feature. And what we're doing here simply is we're setting up our Maven authorization. We're replacing the job token, the CI token with the information. So we have the authentication information and the project ID. This was, I forgot to mention that. That was also in the POM ID. So right now what this does is this creates a repository per project and you can go across projects to get that information out and get that pulled down into whatever you're working on. But right now it's per project and there is work being done to have it go across projects at the central repository. And then we, in our exercise here, again, basically simply do a Maven deploy, which will do all the work to build the artifact and then push it into the repository. So what we'll do here is go to our POM file. We'll do a quick simple change by just up in the version number. Commit that. I'm just going to be bad and commit it to master to save everyone the excess waiting. One thing that you might notice in our CI YAML file defining our pipeline, we said we only want to do this when we are doing master branch work. So that prevents us from creating artifacts for every single commit and pipeline that gets run and only creating those artifacts and pushing them into the repository on emerges to master to master branch. So another cool thing about the Web IDE while we're here is I can see the pipeline right from here. I don't have to go to another page. I can see that. Oh, it's actually already done. And what it did was basically pulled everything together, downloaded it, built it, and then uploaded it into our repository. So if we go back to our repository here and do a refresh, there it is. So this is our new artifact that's been added and that you can now pull out. And the value of this, of course, is that we talk about compliance. If everybody builds and then stores their build artifacts on their local system and then hands those off from person to person, we lose consistency. So the idea of a central binary repository holding the build objects is that we can easily share them centrally from a central place and make sure that we know what version we have and that it's effectively immutable so that we are keeping track of the versions of things that we're working with. Okay, and so that is what we have right now on our, on the, the new addition of the Maven compatible repository that's been added into GitLab and look forward to continuing to see that build out. I knew you would not disappoint on that demo, Dan. Thanks, Tina. So let's see, switching now to something else. So the other thing that was a big headliner, which I think is really cool, is the protected environment. Now, why protected environment? So GitLab is made so that everyone can collaborate in getting the value of their software changes delivered to customers. And this effort includes operations folks every bit as much as important in that effort as development folks. So, so we've, as he's mentioned, we've been in the last year or so we've been kind of building out that side of it because we started very strong on the development side and continue to be. We also want to make sure we have the full end to end. And so part of that is making sure that we meet the needs of the other side of the partnership, which is the ops side. And that's the reason that we added protected environments. It's important to be able to lock down environments like production to make sure that any changes are well controlled. And that's to think that the environment is solid, and then have some errands change go to it that, you know, takes down the website on the most important day of the year or anything else like that. So, just because a developer can write the code doesn't mean that they should be able to change the production server whenever they want. They can change depending on the culture of the organization and maturity level that they're at. However, there is a fact that many IT organizations are required to keep separation of duty so that the code writers cannot be the same people pushing code to production. So we've added the ability to protect environments so that that can be managed better. So when an environment is protected, then only approved users or groups can execute deployments to those environments. And that's what I'm going to show you here. I'm going to actually switch. So I'm in a particular project update hello controller. Well, sorry, I'm in the project spring app one. And this is actually the change that that was made. I'm going to switch over. If you notice that I'm basically just in an incognito window because I'm acting as a different player right now. So I've got two users. There was myself on the other browser window. And there's this guy, just a dev, just as a nice guy. But we don't want him to be able to just push his stuff into production whenever he wants. So here we're looking at a pipeline and auto DevOps pipeline actually that has run its course. It was set to do automatically everything all the way up to staging and then stop and wait for somebody to roll out to production. And we have the choice of doing 1025 50 or 100% of production at once so we can manage that as well. But you can see here as, as just a dev here. I've got the ability to press play and actually send it along its way into production. Now, that's not what we want in this situation. So we're going to go ahead and fix that. I'm going to switch back to my user who is a maintainer of this project. So I have the ability to do this. You can see I also have this ability to go ahead and send it through. But we're going to go to settings CICD. We're going to go to this new setting for protected environments select production and then choose who's allowed to deploy. So I can say groups. So these are groups are roles that are set up or I can pick individual users. I've only got two on here. I'm going to say I'm allowed to deploy but just as it's not and I'm going to say protect. So now it's going to give me that list so it says okay so you've got production protected just be aware. Great. Hop back to the pipeline. And actually we don't care about my, my pipeline because I'm still able to, to, to deploy. But more interestingly, we switch back over here. Again, we're on our, our dev person. And we refresh their view of the pipeline. They're no longer allowed to, to push to production. They can try, but it will stop them here. And likewise here. And also in the other places where usually you can roll a production, a deployment from, for example, our environment deployment dashboard. If production has nothing currently, I would normally be able to say, okay, from staging, I want to go ahead and roll out, but I'm not able to do that as this user anymore. Whereas, again, as myself, who's a maintainer of the project, I can hear, and I can also do that to 25% roll out. Anyway, so we think this is really great. This is super important. The, the work being done to code owners, which also gives us more checkpoints on the other side of that of this, of this dance here. But this is super important for a lot of reasons in helping to make our production environment stable and helping to keep separation of responsibility, which while it's not a legal matter is one of the most of the gendered bodies like certifications like PCI and FISA and all that do look for that kind of, do look for that kind of capability. And we think that is a cool addition. So moving on next, moving on next, we're going to talk about the IDE a little bit. So we've popped in now that a few times. I'm going to spend a little bit more time here just a bit. I'm in the web ID. I'm actually going to go back so you can see how I got there. This is just a project in the project here. And from there, I can jump straight to the web ID to start working on, on files. If I am in the repository looking at the files, I can actually go into here. That's a really interesting file isn't it. Right. And I can make edits from here, which is the web based editing that we've always had. I don't want to do it that way. I can also launch into the web ID from here. So the several entry points. If I enter from a file, it will pull it up for me. But the web ID is great. If you guys haven't seen it, definitely check it out. We're continuing to add to it constantly. You saw earlier, I was able to pull up the pipeline that was running in 11.2. I believe it was. We released the client side visualizing visualization of the code so that you can actually look at and manipulate your code and see it in the simulator. The code sandbox right in the IDE. That's very great stuff. So one of the things that we've added here is we've always had this ability to, when you're creating a new file to have a great many templates available to help you get started. And that's been added to the web ID. So if I wanted to add a new file here, like maybe a license file, I can just simply click on that, give it a name. And we've got four different types of templates right now. The gitlab.gitlab-ci.yaml, which is how we define our pipeline. And .gitignore, you guys are aware of. License file and Docker files for defining how you build out your Docker images. So since I've said license, let's go ahead and look at that. It's going to take me to here where it's saying, okay, great. So you said license type, go ahead and choose the template. We've got lots and lots of templates. So with licenses in this particular case, right, we've got all of the open source licenses and unlicensed, which I just inadvertently selected. Lots and lots of licenses and you can search through them here. Let's say we take that one, maybe we want to alter it. And then basically I've added that file. Once I commit, I've saved it and that's done really easy. Likewise, I can change that. You can look at the different templates we have for defining pipelines. We have Android pipelines and this is the, this is actually the auto DevOps pipeline. So if you ever want to see what's happening automatically, automatically behind the scenes. This is actually that file that gets run when we run, automatically run a pipeline for you. We put this here because totally happy if you want to take this and edit it and make it your own add to it, you know, add stages and jobs, change how it's running. And so for different languages and different types of pipelines that you may need, we've got lots of different built in templates. Same thing for Docker files. Again, how to build Docker images for a lot of different stuff. Now that gets you going pretty fast. I think that's really neat. Now there's one piece here that I've been kind of going past real fast because we kind of stuck it at the top. But you notice there's a couple here, custom Docker one, custom Docker file two. You can see in the CI YAML files, right? Here's a couple of custom ones. And this is really neat as well, which is added also in this release, which is not only can you get your developers and all of your stakeholders that are working on the code, get them going faster by starting with templates. But you can also actually add to the system templates of your own that appear then for them to pick. So everything below these custom ones are what we provide. But you're able to add in your own. So pretty simply by defining, we added this capability for doing project templates in the last release. And so now we're also doing this for file templates. So just by defining a project space. Like shared templates is where we actually have the project templates. And then, and then I don't remember where I put the, but the, the, the other template spaces is similar. And it. So the file templates project has been set at the, at the, at the instance level to get lab instance level. And there's a small structure that you can define that where you put Docker file license, et cetera, the kind of files you have. And then you put your templates in there and those will magically show up available to everybody to get them a jumpstart and getting working. Okay. That's what I have to show you today. I think let's switch over to Q&A. All right. I'll take over. Thank you so much, Dan, for the awesome and informative demo. So I think we have a question come up in the Q&A from Mateo. Mateo asks, we saw how to publish Maven artifacts, how to set up a project to resolve Maven dependencies with GitLab. If anybody want to take that, Dan, Athar, Tina. Yeah, I can, I can say that. Hi, Athar here. So we actually only support pushing Maven artifacts to the repository at the moment, but dependency support should be up and coming in the future. At some point, it has been discussed on the linked issue in the release blog post. So that's definitely something that's on our minds. So yeah, just watch this space. So to be clear, you can reference and pull a file back out, but having a dual dependency management for you is not there yet. Thank you so much, Athar and Dan. I think we have another one from Sai, Harsha. Basically, I ask, can we do merge and rebase in Web IDE? You can kick off a merge request, but at this point, we don't yet have the ability to actually do merge and rebases yet. That's something if we hear everybody wants, we will be able to add. I'll also point out too, while I mentioned that this was the Web IDE was open source separately so that like everything we do, but there's a separate group that works on it as well. And we're always looking for great ideas and contributions as well. But that is something, you know, we are continuing to build out the Web IDE, we're adding new functionalities to it at every release. So we'll get there. I say, yes, we will love to do a merge in the Web IDE. Thank you. Thank you, Sai, for, yeah, for submitting that idea. We will definitely look into it. I think I'm going to close up with just one question that, you know, we often see come up. So can we protect any environment or just production, just so that everybody knows that. Yes, absolutely. So yeah, so we talk about production because that's the one people mostly want to protect, but you can absolutely select, see if I have that up here. You can absolutely select any environment while you're that you have defined. I don't have it right here. So in the definition, where you define the protected environment, I went through this fast because I knew I was going for production, but if I click and say select an environment, production was one, but it's not available because I've already done that but I can do all my other environments as well. Thank you so much, Dan. Yeah, I think in terms of Q&A, if there's nothing else, then we will move on with kind of the next part of this, you know, would you like to take it? Yep. Sorry, let me just figure out how to get myself off mute again. Sorry about that. Dan, you're still showing. Thank you very much. So I just wanted to let you all know that I believe that was last week, or maybe the week before, maybe a week and a half ago, our head of product here at GitLab recently gave a live presentation, which has now been recorded on the product vision for 2019 and beyond. I put the details up here. It's a blog. He's written a blog on it as well as we have the video up on our website for you to view. So if you're interested in kind of where we're going, not next month or the month after, but sort of that product roadmap on out in time, please take some time to read it and see where we're planning to go with our GitLab AutodevOps journey. On that note, thank you very much for your time today, everybody, and I'm going to turn it over to Agnes to close things up for us. Thank you, Tina. Welcome. So we'd love to hear your thoughts on today's webinar. So please fill out our webinar survey, which I'll drop in the chat. Also, we'd like to invite you to sign up for a free trial of GitLab Ultimate. We hope you're excited to see what your team can do with it. I'll chat that link as well. Tina, yeah. And finally, if you have any other questions, don't hesitate to reach us via our sales contact page about.gitlab.com slash sales. That's all for today. Thank you so much for joining us.