to OMFS lecture series. Continuing with surgical management of jaw tumors, we shall be discussing maxillectomy in this lecture. Maxillectomy is a general term for procedure carried out to reset any extensive neoplasm affecting the upper jaw. So, what exactly is maxillectomy? Total maxillectomy refers to surgical resection of the entire unilateral maxilla. As you know, maxilla is a paired bone. So, resection of unilateral maxilla is termed as total maxillectomy and resection of entire maxilla or entire bilateral maxilla is termed complete maxillectomy. This includes the resection of the floor and medial wall of the orbit and also the etymol sinuses. The osteotomies or the resection may be extended to include orbital excentration. It means removal of complete orbital contents that is orbital excentration, spinaudectomy and resection of the pterygoid blades. So, this is the procedure carried out for maxillectomy. Now, we shall have a look at certain significant structures and landmarks relevant to total maxillectomy. The figure on the left is the lateral view of maxilla. Here a window cut is made to access the interior of the maxillary sinus. So, from this view, you can make out the fronto-echmoidal suture line. Here is the fronto-echmoidal suture line which is above the lamina paparizia. What you see in red color is the lamina paparizia and this is the fronto-echmoidal suture line. It is here along the fronto-echmoidal suture line that anterior and posterior etymodule foramen are located. These are the anterior and posterior etymodule foramen. This line is in correspondence with the level of the flow of anterior cranial fossa. Therefore, it is very important to limit your osteotomy cut just below this suture line. If not there are chances that you will enter the cranium. The image on the right shows the bony anatomy of lateral wall of nose. The inferior turbinate here which is red in color is restricted with the total maxillectomy. But the middle turbinate is generally preserved unless it is involved in pathology. This figure here demonstrates the anatomy of medial wall of eye. So, note here that this is the lamina paparizia. Here is the fronto-echmoidal suture line again as you saw in the previous diagram with anterior and posterior etymodule foramen. Here is the latrimel fossa. Here is the latrimel fossa and this is optic foramen. It is within the optic foramen that optic nerve is present. So, an important thing to remember here is that the posterior etymodule foramen is only 5 to 11 millimeters away from the optic nerve within the optic foramen. So, while carrying out the osteotomy cut, keep in mind the location of optic nerve so that you do not damage it. So, understanding the anatomy pertaining to the skull in this region is of utmost importance in order to plan the extent of maxillectomy and to avoid the inadvertent complications to vital structures. The relevant bony anatomy of heart palate includes incisive foramen which transmits incisive nerve and vessels, the greater palatine foramen and lesser palatine foramen which transmits greater palatine and lesser palatine vessels and nerves and teragoid plates. In total maxillectomy, resection includes that of teragoid plates as well. Moving on to the vasculature. An understanding of the blood supply of the maxilla is very important because it permits the surgeon to anticipate when and where to encounter bleeding and also to plan the sequence of surgery. Surgeon tries to reserve the most vascular parts of the surgery until last in order to minimize blood loss and also to avoid blood covering the surgical field. The only significant vein which is encountered during maxillectomy is the angular vein at the medial canthus of eye. As you can see in this picture this is the medial canthus of the eye and you encounter angular vein over here. The arterial blood supply to the maxilla as you already know is from the external and internal carotid artery. Both are branches of common carotid artery. Artidial supply relevant to maxillectomy are the facial artery or the external maxillary artery and internal maxillary artery which is otherwise called just the maxillary artery. So here is the terago maxillary fissure through which the internal maxillary artery enters the terago palatin fossa. So the two important branches of external carotid artery which is relevant here are the facial artery and the maxillary artery. And few important branches of internal carotid artery relevant here are the anterior and posterior etymodal artery because you now know the importance of anterior and posterior etymodal ferramen. So through anterior and posterior etymodal ferramen emerges the anterior and posterior etymodal artery. So it is of importance here and also we have seen that the optic nerve lies within the optic ferramen. So associated to optic nerve lies the ophthalmic artery. So therefore three branches of internal carotid artery are relevant in maxillectomy those are anterior and posterior etymodal artery and ophthalmic artery. The sensory nerve supply to the maxilla is through maxillary division of trigeminal nerve and the only branch of surgical significance here is the infrarbital nerve as it exit through the infrarbital ferramen. The only other major nerve to be considered here is the optic nerve as it emerges through the optic ferramen. Prior to the surgery a computer tomography of the maxillofacial region is done and it is an important means of determining the superior posterior lateral and medial extent of the tumor and the restriction required. Once a tumor involves the orbital fat or muscle then orbital extentuation is recommended. So as I told the superior extent of the lesion or the surgery is the orbit and the roof of the etymoid. The posterior extent is the pterigoid plates and the lateral extent is the zygoma and intratemporal fossa. Moving on to how the surgery is performed. The surgery is done under general anesthesia with orecchial incubation. If the eye is to be preserved then eyelids are sutured which is also called tarsorephi. A tracheostomy is then done to secure airway for post-operative period. Local anesthesia with vasoconstrictor is injected along the plant skin incisions. The surgery is considered in three stages soft tissue dissection and bone exposure, bone resection and closure or reconstruction. The first step is the incision and soft tissue dissection. Access to the maxilla is generally obtained by designing the classic Weber-Hergosen incision. The typical incision splits the midline of the upper lip but for better cosmetic results incision can be placed along the ridge of the philtrum that extends till the vermilion border. The incision is turned laterally at the base of the columnilla that is from here the incision is turned laterally and then around the alabase. It then extends along the side of the nose to within 2 mm of the medial canthus of the eye and is again turned along the lower eyelid till the lateral canthus of the eye. So this is the basic design of Weber-Hergosen incision. The same incision is extended intraorally through the labile mucosa through the labile mucosa of the upper lip the external incision is extended intraorally. So intraorally the incision is continued through the gingival margin. It is then connected with a horizontal incision which is placed in the depth of the labial buccal vestibule extending behind to the maxillary tuberosity. From the tuberosity region the incision is turned medially across the posterior edge of the heart palate. Here is the posterior edge of the heart palate and from here the incision is turned medially. So this limits at several millimeters proximal to the midline of the heart palate. The incision should not include the mid palate in suture. It ends a few millimeters proximal to it. So from here the incision is turned again anteriorly at an angle of 90 degree. So you have an external incision which is continued intraorally. It connects with a horizontal vestibular incision till the posterior aspect of maxillary tuberosity which is then turned medially and then again it is turned anteriorly at 90 degree. So basically the incision ends at the place where it actually originated or started. The next step after incision is the soft tissue reflection or bone exposure. The cheek flap is reflected till posterior to the maxillary tuberosity. The soft tissues of the face are elevated from the facial aspect of the maxilla using an elevator and the facial aspect of the anterior aspect of the maxilla is exposed. Here is the infarbital foramen where you encounter the infarbital nerve and vessels and they are transited. At the medial canthus of the eye angular vessels are quarterized or ligated adjacent to the canthus. Here you strip off the tissues all the way around the maxilla up till the tergomaxillary fissure which is located at the posterior maxilla but it should not go beyond the fissure to avoid an injury to the maxillary artery. So what is the limit of bone exposure? Supposedly the exposure should include medial wall of the orbit and the orbital flow. Medially the extent is the lateral wall of the ipsilateral nasal cavity and in the ovary the palatal mucosa is elevated to visualize the heart palate and soft palate. You identify the maxillary tuberosity and pterygoid plates which are located just posterior to the maxillary tuberosity. So once you have achieved sufficient exposure at this point soft tissue dissection is complete and the bony part of the maxillectomy can be performed. Coming to bone resection. The sequence of the osteotomies is usually planned to reserve the heavy bleeding towards the end of procedure but it may need to be adjusted depending on the location and extent of the tumor. The first osteotomy is through the inferior orbital rim and along the orbital flow. A sharp osteotome is used to cut through the malaria buttress here is the malaria buttress and the inferior orbital rim. This osteotomy should be placed lateral to the maxillary sinus. This can be confirmed using a CT scan. The osteotome should not enter into the maxillary sinus. Once you cut through the buttress and the inferior orbital rim the osteotomy is then placed into the floor of the orbit aiming for the intra orbital fissure. Second osteotomy is at the frontal process of maxilla and the lacrimal bone. An oscillating saw is used for osteotomy and not an osteotome because the bone over this region is hard. The osteotomy is directed towards butt kept a few millimeters below the level of the frontal ethmoidal suture line. As you can see in the diagram here. The third osteotomy is basically connecting the first two osteotomies. It is done by gently tapping an osteotome to enter the ethmoid air cells at the medial wall of the orbit. So while performing this osteotomy you retract the contents of the orbit laterally. The osteotome is directed posteriorly till the posterior ethmoidal foramen. Remember to keep the osteotomy line few millimeters below the frontal ethmoidal suture line. From here that is from near the posterior ethmoidal foramen the osteotomy is directed inferiorly to join the first osteotomy. So here is the optic optic foramen through which optic nerve exits. So it is important to safeguard the optic nerve as well as the posterior ethmoidal artery. Hence the third osteotomy is also complete. The fourth osteotomy is the palatal osteotomy. A sharp osteotome is used to cut vertically through the superior agriolus and the heart palate as you can see in the diagram here. The placement of the osteotomy is dependent on the palatal extent of the tumor. It is preferable to extract a tooth and to place the osteotomy through the dental socket rather than to place it between two teeth as this might devitalize the adjacent tooth and make the soft tissue closure difficult. The palatal osteotomy is extended to the posterior margin of the heart palate. The next is the osteotomy of nasal septum and it is required only if the palatal osteotomy is placed across the midline. If the osteotomy at the palate is through the mid palatine fossa only then osteotomy of nasal septum is necessitated. This is done using an osteotome or heavy scissors. The final osteotomy is to separate the maxillary tuberosity from the tergoid plates. This is done by tapping with a curved osteotome in the groove between the maxillary tuberosity and the tergoid bone. That is over here. You place a curved osteotome at this area between the tuberosity and the tergoid plate. So the superior extent of this osteotomy is the tergomaxillary fissure. Here is the tergomaxillary fissure which is the superior extent of the final osteotomy. All the osteotomy cuts are complete. The maxillectomy specimen can now be gently down fractured and the entire specimen is removed from its remaining attachments using a large curved scissors. After the removal of the specimen some amount of brisk bleeding is expected which is controlled with local measures and electrocortory. Branches of the maxillary artery in the tergomaxillary fissure area may require ligation. The specimen should be inspected to make sure that complete tumor has been excised. All the sharp bony projections should be smoothened and the palatal mucosa which was retained is used to cover up the medial bony margin. Here is how a maxillary defect will look like. This is the case photograph, the clinical photograph and this is a coronal CT demonstrating the resected lateral nasal wall including the inferior turbinate, the ankinate process, the orbital floor including the infarbital nerve, the lamina paparacea and the anterior apmoid. Here you can see the middle turbinate is preserved. In this case a free fibula flap is used to reconstruct the maxlectomy defect. The surgical obturator which is prefabricated is placed to seal the defect and the obturator is fixed to the remaining teeth by means of interdental wiring. The main cheek flap is then turned back and closed in layers. Orbital accentuation is indicated when the tumor has invaded the orbital fat or surrounding muscles. As you can see in the CT here the tumor has invaded the orbital contents. So whenever orbital accentuation is performed try to preserve the both the eyelids as much as possible. So here the eyelids have been preserved and they are sutured together. Coming to the post-operative management. Patients are kept in an intensive care unit for the first one or two days for cardiovascular monitoring and necessary maintenance of fluids and electrolytes. The patient is kept on liquid diet and instructions are given for maintenance of oral hygiene. Prophylactic antibiotic therapy is advocated for five to seven days. The surgical obturator is removed after 15 days and the wound is irrigated with warm saline and hydrogen peroxide. Any excess skin graft and other debris are removed. Long-term follow-up is necessary. So this is all about maxlectomy and we have thus completed surgical management of jaw tumors. Thank you.


