Let me go back. I don't want to be on the About Me slide yet. I want to be on the title slide. All right, thank you everybody for coming today. I am Alex Corvin, and I'm here to talk to you a little bit about handling chaos in containerized environments. Specifically, I'm going to focus really on Kubernetes or OpenShift containerized environments. I feel like I'm cutting out, but I don't know. All right, so real quick, just a little bit about me. I am a software engineer at Red Hat. I work right now on the Open Data Hub project. If you've maybe heard about the Open Data Hub project at some of the other talks, we were giving several this weekend. And I focus mainly on the internal Red Hat instance of the Open Data Hub. So we create a platform for other teams at Red Hat to be able to perform their data science and analytics experiments and work and give them a platform for storing all their data. And one of the things we really focus on is enabling teams at Red Hat to become what we say more data-centric.  And my job primarily is to, I'm mostly tasked with keeping the internal data hubs stable, making sure it's highly available, making sure we have good uptime, so that the teams that rely on us can actually have a data platform that they can rely on and use. So in general, I'm super passionate about psych-reliability, super passionate about psych-reliability, engineering, dev ops, that kind of thing. Don't really think of myself as a developer. I'm kind of a systems guy, but I like to code, so that's what I do. And then just the fun thing about me, I'm a beekeeper. So I get really bored if I don't have a lot of projects. Beekeeping is one of them. It's usually an interesting thing to talk about. So if you want to talk about beekeeping, hit me up. So to dive in, what we're going to be talking about today, I'm going to cover first, what do I mean by chaos? We'll go on that on the next slide. Kind of like how we would have handled that chaos in more traditional environments that weren't containerized. And then I'll talk about how OpenShift can help you cope with this chaos. I think it has a lot of ways it can help you manage it that are a lot better than what it worked like in the traditional ways. And I'll do, I think, three hands-on demos with that and talk about two other ways that I won't be able to demo. And then finally, I'll make some recommendations on just ways, I think, that you can build cultures and teams that plan for this chaos and expect the chaos and learn to kind of manage and control it. And I'm hoping that I'll have some time at the end for questions, so we'll see. So first of all, what do I mean by chaos? I made this kind of cool word map with some things. I had fun putting gremlins on there. But so basically what I mean by chaos is that if you've ever run a production system at scale, you probably know that eventually kind of just weird things happen, right?   You know, weird things happen. Those three examples are all things that have happened on teams that I'm on. So I've been on, not anymore. It wasn't a niche, I promise. So anyways, we all know that we should, weird things happen, right? We all know that we should follow the best practices for testing our code, right? But deadlines are a real thing and you've got to rush to get software out and maybe you don't test all the edge cases and then it turns out that some weird non-unicode character comes in and it just breaks everything, right? You know, maybe it's not human error at all. Maybe, oh, I went to the wrong side, hold on. I was trying to scroll, go back. This is where I wanted to be. Where's my mouse? I got to find my mouse. Okay, I found my mouse. Maybe it's not human error at all, right? Maybe your network is a little flaky. Maybe an AWS region goes down, right? And takes down half the internet and you can't watch Netflix anymore. Maybe your hardware fails. Maybe Russian hackers dosh you, right? Because they want to steal your money, right? And so maybe the chaos is not a bad thing.    So you're so busy counting your money that you forget to plan for capacity planning and then you have a weird spike in traffic and it brings down your system, right? So all this stuff can happen. And like to account for it, I think you can do one of two things, right? Maybe you hire a team of like 500 full-time engineers and they maintain the system night and day and everybody's really busy and it kind of sucks.  And neither of these solutions is really very good long-term, right? Neither one of these is gonna scale. But if you don't do anything, then you're just app is gonna succumb to the chaos, right?  So what do we do about this, right? I think in the kind of traditional world, I'm gonna tell a story of how this worked kind of before containers and before open ship. Let's say you have an app, right?  So you deploy this app on a server, right? It turns out that you're trying to get up and running really fast. You deploy this app, you don't really take time for proper configuration management or deployment automation or like tests because those are for losers and who wants to monitor? Monitoring is for dummies, right?  But it turns out people like your app.  So you deploy a few more instances of it. You spin up a few more AWS servers or whatever. Now you're highly available, right?  So now you're redundant, right? And that's cool. And then it turns out that people like really like your app and people all over the world are using your app and so now you have to spin up like multiple data centers. So you're in like London and China and Australia and everywhere and you're really awesome. But remember, we still haven't taken the time for configuration management. So we're just, we're super busy having to do all this, right? You know, now you're global though, right? So maybe GDBR comes out or CCPA is coming up if you're in California. And so now you've got to start worrying about where is my data located and how can we get access to it? And it's just piling on more and more processes that how do we cope with all this, right?  Like it's just really hard to do, right? And so you think, oh man, this is not scaling and I need more people. I can't do this all alone. So now you like start throwing more people at the problem, right? You hire a couple of engineers. And now you have more and more people working on the system, right? And so they're starting to like commit conflicting changes and like they're starting to roll out different things at different times and you can't keep track of everything and it's not working.  Maybe I should like run on AWS or something. I'm running everything locally in my own data center right now. Maybe it'll help if I switch to VM. So you do that, right? And so like it's taking more time to manage. It's taking more money to manage. It's taking more time and more money, right? And the chaos continues. So I don't know if anybody's ever dealt with this but I think that it sucks. And I think that luckily there is a better way and I think that OpenShift can help. So that's my little OpenShift hero guy swooping in. I was looking for a hero with a cape but my icon library didn't have one. So if you manage to read how that icon library give me a user with a cape. Anyways, so OpenShift I'd say has some really cool features just out of the box that you can use to help with this chaos. As I said, we're going to explore five of them today and I think three kind of hands on. So the first one I want to talk about is monitoring. So, you know in the past we had things like Xavax and Nagios and all this other stuff that like worked reasonably well. But there's a new player that's come on the scene called Prometheus. If anybody's used Prometheus it's really cool. It's really swanky. I would say it's kind of becoming a new standard for monitoring applications. And what's really nice is Prometheus integrates just beautifully with Kubernetes and therefore OpenShift. And you can configure it in a way that you just get automatic monitoring scraping of your services. You can really easily, if you have a custom like Flask App or whatever you can very easily add custom metrics into it. If you're running like a MySQL database or whatever there's like plenty of options for telling Prometheus to just scrape through MySQL server and you don't have to worry about custom metrics or anything like they're just out there. You pull them, right?  And there's a library or a tool called Grafana that you may or may not know about it. That's been around a bit longer than Prometheus. But it's a really nice visualization tool on top of Prometheus. So you can get a really swanky monitoring suite. And then Prometheus has an alert manager component as well that you can configure to generate alerts based on the metrics that it scrapes. And you can send you an email. It can integrate with the Slack or whatever. You can have it send to Page or Duty if you're using that. It works really well, right? And so real quick I'm going to try and demo sort of just this. So bear with me. I'm going to see what happens if I drag this over. Okay, I have to escape out of this, I think. Escape, cool. So I'm going to do everything over here. Is that big enough? Can you guys see that? Hopefully. I'm going to do this. I don't want to do that. I'm going to switch to screen mirroring because I feel like that'll be easier. Does anybody see my mouse? There it is. Displays. Mirror. All right, so here's what we're going to do. This is my command line, right? We're in OC, who am I? And I'm logged into an OpenShift server. That OpenShift server is running in a few VMs in AWS. It's OpenShift 4, provisioned a couple of days ago. And it should just work fine. And so the first thing I'm going to do, remember, I mentioned I work on the OpenData Hub team. And the OpenData Hub team, or the OpenData Hub project, one of the cool things we can do is deploy Prometheus and Grafana for you and configure it all to scrape metrics from any service that's deployed in your OpenShift project and display it in Grafana. So it's kind of cool. I'm going to open up Teamux because I like Teamux and I'm going to go to DH internal data. So this is not yet a public repo, but something like it will probably be at some point, but it's a deploy ODH. So what this is going to do is run an Ansible playbook that deploys the OpenData operator to my OpenShift thing. So it's actually going to create the OpenShift project for me, which is nice. It's just called DevConf demo. And then it applies if you OpenShift custom resources to it. So if I open up this guy over here, OpenShift, and I go to projects, like I'm already in DevConf demo, that's cool. Oh man, I didn't delete the namespace. That's okay, that's going to work out all right. Now I'm going to delete the namespace. OC delete. I didn't clean up after myself last night. Sorry guys. I want you to get the full experience. That's going to take a couple seconds. So anyways, I'm just going to talk through this. What's going to happen is I'm going to reinstall that OpenData Hub operator, which is going to give you a pod that's running the OpenData Hub operator. And then I'll run another command that's going to create an OpenShift custom resource for the OpenData Hub operator and tell it that I want to enable monitoring. So I can show you that real quick. So if I look at OpenShift object templates, O-D-H-C-R, I can see that down here, I'm telling it monitoring truth. So that means I want monitoring. Notice I've disabled Jupyter Hub and Spark and Selden and I guess Jupyter Hub again. I'm at that line and what the difference between AICUE, Jupyter Hub and Jupyter Hub on OpenShift is. But if you want a Spark deployment or a Jupyter deployment or coming soon like Kafka and then Selden and then ultimately the Thrift server, Spark and all that kind of stuff, explore OpenData Hub because it's really cool and it can give you all that stuff really easily. Today we're just going to do the monitoring aspect. Let's see what's happening with my project deletion. I think that's done. Cool. Let's try that again. Now we can see all this from scratch. So my DevConf demo project got created again. This time there's nothing in it but now there's an OpenData Hub operator pod. And so the next thing I'm going to do is deploy that customer resource that we were talking about. So for disclosure, this is going to fail first because it doesn't properly wait for the Grafana deployment to get created. So I'm going to deploy it. The OpenData Hub operator is going to deploy Prometheus. The OpenData Hub operator does correctly wait for Prometheus to happen because what happens is Prometheus starts up, then it configures Grafana to connect to Prometheus as a data source. Obviously for that to work, you have to have Prometheus working first. So the OpenData operator actually does wait. My crappily thrown together Ansible does not and I didn't take the time to fix it. But at some point this is going to become ready. We'll see you get pods. I'm going to wait for Grafana to switch to ready. This takes a few seconds, I don't know. Test, yes. All right, there we go. So now I should, still just one out of two is ready. So I'm going to wait a little bit longer for two out of two. There we go, all right. So I'm going to run that script again. And it is all idempotent, so let's skip some stuff or not do a changes with some stuff. But then what it will do is create a deployment of a really basic Flask app and then a Prometheus black box exporter which we can use to run availability checks against any arbitrary HTTP endpoint. And I think that's it. So what I do now is if I go into OpenShift and go to my Grafana route. Oh, the other thing my Ansible does is it gives me a Grafana dashboard which I just import via YAML. So this takes a little while to set up but what's going to happen is I have this other deployment which is a demo app which gives me a route that I can curl and just hello world, right? One thing that's going to be interesting in a second is this host name. It's going to be the name of the pod. If I curl this over here, it's that, right? Same thing. But hopefully at some point, yeah. So now you can see that this service is now green. It's available. So what's happening here is Prometheus is configured to run at a regular interval checks against the HTTP endpoint. If it's green, it means it's up. It's up. And then over here, this is the number of page count or page hits on it rather. The index route increments a Prometheus counter every time it gets called. So these availability checks are running every five seconds and it's going up. What's nice though is that, like, so these availability checks, there was a little bit of hard coding for these routes. I'm sure you could do it dynamically. I didn't take the time to. But these metric pooling up here for counts are just like, I told Prometheus to scope any Kubernetes service that exists. Actually you can enable that and disable that really easily. I'm going to show that because it's cool. So you get service, this guy, OCD. Describe, service, that's not right. Stand by. There's supposed to be a, oh, yeah, it's an annotation. I was looking under labels, it's under annotations. By setting an annotation of Prometheus, that was slash scrape, slash true, I'm telling Prometheus to scrape this. So if you spin up a new application and you put an OpenShift or Kubernetes service in front of it and you set this annotation, you automatically get Prometheus scraping and it's really nice. And I think that before Prometheus, if you had Nagios or whatever, that was a lot more work to set up. Now it's just like, you deploy Prometheus once, you configure it correctly and it's really easy to get monitoring and really easy to start playing with Grafana graphs and get metrics for your service and it's awesome. So the next thing, I'm going to go back to my presentation and I'm going to step forward to high availability. So I'm not going to spend much time in the slides because I'm just going to demo this again. So let me do this. I'm going to make this smaller and we're going to watch kind of in the background that's green right now. I'm going to do OC get pods. So this is the one instance of my API running, right? It's in this pod here and let's say like some sort of chaos happens and your pod dies. So I'm just going to OC delete pod this and it kills it. And what we should see is that would go red and if I run a curl command, like I get some gibberish now instead of that nice hello world. So like my API died, right? And before Kubernetes, before open shift, if you wanted to avoid this, like what's happening here is I'm not, I don't have any redundancy, I don't have any high availability. Remember what we talked about? Like if you want to fix this, you've got to buy a few more servers, you got to buy a load balancer, you have to configure all that, it's a lot of work. And with open shift, this is really easy. And I like if you use open shift at all, this kind of becomes second nature. And so if you use open shift, this is like not an exciting thing to talk about in the talk. But if you haven't used open shift, this is so cool. Like if I want to fix this, I can run a scale command. I would, you know, in production, I would do this in YAML and put it in Git but this is just easier for this. I can run an OC scale command and then I can do OC get pods. I'm gonna watch that. What's happening is my demo app where there was previously just one of these, there's now two of these and there should be one, two. So I scaled up to two and now I have two pods. And what I can do now is I can delete this pod, do the same thing I did before, OC delete pod that. One of my pod dies, but this is never gonna go red. I can curl it and it's just gonna keep working. And once that pod dies, I'm gonna run my curl command. Curl.  I'm gonna watch this actually. Watch.  And one. What we should see eventually is this hostname should switch to a different pod. There it goes. So what happened was I deleted one pod. All the requests were going to the remaining pod. At some point, OpenShift realized, oh hey, there's only one pod here. There's supposed to be two. And it's one of different ones. And now OpenShift is round robin-ing me between them. So with like one command scaling up from one to two, you have more high availability. Usually you'd want at least three. But like, it's just super easy in OpenShift. This is super easy in Kubernetes.  So this is a really cool thing. Back to my presentation. I think the next thing is on hardware placement. So I'm gonna do this. I'm gonna switch back to, I wasn't gonna say I was gonna switch back to extended, but I guess I'm not gonna switch back to extended. I can just talk about this for a second. So this is one that I don't have a demo for. And this is one that I wanna talk about, like where your pods run. So again, in traditional applications, you want high availability. You want to avoid chaos, like network failure or hardware failure. So you deploy an instance of your app in, like keeping in mind which rack it's on, which top of rack server it's on, which row it's on, which data center room it's on, which availability zone it's in. And like, it's a lot to keep track of. And then just keeping track of it is a big job. And then managing where your applications are deployed so that they're spread across them. So if an AWS region goes down, you're still running the other one, like there's a lot of work and it's hard to do. With OpenShift, you still kinda have to keep track of that underlying hardware topology, but the placement is really easy. So there's two features I wanna talk about. I think it's two. I'm not looking at my notes, I'm doing this. We're doing it live. So one feature that you can take advantage of is pod affinity or anti affinity. So let's say you have, in our API example, we had two pods, right?  So what you can do is tell OpenShift to apply an anti-affinity rule on these pods so that they never get placed on the same node. So you can lose a node, maybe you lose one pod of your API, you don't lose both. OpenShift automatically spins up another one, you're good. Maybe you have an API and a database and you want like really a latency between them. So maybe you want your pods to run on the same node as your database. You can do that too with an affinity rule. So not anti affinity, but affinity. And tell the pod to always run with the node. So that's one thing, anti affinity, affinity. If you're interested, check it out, Google it. The other thing you can do is like node-aware placement. So OpenShift gives you the ability to assign arbitrary labels to your underlying OpenShift hardware nodes, right? So you can do whatever you want. You can specify a label for your availability zone. You can specify a label for the hardware person. You can specify the top of rack server. Like you can just, whatever you want, right? And then you tell OpenShift to deploy, to use those labels when deploying your pods. So again, you can do affinity to node labels. So you can say that like, don't run any of the two pods on the same underlying node with these labels or whatever. You can do whatever you want. So it becomes really easy to manage like the placement of applications relative to your underlying hardware topology. And again, doing that without a tool like Kubernetes OpenShift was like a lot of work. You had to, like it was just hard. You had to, if it was hardware, like without a VM, you had to pick the machine, right? And then you had to have these massive maps of your data centers and know where everything's deployed. When you have thousands of servers, that's hard. If they're VMs, you have to like, that's just like another layer of complexity. You have to keep track of where the hypervisor is and like, it's just a lot of work. And Kubernetes and OpenShift makes it really easy. I couldn't really demo that because it's hard to get a test environment with multiple nodes. Anyways, though, scaling is something that I can demonstrate. So specifically what I want to demonstrate is some of the Kubernetes or OpenShift auto-scaling features. I don't remember what's on this slide, but I think the exciting thing here is going to be the demo. So that's what I'm gonna do. So what I'm gonna do is I have another script here called deploy auto-scaler. So OpenShift has the ability to automatically scale your applications up or down based on memory consumption or CPU consumption. You have to have the metrics module or whatever enabled in your OpenShift server, but I think that's becoming pretty standard with OpenShift 4, so it's on in mind. What I'm gonna do is deploy auto-scaler. And what this is gonna do is deploy, I think I'm using the same basic deployment, basic class gap I had before, but it's also going to deploy what's called a horizontal pod auto-scaler. So if I do run OC get HPA, you can see I have this DevConf demo auto-scaler, and it's going to watch my DevConf demo app deployment config and say minimum of three pods and maximum of 10 pods. So if I do OC describe deployment config devconf demo app, what we should see, yeah, I'm not gonna do describe, I'm gonna do get. OC get DC devconf demo. So notice that desired is three now. So remember, we only scaled it up to two before, but I deployed a horizontal auto-scaler and told it to keep a minimum of three pods of that, and it just did it, it scaled it up to three. So that's kind of cool. One thing I can do is go over in OpenShift to this monitoring tab and see some dashboards, and I can try and get the memory consumption for my app. So, this is probably what I want. If I can scroll down, I gotta select my namespace. If you haven't played with this, it's really cool. So this is, again, the file on top of Prometheus built into an OpenShift cluster and automatically pulling metrics for your pods to play with it, it's really cool. But I wanna find my devconf demo namespace. Stop clicking and scroll up. All right, so in here, I can find my pods, memory usage pods. You see, devconf demo has a request of 500 megs, limit of 500 megs, it's only using like 35, 37 megs right now, so not very much.  What this does is it generates like 100 megs of random binary data in Python and stores it in a Flask global variable list. Don't ever do that, it's terrible. But it was the easiest way to come up with the simulate memory usage. And what we're gonna see if I run this a few times is this memory usage here is going to start to trickle up. It should spread this across multiple ones. I'm gonna run it a couple times. And normally what would happen is ultimately your pods would run out of memory. The OOM, Oomkiller would run and kill your pods and like you'd have just like Oom things can be hard to debug, whatever, but like you'd have instability, you'd have downtime, right? But so let's see, yeah, so this is, like now it's using 133 megs and like there's some latency here so it'd take some time to catch up. But what I can do is OC get HPA again. So now it's saying that like I'm using 13% out of my target 25%. So what I'm telling this horizontal pod out of scale to do is if this deployment config starts using more than 25% of its memory targets, start scaling it up up to a max of 10. So if I curve this guy a few more, I should be running this in curl and not in the browser because of sticky sessions. What was happening a second ago is all of the requests were probably going to one endpoint. And I want them to evenly get scaled. So look, now we're up at 32%. So in a second, this should go from three to a higher number. I'm going to do this a couple more times. Look, now it's at four. So describe, no, no, just get. So again, you can see now there's four pods and that would just happen automatically up to 10 pods.  And this was my dream to get to, right? We had really, really common like usage cycles. I'm sure a lot of you are familiar with this. Like during the day, traffic peaks up at night. It goes down. Maybe it follows like a global pattern of time zones. And kind of a lazy way to do this. And what I think a lot of us do is you just scale your application up really high and you just, you account for the peak and then maybe you double your peak, right? So you just, that's capacity planning, right? I'm just, I'm super over-over-allocated.  And what you really want to do is like auto scaling that takes into account how much usage you're using and what your load is. And like that's the dream in, but it is hard. Like it is hard to do with VMs. And it is really easy to do with open shift and with Kubernetes. Like that took two minutes. Like that was super easy. And now if your memory, so the limitation of this is it's currently, at least as far as I'm aware, it's only based on CPU usage or memory usage. But if your workload, like if that's, if you fit within that box, this is so easy to do. And you should play with it. It's called horizontal and pod auto scaling. So play with it. All right. We have 14 more minutes. I'm gonna go back to the slides now. Bear with me because I do want my notes for the rest of this. I'm gonna unplug for a second. Notes. All right, we're back in action. So that was scaling. And I think I talked about everything I wanted to. All right. Come on mouse. Where are you? I'm on monitor. I locked my screen, so I wanted to do. All right, I'm good now. All right, so the last thing that's like specific open shift features that I wanna talk about is complex rollout strategies. So this is really designed to address the, so when I was talking about examples of CAS before, remember I talked about you upgrade your software and maybe introduce a bug or whatever, right? And a really common way of addressing that is to leverage something called a blue-green deployment. Basically what a blue-green deployment is is you maintain two instances of your application, right? You have the old application that you know works and traffic's going to it today and everything's good. You roll out the new version. And again, the easy way to do this is just send all of your traffic now to the new version. But that can be dangerous, because what if you have a bug and then you break all of your users and it's no fun? So with a blue-green deployment, what you should do is run both instances in parallel and try and migrate some subset of your users to it, right? So with vanilla open shift, what you can do is just deploy multiple instances of your deployment config, put a service in front of both of it. You have your main route, maybe you create a second route and you deploy your dev team or your internal users or something at this new route, test out the application, verify it works. When you're good, you point your official route at the new service. Done, right? There's a thing called Istio that I would really like to have time to talk about or actually demo here. But Istio has this thing called the service mesh that works with Kubernetes. And you can, so vanilla open shift, it's kind of manually, manual a little bit clunky. With Istio, it's just built in. And so you can do really cool things, spin up your new application and then send a specific percentage of your traffic to your new deployment. Or if you have different global regions, you can say send this region over here and this region over there. You can do really cool things and you can orchestrate the flow of traffic to make sure you're evenly or fully utilizing your resources. You can do some really cool stuff. So pulling this slide, consider doing blue-green deployments if you're not because they're kind of cool and they're a good way to make sure you're safely upgrading and things like that. If you really want to be cool, play with Istio because it's kind of cool and I want to play with it more. So that's what open shift can do to help. I do think though that there is like, know your tools that can really help but a lot of this starts with the team. And so I think that in order to really take this chaos head on and address it, you need to change your team culture. And there's two or three things that I wouldn't specifically recommend. One is I think you have to change what it means for work to be done. People on my team, I harp on this, but an app is not production unless it's monitored and unless you have a plan for scaling and unless you can deploy it repeatedly and easily and if it's documented and you have monitoring and alerting and the team knows what all that is, my team is probably really tired of me saying that. But I think the alternative is you do a prototype, you get it working on somebody's laptop and then you say, okay, let's deploy this to production and then that's just don't do that. It doesn't work, right? Like there's all this extra stuff that goes into running a production. You have to have a plan for it. And I think that as teams, we have to really adopt that in mindset and like hold ourselves to a higher standard. And this can be hard, right? Like you have deadlines. You have like management says, this was really easy to get on your laptop while it's not working in production yet, right? Like I think this takes buy-in from multiple levels. It takes buy-in from the team, it takes work from the team, it takes buy-in from leadership. And I think it's a culture that we just have to fix, right? So that's the first thing I think we have to do. The second thing I think we have to do is embrace the DevOps model, right? So kind of in the old world, a developer would write the code and just wanted to write the code and didn't want to care about what happens in production. They kind of just throw it over the wall for the ops teams, right? And this is DevOps, right? If you've read any DevOps book, the Phoenix Project is a good one, by the way. Like this is DevOps, right? You have to get the people writing the code to at least know what's going on in production. And then they can start like thinking about monitoring and maybe instead of writing some behemoth application that's like impossible to monitor, they start thinking, how do I build in Prometheus metrics into my app? Or just like, how do I architect this in a way that it's really easy to scale or monitor? And like at least get the ops, like you can still have ops teams and you still have dev teams, but get them together and talking and build better apps that are more fit for production as a result. And the last thing, and I do have a little bit of a demo for this, it's kind of cool, is like fire drills. So we do them in school, right? We do them in our offices, they can be really annoying because you have to leave in the middle of a meeting. But I think like they're important because they can, like if you simulate this chaos in your world, you get really good at handling it. You know what to do, everyone on the team knows what to do. And it like, it exposes the areas of your applications that are not really yet robust or resilient, right? And there's a cool tool for this that I'm gonna demo called CubeMonkey. So there's a tool out there, I think Netflix invented it or wrote it called ChaosMonkey. And it's this app that you can omission your production environment and it will just break stuff, right? Somebody wrote another version of it called CubeMonkey for Kubernetes. And what it does is it will randomly kill pods. So it's kind of cool. I'm going to go back, I think the next slide is just questions. So yeah, so let me, let me mirror my displays again. We'll need to go back and forth anymore. I'm gonna go over here and I have another script called deployCubeMonkey. And what this is gonna do is deploy as a CubeMonkey pod and it will be configured in a debug mode. And it runs like every five, I guess 15 seconds. And it will, so normally you configure CubeMonkey to run at a set time every day and you give it a window of time during which it's okay to kill pods and you give it parameters for like how many pods in a deployment or whatever to kill. In debug mode you tell it to run like at a regular interval and every time it runs to kill a pod. So normally there's like a waiting thing. So it's kind of designed to deploy in your production environment and just turn it on. And applications can opt into it. So like it doesn't kill a pod unless an application specifically opted into it. And so like I think you can really leverage this on your teams. Deploy it, let every team use it and tell teams that they can opt in on this. And like they set the parameters. That's like you have a really important app that's like not ready to be brought down on my team. This is probably the last six search. Like I don't want that those pods to randomly get killed. But if you have an API that's in theory like resilient and fault tolerant enable it. And it will just get randomly killed and you can test your modeling, you can test your loading, you can test what happens to users and it just gives it to you for free and like it will become the norm and your teams will just accept it, right? So what this is going to do is it's going to deploy Q-Monkey configured in a debug mode.  It deploys another instance because the one you've been looking at so far used an OpenShift deployment config. From what I could tell, Q-Monkey requires a Kubernetes deployment which is slightly different from a deployment config. But if I go over here, you'll see now I have this Q-Monkey pod that's getting started up. Then I have this Q-Monkey victim pod. If I look at this, I think I can do this in the UI. Yes, I have these labels. Can I make this bigger? Maybe I can expand the window. This is like my first time using OpenShift 4. So, all right, I guess this works. So Q-Monkey victim equals enable. So that means I'm opting in. You give it an identifier. You tell it like a mode which is fixed or random. So how many of the pods should Q-Monkey kill? I'm telling you just one at a time. Meantime between failure is how often it should get killed but in debug mode that's kind of ignored. Anyways, if I go over to my Q-Monkey pod. Here it is. I can look for the logs. Man, this is really small. I could do this in the command line but I'm already here. Like you can see it's running every 15 seconds and it's identifying this Q-Monkey victim deployment and it's gonna kill it, right? So every 15 seconds my pod's getting killed. Again, in production you would probably not run every 15 seconds but you could. And this Q-Monkey victim, actually I don't wanna do that. Well, yeah, let's go back to pods. Q-Monkey victim. What we're gonna see is every 15 seconds this pod's gonna get killed and automatically recreated. And just an example of what kind of things you can put in place to watch this is, so this other line is green now, Prometheus is doing availability checks on my app and every 15 seconds or whatever it's gonna go to red. So I could watch that and see, oh, my service is intermittently available. I should fix that. What can I do? Oh, maybe I should do scale it up. There's just one pod now. We already know how to scale up to two, do that kind of thing. And so this is a really easy way to, nobody, it's kinda boring to do availability testing on your service, right? This kind of just does it for you in a way. And I think it can be a really good tool in your tool chest of building more resilient apps, more cash resilient apps, right? So I think that that is all I have. And as promised, there's time for questions. I'm gonna go to the resources slide though. I have to find the resources slide. I'm gonna work on this, but I guess I can open up the questions. If anybody has questions for me, I'm all yours. Yeah, here are the resources, so jeez. This has links to the code that I used for this, to the open data project, and to Qmongi and SEO that I talked about a little bit. Questions? Yeah? When you just leave the pod, is the process running the pod that you care for? That, so the question was when you, so I showed the reading the pod, right? The question was, what happens kind of under the covers? Is it a kill? Is it like a, like is it a hard or graceful kill, that kind of thing? I think that, I actually don't 100% know the answer to that. I think that that's something you can configure with OpenShift, and you can do like startup and shutdown commands and that kind of thing, and you can kind of build it into the app. But I'm really glad that you asked that question because it reminded me of something I want to talk about. There are multiple like deployment modes that you can specify, and you can specify recreate versus rolling, and the difference there is, I think with recreate, it will spin down your app and then spin up the new pod, and so like, maybe you have a database or something like that that's, you know, you can't really run multiple instances of it, it's talking to the same underlying files you would want to delete the pod before you spin up the new one. So there's a little bit of downtime, right? With rolling, it like spins up the new pod, then spins down the old pod so you don't have that downtime. So that's another thing you can tweak to handle this kind of stuff.  Okay, and I guess the same thing with the kid monkey where I would assume that should be like a catastrophic, just turn off the lights, the pod's gone. Right, that's my assumption. I would have to look into it more to figure out exactly what's happening because I agree, like that's what you want. Maybe there are different ways. I think like CubeMonkey's open source, I would like, that'd be an interesting thing to contribute is like a way to specify how it kills it because then you could test like how do your apps, like is your app configured to die gracefully, that kind of thing. And I'm really glad you introduced us because I wasn't aware of CubeMonkey on Kubernetes, but this is massive because this enables anybody that's moving to Kubernetes or OpenShift environment to start to adopt some of the things that are commonplace at Netflix that nobody else, that I know is really doing it. I've run into a few companies that are supposedly doing the semi-an army stuff, the chaos monkey stuff, but nobody else. Yeah, and like it was really easy to get running an OpenShift. The one thing that took me a while to figure out is I was trying to deploy the app as a deployment config. It wouldn't work. Finally I changed it to deployment and it did work. But like once you're running, it was so easy to opt in. You just set those labels on your service and now that service is gonna get killed regularly, right? Super easy. So yeah, like we use these tools for the traditional deployments. We should be using them for OpenShift and Kubernetes too. Yeah. Introducing CubeMonkey. So I have a question. So do you think it's also a good way to introduce CubeMonkey if you want to kill your servers based on a certain condition? Like I regard, apart from the fact that you, I know you said that it will kill anything for 15 minutes or something, but apart from the time condition, like probably a health check or anything like that, do you think it's a good way to do it? Yeah, so what I know that CubeMonkey can do right now is you can specify like the mean time between failure at the mean, maybe minimum, I don't know, on your pod deployment configuration, right?  And when CubeMonkey runs, when you're not in debug mode, it will decide like is this eligible for being killed and then there's like a random coin flip thing it does to decide whether or not to flip it now. So there's like a little bit of that logic there. I don't know if you can do anything like more than that, like you described, but again, I think that'd be like, I think CubeMonkey's relatively new. I think that'd be a really cool thing to contribute to it. Yeah. Hi, Louis. Hey, Alex. Do you know what the plans are for extending the auto scaling capabilities? Is operators the answer to that? So the question was like what are the plans for extending the auto scaling capabilities if they're playing use like operators or whatever for that? Again, I don't really know the answer for that. I don't have a lot of insight into the development of this. I'm just somebody who's excited to use it. I mentioned that the auto scaling right now is limited to only being able to scale based on CPU usage or memory usage. I think like I would really love to be able to do like a custom script that decides whether or not to scale it up and I could do it based on like message queue numbers or something like that. I don't know what the plans are for that, but I hope that that becomes a thing because yeah, it'd be awesome. All right, well, I think that this went until 10.35 so I'm typically two minutes over, so. All right, thank you, everybody. Hope you liked it. Thank you, Alex, and before we disperse, I'd like to.


