 Okay, so, a little assignment, we've covered most of the background to the installation of the tools. We have another session to do tomorrow before, I guess, you're confident that you've covered everything, but this is basically what you're going to have to do. You're going to install an operating system on a server, and I recommend that you use Ubuntu 20.04. You can make it work with 18.04, but there's a little bit more fiddling to do. So install 20.04 onto a server, your server needs to be somehow on the internet with a public IP address, so hard to make it work on your laptop, also very hard for us to assess. If it's on your laptop, I gave you a few options on the first day we talked about different hosting environments. I would personally recommend LinNode is pretty good, and as you get free credit to be able to perform these kind of exercises. You're going to configure SSH on your system, a firewall on it to make it reasonably secure. Make sure the server is accessible. You need this in order to be able to set up SSL, so you need to have a DNS record somewhere that points to your server. As if you use LinNode, you can use the default fully qualified domain name that they give you. It's a little bit cryptic, as you saw mine, as an ally, and then some lower number. If you have access to a domain that you're able to create a new A record on, then you can make it more user friendly. If you're stuck with not being able to make a DNS A record anywhere, please shout on the Slack and somebody will be able to help you. Okay, having created the environment, you're going to install the DHS tools on it, like I did on the first day, set up your LXD and create your initial containers. Then I wanted to try creating two different instances. Maybe you can call one HMIS or call it anything, call it HMIS, then I know what it is. Then you can call one staging and then have a go at this rather involved operation of installing the Cloruprofiler onto your HMIS. At this stage, you should have something running on the internet that we'd be able to access and have a look at. We've got two weeks to do that, so that should be plenty of time, I think. Again, use the Slack channel for any time you get stuck. I would suggest probably hold on for an hour after you finish this afternoon to make sure I can just get rid of some of those little, little gotchas in the script that tripped me up this morning to make sure that everything is a bit of a smoother ride for you. A couple of extra things that you should do, but we won't really be able to, this week can assess. If you get all of that in place, I'll be able to go with my browser and point to the URL that you give me and can assess that you have managed to complete the setup as far as that. A few things you should do yourself, it's not easy for anybody else to check that you've actually done it, is have a go and go through my Postgres presentation again. Take a backup of your database, get it onto your laptop, preferably do it using SSH and PyApps. We'll talk more about SSH tomorrow. Have a go at restoring your backup. These are really important sort of operations that you should feel comfortable about doing. Probably the most important thing is to be able to backup your database and restore it again. Have a go at configuring automated backups. Again if you look through my Postgres presentation, I give you a few tips and hints on how to do that. And, yeah, if you get stuck with various aspects of it, there's quite a few people on the Slack group who've got a bit of experience of doing this before, I'll also be following it and we'll try and help you out where we can. That's basically what your assignment is for the next two weeks. If everything goes smoothly for you, the whole setup can take 15 minutes. If you get stuck, it might take a little bit longer. And hopefully it's not just a matter of just running the setup tools and getting everything up and running. Once you are up and running, you want to explore your system a bit, play around with examining the log files, make new instances, remove instances. Have a look inside the databases, things like that. Okay, so any questions on the assignment? I presume Martin, after successfully completing the assignment, we're going to award a certificate of some sort. Are we? I think I'll leave a question for Alice. Alice, are you connected? Do we award a certificate for attendees of the course? So basically what we had discussed was that the certificates would be allocated to those who succeeded to the configuration, like the project, right? Right. Okay. Yeah, no, that's what I was asking. So we will award a certificate? Yes, we will. I'm just not sure how it works in the virtual world. I mean, I know when we do face-to-face academies, then at the end, we hand out certificates. In this case, it will be sent by email. Okay. So if you don't complete your assignment, you don't get your certificates, but I'm sure everybody's going to complete it. Now we'll be as helpful as we can. Do we have an attendance roster from the Zoom sessions? I have some issues with my internet. Can you repeat the question? Do we have recorded anywhere a kind of attendance roster from the Zoom sessions? No, we haven't. We haven't recorded attendance. Okay. It doesn't matter too much. I mean, the important thing is if people complete the assignments or not. Exactly. Exactly. This is why it was not necessary at all. Yeah. And people can watch the recordings. Exactly. Yeah. Yeah. All right. I was expecting lots of questions on the assignments. Has anybody asked me anything? There is a question coming in now. What about those without online server? Is it possible to use local VM? Not easily. Not easily. Because the kind of installation is the proxy installation in particular, we talk about this more tomorrow, the proxy installation in particular is kind of, because it's designed for putting it into production. It presupposes that you're going to use SSL on it. And it's quite hard to set up SSL in a local environment. You know, it's kind of not realistic. You can't get an SSL certificate from a certificate authority unless you've got a public IP address. That's why we gave you a couple of options at the start of how to get access to a cloud server at no cost or at least with free credit. In order to do it in a completely local environment, we'd need to make an alternative proxy configuration that leaves out the SSL stuff. Now, that is technically possible to do. I haven't done that for you. So my answer to that probably would be no, you need to make an effort to get an online server. Because also we're not able to assess if it's on your laptop or whether it's running or not. There was also a question from the break, not about the actual assignment, but in the Tomcat channel, Damien Scarlett writes, any thoughts on using NGINX compared to Tomcat, pros and cons? Okay, you cannot really compare NGINX to Tomcat, because they do sort of quite different things. Tomcat, I mean, they're both able to serve up web pages, I suppose, but Tomcat is used, is written in Java, and it's a Java servlet container. So you need Tomcat to run your DHIS2 application. The web proxy, or the reverse proxy, as they call it, which sits in front of Tomcat. Now, there you've got some choices. I've got my default configuration is using Apache 2, and there it is possible to use NGINX instead of Apache 2. So I guess the question should be thoughts about using Apache 2 versus NGINX. That's a discussion to have. There isn't really an option to using NGINX or Tomcat. You could use Tomcat with NGINX, or you could use Tomcat with Apache, but you still have to use Tomcat. Okay, thank you. There's questions about how to submit the assignments. Is it per email or Slack or a different way? That's a good question. Okay, there won't be anything to actually submit, I guess, other than the URL of your server, because all we're going to do in terms of assessment is I'm just going to go with my browser and see if I can get to your server and see if what's running on it should be running on it. So how are people going to submit those URLs? That's a good question. I think, Martin, we should create a channel for that, where everybody submits their URLs, because that'll also give the other participants a chance to look at one another's URLs. Okay, because I was about to suggest something, I can put together a quick form that participants can use to submit the URL. A Google form? Yeah. Yeah, that could also work. I think it might work. That might be easier to manage, because... Yeah, exactly. Yeah. Alice will make a Google form. And I will share it in the announcement channel and in the resources channel. Yeah. Yeah. And the only thing that you're going to need to submit onto that form is just the URL of the server that's displaying your handiwork. You can maybe also make a field for comments. Alice, so people are at the URL and they may have additional comments they want to add. No problem. I will just a quick question, sorry, if you already mentioned it. What will be the deadline to submit this? There, what did I say, March the 17th, that's Wednesday in two weeks. Okay. Cool. I don't think it'll take people that long, generally. I mean, most people will be done by the weekend, but March the 17th. Okay. That's just so that we can wrap up neatly at the end. Thank you. Well, so if you need any technical support in completing it, then make use of the dislike. Any other questions? I can look at myself, I guess, for me. There are people writing on the Slack, I seek support questions. I always submit this line, but okay, that's, can I set up my backup server on the internet? Yeah, short answer, you could. Yeah. It's quite common that people would, a second lino would do the trick. Often if you're trying to be, if you're going, if you'd be really careful, if you have your production server with one cloud environment, it's sometimes a good idea to put your backup server with a difference, with a different provider. Partly that's about, you know, if your relationship goes sour, if you don't pay your lino to bail or whatever it is, if you get cut off from your lino account, then at least your backups may be on your Google account or your AWS account or whatever it might be. That's, yeah, you could set up your backup server on the internet. If you do that, I mean, that would be a great exercise to do, but it's not part of what we'll be able to assess. Any other questions I've been missing, announcements, having a break, something in Tomcat, Jaime, one of the main issues we're using, okay, okay, this is the question that you'd asked earlier, Jaime, about feedback. Yes, I believe you answered that already. Thanks. But there's more. I'm wondering, Moon in Glow Root, I answered that as well. We have this video, last Wednesday's session notes. Yes, I presume we can. Martin is the boss on that. Yep, they are already available in YouTube, except for, of course, this one here, that needs to be fixed first. Okay, engine X, alternative to, actually, yeah, that's what I was talking about earlier. We'll talk a little bit more about that tomorrow, when we talk about the reverse proxy in a bit of detail. Gerald, are we going to be given the lino, the assignments? No, Gerald, you obviously missed the first session. Now, we've done that with a face-to-face, face-to-face academies, partly because we restricted the numbers down to 20, and we gave a lino between two people, so typically creating 10 linoes. It wasn't really possible to create linoes for 70 people. And also, there's no fee for the, there's no registration fee for the academies, so it's not a big ask to get people to create their own lino, and as I say, it's possible to get one for free anyway. And some people already have accounts in various environments that they can use. No more questions on the assignments. I'm sure there'd be more questions when people get started. It would suggest, as I was saying earlier, maybe don't get started in the next hour. Let me, let me do a little bit of quick testing to make sure everything is working again the way it should. Probably a good time to start the assignment, if you've not done it before, is tomorrow after we've gone through the session on the reverse proxy. Okay, there are no more questions. In which case, I guess we're gonna leave it there and finish that out a little bit early. Last chance to ask me something. Morton, are you still on the line? Can I ask you something? Yeah, absolutely. Well, as you see, as you saw I've done quite a sales pitch about, about putting glow root onto production service. I don't know, do you have anything to add about that? Maybe, maybe things that you've found that are, that are useful that might motivate people to do that. I think, I think, so first of all, it is very useful. It has this tab, actually, I've probably shown this before, but they have this kind of the slow traces type that you can kind of see kind of the outliers in the system. Those things can lie a bit because it's actually the connection from the client. So, doesn't mean that something is the same slow in these other digits too, but it could be also the complete client connection could be slow. Like, as we have seen this in the, for example, in Laos or not, because there's a lot of bad internet basically, right? So the latency can be really high. So sometimes you get, even something like the map.js, just the static file for rendering the maps app. So it's only says five minutes for every client. But obviously that's not because it's actually slow serving that file. That's a slow client. But I think maybe even more useful, and I'm not sure if you're going to go through this tomorrow, is to, yes, use Glowroot to define kind of the things that are outside of the normal usage patterns, but correlate that with the SSL access log. So because that's also quite important because obviously, that many things happen inside the server, it could be a custom report, it could be a custom application and so on. So I find it really, really useful to also go into the proxy and look at the access logs. And then you can simply search for the Glowroot URLs basically that have the other layers. And you can see, or maybe it's actually coming from a custom report, for example, a custom application. And which is very often the case of this for us. And it kind of allows you to kind of dig down a bit further. This is very, for example, today, I was seeing some very strange things happening with a lot of people were hitting API visualizations without paging, loading up ID and name without paging. And none of our apps should really do that, right? Because we opened up visualization, the data visualizer or the PivotTable. We opened up a favorite dialog and it will be paged and you can search and so on. And it turns out it was a bug in our DHS Web Report application. So sometimes it can be very useful to find these kind of outliers and then kind of try to figure out where they actually came from. Because it might not always be DHS too, it could be. But I find it very, very useful, at least for me, to see those things kind of connected together. Because that's kind of what's missing in Glowroot. You don't really see the referrer, which can be very nice sometimes. Yeah, I think there's kind of three main places to look when you're debugging. There's the proxy logs, as you say. There's the Glowroot and Glowroot often is the place where you start your investigation. And then the other thing is what's actually going on in the database at the time. Right, your DHS to DB activity. The answer to why queries are slow and whether it's to do with the database or just poor network or what have you, it's quite useful. Just looking at the colors, right, on things like this. As you can see, if there's a lot of yellow like that. And it means that most of the time for these queries have been taken up with with database access JDBC. If you find queries are slow, but most of the time is just taken up with other. And that usually means, as you say, it's just a slow network or something like that. But yeah, there's no silver bullet when it comes to troubleshooting. You've got to just look at all the sources that you have. And it's primarily in those three places. You're going to look at your Glowroot, you're going to look at your proxy, you're going to look at your database activity. And sometimes you're going to look inside your Tomcat logs as well. Depending on what you're looking for. People have gone very quiet. So I'm assuming that they're going to digest what we've talked about this morning. And start taking a look at the assignment and we'll see you all tomorrow. Same time. Nine o'clock, nine o'clock GMT, whatever time that is.