Trust is the next, right, see how it goes. And I probably don't have to tell you this, but we kind of took AI out of the lab, and it's not writing papers anymore, but we are putting it into things that matter, into things like, you know, who gets to go to college and who gets to get parole and who gets to be employed, and it's inside our most critical enterprise workflows. So this notion of actually trusting AI is getting into the forefront, and it's something that in some way, shape or form might make it or break it, because if we don't make it trustworthy, we might not ever be in a position to use it for real. So this idea of equipping AI with trust is really getting into the forefront of, you know, how we design algorithms and how we implement our systems. When we look back, typically in machine learning, we thought about trust as being creating something that is very accurate, so we would say, hey, my algorithm is 99% accurate, or oh, IG, I have this algorithm that beats human benchmarks, so accuracy and performance. As we move into the next phase of using AI for real, we know that it has to be much more than that, right? We need to make sure, in order to trust a decision made by a machine, we need to make sure that that decision does not have a potential to harm individuals and communities. We need to make sure that we actually understand that decision and relate to it because we don't accept things that we don't understand. We also need to make sure that no one actually tampered with the system and that that decision was not manipulated. And finally, there has to be kind of some information preserved in the lineage of our system that kind of can be later reproduced or validated or certified so that we actually understand what happened. So what I'm going to do today is kind of talk a little bit about our works in what we call these pillars of AI, the fairness, explainability, adversarial robustness, transparency, and also how we actually make it and solve it not only at the algorithmic level, but how do we really incorporate it into the true fabric of the AI system? How do we make it a part of the actual AI lifecycle? Starting with fairness and rightfully so because it's all over the news and papers and lots of bad examples of pretty bad usage of data and algorithms. I don't probably have a tell you this either. You know it. AI and machine learning learns from data, data that we create, we collect, we generate the data that most of the time reflects our prejudices, biases, whether they are intentional or unintentional. It reflects the fact that collecting data is costly so it never fully represents this society. It reflects the fact that it's cumbersome so that data is difficult to get. And as such, these imperfect data sets applied to train the model lead to AI learning our biases and prejudices and automating them and scaling them more broadly. Interestingly enough, even though it's a very important question, this notion of fairness did not get a lot of attention until recently and it's only within the last couple of years that we are seeing machine learning community beginning to think about how do I actually really deal with biases in models and in data. Here is an example of our work. A technique that kind of attempts to take a bias data set and create a less biased version of itself. So it's really an optimization problem and it's kind of transforming the data subject to a fairness constraint, subject that you want to have a minimal distortion of individual features and also this notion that the input and output distributions have to be fairly close so that you can actually learn the model that was supposed to learn that kind of stuff. Now, this is just one algorithm. The community is coming with more and more stuff and this is a kind of a nice diagram from Kathy O'Neill's paper that shows how fairness or actually how bias can be mitigated in various parts of a machine learning or data science flow. There are ways to treat a data sample and build a more fair model. There are ways to actually build models that are directly fair. There are ways to use a bias model and then just observe the outputs of it and fix them and correct them in some way, shape or form. Also this definition of fairness is kind of hard because you know statistical definitions of fairness. There are so many of them, many of them actually often conflict. So this actually puts a lot of burden on people who are creating models and AI systems to actually understand and deploy and implement this correctly. So in addition to the algorithmic work, a great deal of focus in our research kind of focuses on how do we help people do this right? How do we develop practitioners and users and communities of users that will begin to understand how fairness feels and how it should be implemented? So last year, for example, we created a toolkit called AI Fairness 360. It's the most comprehensive open source library of fairness algorithms. It includes over 70 different definitions of fairness, fairness metrics. It has 10 state-of-the-art bias mitigators. And what's even more important, it puts a lot of emphasis on tutorials and education showing the practitioners how you actually address a problem of bias in a particular application or in a particular problem. I want to be very kind of clear about it. I don't want to take a total technocratic view of fairness and saying, hey, having an unbiased machine learning model takes care of it. No, no fairness is a part of a culture. It's part of best practices. It's also part of growing practitioners and scientists who understand that. Just like once upon a time, feature engineering was difficult, but we kind of got it to a point that it can almost be automated. Perhaps something like that can happen to understanding fairness in AI systems. So a great deal of our work actually is really directed towards tutorials, educations, and working with the communities and working with all of the researchers around and therefore this notion of putting everything in open source and making these tools available to everyone because there are kinds of problems in AI that one group, one organization, one research lab will not be able to solve and it's only us as a community working together that will make some sort of improvement. I'm just going to skip a couple of slides in the interest of time. Having said that open source matters, it's also important to create tools that instruments these kinds of concepts and make them kind of automate them inside the enterprise or practical workflows. So just as we have recently released the open source toolbox, we've also implemented some of these models in our products. This is an example of a product called Watson OpenScale. It's a dashboard for monitoring a performance of an AI model in the enterprise and it allows actually the full automation of fairness checking within the life cycle of the model. Moving to explainability, because if I said that the fairness is difficult, explainability in a way is even more difficult because we as humans have this fantastic vocabulary of creating explanations and giving pointing fingers and showing contrast of explanations and doing a whole bunch of stuff. This is a snapshot of GDPR where it says, so that's kind of a law, right? It has to be obeyed and it has, every user or consumer has the right to be provided with meaningful information about logic involved in the decision. And we recently, actually last year, we hosted Paul Nimitz, one of the authors of this particular paragraph in the lab and we said, what did you think by meaningful? And he said, well, I'm a lawyer, you are computer scientist. That's kind of difficult. So this notion of meaningful is very difficult to capture, right? Meaningful means different things to different users in different applications. Let me give you an example. If I'm a doctor diagnosing a patient, I actually will benefit from seeing the cases of patients who are similar to that person because this is how a doctor's mind works. I relate to examples. If I'm a user, actually a consumer whose loan was just denied, what I really want to know is why was my loan denied? I don't care about anything. Why was my loan denied and what can I do to reverse the outcome? Having said that, if I'm a regulator probing into that exact same system, I don't want to know about one data point. I actually need to understand the behavior of the system as a whole in order to understand whether this system actually violated the regulatory constraints. If I'm a developer, I actually may want to visualize the flow of information through the system because that's the only way I can understand it. It's really doing what's supposed to be doing. So what we really want to do is actually arm our AI systems with this kind of expressive toolkit, so making sure that we can actually support all these kinds of various types of explanations and this expressiveness that we as human beings possess. So a great deal of our work today in the lab goes towards actually coming up with ways to do so. So this is kind of a very short snapshot of recent works in explainability, recent techniques contributed by our teams that kind of attempt to do what I just described. So for example, Boolean decision rules creates a directly interpretable model that actually consists of a set of Boolean rules that capture the mechanics of the problem. Explanation based on missing, that's an interesting one because sometimes we make better explanation by pointing what is not there. The reason why we have a Sherlock Holmes is if you recall a book called The Adventures of the Silver Blaze, this is where Sherlock Holmes famously solved the crime by noticing that the dog did not bark. And because it did not bark, it was someone who was familiar to the crime scene. Doctors make diagnosis most of the time by focusing on the symptoms that are not there. The contrast of explanation is the algorithm that attempts to hook up to a black box model and create an explanation for a particular data point that says, hey, here are the features that are important to the decision, but here are the features that are not there had they been there, the decision would have been vastly reversed. Remember, why was my loan denied and what can I do to reverse the decision? ProtoDash is an algorithm that explains the data set by creating the most representative prototypes. ProfWate probes into a neural net model to understand where it's more or less confident and reweights the input data and uses it to build a better and far more accurate, directly interpretable models than compared to if they were trained on the original data set. So this is just a snapshot. But again, in the spirit of openness and in the spirit of really understanding that these are fast-moving fields, there are new algorithms that are coming every day. And it's also something that it's not simple for everyone to understand and relate to. We've just about a month ago created an open source AI explainability 360. It's an open source toolkit that implements all these algorithms that you saw on the previous page. But it also puts a tremendous emphasis on kind of tutorials and demonstrations and teaching practitioners how you actually take them and apply them to a problems at hand, the problems that matter. And again, just as we promote open source, we also have to be able to create tools for people who use AI, for people who might not have the skills or who might need to automate these kinds of decision-making. So again, just like we did with fairness, we implemented several of the different explainability algorithms inside Watson OpenScale to be able to allow automatic trust and automatic creation of explanation inside the enterprise workflow. I'm going to go very quickly through adversarial robustness, but the idea is that because of the nature that AI systems are built and because of the fact that machine learning models are trained on the data that we oftentimes do not own, oftentimes somebody else collects it for us, there is this wide open door for adversarial mindsets to come in and inject various kinds of things that could lead or fool the model in the same way models can be probed into so that we can steal the data or even the model itself. So a great deal of the work in the community and in our lab is now directed towards this fast-moving field of creating new ways to attack and defend AI models. So here is just one example from the work in the lab that is kind of looking at this notion of poisoning AI. And this paper is actually quite interesting because it shows that the poison data, even though perceptually indistinguishable, creates different activation patterns in the neural net. And by studying different activation patterns, you are actually able to pinpoint and isolate the poisonous examples. I'm going to run through this, but again, having said that, there are problems that we should not be focusing on in isolation and that really are problems for everyone in the community. As a result, we have also created our 360 adversarial robustness toolkit, which is again the most comprehensive open source toolkit of attacks and defenses on AI. And it's really our way of reaching out to practitioners and scientists and researchers and saying, hey, help us out here, let's work together. Everyone should be really contributing to these kinds of works because that's the only way for us to move the needle. Now, suppose that we kind of solve all these problems and we can build the most fair algorithms in the world and save algorithms and explainable algorithms. It's still not going to be enough to ensure the trust of the community and society and practitioners because we as the creators of these technologies also have the responsibility to communicate to the users what are the kinds of things that these systems cannot or cannot do? What are their actual performance levels on many dimensions, whatever that might be? As a matter of fact, these transparent reporting mechanisms, they are the basis of trust in almost any industry that touches on our lives. Like, you know, we go to the supermarket and you buy food and there is a food label, nutrition label, and bonds and financial instruments are graded and refrigerators have energy star labels and even children's toy are inspected in some way, shape or form. Yet it's only the AI that kind of does not really have this notion. You go and buy an appliance and it comes with the user's manual. AI does not come with the user's manual. So in our work last year, we started to scratch on this idea. We called it fact sheets for AI services, which is really the idea that every piece of AI, whether it's a model or service, a pipeline, a product, it should come with some sort of user's manual that describes and articulates what's inside. What does it do? How is it tested? What are the quality levels that it conforms to? Is it safe? Is it reliable, etc., etc.? So in this work, we're actually looking into how do you define these standards and metrics. And obviously, we are not the only ones. There is now a tremendous energy in the community looking into the AI standards. And even the EU Commission's ethics guidelines for trustworthy AI, if you go and scroll to the back of the document in the last couple of ages, they actually outline the checklist for responsible AI development and deployment and they're calling on practitioners to embrace it. Having said that, another important thought is, well, you know these checklists, they cannot be generated by hand. It's kind of hard to go and ask a data scientist or a practitioner and say, hey, can you spit out all of these things? So in our work at the New Rebs last year, we showed a demo where we actually demoed or showcase how many of these things can be automatically computed at the time when the model is built or are updated or retrained by using these trust libraries that we are creating, fairness, explainability, robustness, quality control in the next instance, maybe, causality, et cetera, et cetera. Now, having said that, okay, so even if we create the perfect AI and we instrument it properly, there is one more thing and it is really this responsibility to think about how we apply it and to perhaps maybe move from creating recommendations and counting clicks and, you know, generating shortest path to come to a certain point towards kinds of problems that are actually much more difficult to solve. Things like poverty and injustice and lack of access to medicine and clean water and education and climate, the kinds of problems for which today we do not have a solution. So again, in order to develop this ultimate trust in artificial intelligence, we as a practitioner should be communicating the opportunities and the potential of this technology to really actually help us with these kinds of challenges. As a result, a couple of years ago, about five years ago, we've created a program called IBM Science for Social Good and in this program we partner with NGOs, with public sector agencies, with social enterprises to understand what is it they're working on because these are the people who are on the forefront of these challenges. We are way too blessed to be able to understand what it means to be poor or hungry, but they deal with that every day and by learning from them, we get the exposure and start to begin to understand these problems and begin to foresee ways in which the technology can help address them. So when we do that, we actually partner with them, scope these projects together and invite our scientists in the lab and the fellows, IBM social good fellows, to work together to start to create some examples of how we can move the needle. These are some of the stats of our program in the last couple of years, four or five years. We did over 28 projects. We awarded 36 fellowships. We had 110 of our scientists contribute and I just want to show you a couple of examples because I think it's really truly illuminating in the sense of how difficult these problems are and how by thinking about them and focusing on them, we actually become better engineers, better developers, better scientists. We create better algorithms and solutions and we also become better human beings. Opioid epidemic, it's the largest health crisis in the United States. I actually didn't know that until we started this project but opioids kill more people than gun violence and car accidents combined. And in this project, what we're trying to do is opioid addiction happens in a very kind of behind way.  It's not really kind of a benchmark or in any way shape or form, so you get what you get and you keep on taking. You usually take more than what you need and a couple of years down the line, you're an addict. So in this project, we're actually trying to understand can we look at the wealth of healthcare data, prescription data, claims data and can we actually develop causal modeling techniques to tease out these relationships of how addiction happens, what kind of prescribing behaviors are more or less risky, which people are more or less vulnerable because if we can do that, we can come up with better prescription guidelines, we can come up with better healthcare policy. Another example is two years ago, we worked with Neighborhood Trust which is a non-for-profit organization that provides financial counseling for low-income individuals. And we try to understand if we can build cognitive models that in a way may make or emulate how these advisors work or make decisions, at least a little bit, because if we can do that, we can actually automate this process and Neighborhood Trust can help maybe five or six thousand people a year, imagine being able to scale that and help many, many more. Another example, antibiotics of last resort, in this project we actually use looking at the possibility of using generative architectures to create peptides and proteins that have antimicrobial properties. Why is that important? Well, it's important because I think it's 2050, who estimates, World Health Organization estimates that by 2050 antimicrobial resistance will become the number one killer on the planet. And creating a new antibiotic is not something that pharmaceuticals do. It takes a long time, it takes billions of billions of dollars. But imagine being able to create a sample in virtually no time. And AI can do that, and actually we're getting results that showcase a tremendous promise of these techniques in these kinds of applications. Now, again, this is just kind of a map of our project map, from hate speech to understanding the supply chain of food pantries, to understanding causal modeling behind innovation, whole bunch of stuff. But I think you get the picture of the opportunities that we get to develop and direct AI research by focusing on these kinds of problems are really fantastic. Having said that, and I also don't want to come across as arrogant, we don't think that any of these projects on its own is going to move the needle. It's just one little tiny block in making progress and one technique at a time, one step at a time. This is basically a kind of a map of our fairness projects, only starting with 2015 all the way to 2020. And by doing this in these small increments, we were actually able to maybe do a little bit more and create these reusable patterns that now can become somewhat operationalized and maybe even lead us to some sort of a toolkit in this space. So just to conclude, we started with what trust means to us as humans to what it might be in the realm of artificial intelligence and how we can create these kinds of tools and techniques and instrumentations to make somewhat more trustworthy AI. But ultimately, as I said, none of that will matter unless we as a practitioner take this ultimate responsibility and think about how our creations are being used and what kind of problems are directed because when we do so, we will truly end up creating artificial intelligence that has the power to benefit us all. So with that, thank you.