Hey Eric this is Megan with Oxmore Toyota. I just want to send this quick video greeting just to personally introduce myself. It has come to my attention through Toyota.com that you're in the market for a new 2016 Toyota Prius. In this email you'll actually find a link to all our new and pre-owned Priuses that we currently have. When you can, go ahead and give me a call. You can reach me at<PHONE_NUMBER> and I look forward to hearing from you soon. Bye!


It is now time for oral questions. I recognize the member for Nickel Belt. Thank you, Speaker. My question is for the Minister of Health. Over 2.2 million Ontarians do not have a family doctor. More than 360,000 of them are children. That number increases each and every month. It will reach 3 million people by 2025. As fewer medical students choose family practice and more family physicians retire, their growing physician shortage will put more pressure on already overwhelmed hospital, emergency department, urgent care, and even our long-term care homes. Family doctors need this government support to continue to provide top quality care to us, like access to team-based care, like reduced administrative burden, like an electronic health record that actually works. Will this government listen to Ontario family physician and act upon their recommendations? Thank you, Speaker. Not only are we listening, we are working with the OMA, our partners in universities. When we made our most recent expansion of residency spots, both students incoming and post-secondary post-graduate, I had university pre-fossed and presidents say this is the largest expansion that they have seen in their university health expansions in historic numbers. They are thrilled that, as an example, we are seeing more individuals choose to study medicine and we as a government are committing through residency spots increases to ensure that those young people who want to practice medicine in the province of Ontario have that opportunity here in their lives. Minister, more than 500,000 people living in Toronto and Mississauga don't have a family doctor, including over 136,000 of the lowest income earners. Half of the people without a doctor in Toronto and Mississauga live in racialized neighbourhoods. Doctors are only human. They can only take about 1,000 to 1,200 patients, although many doctors have much larger rosters. At this rate, the GTA will need about 400 more doctors to meet the demand in the region. What plan does this government have to immediately recruit hundreds of more doctors in the GTA? Minister of Health As we passed Bill 60 this week, it was very exciting to now have the opportunity to have, as of right, in the province of Ontario. As of right means that physicians who are practicing in other Canadian jurisdictions right now have the opportunity to practice in the province without making those investments because we understand that there are short, medium and long-term plans that we can put in place that we have put in place, including an investment of $33 million to make sure that an additional 100 graduates are going to have the positions and availability to practice, train and teach, and practice in the province of Ontario. Thank you, Speaker. Next supplementary, final supplementary member for Kiwetnaw. Amigwit's Speaker, in Northern Ontario, there was a shortage of 350 family doctors and specialists. We also know that nursing stations on reserves are staffed by federal and agency nurses. It's like this, Speaker. Federal nurses have to reach out to on-call doctors by phone to provide a diagnosis. That's normal in the north. The doctor shortage leads to unnecessary suffering. Speaker, it leads to unnecessary deaths of patients in the far Northern Ontario. I ask, how is this government going to immediately immediately help the people of Northern Ontario the suffering because of the Dr. Schorich? Mr. Bell. Since 2018, Speaker, we have added an additional 1,800 physicians in the province of Ontario. We have put in place programs specifically for Northern Ontario to match emergency department with peer-to-peer ED doctors to make sure that they have access to peers who are there for them to be able to work through issues and problems as they appear before their emergency departments. We'll continue to do that work. It is not one issue. It is not one solution. We are doing everything with our partners, including in a partnership to increase family medicine by a partnership between Queens University and Lake Ridge that actually is focused on training new family docs to make sure that we have the capacity in the province of Ontario to serve our growing population. Thank you. The next question, the member for Waterloo. Thank you very much, Mr. Speaker. My questions for the Minister of Health. Nearly 65,000 people in Kitchener, Waterloo do not have a doctor. A quarter of those people are among the lowest income earners. They can't afford to pay. They can't afford to pay an annual subscription to a clinic or fees for virtual care. Thousands of people who could be getting proactive preventative care are going to the emergency room when their illnesses have progressed. So many lives can be saved with early intervention. What will this government do to support family doctors to hire more administrative and clinical support so that they spend more time with their parent patients as the Ontario College of Family Physicians has recommended this government to? The Minister of Colleges and Universities. For that question, I find it very rich coming from the opposition today. Well, every one of you stood up yesterday and voted against Bill 60. If you had read the... Minister, take your seat. I'll ask the official opposition to come to order. Minister of Colleges and Universities can conclude her answer. By passing Bill 60, we are adding an additional 24,000 PSWs. 55 new physicians, 52 new physician assistants and 150 nurse practitioners. You're asking us what we're doing. You're voting against every single measure we take. The House will come to order. Restart the clock. The supplementary question member for Oshawa. Thank you, Speaker. Minister, the shortage of family doctors puts additional pressure on our hospitals and emergency rooms. Angie in my community went to Lakeridge Hospital's ER with chest pains and emailed me while waiting in Emerge. She was told only one doctor was on duty and there were 119 patients waiting. I wonder how many of those people could have received faster care or avoided the ER if they were able to have seen a family doctor. So, Premier, over 44,000 people in Durham Region don't have a family doctor. Can I tell people who are writing to their MPPs from the emergency room to keep waiting or that help is on the way? Mr. Bell. This is really an important opportunity to highlight the many different programs that we put in place to assist our ED physicians, to assist our hospitals, to assist our paramedics. One of them I would highlight is, of course, the dedicated offload nursing program, funding specifically to ensure that a nurse of respiratory technician or a paramedic is offloading and taking care of those patients to ensure the paramedics can get back into community. Another one, of course, is the 9-1-1 models of care, where we don't just force paramedics to take individuals to emergency departments. We have the opportunity now, whether it is for long-term care, palliative, and now actually expanded into diabetes and epilepsy. I understand the members' office don't want to hear the good things that are happening in the province from there, but I will tell you that I am getting feedback that says these changes are making a difference and are working. The member will come to order. The member for Hamilton Mountain will come to order. The member for Brant will come to order. The Minister of Energy will come to order. Restart the clock. The final supplementary. The member for Thunder Bay Superior North. Thank you, Speaker. The region of Thunder Bay has at least 45,000 people without access to primary care. Greenstone is losing two doctors at the end of the month and seniors are being left without access to any care whatsoever. There are solutions, further increase enrollment, and create a Learn and Stay program for doctors at the Northern Ontario School of Medicine, establish more practitioner-led clinics, reduce the administrative burden on doctors, and create a centralized electronic records and referral system now, not in five years. Finally, invest in the solutions so clearly identified by medical professionals that are not happening now. Minister of Health. Speaker, Northern Ontario School of Medicine, 20 additional residency spots were just announced in this chamber that doesn't understand and appreciate with a growing and aging population we need to do better. What I will say to the NDP and the Liberals is where would we have been if they hadn't cut those 50 residency spots? We were picking those investments and the member opposite can either choose to work with us or continue to complain. But you will see that there are already improvements happening in community because we are making the investment as a government. Grant, come to order. Member for Waterloo, come to order. The next question. The Member for Spadina, Fort York. Thank you, Mr. Speaker. I just heard the Minister of Health talk about getting care into communities and we have people from Minden today whose emergency room is being shut down. You're taking the care out of their community and it's absolutely shameful. When I asked in this House about the closure of the Minden emergency last week, the Minister of Health said that the decision was made at the local level and refused to take responsibility for it. But the Ontario Health Coalition informs me that this is the first time in Ontario that a Minister of Health has refused to take responsibility for a hospital closure. Because of this closure, lives will be at risk over the summer because of the long ride to the Halliburton Hospital. Does the Minister understand that those lives will be her responsibility? Speaker, while I appreciate that I cannot correct a member's opposite record, the Minden hospital is not closing. I want to be clear. The local decision made by hospital leadership supported by a volunteer voted board has made a determination that in Hamilton Health Science they want, sorry, Halliburton Health Science they want to combine Minden and Halliburton Emergency Department. All of the other critically important services that currently happen in the Minden hospital will continue to happen in the Minden hospital. There is no doubt that when changes happen, including emergency department closures, it is very challenging for the community. But I want to reassure and remind the member opposite that these are local decisions made by local leadership, local hospitals. Supplementary question, the member for Nicobel. Thank you, Speaker. The emergency department in Minden needs to stay open. A police officer arrives at Milken Training Center for Pistol, Carbine or Rifle Training. Sometimes things go wrong. They're 11 minutes to the emergency department in Minden. The brand new Nesbitt Arena has tournament and training camp all year round. The kids get hurt. It is three minutes drive to the Minden Emergency Department. The 62 residents who live at Highland Press long-term care needs urgent care. It's a zero-minute drive. They are attached to the hospital, but they won't be able to go there anymore. The residents of Minden and all over surrounding area are here today at Queen's Park. They came to Queen's Park to ask for the minister's help. They want her to use her power as minister of health to put a one-year moratorium on the closure of the emergency department of Minden Hospital. Will she listen to them? Will she help them? Please take their seats. Minister of Health. You know, Speaker, so often in this Chamber we talk about the importance and value of community leadership, of ensuring that community has a voice. And now the member opposite is suggesting that we need to override community hospital leadership decisions and board-supported decisions. It is very unfortunate that they have not supported the local decision made by hospital leadership at the Halliburton Health Sciences. Thank you, Speaker. The next question, the member for Brampton North. Thank you, Mr. Speaker. My question is for the Minister of Economic Development, Job Creation and Trade. Ontario is home to a world-class life sciences sector, with our researchers continually pushing the envelope for better health outcomes for all. But if there's anything that the last few years have shown us, it's the importance of having an established medical manufacturing sector that tops the life sciences agenda. That's why last week's Moderna announcement was so welcomed. Speaker, will the minister please speak further to the progress that this government is making to ensure that Ontario will never again be left behind and left reliant on others for critical goods? Minister of Economic Development, Job Creation and Trade. Speaker, supply chain issues caused by the pandemic created global shortages of many vital healthcare devices. One such shortage was epidural catheters, the medical standard when it comes to providing adequate pain relief during labour, or so we've been told. We put out a call, Speaker, to reshore manufacturing of epidurals right here in Ontario, and one company, Canadian hospital specialties, answered that call and will now manufacture epidural catheters at their plant in Oakville. Now, last week with our MPPs from Oakville and Oakville North Burlington, CHS announced a $1.5 million investment to fill that critical supply gap and hire 10 people along the way. What a great example, Speaker, of seeing a problem and solving it right here in Ontario. Premier Ford calls that the Ontario spirit. And thanks to the minister for his answer and quite frankly for his leadership on the file. It's great news that Ontario will now domestically produce epidural catheters. This announcement is a welcome relief to hospitals who struggle to manage their supply of epidural catheters and secure inventory. Because of the leadership demonstrated by the Premier and this minister, Ontario manufacturers have begun to produce an increasing number of critical medical supplies. Speaker, with the ongoing rollout of the life sciences strategy, what further initiatives can we expect to see from our government as we continue to bolster our manufacturing industry, create jobs and position on Ontario as a world leader in the medtech and biotech sectors? Minister of economic development. Speaker, Ontario has a very rich history of lifesaving medical breakthroughs from discovering insulin right here in Toronto to detecting the gene that causes cystic fibrosis to developing the world's first cardiac pacemaker. Millions of lives have been vastly improved because of the groundbreaking work being done right here in Ontario's life sciences sector. Our new life sciences council will help to accelerate communication, commercialization and encourage adoption of made in Ontario health innovations. Much like when we did the auto sector's driving prosperity plan, we've now introduced taking life sciences to the next level and it's their plan for Ontario's first life sciences strategy in over a decade. Speaker, this will ensure that Ontario is the global life sciences centre for our world's innovators. Thank you. Next question, member for Ottawa West Nippian. Thank you, Speaker. Five years after paying deposits to great wise developments, home buyers in Ottawa West Nippian are still waiting for their promised homes. They've been sent notice of delay after notice of delay with no delivery date currently provided. The developer also gave inaccurate information blaming the city for delays when actually the developer failed to file the permits. My constituents complained to the home construction regulatory authority expecting some support. Instead 22 months later they haven't even received a decision. Why is the Premier continuing to allow unscrupulous developers to run roughshod over Ontarians who just want to move into their new homes? Opposite for the question, it is this government that believes all Ontarians deserve a home and will not waver when it comes to protecting new home buyers investment in their future. Under this Premier, it is this government that is not only committed to building 1.5 million new homes but it is adding new ways to improve protection for Ontarians across our province. The changes we implemented over the last few months have put bad developers on notice and made bad developers think twice before trying to take advantage of our home buyers. Hardworking Ontarians can rest assured that our government has their back response when they make the biggest purchase of their life and with or without the support of the opposition. Two years to get a decision from the HCRAs and protecting anyone but developers speaker, it gets worse. While my constituents are in limbo receiving bad information or no information, a clause in the contract allows the developer to unilaterally cancel the home purchase if the developer believes that there is a dispute between the home buyer and the developer. This means that if my constituents speak up publicly they lose their new homes. It is unfair that a developer can behave with impunity and then take away someone's home if they complain. Will the Premier protect home buyers in Ontario by banning gag order clauses from home sales contracts? Thank you very much Speaker and thank you to the member for the question. Speaker the member opposite has a lot to say about helping Ontarians but when push comes to shove they choose to play politics rather than vote for real support for Ontarians. Speaker when our great minister of municipal affairs and housing introduced a bill in the fall that would not only punish bad developers with fines of hundreds or thousands of dollars Speaker, for the very first time the money would go back into the pockets of the affected individuals. What did the member opposite do? They voted against that bill Mr Speaker. They voted against stronger protection for the people of this province. Voted against providing families the relief they needed in this bill Mr Speaker. Speaker on this side and on that side as well too we are here. Opposition come to order, the House will come to order. The next question. Next question the member for Brampton East. Thank you Speaker. My question is for the Honourable Premier. Peel Region is one of Ontario's fastest growing municipalities and over the next few years we know that thousands of individuals families and newcomers to Canada will settle in our communities. With an abundance of job opportunities available along thriving businesses, community organizations, schools, healthcare facilities that are already there Peel Region is a great place to call home. However we know that there's a shortage of available housing throughout Peel Region and throughout Ontario. For too many Ontarians finding the right home is still too challenging. Our government must keep moving ahead with measures to tackle the critical shortage in housing. Speaker can the Premier explain how our government is increasing Ontario's housing supply? Thank you. Well thank you Mr Speaker and I want to thank the member from Brampton East. You're doing a fantastic job. Matter of fact all five members from Brampton are doing a great job. Mr Speaker we're in a housing crisis right now, a desperate housing crisis. No matter if it's new Canadians coming in or young people looking for a house to buy and they just can't afford it. It's very simple Mr Speaker it's supply and demand. We're going to build the 1.5 million homes. Mr Speaker we've set a record here in Ontario. We're the fastest growing region in North America not just in Canada not in Ontario but in North America. 445,000 people moved into our great province last year. The reason being Mr Speaker that's where they see the economic growth in North America right here because of my great friend Ray Pesami Minister of Economic Development have brought 650,000 more people are working today than they were under the previous Liberal government. Supplementary question. Thank you Speaker it's good news that so many housing projects are underway and that our government is creating conditions for more construction to take place. This will benefit my community of Brampton East and benefit other communities across our great province. Rapidly growing communities like mine need access to convenient transportation networks. The previous Liberal government ignored the need to build and expand vital transportation infrastructure like roads highways to keep up with future growth. Their failure to address the needs and expansions to public transit and highway network is making life inconvenient for individuals families and businesses. Transportation infrastructure is vital to address the highway congestion create jobs and support Ontario's economy. Speaker can the Premier please explain how our government is building stronger transportation network which will further support our communities. Premier. Again another great question from the member from Brampton East. Mr Speaker as we see the population grow as we see the economy grow we need to get people from point A to point B. Through our great Minister of Transportation Minister of Infrastructure we're spending over 184 billion dollars not just building new highways like the 413 or the Bradford bypass but also where I was yesterday Kitchener Waterloo we're building Highway 7 and Southwestern Ontario widening Highway 3. Mr Speaker we're pouring money into infrastructure no matter if it's 50 projects in the 50 billion dollars through new hospitals and expansions or long-term care Minister of Long-term Care the previous government built what 618 and 12 years we're building 68,000 new long-term care homes make sure that when the population grows they have a place to live and call home Mr Speaker right now Ontario is on fire and we're going to continue making sure the economy grows putting money back into people's pockets. Thank you Speaker my question is to the Premier a new report by the City of Toronto is raising fears that the Conservatives want to override Toronto's laws and make it easier for developers to knock down rental buildings kick out tenants and replace rent controlled homes with luxury condos. When renters are facing a demolition they need better protections not an eviction notice. To make our city more affordable can this government commit to strengthening municipal rental replacement laws instead of weakening them? Speaker we have not made any changes to existing rent replacement bylaws that are currently in effect in some municipalities they remain in place in fact we're proposing to build on those bylaws by explicitly requiring that municipal rental replacement bylaws include compensation and the right for the tenant to move back in at the same rent for example we're exploring right now a framework where a municipality could require that replacement units have the same core features like the same number of bedrooms as they did previously and requiring that tenants are given the right of first refusal to move into that new modern accommodation at a similar rent those are the fact speakers are the rules the supplementary question Minister we're currently debating a bill where you're looking at taking these rental protections away so that's a very interesting response my question is back to the back to the Premier average rents in Toronto have reached an alarming high of $3,000 a month which means losing your home to demolition is devastating right now there are 73 rental homes approved for demolition and conversion in Toronto putting over 3,400 rental homes at risk tenants living in buildings like those at 55 Brownlow 25 st. Mary's and 145 st. George are rallying at city hall today because they want to save their homes i'm going to ask the minister again can you commit to strengthening rental protections when a tenant is facing a demolition instead of weakening them again speaker i have to continue with this member to express the facts about what this government is is doing and again you know the question i have back to her is you know are you going to support the tenant protection measures that this government are putting into bill 97 do you support the tremendous work that the attorney general has done to ensure that the landlord tenant board moves forward with double the amount of adjudicators and also staff support to deal with the back that's the question before the house do you support tenant protections yes or no the next question the member for haulderman norfolk thank you speaker my question is to the minister of transportation i rise for the third time since last august to ask about the reconstruction of the caledonia our gal street bridge speaker i will continue to stand in this house on this issue until reconstruction begins because it's a matter of safety speaker last august the minister said the detailed design of the argyle street replacement was already complete and that the ministry was in the process of obtaining final approvals to proceed to construction the minister also said and i quote we will not take any shortcuts when it comes to getting critical infrastructure built speaker the ministry may not take shortcuts but the long way around could see this bridge collapse under this government's watch my constituents are fearful to cross the bridge and they become anxious when they are stopped in the middle during bumper to bumper traffic speaker through you to the minister what is the hold up and what is the date reconstruction will begin to apply the minister of transportation thank you mr speaker and i want to thank the member opposite for her important question our government understands the importance of the argyle street bridge and her riding as argyle street is the main street that connects caledonia and haulderman county mr speaker the bridge remains safe for limited use including emergency services v service vehicles the bridge is closely monitored by mto and load limit restrictions are enforced mr speaker but mr speaker as the member opposite knows for years the previous liberal government simply ignored important infrastructure investments like this one in rural ontario this bridge which was built in 1927 mr speaker has reached the end of its service life and it needs to be replaced that's why our government is saying yes to making these investments in rural ontario and that's why we're investing in replacing the concrete argyle street bridge with a new five span steel arch bridge supplementary question thank you speaker once again this is called comfort with respect to a reconstruction project that is more than 20 years overdue the ministry has said it's a it's a priority and the minister said that again this government has had five years to get the job done and yet reconstruction is sitting idling the ministry the ministry staff has said that the structure is safe and the minister alluded to it this morning by saying that some traffic including emergency services provided that the load restriction is followed and enforced the bridge is safe the truth is the majority of haldeman county is crossing over that bridge on a daily basis if the bridge is only safe if load restrictions are followed the traveling public has a right to know how many infractions have occurred and are occurring on a daily basis locals know what is traveling that bridge speaker questions to the minister how many fines have been issued since the load restrictions were put in place the transportation thank you mr speaker well i can report that the ministry has not observed a high rate of offenders the ministry has installed an electronic road monitoring system to assist with load restriction enforcement the issue that the member opposite is raising letters are sent to commercial vehicle operators reminding them of the posted load restrictions load limit restrictions and all commercial vehicles that are repeatedly found to be in violation of the restrictions after receiving the notification letters may face sanctions and the loss of their permission to operate their commercial vehicle mr speaker i can assure the member opposite as well as all members of this house that safety has always been and will continue to be our top priority the next question the member for markham thornhill thank you thank you my question is for the associate minister of competition public transit is the primary form of travel for many people living in my riding of markham thornhill and oh also for many people living in across the gta it should be easy for them to travel across the entire transit network it should be easy for them to travel not only what transit network make it easier however the transit system fare system under the different transit agency is unfortunately inconsistent this leads to confusion and misunderstanding so many individuals people who rely on the public transit are continuing on our government to remove barriers so that using public transit is simple and inconvenience mr speaker can the associate minister please question what our government is doing to deliver more option for riders to make transit more convenient experience in ontario thank you the associate minister of transportation to respond thank you speaker i'm very happy to talk about transit this morning a much better subject than talking about hockey speaker through last summer and into this winter we introduced presto's credit card tap option for riders on the go network in 905 with terrific success and over one million credit card taps have successfully been long speaker i'm happy to say that last tuesday our government under the leadership of this premier launched debit tap feature on presto and go transit and major local transit agencies on in the 905 that includes york region speaker in that members riding speaker this is game changing stuff changing the way that people are able to get from point eight point b and pay their transit fare with a simple tap of a debit card or a credit card riders can now take transit get to work school appointments everything in between i meant to say tap of course speaker this is uh something that the liberal response didn't do they left behind the commuters of this province this government won't do the same we're building record transit and making the experience better all the way i mentioned question thank you mr speaker thank you minister for that answer it is a good news that our government is providing new payment option that make it easier to travel on the public transit network access to more payment option is long over to you and is important to many individual and families public transit is an essential service and our government must continue to invest in public transit infrastructure so that many people can better to connect it to jobs and the travel mr speaker can the associate minister please explain what our government is doing to ensure that variable and convenient transit service available for all ontarians thank you mr speaker minister transportation speaker the members absolutely right the world moves at a fast pace and there are there's a language young people today are speaking that i don't really understand there are things being developed that are very quick and tough difficult to keep up with government has a responsibility to keep up with the times that's why we can't limit ourselves to just paying for transit through physical cards that's why people on the go 905 and the up express network can now use their credit and debit cards and smartphone or smart devices with a simple tap of your smart device to ride transit speaker doesn't end there because the new preso devices are also being installed on the ttc to deliver new payment options like credit debit and smart pay to toronto riders later this year progress is very solid in fact speaker i'm glad to uh update the house that the hardware refresh has been completed on buses and street cars the work is ongoing for stations unlike the down bad opposition speaker this government is getting it done for commuters in ontario questions the member for nag or falls thank you mr speaker my questions to the premier last year we learned otra villa owned by southbridge and one of the worst private long-term care operators in our province wants a 30 year license renewal now southbridge wants an mz o from the province to expedite a planned expansion pickering council saw firsthand the neglect that this company and firmly said no to their plan at a recent council meeting speaker will the premier listen to the concerns of residents families and the city of pickering or does he plan to renew these dangerous for profit homes with a 30 year license renewal and fast track expansion minister of long-term care very much mr speaker i appreciate the question from them our office but let me be very very very clear the premier of this province gave me a very clear mandate to ensure that i built 60 000 you and upgrade long-term care beds across the province of ontario part of that mandate was to increase the level of care to four hours mr speaker part of that mandate was to hire 27 000 additional healthcare providers healthcare workers for those 60 000 new beds mr speaker and let me be clear to the people of pickering they are waiting for a long-term care home what we are talking about here mr speaker is tearing down an old outdated home the orchard villa and replacing it with a brand new state of the art home for the people of pickering let me be very clear to the member offices although he is opposed to this i will do whatever it takes to remove the obstacles to make sure that that home is built because the people of pickering deserve nothing less mr speaker to the premier i just want to stop the dying in these long-term care homes yeah back to the premier the premier wants to build more beds but under a private for private owner operator those are just more beds for seniors to die in and to the to the minister and the premier look at the history of this company military intervention yep bedbugs staff shortage rotten food residents left in spoiled diapers class action lawsuit 80 residents died some from dehydration it seems likely the government will not only grant them a 30-year renewal but advocate for them to expand further we know the public not for the profit system is safer how can the premier justify even considering renewing ochre orchard villa license how can you even consider that mr long-term care it'd be very clear the very same unionized people down to our nurses association that's the i au they work in the same long-term care home that he is now criticizing mr speaker let's be very clear about that what we are talking about in pickering is tearing down an old outdated home that should have been torn down long before we came to office that is what he is advocating against mr speaker and this really isn't the first time in pickering we have two applications for brand new homes in front of pickering council one was this brand new orchard villa the second was an afro caribbean-centered home the first of its kind in ontario and they turned it down that is who the nvp are protecting mr speaker what i'm going to do is tell this member tell the nvp and tell pickering council very clearly the premier gave me a mandate to build 60 000 new homes for seniors across ontario i'll remove the obstacles and i will get it done despite the fact agra falls come to order the government house leader will come to order the member for nagra falls will come to order the government house leader will come to order thank you the next question starts clock sadly i'm hearing concerns from the people of my community about increased criminal activity of course the issue extends beyond our local community of brampton east we've all heard media reports about the rise on attacks of religious institutions and hateful graffiti hate motivated incidents that target individuals families and businesses based on their ethnicity religion race gender have many feeling vulnerable and threatened the public safety of all ontarians must be our government's highest priority the people of my community in all ontarians are counting on our government to support for support and solutions speaker can the solicitor general please explain how our government is addressing crime and increasing protection for ontario communities to reply the solicitor general thank you mr speaker and i want to thank my friend from brampton east for his question and as i said before everyone in ontario has a right to feel safe free from harassment hate and discrimination and that's why we're building in ontario for everyone where everyone belongs and everyone can contribute and prosper this is our ontario mr speaker i want to share this house that our police work day and night to protect all ontarians from violence and this government will always have the backs of everyone that keeps ontario safe and recently i visited ontario police college where i saw for myself the police training the training for investigations and hate crimes so that they are prepared to keep us safe mr speaker let me be clear our government has a zero tolerance towards hate and violence of any kind thank you speaker and i appreciate the solicitor general's direct response and addressing this very serious issue and his continuous efforts in keeping all ontarians safe it's reassuring that our our police services are well trained and well equipped to protect our communities we value the dedication and service of our front line police officers ontario is one of the most diverse places in the world and everyone is responsible to be respectful and welcoming to all the words and actions that we all that we all use must help build a stronger safer and more inclusive communities across our province speaker can the solicitor general please explain what other actions our government is taking to support the safety and protection of all ontarians mr general just last Friday i joined our great minister of citizenship and multiculturalism in announcing a new 25 million dollar anti-hate security prevention grant and this grant will help religious and cultural organizations enhance safety and security measures to prevent hateful incidents we were joined in that announcement by leaders of multi-faiths our government is working on all fronts to combat hate and i commend my colleague for this initiative let me be clear there is no excuse for antisemitism islamophobia racism of any kind it's totally unacceptable hate is toxic to our democracy and if anyone here or anywhere engages in this type of behavior who feels you can double down or triple down on we have a message we will call you out the next question the member from ashigawa james bay thank you mr thank you speaker to the premier once again due to flooding the community of kashesh one had to be evacuated evacuated to multiple communities across north ontario families with children are bound to live in the hotel rooms with recurring issues the spring flooding five years ago the federal and provincial government with kashesh one signed an agreement to move the community to a safer location my question premier what has your government done in those five years to move kashesh one to their new location mr more than development mr well thank you mr speaker as we support the ongoing on-going logistical challenges of that community there is no question that there is a need for us to move on that location us involves the community itself and some neighboring communities the federal government the provincial government remain committed to that process and continue to work with the not just cassette one but albany first nation to ensure that they actually want to do this and we can proceed with a couple of important processes to make that move our door remains open and we'd like to facilitate that process it shouldn't take this long it's twice in my own political career that this has happened and i can assure the member opposite that we remain committed to facilitating that providing it has the support of the nearby communities to cassette one thank you mr speaker again to the premier i had your opportunity to speak to committee members of kashesh one that had been evacuated confiscation they tell me that nothing has been done the road the road has not even been built to access the new site premier what will your government do to expedite the moving of the community that has to be evacuated year after year due to flooding first of all mr speaker i want to thank the the city of timon's cochran capis gasing valrita and thunder bay for their extraordinary efforts to support the move i think that's the thing that should be acknowledged first and foremost in this place people do tremendous work volunteers it's a real community-based effort but frankly mr speaker we continue to urge particularly for albany first nation to work with cassette one first nation so that we can proceed with things like the environmental processes that are required to actually build the road that the member speaks about it's not that nothing is being done efforts are being made to get things started that's been going on for a couple years i suspect the member knows that and we'd be happy to have a conversation with the leadership of those first nations communities to trigger those processes and move that community to a place where we signed on the dotted line mr speaker that we were committed to do that thank you the next question member for brampton north thank you speaker uh my question is for the associate minister of housing as ontario faces an affordable housing crisis individuals and families are struggling to keep pace with the cost of housing due to rising mortgage and interest rates these economic challenges are unfortunately preventing many hardworking ontarians from achieving the goal of home ownership unfortunately years of inaction by the previous liberal government left vulnerable individuals without the housing supports that they desperately need that's why it's crucial for our government to take immediate action to increase the construction of safe stable and affordable housing for those at risk speaker can the associate minister please share what steps our government is taking to deliver great housing supply to ontarians the associate minister of housing thank you speaker and i really want to want to thank the member from brampton north for this very important question speaker it was a pleasure to be joined with my peel caucus colleagues and representatives from the region's municipalities last month to echo our government's investment of an additional 202 million dollars every year into our homelessness prevention and indigenous supportive housing program this brings our total annual investment to nearly 700 million dollars but speaker this funding is yes record investment but speaker this funding is vital as it helps service managers like the regional municipality of peel provide supportive housing and other supports for people experiencing or at risk of homelessness speaker we know that supportive housing provides stability that opens doors to better health employment and independence for those in need that's why our government is stepping up and delivering greater investments to the people of this province that benefits our communities and our economy as a whole thank you supplementary thanks to the minister for that answer and you know that 38 percent increase for peel is just massive for the region massive for the community i was happy to be there with the minister and a lot of peel caucus colleagues as well and good gosh speaker after that election we got a lot of pc caucus members in peel don't we now these investments are welcome news and they demonstrate our government's commitment to provide support to the housing needs of all ontarians however many constituents in my riding of brampton north are very concerned about the surge in costs of rent and mortgage interest rates now many of it individuals and families are worried about finding an affordable place to live that's why our government must take urgent action to support those who are experiencing hardships and implement practical and long-term solutions to address homelessness speaker can the associate minister please elaborate on what our government is doing to improve housing services for the people of ontario thank you speaker once again thank you to the member from brampton north for his question our government met with partners and stakeholders right across our province this past fall and their valuable feedback was key to our improvements to ontario's supportive housing system we recognize that the availability and affordability of housing are closely linked to the supply of homes in our communities and that's why we're committed to increasing the supply of housing in the coming 10 years we're pleased to see that many municipalities in ontario share this ball like brampton mississauga and caledon who have collectively pledged to build a total of 246 000 units these pledges yes these pledges demonstrate a solid commitment to the increasing housing supply and ensuring that residents have access to affordable housing speaker only by working together can we ensure that all ontarians have access to safe affordable and suitable housing thank you next question the member for london less speaker my question is to the premier last week the middle sex london health unit wrote to this government urging an increase to social assistance rates their letter states and i quote middle sex london residents with low incomes cannot afford to eat after meeting other essential needs speaker at a time of unprecedented inflation food insecurity in our provinces higher than ever before our health unit is telling this government that people on odsp and ontario works are not eating speaker why is this government keeping social assistance rates so low that those who rely on social assistance are forced to go without food mr children community and social service thanks very much speaker and i thank my honorable colleague for the question mr speaker this it's been this government that has been there for every single ontarian when we said we're not going to leave them behind mr speaker i will just remind a member mr speaker of all the decisions that they have voted against mr speaker first of all the largest increase to support the most vulnerable here in the in the province what did the opposition do they voted against it then mr speaker that the rates were aligned to inflation which was the right thing to do to provide more support for ontarians at a time of high cost and everything as a result of the carbon tax that they supported that we are against mr speaker time and time and time again it's this government that's fighting for ontarians the ndp will say one thing mr speaker when the when the lights are on and the camera's rolling and then when it comes to actually voting and supporting ontarians they'll they'll they'll continue to turn their back on them just like they failed to support the liberals in 15 years mr speaker we said from the beginning thank you as speaker again to the premier food banks in london and across ontario are stretched to the limit in just the last year the london food bank saw a 40 percent increase in demand the emergency food cupboard at the northwest london resource center in my riding is seeing five or six new families a day when people can't afford food speaker their physical and mental health suffers it causes more chronic conditions more non communicable diseases more infections depression anxiety and stress speaker will this government listen to the middle sex health unit lift people on social assistance out of legislated poverty and increase social assistance rates members of please take their seats minister of children community and social services 1.2 billion dollars towards the towards helping communities through the social services relief fund mr speaker 1.2 billion dollars to help with food for help with cost of housing mr speaker investing 83 million dollars through the ontario trillian foundation to support mr speaker non-profit organizations including food banks 8 million dollars in support for funding feed ontario mr speaker every single that we've measured that we've taken to help ontarians during the cost of high order prices everywhere mr speaker the ndp continuously votes against they will never support story across in this province mr speaker you've seen them you've heard them they'll say one thing here in the house but as soon as it comes to action mr speaker their mia they don't exist it's this premier and it's this government that says we'll make sure that every single experience supported and no one is left behind and we'll put the next question the member for carlton mr speaker my question is for the minister of red tape production reducing red tape is a key part of building a stronger economy and improving services for all ontarians that's why our government must bring forward red tape production solutions to deliver on our promise to improve government services and make it easier to do business in ontario the less red tape stronger economy act should help to pave the way for better services provide greater support for businesses to grow and help to save people time and money while it is unfortunate that the opposition does not believe in the benefits of cutting red tape this legislation could help ensure ontario remains a key destination for investment opportunity and prosperity so mr speaker through you can the minister please explain how our government is reducing regulatory burdens on people and businesses in ontario thank you minister of red tape production thank you very much mr speaker i want to thank the member from carlton for that important question mr speaker time and again the only thing we ever hear from the members of the opposite is no what they failed to realize that reducing red tape is about the impact these changes are having on real people and businesses across our great province mr free changes like helping businesses embrace new technologies like carbon capture and storage reducing red tape on these projects will unleash innovation and it will create hundreds of millions of dollars in new investments right across our great province while our government knows there is a tremendous economic and environmental potential for carbon storage the opposition wants to keep the red tape barriers in place mr speaker mr speaker we are never going to let that happen our government will never stop fighting for a better future for ontarians and make sure our province is prosperous thank you mr speaker thank you to the minister for his response it's clear that the changes our government is making to eliminate red tape are working for example excuse me for example removing the ban on carbon sequestration enables new technologies and supports ontario's economic competitiveness efforts to reduce unnecessary burdens that are holding back ontario's economic growth and prosperity are vital perhaps now more than ever we saw what happened to our economy when the previous liberal government introduced destructive economic policies and burdensome regulations that made life more difficult that's why it's so crucial for our government to continue to listen to the people of ontario and the solutions they bring forward so through you mr speaker can the minister please explain how these red tape reduction changes can create real benefits for people and businesses in our province thank you mr red tape reduction i want to thank the member for the important question once again and i always look forward to receiving great ideas mr speaker recommendations from ontarians right across our great province through our red tape portal on ontario.ca mr speaker and i also want to point out i'm yet to receive a single idea from any of the members on opposite mr speaker they don't even have a critical responsible for red tape production mr speaker while this is disappointing it is not unexpected that's because as we all know the liberals supported by the ndp came up with the highest burden that the province had in the country mr speaker however since 2018 our government has taken strong action to cut ontario's regulatory burden by over 16 000 regulatory compliance requirements mr speaker which helps businesses big or small on average mr speaker 700 million dollars annually thank you thank you speaker this question is to the premier young people are particularly vulnerable to permanent brain damage due to diesel fuel exposure with young people beginning skills trades training as early as grade 11 can the minister can the premier explain to parents why the government has not reduced the diesel exposure limits to the level long recommended by health and safety experts mine workers have been lobbying this for years in fact members of the united steel workers have stickers on their hard hats recommending the reduced much reduced from the level that the government has recently moved to so for me particularly knowing how badly wsib is serving questions of of injured workers i can't imagine how parents will feel my question is why has the ministry not moved the rate down to the recommended level mr speaker the health and safety of every worker is our government's top priority that's why i was proud to go to sudbury to be joined by the minister of mines to stand with united steel workers union to lower diesel particular requirements in mines to the toughest standards in all of north america this was a request by the united steel workers union but mr speaker i want to pay tribute to those 29 000 miners across northern entero that are building the future of this province they are well-paying jobs with pensions and benefits these are the jobs that our government under the leadership of premier ford is investing in to ensure that we have more young people joining these amazing careers out there as we've said before as a premier often says when you have a career in the skilled trades you have a career for life i would like to invite members to join the dedication from lupus ontario for a group picture at the grand stairs after the question period thank you member for numark at aurora has a point of view yes thank you speaker i would like to introduce one of my constituents william holm who just made it to the gallery with his group community living welcome to the chamber william and i hope you enjoy your day at the legislature university environment conservation and parks apparently has a point of order yeah thank you speaker my apologies i'd like to welcome robert smith to the legislature i'm having lunch with he's with community living as well i look forward to speaking with you later today thanks for being here member for scarborough center i'm curious to have a point of order thank you mr speaker i'd like to remind the house that um 247 the nigerian delegation is there and you're welcome to join us here today thank you thank you very much we have a deferred vote now on a motion for closure on the motion for third reading of bill 71 an act to amend the mining call in the members this is a five minute bell