 Hello, my name is Maria and I'm the Developer Advocate at BotCube and today we'll be talking about how BotCube can empower your developer productivity with their new ArgoCity integration. Just a little bit about me, I'm a Developer Advocate at Cubeshop and I work on the BotCube project and BotCube is a collaborative Kubernetes troubleshooting tool. I have a background in Industrial Systems Engineering which will come into play a little bit in this talk. I also have a background in Software Engineering and Developer Relations. So I just want to make sure everybody's on the same page about what GitOps is, maybe clicked on this by accident, you have no idea what GitOps is, but just a quick refresher. GitOps is an operational framework that came from DevOps and it's based on four main principles that it's declarative, that it's versioned and immutable, it's continuously reconciled and the apps are pulled automatically. So that's all you need to know for this talk. So here are some organizational challenges of working with GitOps. Like anything in the cloud native landscape, it's going to be very complex and because of that complexity it's very difficult to audit and get to the source of a lot of these issues because if you have multiple layers of complexity and people having access to different things, it can be very challenging to find the root cause of a lot of your issues. So it can be very difficult to troubleshoot quickly and get back up and running. Additionally, it can be very challenging to scale, so Argo and GitOps and all these tools require a lot of technical expertise, so it can be very difficult to scale and it requires a lot of technical requirements for every workflow that you build, so it can be very challenging to scale for the average engineering team. And alerting and monitoring can be challenging as well, so if you don't have a good setup, it can be very challenging to filter those alerts, so not everybody needs the same types of alerts. It can be very challenging to get the right amount of information at the right time. And this goes along with the last challenge about context switching, so a lot of times people are using these GitOps tools in tandem with a tool like GitHub or GitLab and most of the time communication is not solely in GitHub, so it's required to go back and forth to get any proper alerting or when you're managing issues, you have to go back and forth between GitHub, your communication platform tool to check on your team and whatever workflow you have, whether you're on-prem or working with one of the cloud providers. So here are some of the challenges. In the core of our presentation, developer productivity, and at its core it just means that its developer productivity just means efficiency and effectiveness where software developers accomplish their tasks and contribute to the development process, so just measuring the output of developers in short. So how do we measure it? There's lots of different ways you can measure it, but for the sake of this talk, we're going to be measuring it based on three different criteria. Number one is deployment frequency, which just means how often is code deployed to production. And this can be representative of the health of the engineering team, so if you're able to have faster releases, it typically means that you have a good CICD pipeline and CICD process. Additionally, your mean time to recover. So it's the average time it takes to recover from a failure or an outage. And if you have a shorter mean time to recovery, it usually means that your team is more resilient, more reliable, and more dynamic. And then lastly, your lead-slash cycle time. So how much time it takes to go from the beginning of a task to the completion. So in our team, it's like measuring sprint cycles. So how long does it take? How many mandates does it take to get a new feature out to fix bugs and all that sort of thing? Here's the current state of things. After working in this space for the past two years and talking to a lot of developers, I mean, everybody knows that Kubernetes is very complex, but then when you add an additional layer of GitOps frameworks and having to follow and use different tools, it can be very challenging for the average app developer who just wants to make sure their apps are healthy. So when you add all this extra load, and frequently, most of these companies don't just use Kubernetes bare metal or Argo bare metal. It's usually in tandem with multiple different tools. Maybe you're using Argo and Helm. Maybe you're using Prometheus, Helm and Argo. Or maybe you're using AKS and EC2 all in one place. So it could be very challenging. I feel like this tech stack just gets longer and longer. So there needs to be a solution for developers who are just really just trying to keep their apps up and running. And then also for the platform engineering side of what happens when your team is not as available, do your developers understand what the work that you're doing. So what does that communication look like? So when you add complexity, it's very communication-tensive breakdown. So this is where Argo CD comes in. So in short, Argo CD is a declarative GitOps continuous delivery tool. It allows DevOps professionals to simplify and automate their deployment processes. It's really great because you have this nice UI that you can visualize the help of your apps. And it really helps reduce errors by being able to visualize what's going on in your infrastructure. And it helps simplify different deployments. So that's just Argo CD at its core. And what is Bokube and how does it help teams improve developer productivity? So Bokube is a Kubernetes troubleshooting and monitoring tool that allows developer teams to work more efficiently. And how it does that is by allowing you to act, to receive and act on your events in the same communication platform. So you're able to use Bokube in tools like Slack, Microsoft Teams, Discord, and Mattermost. And you're able to have an insight to that process without having to, your troubleshooting process without having to context switch. So you're able to collaborate with your team and give everybody the same amount of context that needs it. So you're able to filter your alerts, you're able to run automations and have an insight to what's going on in your cluster without having to be a Kubernetes expert, without everybody having to have the same open access to the cluster. You can have it in a gated environment where people can just watch notifications. And it's really great for reducing manual processes because when I'll talk about it a little bit more later, it allows you to audit. So you're able to continuously improve on different steps that you do over and over again when you run into the same amount of problems. So just more on overview. So I talked about how you can receive and act. So Baku is split via source and executor plugins. So what this means is these source plugins. So a source plugin can be like Kubernetes events, Prometheus, and it watches all these alerts and hooks it right into your communication platform tool. And then the executor side allows you to act on those alerts that you got. So one great example of working in tandem. Let's say you're using the Argo CD source plugin and you see an issue. You're able to act on that alert by easily running a kubectl command all within your same Slack platform without ever having to change context and switch screens. And through the audit log that I mentioned briefly, you're able to see all that information in one place and get an insight on the performance of your team and who's doing what and having access to your cluster at all times. So how they work together. So without Baku, Argo's notification setup can be a little clunky and a little hard to get set up if you're not super familiar with the Argo ecosystem. So what Baku does is help simplify that process. It helps simplify the configuration. So making configuration changes. You're able to access the Argo CD UI right from your communication platform tool. You can filter your notifications much more easily. So you can divide by channel. So for example, your front end channel does not need to see the same level of Argo CD alerts as your back end channel. And it allows developers who may not be as Kubernetes native or Argo CD native to still get the information that they need to keep their apps healthy. So here is an example of what the plug-in looks like in Slack. So it'll show you that an app has been created. It'll show you like the sync status and it'll keep you updated on the health of your app without you having to touch anything. So then you can either open the repository or view the UI or run commands directly against that app. So this really streamlines a lot of the manual steps that go on in building Argo CD pipelines. And it gives everybody in your engineering team, regardless of their Kubernetes expertise, access to the information that they need to solve problems quickly. And I think visibility is super important. And that's what mainly improves developer productivity. What you see, you can act on. So a lot of times developers get bogged down by things that they don't understand. So they get lost in the weeds. And BotCube kind of helps shine a shining light onto that deployment process so they can just focus on getting their apps deployed and building interesting code. So in conclusion, BotCube's Argo CD plug-in can help revolutionize your organizational efficiency. So it can really streamline your deployment process by helping developers stay on track and stay up to date on all of their Kubernetes notifications without being overwhelmed. And it kind of follows a belief that software tools should enhance, not hinder productivity. So when you have this ever-growing tech stack, it can be more of a hindrance than a help. So with tools like BotCube can help simplify it and help you work with those tools in tandem. And then finally, by adding automation, you're able to focus on innovation and not just your deployment complexities. So I'm going to get started with the demo. So here we are at our Argo CD demo. We have a application guestbook that we created for this demo. You're able to run a kube control get and a kube control describe. So you're able to see the health status of your application. And then if you want to see more information, you can have the describe log right in your Slack channel. If we want, we can open the repository just to see all of the different template apps. So that's really great for easily navigating different steps of your troubleshooting process. Next, if you'd like, you can view it directly in the Argo CD UI. And there you can get that visualization that I talked about earlier in the presentation. You can sync up your apps and just start getting playing around in the Argo CD UI. And here we're going to play around with what those different changes can look like in Slack. OK, so you see that we have a guest, our guestbook app has been successfully synced. So let's also see what happens when we do some sort of error. What we're going to do is we're going to see, OK, that we have a pod error. And then we're going to delete it. We're going to delete our pod and see what happens in our Slack channel. So let's let that sync. All right, so we have a new version of our app up and running. And that works instantaneously. So this is great for when you have issues and you can see that you're both working on your cube control and your Argo CD all at the same time. And that's part of that interoperability. And it gives you insight on all the errors that occur. So that is the gist of the Argo CD app. And then you can easily delete your app guestbook, which I'll do right now. And then go back to Slack and it says it's been deleted. All right, perfect. Get started with the demo. OK, thank you so much for watching my talk and listening to my talk. You can scan this QR code to get started with Bokube today. It's free. You can get started. And we work with Slack, Microsoft Teams, Discord and MatterMos. You can use it on-prem or with any of the cloud providers. And if you have any questions, you can reach out to me in the Bokube Slack or on Twitter. And yeah, thank you so much for your time and I hope you guys stay productive.