 All right, happy Monday, happy release day, happy May 22nd and welcome to this platform backend update. My name is Dao Man and as some of you might know, I am the platform backend lead at GitLab and for those who might not know, now you do. Over the last, I'm gonna give you a quick update of what the platform backend team worked on over the last five weeks and what we are planning to do in the next five weeks. First in the last five weeks, on April 22nd, we released GitLab 9.1 exactly a month ago with such features as Product Protected Tags, Microsoft Teams Integration and a number of performance improvements. Of course, there was far more stuff in this release than just these three things, but these are some of the bigger things that my team specifically worked on. If you wanna get an idea of what we worked on besides that, check out the little more link that should be in the document that will be shared along with this video or you can just have a look at the blog post that is linked from the GitLab 9.1 link. Then we also finalized GitLab 9.2 on May 7th, exactly two weeks ago, and we are releasing GitLab 9.2 today, which I will talk a little bit about in a minute. And then on May 8th, we already started development of GitLab 9.3 as well, and I'll tell you in a minute as well what we are planning to put into that. So today, on this 22nd of May, as every 22nd of the month, we are releasing a new version of GitLab. Some of the major things that the platform backend team worked on are, first of all, an internationalized cycle analytics. That means that the cycle analytics page is now set up to support different languages than just English. To start, we have introduced Spanish and German support for this page, and then over time, we are slowly internationalizing more pages inside GitLab until the product is translated to such an extent that we can actually start advertising it as multilingual. At this point, the support is still relatively limited since it's only one page, but at least this sets up the groundwork for more pages being translated. And this was something that was worked on by Ruben and Phil primarily. Second, we have a more robust backend for repository push mirrors. As you might be aware in Enterprise Edition, we have a feature called repository mirror, and this has two flavors. One is the push mirrors, where every time a push is created inside GitLab, every time data is pushed into GitLab, an other Git repo on a different machine is deemed to the mirror, and this is automatically updated. We also have repository pull mirrors, which means that GitLab gets automatically updated when another remote repo, for example, on a different GitLab instance, or on GitHub or Bitbucket, or another hand rolled Git solution is updated. GitLab will automatically get updated. But with 9.2, we are bringing a more robust backend, which means that the GitLab instance will not be under so much stress every hour when every repository tries to update itself, for example, but it's a little bit more sensibly spread out over time. Thanks, Tiago, for working on that. Third, we have redirects after user group or project is renamed. This is a feature that has been requested for ages, and we finally have it. And what this means is that any of these things is renamed or a project is transferred between two groups or for whatever reason, the old URL doesn't work anymore. If we'll continue to work in the browser, the user will get a flash message, alerting them with the change and asking them to update any bookmarks they might have or other links they might have. And one thing that you'll be happy to know is that in 9.3, we are expanding this to work with Git remotes. So if you push to a Git remote that was renamed, the push will re-reject it, but the push error message will tell you run this little command to update the URL to the new URL. There's not the 9.3 yet, but that's kind of 9.2 yet, but that's gonna happen in 9.3. And thanks, Mike, for working on that. Mike actually started working on that before he joined GitLab, but he joined GitLab about five weeks ago and he finished this as his first feature, first issue he worked on at GitLab. Fourth, we have a number of disaster recovery all by improvements. These are mostly UI related, but as always, there are also behind the scenes changes there. This disaster recovery is a feature of GitLab Geo, which is an enterprise edition premium feature and we are working hard to make this a disaster recovery solution that our customers can depend on if they want that kind of thing. You can click that link to find out more about exactly what changes were made, but this is an effort that's been going on for months and months, and every month we are making improvements there. Thanks, Douglas and Gabriel for working on that. Then we also have a fifth, but not least, we have advanced search with Elasticsearch, which means that if you have Elasticsearch enabled in your GitHub instance, which you can do if you have enterprise edition starter, you can use advanced search, which means that you can use end, you can use or, you can use negation, all kinds of things that you click that link, you'll see more detail about exactly what this feature looks like. And thanks a lot, Nick, for working on that this month, besides all of the other Elasticsearch improvements you have been working on recently. If you've been using Elasticsearch as an EE customer, you will likely have found that performance and the quickness of it updating after a push, et cetera has improved dramatically over the last couple of months, and this is mostly thanks to Nick, as well as for Lira, you have been helping out there. So that's 9.2, what we're releasing today. If you wanna know more about what's in 9.2, things built by the other teams, for example, or just things that were nice, but not big enough to mention this particular video, feel free to check out that GitHub 9.2 link at the very top. So then on to the next five weeks. In the next five weeks, we intend to enable Elasticsearch and GitHub.com, which means that that advanced feature also becomes the GitHub.com. I also already had this in the next five weeks sheet for last month's update, but because of some resource constraints, we were not actually able to get this done in time, but in the next five weeks, we hope we will. But this will dramatically improve search performance for all of GitHub.com, project-wide search as well, and search on the entire instance. It will be much, much faster and it will be much smarter about it's fine, what you're looking for. Since what you're looking for doesn't need to be an exact match, Elasticsearch is smart enough to interpret your query, interpret your search terms and find the thing you're most likely to be looking for. Then on June 7th, we plan to finalize GitHub 9.3 and on the 22nd of June, we intend to release it. The first thing this will bring is a more robust backend for positive pool mirrors. This is kind of the other side of the coin to repository push mirrors, which I was just talking about, but repository pool mirrors also has this problem where every hour, every mirror repository tries to update itself, which means of course that there will be a huge memory use and CPU use spike on your machine and with this more robust backend, which is pretty much a complete rewrite, we intend to expect this a little bit more over time, which should have your GitLab instance less, you know, less, less, less. I, you know, I can't find the words, but I'm sure you know what I mean. The thing that you'll, the thing that you'll notice here as a user is that once this is deployed, GitLab will not have this little spike of activity every hour, which affects users, web requests as well. So right now it sometimes happens that on this hour when everything's updated, web requests get slightly slower and this will be a thing of the past when this goes in with GitLab 9.3. Another thing we're gonna work on for enterprise position premium is to improve our audit logging functionality. One thing we're doing is adding a global audit logging page to the admin area and other things we're doing are just kind of looking through everything that we currently log, everything that will be nice to log to log more things that our customers might be interested in. In a future iteration, we'll also improve the kind of the ways of exporting this audit log, for example, to a syslog D or to something similar to that, because right now it's only inside GitLab itself, which is a little bit limited if you actually have auditing requirements for, you know, because of the industry that you are using your GitLab instance in. The third thing we're working on is an internationalized project and repository files page, which is the second step in this, you know, internationalizing all of GitLab efforts. This is something that Bob is working on currently and it's kind of the same idea where we convert this whole page to look up all of its strings in a translation file and then we add German and Spanish translations. The reason we add Spanish and German specifically is on one end, because Spanish is, of course, one of the most widely used languages in the world, but the reason we use Germany is not just because it's, you know, spoken in Germany and Austria, et cetera, but also because Germany has the interesting property or German rather has the interesting property of being a lot longer than English, like a lot longer in number of characters needed to say something, really. So that means that our user interface, which we've built for English strings, might break down in interesting ways if we introduce German strings and that's exactly why we are doing German as well as Spanish. The fourth thing that is being worked on is new per group, a user, a EE license back end for GitLab.com. This is not something that you will care about if you're just a customer of GitLab, running GitLab on premises, but this is extremely important for GitLab.com since we will be selling bronze, silver, and gold plans where users will be able to buy certain enterprise edition starter and enterprise edition premium features per group. So they can buy a feature, they can pay a monthly fee and if they do that, their group and other projects inside that group will get access to a feature like file locks, et cetera, et cetera. But this is an effort to make the GitLab.com more interesting to these kind of enterprise customers who wanna use those features. Fifth, we are introducing, or rather we are reintroducing LDAP user sync at login. A wide ago, we had a refactor of LDAP user sync, which meant that all of the user's permissions, if you use LDAP with your GitHub instance, are synced on a schedule. So for example, once every hour, I don't know exactly what the time is there, but let's just go with once every hour, which means that it could take up to an hour for any changes inside LDAP to actually propagate to GitLab. We did this because of performance reasons that it's worked pretty well, but this also means that if a user logs in again, they might have access to projects, they shouldn't have access to, or they would have no access to projects, they should have access to. So now besides the scheduled sync, we also do a sync every time a user logs in. So if a user tells us like, hey, I can't see my project because the LDAP sync is behind, instead of telling them, well, wait an hour, we can just sell them or you can tell the people within your company, sign out and sign in again and you'll automatically get this access. Six, we are also working on performance issues, specifically on the blob project list and the user and group activity pages. Of course, we're working on performance issues every month and we are kind of trying to go with the most urgent ones based on exactly how slow they are and how frequently used they are. The project list and those activity feeds are of course really big features of GitLab. It's kind of the page where you land when you go to the root page of your GitLab instance and this will be a great improvement instead of having to wait a couple of seconds for these to load, they will be much, much faster and we're also improving the performance of loading blobs. Blobs are not particularly slow right now, but because blobs, which are basically files and sector GitLab repo because they are rendered using syntax highlighting, they're not really slow but they take a relatively large performance hit on our machines because the syntax highlighting is relatively complex and involved. So this will not make the page much faster, notably but it will at least hurt the GitLab instance less when someone is viewing a file like this. Of course, this is a selection of six things we're gonna be working on. Other teams have awesome stuff in store and of course my team does the same, the platform team does, but check out that more link and you'll find things or just filter by the 93. I'll zone in GitLab and you'll see everything that we are planning to work on during this month. And then on June 8th, after we have finalized 9.307, we will start development of 9.4. So yeah, that's kind of the next five weeks and then in five weeks, I hope to tell you exactly how much of that we managed to get done and what we're planning to get into 9.4. So now's the time for questions. So I'm gonna have a quick look at the chats, see if anyone asked anything that hasn't already been answered with someone else. There's questions about Elasticsearch. I think that the most appropriate person to answer those will be Nick, who I see was already both in the conversation. Let me see. Nick suggests adding a right to left language. I'm sure this is something we'll do at some point, but this brings a lot of complexity with it that we can hold off for a while if we choose to just support, left to right languages for a while. So as Yop points out, not in a long, long time that we're gonna do this. All right, that looks like it for questions and no one has added anything since I asked for questions. So with that, I would like to thank you for your attention and I will see some of you in five weeks when I have another update like this and others of you in 15 minutes in our GitHub team call. Have a good rest of your day.