Hey guys, check it out. You did it!  Yeah, yeah, I'm like 20 years. Okay, weird. Anyway, thank you so much. In a couple years, don't get that tattoo. Where would I get a tattoo? I said don't! Okay.


Purdue has shown a commitment to looking at health disparities and thinking about ways to make the health systems more equitable. And I think that even by just doing this cluster hire and bringing in all of these different scholars who work in different areas, I think it shows that, you know, Purdue really cares about this and really wants to do something to improve health outcomes. I'm a first generation college student from a low income background and I think that that has shaped a lot of the ways that I develop and the ways that I view students and teaching. And so what I hope to do is maybe some students will see what I've been able to accomplish and will know that it's possible for them to accomplish their dreams as well.


The last up to go in this exciting 16-inch class is pink the border collie hallowed by Jennifer crank from Pickerington, Ohio Think wants to get the party started tonight. That is it You sure pinks in that contact zone Jennifer's up ahead right there extension pink is doing on these just just That was just sheer beauty beautiful lines Jennifer out in front pink following pink saying I got it Gorgeous This one here at the end. It's gonna stop them right here. Just beautiful Just look at that smile Not known to be much of a cuddler, but cuddling right there after a victory for the 16 inch division as we check in with Jen Justice Jennifer Congratulations.  Oh, absolutely lots of times It's been a a lot sprint drills I'm trying to keep up with her all the time getting information out nice and early for her She was flawless on those weave poles just like water. How do you teach that? That's one of her favorite obstacles You build a lot of value for him use her favorite toys and her favorite treats make her absolutely love the game She certainly seems to enjoy the win. Congrats. Thank you so much


