 Zobaczmy się, że w tej chwili będziemy położyć kilka, ale nadzieję, że takie rzeczy, jak skaling i kajda i tak dalej, będą bardziej obawne. Ok, więc możesz myśleć o naszym rozmowach, tylko mamy 20 minut, 25 minut. Więc nie zostawimy ciekawej zrozumień, ale chcesz doprowadzić, jakby, na mapę, jak dobrać do mojego decyzja. Po instytucie quick startu na event, masz coś skończone, co dokładnie, że masz skończone, a gdzie chcesz z tym oddać? Pomyśl o tym, że to jest tak, że patrzysz na nierwana produkcji, eventy, cloud native, serverless, czy coś, co chcesz skończyć. Oczywiście, są jakieś problemy, i chcemy pokazać, jakie problemy możecie skończyć, i pokazać też, co my my myślą, czy to jest najlepsze praktyce? I gdzie to się dzieje w przyszłym razie? Przecież? Ok, więc, jak mówimy o k&k native i serverless, tak naprawdę, wszyscy, spodobnie, czekam, że to będzie skalable, łatwo używać i tak dalej. Ale z kubernetesami mamy te budynek, i potem musisz to osiągnąć, co chcesz, jakaś z tym, co już mówiliśmy, więc jak osiągniesz te rzeczy razem? Więc, jeśli zobaczysz na bardzo wysokim poziomie, kiedy zaczynasz z k&k native, i k&k native i serverless, to tylko musisz to zrozumieć. Więc to jest dobre wiadomość, to jest jak serverless, k&k simplicity, w jednym slajdzie. Po prostu, pójdź na serwisę, pójdź na słońce, pójdź na routing dla swoich serverless, skończone. I potem skończysz w to, jak widzisz, że w actualnie, kiedy ustalisz k&k native eventing, to jest tylko k&k native eventing, i zacisz na dokumentację. O, tu są tak wiele innych rzeczy, które są tam, jak złożyć te rzeczy razem i co jest ważne, co robisz, czy to, co mówisz na początku. Ok, następna. Więc, możesz zacząć zrozumieć, co masz na początku. Więc na początku masz system k&k i daje ci kilka event-sources i bardzo prosto broker i k&k. Więc można po prostu zrobić troszkę hallo world, zrozumieć event, napisać coś i opłacić komentarze na tutorial i jesteś zadowolony. Następnie. Teraz, co będziemy dzisiaj zrozumieć, to, to jest bardzo dobry początek k&k, ale powinniście zacząć zrozumieć limitacje tego początek k&k i w szczególności, powinniście myśleć o tym, co jest tym systemem k&k więc k&k, właściwie, dlatego, że k&k jest nie używany, msg k&k więc wszystkie te k&k, dla hallo world, są bardzo proste, są szybkie, są w memorii, są bardzo proste systemy i w tym demo, co zobaczymy dzisiaj, jest używany k&k k&k suportuje inne systemy nie mamy czasu, żeby pokazać wszystkie te systemy, ale to jest pierwsza koncerna, co powinniście mieć, kiedy robisz k&k jest, że zaczynamy z początek k&k i nie chcesz coś, co pracuje dla ciebie i tutaj, na błądze tak szybko, jak robisz to zaczynamy myśleć o serialu na początku, tak szybko, ale też powinna być auto-scaling i tak dalej, więc tutaj jest k&k HPA i jakieś inne rzeczy i potem zacząłeś się wytrzymać na górę, więc chcesz mieć, nie tylko k&k ale też inne suporty w twoim systemie pokażemy w tym demo, co jest jakby dwóch typów suportów, o których musisz zrozumieć i gytap suporty jest to przykład i w końcu jeśli wytrzymałeś systemie jak wiemy zawsze coś wytrzymało więc jak powinniście myśleć o jak konfigurować na wyraźnie jak się poradnić z rzeczy, które nie pracują, jak złożyłeś wytrzymałeś co się stało, jeśli nie masz do swoich konsumers i tak dalej ok, więc jesteśmy już tam będziemy pokazać bardzo szybkie decyzje ale nie mówimy o innych rzeczy chcielibyśmy zrozumieć będziemy po prostu o bardzo wysokim poziomie idziemy do następnego więc widzisz, że są tam rodziny logiczne grupy w k&k wyraźnie zaczynamy z tego początkowego zdjęcia gdzie mieliście suport i k&k ale też masz też czerwonych i k&k i będziemy mówić o tym, dlaczego są tu dwie różne abstrakcje które wyglądały na funkcjonalność potem masz bardzo ważna z nią systemy na błądze co ja mówię, że naprawdę musisz ich mieć więc k&k wyraźnie nie ma z tych systemów na błogach prawdopodobnie już używasz kawka lub innych systemów wyraźnie a k&k wyraźnie i potem masz w środku które prowadzą bardzo ważniejsze służby jaka jest kwestia, która była jaka jest kada więc to, żeby oprowadzić, nie jest to, że mamy wszystkie te błogów, ale pomyśl o to, jak się z nami przyjechać to jest bardzo jak kubernity masz z nią błogów ale musisz zniszczyć z nami zniszczenia okej, więc to jest bardzo proste pattern masz source masz czerwonych lub broker i masz zniszczenie k&k wyraźnie to, jak zaczniesz robić coś takiego to zrozumiesz, że tak, ale kto robił autoskaling dla moich wyraźnie systemów więc dla typu wyraźnie, które używają HTTP możemy używać zbyt w k&k wyraźnie to prowadzi skaling dla HTTP warstw więc, jak Github lub PinkSource czy coś takiego, można używać z błogów by pomyśleć, że dzisiaj teraz jest inna typa wszystko, co nie jest HTTP wszystko, co może tworzyć persistentne zniszczenie do wyraźnie masz pomysłu to jest problem więc, co to znaczy że nie widzimy dokładnie, jak te pomysły wyraźnie i jak zrobić skaling masz dodatkowy kąponent i to, gdzie kada czy coś takiego przychodzi do zdjęcia na pewność to jest monitorowanie wyraźnie provider i wtedy skaling decyzji dla ciebie okej i wtedy to jest tylko, żeby dać więcej mentalnych modelów że prawie wszystko w wyraźnie wstępuje do tego zdjęcia tutaj więc masz coś, co jest otwierać rzeczy na HTTP wyraźnie w persistentne wyraźnie system i coś, co jest otwierać system wyraźnie i wtedy wstępuje kogoś, kto chce usłyszeć to jest co jest broker to jest co jest channel source jest jedna część zdjęcia i tak i wtedy będziemy rozmawiać trochę w democie chcesz naprawdę znać o to, co wyraźnie czy tak czy tak i wtedy kiedy używasz to wyraźnie to jest wszystko więc jedna bardzo ważne to wyraźnie to jest grana czas do trucia ale to jest drugi film o wyraźnie wyraźnie to chodzi o to tylko można 튀cać wyraźnie !!!不行 ? ? ? , ? ? ? ? ? ? ? To jest tylko, co jest w porządku księgów księgów księgów? Więc jeśli ktoś asks, co jest w porządku księgów? To jest to. To znaczy, to jest w porządku, co jest w porządku w twoim kluczce, kiedy wy instytujesz księgów księgów księgów. Są kontrolera, które robią jakieś rzeczy, kiedy opowiadasz ich do tego. Następnie. I to jest, co masz, kiedy w porządku instytujesz coś więcej. Tutaj jest w porządku KEDA, i w porządku KHAFKA SOURCE, i wprowadziła jakieś rzeczy, jak w porządku KHAFKA SOURCE, które robią mnóstwo księgów księgów, i w porządku mnóstwo księgów w porządku księgów, a potem jest coś, co jest w porządku na dalszym nacej, który jest w KEDA. Więc nawet, kiedy masz naprawdę rządne księgów księgów, wy instytujesz i instytujesz inne rzeczy, a nie pokazujemy tutaj, gdzie jest księgów KHAFKA? I to jest tylko deskrypcja, co są te pory. I myślę, że będziemy mogli dobrać największą kwestią, w której spotkaliśmy się, że ludzie się zauważyli, o księgów KHAFKA. Więc dlaczego są w porządku księgów księgów księgów? Czy co jest z tych dalszym nacejem? Możemy myśleć o tym, że są na wysokim poziomie podobna funkcjonalność, ale to jest wszystko o tych małych detałach, jak zobaczysz na nich, i jak jest w porządku księgów księgów. Czy jest w porządku księgów, czy jest w porządku księgów księgów, i tak dalej. Chodźmy do kolejnego. Ok, więc tutaj jest trochę, jak nie będę w porządku w detałach, myślę, że chcemy uratować demo. I jeszcze, jeżeli macie jakieś pytania, po prostu idziemy do księgów KHAFKA, zapytać te pytania. Jeżeli jesteście tutaj, zapytajcie nas, czy ktoś inny, kto jest w porządku. Ale możesz myśleć, że są jakieś pytania, które będziesz zapytać, kiedy zobaczysz na kanałach i brukach, i jak chcecie ich użyć. I też zobaczcie trochę demo na to. I zresztą, pokazujemy demo. Są wstępne w demo, czy pytania, które demo próbuje zrozumieć. Znaczy, nie możemy zapytać wszystkie pytania i rzeczy w 10 minut. Ale możesz zobaczyć, że będziemy pokazać najlepsze praktyce i patterns, które my myślą, są w porządku. Jeśli spróbujesz spróbować zrozumieć, w produkcji, coś nie będzie zrozumieć, ale po prostu zapytajcie nas na przyszłość. Tak, ok. Super wycięte, w demo. Zobaczcie wszystkie te patterns, które pokazaliśmy, i po prostu zrozumiecie. Co się dzieje? Następna? Tak. Zobaczcie, że te rzeczy zresztą zapytają na tych budynkach, które pokazaliśmy wcześniej. I potem musisz ich ustawić do podróży tych patternów zrozumieć. Następna? I na demo, po prostu po prostu zrozumiecie. Tak, będziemy pokazać, jak ten tekst, jak będziemy pokazać apacic, github, i tak dalej. I potem pokazujemy kilka budynków zgodnie. Ok. Zobaczmy demo. Mamy mikę i typy w komputerze. Zobaczmy, jak to działa. Zobaczmy, jak to działa. Tak, to działa. Ok. Uuu, to jest trochę większe, niż wcześniej. Dobra, więc pokażę po prostu kilka bardzo prostych patternów zrozumieć. Coś, co powinno być prawie straszne dla większości oficji. Mam nadzieję. Więc pokażę to przez bardzo prostą aplikację, która się rozwijała właśnie za ten event, tutaj. A tak, zacznijmy z, tak, to, to, to, to, to, to, to, to, to, to, to, to, to, to, to, to, to, to, to, to, to, to, to, to, to, to, to, to, to, to, to, to, to, to, to, to, to, to, to, to, to, to, to, to, to, to, to, Tak więc, żeby pokazać, że to pracuje, i nadzieję, że tu jest kilka rzeczy, które muszą się zdarzyć, żeby to pracować. Więc w tym miejscu, w moim maszynach, używam quick start, great quick start, z dodatkami rzeczy. Więc jeśli stwierdziłem nową kwestię, na górę tutaj jest, gdzie mogę stwierdzić nowe kwestie. To jest gita ripple. I myślę, że mam skrzyp tutaj. Więc to typu na górę i mikrofon. Dla tego, mam... Tu jest kawałek i coś bardzo proste. Czy mogę to nawet typu? Pomóż mi, proszę, coś takiego. Więc zapytałem tę kwestię. I na górę na górę, na górę na górę. Myślę, że jest to nowe kwestia, które zostały wypozywane z... Wiesz, ta kwestia mi pomóżli. Dziękuję, Alek. Więc to jest bardzo proste, bardzo proste. Jest to bardzo proste używać. Słuchanie, bardzo proste komponenty w tej chwili. Poza tym, możemy zobaczyć... ...bycie familiarizowane z tym. Dlaczego to nie jest niebezpieczone? Poza tym, nie jest niebezpieczona. I tak jak mówiłem, coś zawsze może się wytrzymać. Więc jeśli Slajk jest w porządku za długi czas, to będziesz wytrzymał się. Tak, czy Slajk zazwyczaj odgłosił dużo mnóstw od góry. To było zaproszenie dla aplikacji, a wytrzymałeś 429. To nie działa. Wytrzymałeś się. Więc co robimy? Przestań zrozumieć zrozumień. Zrozumień zrozumień może być solved by using a channel and an order channel, and in this case, we're going to use Kafka as a backend because Kafka preserve has the preserve order. If you use a topic with one partition, then you can have this FIFO kind of type of delivery. All right. So how does it work? Okay. So in my small Slack adapter here application, I built in some delay, right? Or errors. In this case it's going to be a delay. So if I do time sensitive, this one, let's say, if I paste this message as a comment, in the comment, and then... Up. So I will post this comment. This comment is going to trigger a delay in the application, in the Slack application of three seconds. All right. And then I will paste this one. So in the... If you look here I'm still showing on the right hand side. So I still show the thread of the direct delivery, right? I'm still running in the background. So we see that in this case the messages arrived out of order. Nowhere is the adversary of the delay. So when you're having a conversation, it's not great, right? So I have another Slack channel receiving the event coming from this other pattern, from the Kafka channel. And in this case if I open the thread, we see that the messages are in order. All right. One second. Thank you. So how much time do I have? Still? Do you know? Plenty of time. All right, wonderful. All right, so it's very good. So in this case just by doing this we solved the ordering issue that we were having. Also because Kafka has a very long queue it's not like an in-memory queue we also solved the too many request issue that we were having. One of the con is like now we need to bring into the picture a lot more of eventing. It's a Kafka channel also a real Kafka Apache Kafka cluster into the picture. And another con is it doesn't solve all the issue. We still have issues that can be lost. So how we solve that? So the third pattern here it's more like a best practice also kind of thing. Is to add some retry in the the first thing to do is to add retries in the delivery of event in the Kafka channel. So in this case I added like a retry a 5 so try 5 time using the linear backup policy wait one second before retry. With my two hands. So here we see if I type this special command that will trigger the slack adapter will trigger like an error which is not permanent it's not a permanent error so it will trigger like 10 minutes thank you. It will fail for three times and then after a while the message would be posted. So I received the message here this is KN channel so that's the channel with delivery guarantee I received the message if I go back to the KN direct slack channel I opened the thread and I see that nothing is happening here because I didn't receive the message because the GitHub adapter does not retry alright thank you so that's good we solved these less errors so we covered a bit more in the type of error that we can handle by using retries that's good for more transient errors like slack is having a blimp it's down for like 10 seconds something like this but that doesn't work really well the present pill kind of messages where it's sending a message to slack adapter but maybe the slack adapter is trying to check for your picture on GitHub and you deleted your account and it doesn't work and it fails something like this stupid in this case so what you want to do and also it's important to not also block the delivery of events you want to have like a short retry period and then have the events sent to a delivery dead letter sync to keep the flow going so so for the channel so then you can also configure a dead letter sync because it can be anything it doesn't have to be it can be really anything so let me show you this in the case how it works so i have this comment special comment that will trigger a special permanent error in the slack adapter so which mean that the event is never going to be delivered in this channel but instead at some point it should appear in this channel if we need to wait about 3 seconds something like this do you receive it? i don't know so we saw the message appearing in the Slack KNDLS channel so in production obviously you don't want to send your event to a Slack channel so the DLS is more like something that is highly available and persistent and to make sure that you don't lose it so if you do all these the chances that you're going to lose events are pretty slim in that case and it's always going to be somewhere arriving somewhere alright finally the last pattern as Alex said many times we get this very often the question is when do you pick broker vs channel and we see that when there's a big difference between channel and broker one thing is ordering you don't have any guarantee of ordering when you use broker for some there's like nester eggs in this one but that's okay so and also when you use broker when you have like multiple sources and you want to do some filtering on the content of these sources so in this very small demo here so I extended this GitHub to Slack application with multiple a little bit more sources sending the event to a broker by Kafka and then having send this event to some sort of aggregator where in this case I don't really care about ordering it's an aggregation so I can forward this to I can use a broker in this case and then send the event to king broker so I have maybe so I have this special channel for that Slack channel so I can create like let's say a new and we saw already I think we didn't see that maybe this one is broken if I create a new issue and I call it like hello very simple so that's sending this I'm here right I send GitHub send an event to this GitHub adapter forward it to broker which then do some sort of filtering I'm only interested in event type issues and coming from the demo 22 since the audio works but the demo doesn't seem to be working in this case that's alright alright so it doesn't make sense to go and do the filtering on the other side because it's not working and then that's so if we go to the pro and cons it's like as I said so in this case it's simpler in some sense that you only need like one broker usually inside your domain versus like having multiple channels you have like building support for filtering and but as I said before also there is no like any ordering guarantees and then I think we can go back to the presentation so one thing I think we should mention that one thing we should mention that all that demo code is available on GitHub so you should be able to reproduce that demo and even that last part that did not work you should be able to make it work and if not come back to us with questions next slide and that's essentially what we want you to get out of this short talk that Knative is all those building blocks but it should not be like too much or too many or feeling overwhelmed with complexity they were all put together to achieve some goals we hope now it is a bit easier to understand how to put those blocks together we did not go through all of them but you find all of it in documentation also at this talk at 4 p.m. we will be talking a little more about high availability autoscaling and KDA so you can see some other blocks how they come together and then this is work in progress so as other speakers were saying join us in Knative Slack but also if something is not working bring those issues and then maybe help us to fix it or make it better I think that's about it I think we have two minutes for questions so thank you so that's great folks thank you very much for that but I was wondering is there a future where we are looking at simplifying the choices for the folks who are implementing this because this is great amazing but I see that it could be complex for certain use cases so the question is about complexity or fundamentally we have so many pieces they are needed but also we are going to simplify them so one piece that I was showing actually here will no longer be there soon which is some bridge that is doing auto scaling and we want also to make it so out of the box you could get all of it running and you really do not need to put or figure out how to connect all those building blocks together then if you want you can you know put things if you want so I have a question can all my needs be served by broker and not use channel at all in theory yes depends what exactly you want to do I think there are some use cases where that ordering and tight control over who sees and how events are processed in queue is very very useful but yes and also there is for compliance reasons sometimes you want to really isolate some of the events from other events you don't want to have a big bucket but you want to say this one for compliance reasons has to be in this together not mixed in other events ordering we talk about it ok thank you very much there is one more yeah that was a great presentation thank you guys does it support other providers besides github or is it mainly focused on github so we are the Knative is essentially API and then there are different implementations for the API so the different providers are supported we have many eventing sources and we also hope to have many more in future hopefully it will be very easy for people to add and maintain those there are about 40 of those pre-canned sources available on the Knative documentation site and we'll be doing a contrib fest on Wednesday to polish some of those up so kind of following up on that is there going to be like provider interface that's going to be standardized eventually you're asking how to add new providers are there plans for a standard interface we see it ourselves a little bit but because we are rewriting Kafka that would be very good to reuse parts of implementations between different providers and that I think over time when we have more that would be very natural to have those well tested building blocks like I was showing that dispatcher and receiver pattern that provides like 80% of your implementation when you want to implement broker or channel or source in Knative eventing all right, thank you thank you Lenel and Alexander