Thank you. All right. Well, first of all, it's nice to see so many smiling faces This already tells you that I'm not a comedian otherwise it would be paid for better jokes My name is Andy Grabner or Andreas Grabner, but please call me Andy. It's always easier I always say that only my mom calls me Andreas if I did something rude My I'm originally from Austria. I actually live in Austria. So I also want to say thanks For actually allowing me to come here and I know a lot of international speakers that couldn't make it to kube-con I was one of the lucky ones that got an exception to travel here I've been in performance engineering for the last 20 years And I want to share a couple of things that I've learned in my life as a performance engineer Especially around application performance around distributed performance But not about just like how do you do performance testing or performance engineering? But really how we automate all of this and this is where captain comes into play, right? Captain is a CNCF sandbox project. We are hopefully soon reaching incubator status And yeah, I want to share with you what I've learned and how I hope I can make your life easier in case you're really interested in building and optimizing Or building better performing systems and optimizing your systems all the links and how you reach me and how you can follow up on captain on the slide Now one thing that I've learned over my last 20 years is when I do performance analysis I always look at performance patterns and I want to start with this before I go into the core part of this talk, which is how we can Automate performance analysis based on SLO service level objectives Why are performance patterns important because this is what I do in my life when I analyze Application performance, I typically look at things like distributed traces to understand the architecture, especially in distributed systems Hopefully, I mean for the people in the room distributed traces is something we are hopefully all aware of Who is looking at distributed traces? Yes So this is actually a small distributed trace It starts with the front end load balancer with some legacy systems some microservices some databases some third party some load balancers and so on this is a From a company in Germany called step stone I did a presentation with them a couple of years ago where they talked about how they moved To a container based environment and how kind of their architecture changed And the reason why this is important is you have to understand your architecture You have to understand how components talk to each other to identify Very important patterns that tell you if this architecture can actually scale or not Now the number one pattern that I always find and this is nothing new But I have to repeat it because I see it every day. That's the n plus one Query pattern what you see here is a distributed trace a single distributed trace from one of my friends who 15 years ago He started his own company building an e-commerce store very small for very small shops Over the years it scaled and scaled now his e-commerce shop is very popular in in europe Unfortunately, when you look at this distributed trace It shows this very interesting pattern. This is a trace for the search feature of his e-commerce platform when you search What his initial implementation did give me the number of product categories And then he's iterating through all the product categories and for every product He was then querying the database by looping Through a list of IDs and therefore ending up as you can see here with 26,000 database calls to execute a very simple query against the database To figure out which products in the product catalog match a certain criteria This was not the problem in the beginning when he sold his software to very small shops, but this became a problem with organizations that had thousands of articles in the catalog and the same pattern is also apparent in Architectures where one service calls another one. This is again distributed trace visualization Just showing you the cascading effect of one service calling the another recursively and this goes on and on and on This is not a good sign And it's very it's visually very easy to understand when you look at this that there's obviously something Maybe not wrong, but something to definitely need to look into now. This talk is not about more Performance patterns that you may already know or maybe not already know But I think performance problem patterns are very important because if we understand patterns We know how we can detect them visually and hopefully when we can detect them visually We can also figure out how can we detect them by looking at key metrics like how many database statements are called How many calls do I make to another service? What's the the payload? These are a couple of these problem patterns and also the metrics to look into if you want to know more I did over the last couple of years several talks where I talked specifically about all these patterns Giving examples the links on the bottom Please take us for people in the room. We of course take a screenshot, but the links are also in the slides and they will be shared so My point is understand your patterns and then derive your metrics from it Which really gets me to once we know metrics on how to detect bad patterns We can then automate the analysis and the automation Is brought to you today by captain. That's the cncf sandbox project that I've been working on for the last couple of years And the reason why we built captain whatever many different reasons, but it was it was in the end Really, we wanted to save people from building a lot of automation that they then have to maintain And so we wanted to provide a better Better alternative because you should not build and maintain large scripts for automating things So coming back to the use case of performance Because I would laugh more people to automate performance analysis into the delivery pipeline So hopefully you I'm not sure if you're running performance tests yet or not But what I see a lot of people are held back In including performance tests in every build why because many That are executing tests. They have beautiful dashboards. They're graffana dashboards or they're They're whatever load runner dashboards or whatever tool they're using and while these dashboards are pretty to look at It's really hard to analyze them unless you're really expert and within a second, you know if this is good or not So this doesn't scale Even if you already deploy automatically in test automatically, but analyzing manually is hard So what we bring to the table with captain is really an automated way of taking the knowledge you have in your head The knowledge that you put on the dashboard Which metrics are important and which patterns you're identifying on these metrics And automatically analyzing them for you Scoring them and then giving you an easy score to say This is solid and sound or we rather go immediately back and figure out why we make 10 000 database calls Or why we are consuming so much memory Okay So a little closer look, how does this work in captain now we I talk about SLO service level objectives the way this works in captain is you define a list of SLIs Right SLIs is nothing else than a metric. I have an example here five metrics response time query failure rate And and a couple more in the bottom even an open security vulnerability If you if you have a tool that provides you the number of open vulnerabilities a great metric to have So you specify what you normally look at Then in captain you specify your target your SLOs where we allow you to do two things either warning or pass Meaning you expect a certain metric to have a certain value Where we go a step further you can not only specify a certain let's say response time What does it say here response time should be faster than 100 milliseconds? Then it's green or 250 then it's warning if you look down to the test step login response time We're actually combining it you can say test step login this particular function that we are testing should be faster than 150 milliseconds but also should not Get slower by more than 10 percent to the previous good builds so we can also do regression detection automatically on metrics So you specify the metric you specify your SLOs and you specify your overall target So build number one comes along you're pushing your pipeline Captain automatically reaches out to your prometheus to your apm tool of choice pulls in the metrics Compares them against your objectives grades everything and then you get a score between zero and 100 We are normalizing This to 100 points in total you can specify weights if you want to but you can also specify individual metrics as key metric Or key sly so build number one looks good build number two comes along the developer may have made some changes What do we see? Oh, uh things getting slower plus we all of a sudden make More data more calls to the backend service like a recursive call maybe even and therefore we're getting penalized So we're getting less points and therefore immediately feedback That this build should not be go all the way through because we would end up making twice as many calls to the backend service Once this goes into production. I get immediate feedback. Maybe I fixed the thing build number three comes along It looks like I fixed the performance problems I brought the number of service calls back to one, but all of a sudden I've introduced a security vulnerability This is also part of performance right because if it doesn't secure it's not secure then who cares about the best performance So again getting penalized So that in the best case in the era build number four comes along everything is green again This is the way Captain works. This is the way we are allowing you to define what metrics what indicators are important What do you want to compare it against but instead of you doing it manually? We do this fully automatically for you A little bit behind the scenes with captain When you kick off the evaluation We have a so-called lighthouse service and the lighthouse service is triggered by the slo definition You define your slo's in the yaml that you put next to your source code in your source code repo You can see a little I know it's a little small maybe from the back But objectives error rate jvm memory number of database calls where you specify what do you expect these metrics to be But here's the important thing This is your what you expect this might be your architect your performance engineers your side reliability engineers But where do these metrics come from? captain is agnostic to the underlying observability platform You can build a service that then delivers the data and every service like for instance We have integrations with prometheus with dinadrys with neo load with refront You will then define or whoever is responsible for observability and monitoring in your organization You then define how do you actually query this particular piece of data? Like how do you get error rate? How do you get the number of database calls? So it's separated Objectives and how you get the data is completely separation of concerns because typically two different teams are responsible for that Okay, and when you trigger the evaluation, what happens captain reaches out through an event to that tool everything is event driven Retrieves the data and then as all the data is retrieved Pulse it back compares it against your objectives and then you get your scoring So this is the core component of captain this slo validation to give you one example one of our early adopters christian He was responsible for maintaining a git lab pipelines and his task was to also include an slo validation every time the git lab pipeline deploys And tests and now he's just making a call to captain where captain is doing all the evaluation for him Saving a lot of time because otherwise he would have built all this logic in his git lab pipeline himself We provided it for him and it works out of the box and in his case. He's using data dinadrys as a data source So this is the core component that allows us to analyze SLOs very easily and get this into existing pipelines, but the thing is Captain we wanted to solve a much bigger problem But the core is this data driven approach Where we always go towards slo's and analyze how your system is currently doing What we want to really solve with captain is the following thing a quick show of hands who is using Jenkins in your organization Okay, who is using git lab Perfect who is using power shell scripts for deployment, right and or These are all great tools, but the thing is they're all doing certain things pretty well But what we have observed is your classical pipeline has a hard coded set of steps hard coded integrations with your tools Even sometimes you have configuration in your pipeline. I've seen Jenkins pipelines also internally in our organization where you have Your yaml files your your your deployment definitions files hard coded somewhere in the Jenkins pipeline This doesn't scale this this becomes very ugly very fast So what we said we want to solve this problem because we want to make it like we want to make the life easier For people that need to automate more things into their pipelines. So what we do with captain We are ripping apart The hard coded process and tooling On the left side you can specify we call it ship in a shipyard file automation sequences. So you specify what Tasks you want to execute uh, you want to execute on the right side You have your two links completely separated the configuration all the configuration is maintained in the git repository And then we're using eventing to connect the two things together So to give you an example because we are talking about performance engineering here If you want to use captain for the complete sequence for performance engineering You want to deploy a new artifact you want to test it and you want to have it evaluated So you specify deploy test and evaluation without any tool context And in my example then I can say captain trigger performance in a certain stage and I give it some additional metadata like what image do I want to Test what captain then does it sends a cloud event Out to the world and says who is there in my environment That can deploy this particular artifact in staging with the blue green deployment strategy I may have helm doing it. I may have an argopipeline. I may call git lab. I may call a jinkins pipeline This is all event driven and our tools can then subscribe to the event to then do the actual action Once it's done sending it back next thing is test Captain sends an event. I need somebody that can execute a performance test in staging today You may use jmeter the nice thing about this is if your organization decides next next year you're going to a different tool You don't need to update any of your automation code. The only thing you need to do is You turn off the subscription for the event for jmeter and you'll just let your new tool subscribe to the cloud events. They're all standardized That's the beauty switching tools becomes a thing of a subscription to the event bus And then the evaluation that's the key thing. I explained this how this works earlier Captain sends an event out to your observability tool. Please give me the data That is specified By the performance engineers in the slo files in the sli files and then give me back the data and then Give me a thumbs up or a thumbs down And if it's done what i've completely forgotten the bottom right. It says notification tool You can have multiple tools subscribing to the same events. So for instance, if you want to get a slack notification after the evaluation is done, you just have Slack subscribe to the event and then you get it every time the test is finished So terminology wise we call the left side the definition of the automation sequences a shipyard file We call the tools that are subscribing to captain events the uniform Right because the captain The captain on a ship needs a uniform. That's the tools the tool belt We have all the config and the config repo that captain maintains And then we have cloud events and we're currently working with the cdf the continuous delivery foundation in a special interest Group to standardize these cdf events so that in the future hopefully every tool out there that you use deployment testing tools Will just automatically understand cloud events and then finally Nobody of us needs to maintain any custom tool integration scripts anymore Where you call api one and then you try to figure out what's the response How can you parse it and then they change the version of the tool and then you need to Change your integration. This should be a thing of the past So my point is that I want to make Is what's the nice thing about captain and especially when it comes to performance engineering You pick your slo's Your metrics and the objectives that you have Right if you think about how I started understand your application pick your slo's Then you are hopefully have some tests because without tests you don't generate any traffic Right. I mean captain doesn't take away the pain of you having to write tests, but we take away the pain That uh, we are triggering and orchestrating the test execution You can also use obviously captain for the complete end-to-end automation. So it's not just constrained to one thing So captain orchestrates all of this for you on the right side. You see all the tools We're not replacing any tool. We want you to use the tool of joys for a particular task There's so many great tools out there. I mentioned earlier git lab changes. They're all great tools If you have invested in this don't fold them away, but don't build additional Automation code. I always say friends. Don't let friends build their own automation Friends first first suggest their friends to look at captain I know it's a bold statement on the bottom, but it says 90 less custom automation code That's what we've seen from people like christian. I brought up earlier It's event and data driven. It's based on open standards and all the configuration is stored maintained and versioned in git Now captain in the real world. How does captain look like outside of my little uh, environment here? I am from austria It's also a famous song in austria, but it's also Why i'm very proud of this year Austrian online banking is currently completely automatically validated with captain So they're software organization. They're called rifles and software. There's also a medium blog post or a blog post on medium on the bottom Every time they push their new services the new builds for their Jenkins pipelines. They have captain automatically validate That release based on their SLOs Another cool example because we are talking about performance engineers here. I have a youtube video on the on the top It's a little small, but Mike Kobush, he works for any ic national association for insurance companies He's a big load runner expert and is now using also jmeter And he says when he runs these large scale load tests against the replications It takes him typically 30 to 60 minutes To analyze the results with captain. It takes him one minute. That means every week he has a couple of more hours to go fishing That's what he told his cto and i have him on record on this video another cool use case is from Vitality they are a large insurance company What they do they have a central software organization They're building their services and then they deploy it to the different countries So it's the same software but with different feature flakes that turn on different things that are country specific And what they're doing they're testing every single configuration every single tenant and then captain gives them Feedback on whether this configuration is good and what you can see here The quality gates are all red. So probably they need to invest a little bit more in quality They're really cool. It's building great software. Also, this was really nice I did a presentation a couple of months ago at a performance conference where tarash. He's a performance engineer at facebook He saw captain and then he made this really cool statement Captain feels like a reference implementation of google side reliability engineering and the side reliability workbook So that's a nice testimonial for especially the development team that stands behind captain So Next slide says let's wrap it up. I want to wrap it up with the slides But then I know I'm a little fast actually I want to then also show you a little bit of captain so that you see it's not just screenshots But my advice for you This talk is about optimizing performance based on slo's. I want to just recap how I started my presentation Understand the applications you're responsible for whether you're testing that you're a performance engineer Look at distributed traces understand the patterns. Look at my presentations. I gave all the links will be in the slides Next thing is if you know the metrics, then you can put them on a dashboard Use your favorite observability tool and put them on the dashboards right to see Do these metrics really tell you after a test that something is wrong and if they do Then you can convert these metrics behind the dashboard Into an sli and an slo definition in captain and then you can have captain Automate that analysis completely for you And then you want to bake it into your existing Tool landscape and have captain automate All of this fully well every time when you trigger a pipeline Also think about what I what I said earlier captain is not just there for performance analysis captain can really orchestrate any type of process Not only are we because we don't I always get the question so he's captain It's another argo is captain another Jenkins is captain. What is captain? It's just doing delivery, right? No captain Is bringing your data-driven Or orchestration of automation sequences whether this is around anything you need to do in delivery or in operations We have a lot of users also using us for auto remediation Meaning when there's a problem in production They then trigger a captain sequence Where captain first notifies people then maybe scales up scales down Do whatever whatever it needs to happen in the context of the problem then evaluates against the slo This is the critical part and based on that decide was the system brought back to a healthy state If yes great if not execute the next action So be reminded of that So captain is a lot of things I only had a couple of minutes here to talk about it today with the focus on performance engineering If you want to learn more I had a couple of presentations at different Conferences you will find a lot of material about captain and We're obviously welcoming every new community member with a lot of cool stuff on the captain website If we go to captain.sh then you'll find All the information you need to get started. We also have a live Captain installation a demo installation that you can click through which I'm going to show you in a second You can sign up for the slack. You can install the download it can go to github You can star us you can do whatever you like as long as you talk nice things about us So now I have I think three four five minutes right before q&a two more minutes at least Right. I want to make sure we have time for q&a you have 10 minutes Got 10 minutes even but again I'm gonna do with amazing demos So this is actually that the captain public demo live environment And this is the one you get to yourself. So if you go to captain.sh You can click on explore live demo that brings you to a little tutorial that explains all the projects that are on here We're working very closely with litmus, which was a great partner for us And it explains the different scenarios and then you have to link to captain dot public dot demo dot captain dot sh Which is this page here? I want to focus on really the litmus example What I have here is a so-called captain project and captain projects Are organized in a way that you have a project where you define what type of automation sequence Do you want to provide this in the complex of this project? And then you can have or add services to it and then these services Can enjoy the automation in this case. I have a hello service And you can see here that there was a build number zero one one deployed And what I see in the default view because this is the most important thing as a service owner What's the quality of the service? You see this heat map that I showed you earlier, right? And and you see on the bottom I'm not sure if it's if how easy it is to see but on the heat map on the top That's the score. I only have two metrics here as those that are evaluated But you can go back in history if I scroll down a little bit. I see the individual values I also see against which value it was compared to in case you decide you want to compare also with previous releases So that's really neat. Most importantly, this is just the thing that is most important Are we green? Are we yellow or are we red behind the scenes that much more happened? There was a delivery sequence and that delivery sequence Included first a deployment then a test then the evaluation. That means the deployment in my case was using helm The test was using a combination of jmeter to run some load and litmus So the nice thing about an event-driven system like this is you can say I want test to be executed and then depending on your projects depending on your event subscription You can have one or many tools do something in this case I'm running load with jmeter and at the same time litmus kicks in with with chaos engineering And once these are done then captain triggers the evaluation All right, so how does how can you define this right? This is a medium complex Environment actually let me show you this here Every project behind the scenes has a git repository as I mentioned so I click on it. It's all public available Initially when you create a project You start with a so-called shipyard file And this is really kind of your Sequence definition. So I have a sequence that is called delivery That does a deployment a test and an evaluation as you can see here There's no hard-coded tool integration because there are no we don't reach out to a tool with a hard-coded integration Captain will work as to it is and will send events to then trigger the right tools Bless you And then what's very important is captain also automatically keeps branches for every So we call it stage Well, you kind of you can group your your your automation sequences into so-called stages And then here you can put in the actual files That then the individual tools need because obviously helm needs a helm chart jmeter needs a jmeter script Litmus needs the chaos experiment for prometheus You need to figure you need to define the queries, but this is all organized in git All right, so coming back to my little example here If I go back Last thing I want to show you when I triggered This sequence you can either trigger through the captain cli command line interface or through the api for every step Captain sends a so-called cloud event Right, this is the stuff. We're currently standardizing in this case captain sends deployment triggered and then Whatever tool you've subscribed to that event can then say hi. It's me. I want to do it. Then they send a started event And once they're done, they send the finished event again These are all cloud events with additional information about what did they do How did they you know in this case? What is the url that they deployed my application to and then this information goes to the next set of Tasks that are executed so in the next event payload that captain sends out it contains The initial configuration change and then all the information that came in from helm And then it says well in this case I need to trigger some tests right So it's all event subscription based you have your subscriptions here on the on the so-called uniform page So you see which tools are actually subscribed in for a particular project for a particular stage All right, so I got I just got the sign. It's time to wrap up Because we have questions hopefully And yeah, what I want to say if you are interested in captain with a booth Uh with a captain booth in the pavilion, uh, I think tomorrow like tonight also tomorrow after two and on friday I also want to say a big thank you to diner trace diner trace is my employer And diner trace is the big sponsor of this project and I want to say thanks for investing in open source and giving people a chance to work on this um And yeah, if you are interested also in that we also have a booth down. Uh, I think it's g 11 But I now I want to open up for question in case there are questions if you have questions in the audience then over there So the question was to repeat. What's the difference to argo? Yeah Okay, so the question was specific how do we compare to argo analysis because they also pull in some metrics Uh, I don't want to say there's no overlap. But what we try to be is we try to be Not a tool just for delivery, right? That's what I wanted to say earlier with captain You can automate sequences that you need to automate in delivery, but also in operations And what we do we always pull in data through our SLI and a solo definition that then Allow the orchestrator to decide who we go on or not If you are happy with argo and your argo analysis And that's fine with you. Then it's good, right? If you can with argo Orchestrate the deployment your tests your evaluation and then you notify and if you switch you want to switch from Let's say one tool to another and you are and that's fine Then then stick with it what I showed you today is a separation of concerns between process definition You can define whatever process and the tooling is separated the magic behind the scenes is that they are connected through events So you can at any point in time Change the tooling without you have to think about what this means for the process definition Because the process doesn't change just because you change the tooling Also think about my test scenario I have a test step because that's what I want to do In one project that may do functional tests in a second that may do load tests And maybe next year your company says we need to add security tests to every process every project The only thing you have to do is subscribe to the test event And then automatically your security tool kicks in So these are some of the considerations that we have put into the architecture of captain And it's not constrained to delivery even though we talk a lot about delivery Automated remediation in production you define your sequence what you want to do When a problem strikes in production, right? Do you want to first notify people then you want to I don't know scale up Then you want to validate then you do the next step So you can define we call them remediation runbooks But they are orchestrated in the same way as you saw for the delivery use case Yeah, but see it for yourself, right? I don't want to say It solves all of your problems if you're already happy with what you have Yeah, so the question is what's the best practice for microservice architectures Do you rather try to test microservices individually or do you deploy everything and run everything you want? I think the the best practice is Do both Right If it's possible that means if you have a microservice and you can run it in isolation That means you can mock a way the dependencies or at least you can deploy the environment where all the dependencies are Also just there and you can run tests against it. Then this is the ideal state Because remember my number one problem pattern I had today It was the m plus one query problem if your microservice has always made one call to the database And all of a sudden it makes five calls to the database Then you don't need to deploy the whole app in a big environment because you already know Something has changed that will have a mega a huge impact later on So these patterns they can most of them can be found Just by testing it in isolation as long as you have the data of How many like the test call that goes in into the service and the calls that go out? And this is what distributed tracing is so great because it shows you that Sorry, yeah Yeah, yeah Yes, so the question is can you share tests with yes, I showed you earlier that that for instance the jmeter files that were Stored and gipped So you can either store them on the main branch then it's available for every Service in every stage you can store it on a branch level then it's available for every service in that in that stage Or you can define it on the individual service per stage. So it's like an inheritance level that we have to Set again New relic if captain supports new relic And bit bucket so I would laugh if captain would support new relic. It doesn't do it right now We have a however a git issue out there ready for new relic for data dog Uh, and I think also in stana. We would just would you know, it's an open source project That's why if you have new relic if you have data dog or any other data providers Then you know join us and uh and and help us implement. It's just it's very simple We have templates for building these sli providers like we built for prometheus and dinotrace But I think as far as I know today, we don't have one for new relic, but we have an open feature request I think the challenge would be like actually implementing the subscriptions and getting a tool to integrate that What does that actually look like is there libraries to do that or so? Yeah, um, maybe I quickly So the nice thing about this is so captain sandbox, right all of our all of our New services starting captain sandbox Right, so we have jankins library artifacts blah blah blah Stint is so all of the integrations if you want to get started. There's this as a service a captain service template So this is just a gold template that you clone and then you just put in your Let's see that's a lot of I mean it's this is what's subscribed to the task Exactly. The only thing you didn't need to do is you just implement the event handler, right? So and then all this runs in kubernetes Exactly. So that service you deploy that service in kubernetes Let's say on your target server and that and in the configuration of that service you say I want to subscribe to this event And then this really then becomes the service that then obviously calls. Let's say the new relic api Um, or whatever else you want to integrate now We are currently working with the cdf foundation in a special interest group to completely standardize all of our cloud events Which means once the standard is through then companies like new relic and others if they just built this natively into their product Right, they open up a cool new opportunity because we all of a sudden standardized on events That everybody built many benefit from I think this was the sign For me, I'm I will be here as I said a little longer for the people in the room and for those that are online feel free to connect with me through LinkedIn twitter or also on the slack channel Very happy to follow up with you. Thank you


na uamputuwa teahisha, kwenimisha hindi instagram kama miisim tuwa ku dance nisa ga tik tok midu wetato amani ni first ya kwa you find people use tik tok but they never done some tik tok but they always enjoy the content that is there so you don't have to do tik tok video for you to be on tik tok i can enjoy without that gives me hope Mwakani ma post just the other day on TikTok Zimi ni ni fatema wana Wala hai That day I heard a story Do you know what's your name? Okay, my name is Purity Gaki I am a teacher in Carlson International School I am also a guide at the Newkansela In my Instagram I am Purity Gaki Facebook Purity Gaki TikTok Purity Precious 1-1 And I am not yet in X Ya Okay, when it comes to guidance and counseling we are focusing on students mostly because I'm dealing with teenagers Where? Most of them they come from far countries like U.S. America and they've got so much issues that we We normally have some stages of development, maybe they have a family issue that we have to go through and then give them the timings. Yes Mashi daze to Zote Zawatu anze ni same Siyonage kama zneza kwa same Ni same Zunafa na na, they are the same scenarios like we have the family issues, they are all the same Like we have Religionships at home The single mother The ones who are staying with their mothers only So these are some of the rampant issues that we are currently having Also we've got the issues about vaping Gaysim And lesbiansim This is another kind of thing which is trending among the international schools that we are holding We are trying to help them so that they can adapt to the environment That they can fit into the environment that we are in in Kenya I never have spared it It's not easy Yes We have to encounter this every now and then And they may not pass before we have heard of such issues But because of the trainings, the sessions that we held with them We are able to come and maybe we are taking them somewhere I have so many questions So many questions but I want to link them to the topic of the day Yes Okay Let me first introduce the question We have been trying to get you to go over there on our socials Without actually telling you the story But the ask of the day is The office is dirty talk So that colleague when you open a jokestafu Mikiwa jobu kujas ama ana bo So let's for example say this is a school setting Does that come off as harassment? Amani joks too Okay to some extent it becomes a joke To some extent it may be personal But we have to wait on how someone has put that joke Like for instance you take an issue where Someone may come shouting in the staff room And all of you are busy Maybe you have some deadlines to meet And someone shouts all over Is disturbing you Is tapping you Picking your pens Maybe it's too much at the end of time And you are marking the papers You have deadlines to meet You have the report forms to prepare And then this guy or anyone comes And starts interrupting you Then this becomes a joke But to some extent also it distracts you From that working mood And then at least you feel like You are just said to know you are okay To some extent I am saying It's positive or negative Because it will distract you At least now you are able to Come back to the normal life setup Where you are not having so much pressure Too much pressure that you are working on And to some extent also it will waste for you time Maybe you are targeting And by this time Actually I teach Kiswile Geography I have to mark 11 papers all of them By the time break you think Na fukiri ya Na fani kweni me maliza ii 11 papers So you may not meet your target As a person or as a person So sometimes na kwenga jokes Na kwenga jokes Ya true Like for example when someone comes and tells you You look nice today You take it in a positive way But if you overdo it Becomes to become negative Which will affect your working Like I feel for example If you are working with someone And then the jokes get to be too much They will start looking like See na zam fani iwi na Ta fani akito yote So it gets to other extents That you can't get out of it Yes, especially if someone is superior They can undermine you Like totally Buna tuongi ni kama mene na kusumbu na imhansam Let's assume No, it's okay Let me give you my handsome face Una dukuna dukuna Ya true Like even someone telling you A beautiful girl touching you You feel nice But na zam It's too much They start visualizing you every time Telling you nasty things It gets to a point where It gets out of hand And it affects the working In the center Aita kana utaki kwenga job matema Mga mukutana kwanza Mga tuge story Naeza Kuna weni wuna click na utu Right Aita kwa that intense Akuna yengina they overdo it Once you overdo it That's the problem Yes Even you can see your work matema You look nice today You smell good Ya, but if you take it to other levels At work can be very messy That leads me to another question But before I ask the question That I want to ask kindly What I saw on Facebook The comments So we have Vincent To go to says Kidi mani in Nenda na wakati I like your handle Says mimi ndani Jamal Present Obie njistinia Nmeku wuna Binjwe Franklian Says you need to Okay, see you Kelvin Karanta Excuse me Nyandratko Okay, now this is about The previous guest Strength of a woman Of crush amengi I will convey the message Westi Gibson says Loving the show Mm-hmm We have on Dennis The yes We like those people When you are on get Chapo They keep you going Bana He says Hashtag when the morning Good morning Yana kwangatusa Whu nijaz Sana Nkama kilofisik Ako nahokamitum moja Mm-hmm Dennis Nkasa says Natuzo Nkwa na Muesi In Bungama County We appreciate you Sami Allen says Bila huyum Job day in Abou It's boring At first Kipitum says Good morning Wait for a fortune From south B Ngo B Whu nijaz Baya sana We are broad broad are hey y y Now, for example, nituwa na flat, flat na wewa ya naongi ya chafuchafu ki doga maikushikam kono kasi kasi ahoka feeling na lugengu na ituwa jih, that that ka, yuki mani didi, amakutu didi wakua, that that ka feeling that you feel when you know the goose bumps in ituwa, now what is it in your language, yes, kindly So now, akshafari waza, alafu manze pichana waka girl friend, waka boy friend Ikosa wahiwa, amam manza kwa overdo? No, ikosa wahiwa, I think that's where we're getting drunk, you can have an office bee, so you always wake up in the morning to go meet that office bee of yours, but if you have a office bee, I don't think you'd like jokes from other people because you know that you have that one person So energy, bebe wakua li ya kini kwa saia na nda kwa mbe office bee, bebe ebu che kimi, kwa saia na naku manesha message Why you think you're part of this? Okay, I think to me, ikwa sawa, when you have someone who maybe it's your bee in the office or someone new you get along with them, sometimes you come from home, you go so much pressure, you have moonswing and once you meet the person you are able to interact in an open way and therefore it becomes easier for you even to run the day because you not carry the stresses that you went from home to work, therefore you are able to balance between the working home because of this person, maybe the person is muna klik na e na kutu sawa, maybe the jokes he brings, they are kib, they are knives for you and you feel full of life Kedoga kwa wanzi kupika lanshia watua wili Ana Ya kwa wana kwa day, since you're in office today Which brings me to my next question, is it inappropriate to date a kawakwa? if you're in a kawakwa then you're like writing a joke In this case what i feel if it was in the olden days it would be like so inappropriate But right now people are doing it I think it's for you and your person to know the standard you set when it work If you have personal things with me, let it sort it at home I think it's the boundary you create between you two people When it's work, it's work We are not joking about it Do you think it would work? There's a meme that says Luluhasan is the only female who knows where her husband is at all times Like wakiwa job, wote wako job She's the only woman in this lifetime who knows where her husband is all the time But sometimes it's a bit hard for our professions And I imagine for you too, when you go professions that need human contact Like nenda job, lazima ni kwen me fry That's why she says it costs her energy Nani me toka heartbreak maybe For all you know ni kwa heartbroken buwa na Amal ni konja, there's just something happening but I have to mask it Imagine having a bae in the office Or even worse, mutu anze kuflats na e Bele aku Makosa ifa ni keibisa sa alafut Okay, to some extent it becomes stressful Let's say you are dating someone and this person as you say maybe starts flirting someone else that you can see and you know for sure this might be and we are moving somewhere It gives you that issue of becoming now this person is doing this because we are dating or we having him Then you are left wondering kundis person Anani fanyama darawa mani nini And this may bring conflict between two of you to some extent That was signed It may be tedious in the manner that you have to be cautious on some of the things that you've been that stuff from e manze uwezi fanya kitwenye uta fanya kasi rike kwa sababu Yes, so you find yourself even you are isolating yourself from other people because you cannot even have a discussion with others since you feel if I say this I will perceive it how will you take it will it be positive or negative So you find yourself excluding yourself sometimes you are all alone because you don't want him to be hungry or you don't want to bring anything that will bring conflict among you between you Yes, and at the other time also you need to be so cautious about how you work because this is where you are getting your daily brain maybe let's say you done the dating and everything and you are now moving to the next step of marrying this is where you are getting the daily brain therefore you need to work as you know these are family but not a dating site anymore Yeah, I like the way it works Yes Then how you feel about it So basically you don't support it dating in the work space I support it because socially most of the time you are in the office that's your working area from let's say you reported work at 7 live at 4 the entire time you've been there from Monday to Friday then only two days that you have for yourself So where you going to get these people that you'll date you can get them from the work Ya nini, Monday, Tuesday, Wednesday Thursday, Friday Saturday, when they date Sunday, when they charge Kwa ni stachok api amemi Kwa ni stangaliwa na monomimimi kwa ni tese, tese place James, speak to me Personally if you it works honestly speaking if you found your person in the work space what do you do you have to find those dynamics that's gonna work for you alternatively you can look for a job somewhere else so that you can enjoy that kwa space you want not seeing your person every day alternatively That's a lot Amma piai atafute Ya nini siza tumaanza kusema where you found me here amma siju because of my pens but also how comes so many things Guys, guys Alright Now before they tell me I don't have a lot of time left Do you have any experiences in the office of how okay definitely ju watua mi agri nani kama piai na nini mi pithana nazo what are some of the ones that were okay that you could condone and some that were just no money you unovado and when does it pass to the point that unanda kum report now this one is harassing me I need now human resources to come in or I need some authority to come in and help me Yes please Personally I feel if you want to have an office have someone you in the same level of work I don't believe having an office is better if you have someone superior because that may end up being very bad because at times if he is tired of you undermining you can overwork you but someone in the same phase brings you lunch does the small small things and help you in a project can like help you if you get your work space so yeah Just come home dosing tu anakanga lehando Wachia om kule tukwa machu One life na kudega na promises I'll help you get promoted I know people trust me baby You see how sweet it is the same way it's gonna be when it starts being messy when it starts overworking you and telling you it's five you're supposed to clock out at five brings you more work at five what are you gonna do about it you'll get messy Just the way it is so sweet it's gonna be also messy Can I tell you a story of when I triggered Mahali I used to work as a waitress in a certain restaurant so I met her I left with the manager it was a random like me when I went to work I called the guys and then I was told ok kujana kusik so I started so I'm friendly and I want to get to know people around Pindu to pimane but it's kinda drug pimana sometimes see must move kupimane za kwangalia tukwomba I did not have that wisdom at that time so kusimoja had it kinda to hang out na watwangu see I brought work into my personal space Makosa number one Just kumamaliza kupimana kumamaliza kupimana how his personality is if he is volatile or something so I think he came and thought now hey Val Val nam suha and gave a box but me say kwa apu I truly was not they didn't want me to at that time but I was just not into it weh ili ma kasi rikon ili receive kasi amon ili kwa kuh wait on tables nili jiku ta mimin do na pigade kihadi na funguwa na kafu and extra two hours alafu kuna zones when restaurants are big kuna zones nili kwa na jipata all of them at once nasiwezi kata apani kikandzo kata higenda kwa shida it was very difficult guys kata vene tu mani fumbu that is a memory I had lost somewhere okay now back to the question please okay I was saying I also think to some extent just if you have been in office bay did someone who is in your level because at the moment you go to someone who is superior someone who has an office somewhere in that job that you are working in it comes with a lot of main disadvantages first you love to be there is the issue of pressure if there is any conflict that you held before with this person or if you have got any disagreement with this person it all comes to work because this is the place that you are meeting and then the person will start now harassing you and it can go to an extent of you being sent away from the work so maybe if you are dating you have an office bay have someone who is in your level who have got their offices who can say if I say today purity you are out yes so when it is easier when you have someone you can at least discuss come the issue and you are able to come to conclusion in that funny thing is I've always imagined that it's one way like manome anakutaputa kama dem if you do not comply or if you don't enter books for lack of a better phrase shida but I recently heard of a dude who went through the same thing like mahansam, vahansam young man one of his bosses kwaatsuna mwangalei kwaatsuna mwangalei ahizi and that's how the dude just even ata ili kwa taftekazi after that because he was a really good intern I would like to assume but ili bidi atoke what are we going to do? madamsikutaki mumama after benten and why are they usually buried by the way with children what is the problem why is it like that why is it like that what happens if they don't pursuing you but it's them pursuing you and they are pursuing you by force what do you do in that situation now that's the tricky part especially if where you are working the results have HR the owner is everything so that one would be so hard because you can't even address them you cannot air out your issues so at times you tend to just work with the pressure that you have as you look for something better but there is no alternative either you give in or you opt out naoneza give wo jupato in more problems naoneza maybe you could have just worked out for you so well tfotaf buona tfotaf this is never easy as well I think it's the same if they are the ones who are pursuing you you may have too much pressure from the same bearing in mind this person is the one who says the ones who bring the rules and the regulations to be followed by all the workers and you are among the workers and he is seeing you in another way he wants to maybe date you and have the staff and you know even if you give in this person maybe will see someone else in the same job so to some extent as Jena say you just work with the pressure but you look for something else to do so that you can exit because finally you will love to be sent away even if you don't want because the pressure that you will be given so that you can give in or maybe become the way that he wants you will not work with it so better you look for something else rather than to be sent away from the work unexpectedly kwa mrembo na kwa mahansa kwa shinda kwa kufo we gotta wind this up it has been a very interesting conversation let me say it please don't forget to give in to the work where you can give in but we will see over and funny thing is let's say kwa mrembo na kwa mahansa but purity as gay is a number but if you don't want to give in to me go find a room go get a room guys thank you so much both of you thank you thank you let's start with you Jay thank you so much for having me here today these things need people need to talk about them more because people go through a lot of work spaces it's the way they don't have the freedom and the capacity to talk about it so yeah thank you so much and the topic was nice it was a pleasure being here thank you I think this is something that is talked about we need to have some platform surely for the work for the work that we do because these are things that are there they will be there in as much as we have the gender that is the female and male and therefore we need actually the women are the ones who are vulnerable in this situation because in most cases we are the ones who are we are being chased by these men so it gives us to come up with a certain platform that the people who are working the gender which is being taken advantage of so that we can help them and we can create for them somewhere where they can air out their issues it was nice being here at least we are able now to open up the platform for the people who are working in different areas so that they are able to air out their views thank you so very much Jane and beauty one more time before we get done with you here on white in the morning let me wrap it up now finish wrapping we will put a bow on it and call it a day but we told you it's going to be content so even after the show I encourage you to stay here on white but in the meantime