Hey, everyone. How is everyone today? Awesome. Great. This session is Manila, Experience It Through Demos. And my name is Akshay Parthasarathy. I'm a technical marketing engineer at NetApp. I work with all things cloud computing, specifically OpenStack. And we're excited to be presenting to you today about the file share service within OpenStack. I'm here today with Dustin Shaneburn. And Dustin, would you like to say a few words about yourself? I'd love to. So hello, everyone. My name is Dustin Shaneburn. And I'm a quality engineer at Red Hat. I've been working at Red Hat for a year. I've been working on OpenStack for two. I've been focusing mainly on Cinder, but now my world revolves around Manila. Great. Awesome. Awesome. So let's get down to the agenda. So this session is primarily going to be driven by demos. And what we have today for you is a series of four demos. The first one you're going to see is the magic of Manila Manage. So with Cinder, Manila, Nova, you're used to creating like a new Cinder volume or new Manila share, or you're used to doing Nova Boot to boot a new instance. Now with Manila Manage, what you're doing is you're importing a pre-existing file share, be it CIFS or NFS, into Manila. And the advantage of doing that is going to become apparent. The next thing we're going to do is to show you the state of the art in the Mitaka release called Share Replication. With Share Replication, we are going to give you the ability to have a second copy or a third copy of your share in another storage controller or in another availability zone should there be a disaster. Beyond that, we have storage efficiency that you can see with snapshots and clones from snapshots. So in this particular case, we are going to use a NetApp Storage back end called cluster data on top. And finally, Dustin's going to walk you through a demonstration of Red Hat OpenStack platform and Manila. So the first thing we have for you is Manila Manage. And I'm going to show you this demo using a particular application. In this case, it's going to be WordPress. And we have a simple blog with some videos and some images. So why would you want to use Manila Manage, be it in this particular WordPress environment or in another application context?  You have not one website as I'm going to show. You have thousands of websites, each with their own images, their own videos. Then having the convenience of Manila in such an environment will become apparent. You could also be an enterprise IT organization that has departmental shares. You could have shares for your marketing, shares for your engineering, be it whatever they may be. You could have user home directories that you have to create. And that cell service provisioning that Manila gives you is going to also be useful with something like Manila Manage. The last use case is maybe you have SAP HANA. And one of my colleagues from that app couple is going to show you a demo of that during another session we have later today at 550 about backups. So he's going to show you SAP and Manila. But for this use case, that is another application. You can use enterprise applications that do need that file share type of infrastructure. You can use Manila for that. So the demo is going to take you through share management, share creation, share extend and shrink. And then it's going to take you through snapshots and replication. Let's get down to the demo. So this is a video demo. And as I mentioned here, we're going to use WordPress, which is basically a simple application to create websites and blogs. So we're starting off here. And we're accessing our web page. It's got an image. It's got some videos. And we click on the video. We see that it has some audio on it. So it looks like everything's working fine. Let's try to now bring this share under Manila management. So we're accessing the WordPress instance, which is actually on OpenStack. And as we should expect, we have a web server and a MySQL database on it. We're looking and we see, OK, there's another share that this WordPress machine is using. And that is the share in which all the images are contained, images and videos. Here's our Nova instance that is being used for WordPress. And here are the different Manila services that we have on our OpenStack machine. Now, we do need something called the Manila pool in order to use the Manila manage command. And that's what I've done over there. So I get the pool ID. I copy and paste that in. And then I also have to copy and paste the export location of that share that WordPress is using. So I'm switching over tabs to WordPress. And I'm copying and pasting that location over here. So at this point in time, we have executed the Manila manage command. And it looks like the share is already available. So we have a share now under Manila management. You do notice that the export location of the share is now a long string in true cloud fashion, where you'll have thousands of tenants. And what has happened, unfortunately, as a result of that, is the video is no longer available. Now, I'm going to get to how you can minimize this downtime. First, we have to set an access policy to allow access. So obviously, in a cloud environment and in general IT infrastructure, security is important. And in the case of Manila, you set security through the use of access rules. So we are explicitly allowing access to your WordPress instance. And we're just confirming that that security rule is added. And we also get the export location that we can then use in our Nova WordPress instance. Awesome. So now we are on the WordPress instance. We've just switched tabs. And we're going to put in the new export location. OK, so those are the two changes that we need to make. And this can all be automated. So these changes will be automated. And I'll provide a script on GitHub that will do it for you. Let's now go back to our WordPress instance, to our WordPress website, and see if we are back in business. So let's click on a video. Looks like the video does play. And we've got our image back up as well. So the next exercise we're going to do is to create a new post on this blog. So updates from Austin. And I'm going to add a image from my local computer. And wait, when I try to add this image, it tells me that it's not able to do it. The reason is the share is completely full, 100% utilized. So what we're doing at this point in time is we're going to show you how you can quickly increase the size of the share. So we have a one gigabyte share. We're increasing it to 100. And you'll see how quickly you can do this. So it's probably been a second. It's set to 100. If you do want to shrink it, we allow that option. And that's what I'm demonstrating over here. We're shrinking it back to 50. And at this point in time, you should have a share that has gone back from 100 to 50. So you went from one gigabyte to 100 back to 50 in a couple of seconds. Let's get back to our original mission of uploading that image. And I'm posting that right now. Looks like the post is fine. And we're going to our website. OK, it looks like we got our new post with our image up. OK, great. We're now going to take a look at a couple of other features of Manila called snapshots and replication. A snapshot is a point in time copy on the storage controller of your Manila share. So we're doing a Manila list command to list your Manila shares. We have that NFS share that is 50 gigabytes. We don't have any snapshots of it. So we're taking a snapshot. And these snapshots are very efficient. They don't consume much space on a NetApp storage backend. Now, we have created a snapshot. But obviously, you want to be able to create. You want to be able to revert to that snapshot when there is a need. So what I'm showing over here is the ability to create a Manila share from that particular snapshot. So that's our share we created from a snapshot. And it looks like it's created almost immediately. And we're now ready to see the final feature, which is share replication. Manila share replication, I'll talk more about this in the next demo. It's basically a second copy of your share that you can use in the event of a disaster if that is the way you choose to do it. So we're using the share replica create command. And then now we're using the share replica list command. And we're waiting for the second replica to become in sync with the actor replica. So we've gone through a number of features. The first thing we did was we had an existing share. We brought it into management through Manila Manage. We then extended and shrunk the share. After that, we took snapshots. And we did replication. So we've done all this in a few minutes. Now, there was that when you did manage the Manila share. In the cloud scale, we are used to using UUIDs and long strings. So what happens when you manage a Manila share is that you get a long share ID, similar to what you see over here. In order to make use of this, what I've done with minimal downtime, what I've done is I've created a script. It's available on GitHub. And it requires a few arguments. But you can basically have your NFS client access policy and your NFS client's FS tab, like basically the mount point updated so that maybe you can reduce this to less than a second or two. That's the GitHub repo. So the next one I want to talk about is share replication. Share replication is the hardest feature in the FileShare service today released in the Mitaka release. And it allows you to replicate from one storage controller to another or one availability zone to another. Why do you want to use share replication? Maybe you want to have non-destructive operations. Maybe you have a single availability zone and you have two controllers. And if your first controller goes down, you want to have a second storage controller takeover operations. So that's one use case. The second is maybe you want to have disaster recovery. Have a second availability zone to which you can fail your shares over and minimize downtime. The share replica create command basically allows you to create a share replica. And you have what I'm going to show you is what happens behind the scenes when you issue that share replica create command. We have two availability zones sharing a common keystone infrastructure. The Manila service has the API. Manila has the API scheduler and share services. The administrator issues a share replica create command received by the API service that is active. The API service looks for a share back end that can fulfill that replica request. It finds a share back end that can do that, which is in the second availability zone. The share back end then contacts the storage controller to make a replica. In the case of NetApp, this is done using SnapMirror. So a SnapMirror is executed from the first availability zone to the second availability zone. And once the replication is complete, the share service updates your MySQL database in your open stack infrastructure to be a replica status available. Let me then walk you through a demo. This demo is going to be done through the CLI, but share replication. We have two availability zones, AZ1 and AZ2. There are no Manila shares, and as a result of that, there will be no Manila share replicas as well. So in order to use replication, you need to set an extra spec called replication underscore type. And that's what I'm showing over here, replication underscore type. We create a new Manila share. We list the share replicas. And we see that it has a single replica in the first availability zone. Let's now go to the storage controller. In this case, it's a NetApp storage controller. And let's see where, if the share was indeed created in the correct backend. So we're just matching the share IDs over here. And it looks like, yes, it's created over here. Now we switch over back to open stack. And we're going to create a replica, which is a second copy of the same share. The first thing we do is we allow access. We're putting a few contents into the share. We're putting a couple of files. In order to put a couple of files on the share, we need to mount the share. So mounted using NFS. We see that the share is mounted. That's our first file. And then we add a second file after this. So if share replication were to be working correctly, you're supposed to see the same two files in the replica as well. So let's now create the share replica. Share replica create, the command we talked about previously. Create the replica in the second availability zone. And now we do a share replica list. And what we'll notice is that, initially, the share replica is going to be out of sync. And after some time, the replica is going to be in sync with the primary. We're waiting for it to become in sync. Looks like we're good to go. We're switching to the storage controller again, just to confirm that the share and the share replica exist in the correct. In this case, it's called a storage virtual machine. And that our terminology. So they exist in the correct storage virtual machine. So we saw the first one. We confirmed the ID. And then now we go to the second storage virtual machine. And we confirmed that ID as well. So if this were to be working correctly, I mean, you're supposed to see those two files on the replica. So we are promoting the replica. We're going to mount the replica. And then we're just going to observe, yes, those two files are available. So that's been our replication change once we promote the replica. We're going to wait until the previously active replica goes out of sync and then in sync. So now we have promoted the replica to the new active. We mount the replica, and we confirm the contents. So directly listing, we see that both the files are there. And we have what we should expect. So what we have seen is Manila share replication that protects you in the event that you want protection against disasters or if you want non-disruptive operations. The next demo we're going to show you is storage efficiency through snapshots. This exercise is going to be done using the Manila UI plugin. So some of you all may already be familiar with Horizon, which is the UI. And Manila has a plugin for Horizon. So that's a screenshot of how Manila UI plugin works. Using the Manila UI plugin, you can create snapshots and you can create clones of snapshots. And by doing that, what you do is you get significant storage efficiency in the case of NetApp. So we're going to create a new share with a large amount of data. And we're going to see that it consumes nearly zero space. So this is the demo. And this is going to be done using the Manila UI plugin. So this is Horizon. We're logging in. You've got the Manila UI plugin enabled. Go to the Shares tab, which is enabled by the plugin. We see that it's got one share. What we want to do is we want to create a new share type that's going to allow thin provisioning. So this is a feature that some enterprise storage backends offer. So we create a share type with the name ontap underscore then with the correct extra spec as we call it in Manila. So this is called an extra spec. So once we have that share type created, we can then go ahead and create a Manila share of that particular share type. So we're creating a large share with that particular share type. So notice the size of the share is fairly large and got created quite quickly. So what we need to do with Manila when you create a share, you need to explicitly allow access to the share. This is done for security reasons. So we have two NFS clients. We're going to allow access to the share. Going back to the Shares tab, and we're going to edit the share to allow two access policies for each of the NFS clients. We add the rule for the first client, and we add the rule for the second client. So we've got two rules added. We're confirming that the share does have the rule, and now we're going to switch over to the CLI so that we can get the export location. This export location is what is used to mount a share. As you should expect, the NFS clients do exist when we do a novel list. And when we do a Manila list, we see that large share. We get the export location, and we mount the share on our first NFS client. So at this point in time, the share is mounted. And we're going to place a large amount of data in the share. So at the completion of this operation, we're going to have over 800 gigabytes of data in the share. So it looks like the data is being written to the share right now. Let's switch over. So in shared file systems, you access the share from multiple clients simultaneously. So we're going over to the other client, accessing the share, and placing another file in there. So the share has already been mounted here. We're placing the file there. Looks like that operation was successful. We go back to the first client, and we fast forward till the file creation is complete. So at the end of all this, the addition of two files, we have about 883 gigabytes of data, so 0.88 terabytes of data. The disk that this poll that this one is using is called AGGR1. So this disk poll, AGGR1, on the share back end, has 1.81 terabytes of used space. So if I create a copy of the share, a clone of the share, it's supposed to use another 0.88 terabytes of data. So in order to create a clone of the share, we first create a snapshot, and then we create a new share using that snapshot. So we're creating that snapshot here, using the Manila UI plugin. And now we're going to use that snapshot to create a new share. The snapshot is available. There's our share. And we're going to provide the share source to be that particular snapshot. So remember, we had 0.88 terabytes of data in that particular share. So if we go back to our storage back end, we're supposed to see that 1.81 terabytes go up by another 0.88 terabytes. So what I'm going to do, we are expecting that to go up to about 2.69 terabytes. But what really happens is that we've gone up only by 0.01 terabytes. So this is a significant storage efficiency that you can see with Manila. And in this case, I have used the NetApp storage back end that gives you that. Manila also gives you the ability to delete your snapshots if you would like to do that. If you do do that, then you get a full copy of your share. It's going to consume that additional space savings that you were seeing. So what you have just seen is storage efficiency with Manila using the Manila UI plug-in. In this case, we were using the NetApp storage back end. So those are the three demos I have to show you. Now I'm going to pass it over to Dustin for Red Hat OpenStack Platform and Manila. Thank you, Akshay. All right. Let me just full screen that as soon as I realize where it ran off to. Yeah, there we go. All right, so hello, everyone. Again, I'm going to talk to you a little bit about Red Hat OpenStack Platform and Manila.  So let's get started. So I'm going to give you a brief overview of what's going on with Manila and Red Hat OpenStack Platform. So currently, NetApp cluster data on tap Manila driver is the only supported driver currently. So we are the only OpenStack distribution at the moment to support Pacemaker HA for Manila services right now in active passive for all. It is in tech preview. We support it on a best case basis. We're hoping to have full support by the end of the year. And you can install Manila into an already deployed Red Hat OpenStack Platform Cloud today. So I'm going to chat a little bit now about how we install, manage, and configure an OpenStack Cloud. And for those of you that are more familiar with Red Hat's Cloud offerings in the past, we've had different ways of installing it through, say, PacStack or StayPuffed. So Director is our next generation. We decided that instead of building things in-house, we would leverage what the community already gives us through such services as Triple O and Heat. And so what this does is it constructs an undercloud that we use to then the workload for that undercloud is your overcloud. So the thing that actually is the OpenStack Cloud that you will be using. So I'm going to show you a little diagram here of what that all looks like. So you can see here that we have all of these services in the undercloud here, such as Fuel, Keystone, Horizon, all of these services here. And all of these work together to run, update, and monitor the overcloud here. And you can see that there is some overlap between services here and services here where they are replicated. They're separate. They just do the same thing for each individual cloud. So the bad news for all of this is that Manila can't be installed by this director yet. But the good news is that one of my colleagues at NetApp, Dave Cain, has written scripts that will help you install. And Dave, you were in the house to holler, wave your hands. He might be out doing something else. So I'm going to talk a little bit about these here. It's a set of four scripts that consists of start, all systems, controllers, and controller 0. So the start script is where everything begins. It is the thing that copies all the other scripts to the requisite nodes in your overcloud. And then all systems is configuration for all systems in your overstack. So this will install the Manila packages so that they can all interact with Manila. The controllers is for your controller nodes within your overcloud. So this will generate your Manila configuration file for all controller nodes. And then the controller 0 script, what it does is you only need to run this on one controller node. It defaults to node 0. You can set it to whatever you wish. And it will create the Manila role and user, as well as the Keystone service entities. It will create the Manila database, configure the API endpoints for Manila, and it will also configure pacemaker HA. So if anyone wants more information on this, you can talk to Dave Cain or check out the source on GitHub. I have a link in a future slide in the deck. And to run it, you just simply do dot slash, flexplotupdate, start.sh. Couldn't be easier. You will need to have your StackRC source. So now it's time for the fun part. Let's get into the demo video here. So I'm going to show you the configuration file that is generated by the Manila setup scripts. I'm going to show you the NetApp Storage Controller configuration through on-command system manager. And I'm going to watch a share be created and show that things are actually happening on the NetApp back end. So I'm going to pull that up. So here we can see the default configuration section of your Manila comp. So these are things that are applicable to all of Manila. So you can see here log levels, where the logs are, as well as how to interact with other OpenStack services, such as Nova, Cinder, and Neutron. So those all go into your default stanza. And then once we go to the end of the file, we will see sort of the more specific configuration options. So this will show how to interact with the messaging queue, concurrency, your database connection, Keystone authentication, and then finally, the actual configuration for your share driver, which in my case was a NetApp back end. So this is all configurations as specific to a NetApp back end. And so I'm going to switch over to this other tab here and show you how to create a Manila share through the CLI. And I make note that we are using a pre-created share type here that just specifies to use the NetApp back end for share creation. So it spits out a bunch of information about the IDs, snapshot support, and all this stuff. And I'm waiting a little bit here so that we can show the share status as available. And then we can use that information to get the share ID, the export location, and any other details that we may need. And you do that through the Manila show command. Yeah, so you can see our status is available. We have our export location. You would use this in your Nova instances to mount the share that we just created. And you can see here the same thing that Akshay did through Horizon we're doing through the command line by allowing access to the share that we created. So now over in on command system manager, we're showing our demo cluster with our Manila storage virtual machine. You can see the share here that we created. It's online. It's one gig in size. Now you may notice here I sort of draw underneath that that if you're watching closely, you may notice that that ID is different. It's because it's using the share instance ID instead of the share ID. And you can see here the export policy that we created. It has the correct IP and the correct permissions. Thank you, VLC. So for those of you who are curious about the source of the scripts here, the GitHub link is right here. You can check it out, run it, see how it all works. If you want to learn more about what RedHack is doing with OpenStack platform, you can check out the landing page here. For more information, I'll just have it. So what do we learn today? So actually, I was showing you, showing everyone, share management and features are very powerful in Manila, as well as making use of replication, snapshots, and consistency groups for enterprise applications. You saw the WordPress thing. You saw the mentionings of SAP HANA. And I talked to you. Share replication. Yeah, share replication. And I talked you through a little bit of what we at RedHack do with our own OpenStack distribution and how to do things in Manila with it. How did it do that again? So that's all we have today. If you're curious about any other things that we have going on today from the RedHack side, these are the sessions that we have going up. Feel free to take a picture. Make sure if you want to see a little bit more about what's coming in the future of RedHack OpenStack platform to check out the RDO community meetup. It's our upstream for RedHack OpenStack platform. So be sure to check them out. And Akshay, I'm going to pass it back to you to talk about what sessions NetApp has coming up. Thanks. So here are the NetApp sessions. These are arranged chronologically. Obviously, there are some that have already been completed. Please be sure to check them out on YouTube. If you want to take a picture, now would be a good time. Got some more sessions over here on Wednesday and Thursday. So on behalf of NetApp, I want to say thank you for staying with us in this session. If you would like to meet with us and talk with some of our leaders, please schedule a one-on-one VIP meeting. Follow us on Twitter and visit us on the web at netapp.github.io. And on behalf of RedHack, I want to thank everyone for showing up. And if you want to see more of what we're doing in all things open source, we are on every social network. So feel free to follow us. Could you use the mic? Could you use the mic? Thank you. Thank you. I think we have time for a couple of short questions, maybe. Now, come up and see us if you have questions. OK. So a replication on the replication side. You showed this application working with a snap mirror. Yeah. Is it possible to use vendor agnostics replication plugins? And is it possible to define custom plugins? So right now, we're actively looking for other vendors to be part of Manila and use share replication. So we're actively looking. But if you use netapp, then you can use replication. Do we have any others that are using ZFS? ZFS.


Bobby, I will mute myself because I now have pretty noisy plays right now, so basically I'll leave it on to you. Today I'm not used to this kind of thing, but I have to. This small dog barking is what I mean. No worries. So hello everybody. This is the trade finance working group for Hyperledger, especially in this group, and it is September 29th and this meeting is being recorded. I just want to show you the agenda for today. Today during the trade finance, I am Bobby mascara, I am the mentor for the giving chain project which we'll talk about in a few minutes, and we're here to give a presentation. We're going to talk about our project and then we're going to open it up for questions and discussions. I have a few people with me and I'll introduce them. Again, this is Linux Foundation hosted call. So the anti trust policy is displayed on your screen. Please take a moment to read it over and abide by it during the call. Okay, and just another reminder that this cool call is being recorded, which will be made available on the trade finance. Thank you for joining me along with this presentation. So, we're here to present the giving chain and basically what the giving chain is is a social impact project where we were trying to make the most have the most effect in our community. We're creating a platform to make it easy for donors to get their donations to recipients in a decentralized, dignified way. We're going to try to do this and also creating an immutable record of that donation, so that the donors can actually prove and see where their donation wound up. And that was the goal of the project. I'm going to introduce the project. We ran the project in 2019. And I'm going to talk about that in a minute. And then I'm going to talk about the mentorship program and then I'm going to turn it over to my three mentees and they are to whoever's on the call, and they're going to run the rest of the presentation and I'm very proud and excited about that. So here we go. Again, I'm Bobby mascara on the technical steering committee of hyper ledger for at least another week or two, unless I get voted back in. And I'm also the coach that chair of the learning materials working group, where this kind of this project kind of started from. And I'm going to let hardic my mentee introduce himself. Thank you, Bobby. My name is hardic and the project manager of the hyper ledger giving chain in India, and I'm also the mentee selected for the project. Again, and I'm also like, been working with the learning material working group and I, and I'm really excited on being the part of it. Even after my project. Thank you. Madi, you want to introduce yourself. Yeah. Hi, I'm Madhu Bhatia and I'm, I'm the project manager for the hyper ledger giving chain woman India. And I'm in the blockchain and working with the Bobby with this very great project that is the given chain. Thank you. Thank you, Madhu. And I'm not sure if Mona's on the call, but our other person who helps us out as Mona from Rutgers University, and she's been working on the technical side of this very hard with hardic who they've made great projects, which we'll talk about that in a minute too. So that's basically our team, and the project itself again. It started as a grassroots project. I run the meetups the hyper ledger meetup in Princeton and the hyper ledger blockchain and AI meetup and there's a lot of members. And we had been meeting for a really long time and talking about blockchain and discussing blockchain and in the summer of 2019, we actually wanted to see if we were able to create a blockchain project so the people in the meetups gave up so much time of their time at every week. And we created through these checkpoints you see on your screen, a social impact project. So if you answer the questions that are contained in these checkpoints, you will actually build the project and I'll show you how that works. The first checkpoint is your impact opportunity. So we asked ourselves in the project, how can we make the most impact. Well, I live in New Jersey and this is the garden state because in August, all the farmers have lots of produce that it's excess. So we thought that we would make a vehicle to get those excess farm goods to the food banks. And I also had an association with the gentlemen who knew we're homeless vets were in our community. And we decided also to give items to the vets that you know are not able to make it to food banks for their own personal reasons. So that was the scope of the project. So we selected our challenge and that we were going to build this system to get the food supplies from one place to another. And the problem the scope of the problem was you know how do you do this how do you let the farmers know that we're going to come pick the stuff up and let the food banks know we're going to drop stuff off. So we decided to do food drives and again collect from the local farmers. So the checkpoint to is to start developing your business associations because while this is going on there's two teams there's a business team and a tech team so the business team has to define the parameters for the tech team. So we had to define our donors who are donors look like who are going to be the transporters and who are going to be the recipients and how can blockchain permanently tie this together. So again, the business model was given to the tech team and the tech team then had to look at it and say well what do we need so basically the first thing is the farmers need to create a tag or a ticket so to speak, to let the system know that there's a donation to be picked up. And once that ticket is created, it gets sent to the system, where the recipient. No, that's good. The donor sends it out to the system for people to pick up so in other words like a transporter will say oh I have the time to get that ticket, and we'll go and at the same time, collect. The ticket off of the giving bag. It will also scan a barcode that goes into the system to track it like the digital twin of the supply chain item. Once the driver accepts the donation and the ticket he has to alert the recipients that he has a donation and it's, you know, come get we're going to drop it off I need your address so the recipient receives that tag they accept it and then the driver will take the donation to the food bank or the location where it's needed. Our checkpoint for was to measure our impact well we had a big impact we create delivered 650 pounds of food to the food banks and we gave 55 giving bags to the homeless people in our community. And the code, what we did for the code was, again, we had an amazing group of people who just donated all their time. They took the sawtooth lake example, which was an example from the sawtooth folks over at hyper ledger. And the example used to track fish from the ocean to the restaurateurs plates. So they can prove authenticity of where the fish came from and that it was handled and kept at the right temperature through that supply chain so we took out the fish, and we put in the giving bags. This is an example of how we tracked. Again, the one giving bag through the system to the donation on the project day. So, the project day was a lot of fun. The group up on the left is a list, which is the youth leaders alliance leaders of America so it was this organization who donated the food to the farmers and collected the food. We also had gyms, local gymnastics arenas, nursery schools, even food mills collecting food for us and we transported them ourselves we were the transportation system so the people again who donated all their time donated that through that whole weekend and drove to the food banks. And again, this is where we delivered the stuff. One of the side effects of the project that we didn't realize was when we were in the office gathering we put all the food together and we're getting ready to go to the food banks and getting ready to go to the homeless vets. Our kids are involved so we had our kids sit down and look at all the stuff that we collected and create these giving bags for the homeless, and then they had to think about what homelessness is like and what would you want in this bag if this is all you had. So that was a great side effect of the project so to speak for our kids. The final checkpoint is to submit this and presented to people. So we were able to through our association with the hyper ledger social impact group. We were able to secure a spot at the big apps blockchain challenge where we won honorable mention for the project. It did not fit their categories. So they made a category for us. We won recognition from the government blockchain association where the project won the social impact award for 2020. And we got to present it at the capital, great exposure for the project. And what that led to is the hyper ledger mentorship program so we applied to the Linux foundation hosts mentorship projects every year. So we applied the giving chain, and it was accepted, and then we had a lot of students apply. And we have three mentors or mentees sorry, working on the project, and it is a six months project and they have donated so much of their time and work so hard and I couldn't be proud of it. The mentorship program the purpose of it is to get these new developers into the hyper ledger community with hands on learning opportunities. There's technical skills. I know my mentees have been to saw tooth maintainers calls social impact calls. So they're getting a nice taste of the community through the project. And we do want them to continue being active community participants so one of the things we're trying to get of this is how to get people involved in open source community projects and get new onboarding processes going for these new developers. And again what we offered the mentees is exposure to unbelievable amount of tools they learn about GitHub open source, they learn the chat rooms how they work the mailing lists how they work. The wiki page which is really the heart and soul of the hyper ledger community, they learn how to edit and make contributions to that. And I know one of the mentees Mona found a bug in one of the codes and reported it and had it fixed so again they're working through these tools very well. So now I'm going to stop talking and turn it over to my mentee to talk about how we've developed this project through the same checkpoints, but for 2021. So here's Hardik, and again I couldn't be proud of these guys, so take it away. What am I audible. Yeah, so again Bobby thank you for giving me this opportunity. So, okay so far for the agenda of today I will be giving an introduction like how, how, like the tune to two new projects that we are going to cover for the giving chain 2021. So we are again going to go through all the checkpoints that Bobby had already discussed and we are going to see what new changes that we have brought, because the business point of view is almost the same but the technical part has changed a lot. It's, it's completely changed there are new ideas. There are new things that has to be discussed. And also the picture in the left was created by Madhu, okay sorry Bobby can you just get back, I need to give your credits to it. So this picture, so her project in a way, so it was created for getting the donations but you all, as you all can see that it gives us the idea of what her project is and how it can be sort of how it can, how it can be worked on. Next slide please. Okay so, like we have already introduced ourselves so also the picture on the right was the design, the upper one was designed created by Bobby, it is a great design, I'm still waiting for my t shirts. I know Madhu is also, but we are really excited about the t shirts. Currently I'm wearing the Hyperledge of 50th anniversary one so yep, still waiting for these. Okay, so for the checkpoint one, the impact opportunity so we are again going to have the Princeton project, the project that Bobby did in 2019, we are going to have it again all the donors, the recipients the volunteers are going to be the same. So for my project, I'm the project manager of Giving Chain India Uttarakhand, so I'm going to explain my project in much detail further and then the third project is the Giving Chain Indian, sorry the Giving Chain India woman. The project is organized and being managed by Madhu. Again we are going to see what the project is in much detail for, so Bobby can you go on next slide. Thank you. So I'm going to answer the questions that we asked ourselves like first was like what is the challenge for my project, the challenge was to build an agile and a transparent network for the people that has been surfing or have been suffering from the flood damages, the people that have lost their homes, their schools, their way of earning their daily bread, just because of floods because Uttarakhand is a place on northern parts of India where these holy rivers flow, most of these most of the holy temples or the religious temples are based or have been in Uttarakhand so the Uttarakhand is a great place for tourism. So, also like when there are rivers, the floods happen so my problem was to, was to bring aid to these people that has been suffering from these. So, like, what was the scope of my project so for this summer I'm planning on creating a proof of concept. A POC for my project that can not just be used in Uttarakhand India specifically but can be used in anywhere or any place that has been so where people have been suffering from not just floods but problems related to this. So, the third question that we asked ourselves was why is blockchain needed. Again, that's a simple one because like creating a supply like blocked like there is no better technology for creating a better supply chain. Next slide. Okay, so these are the images that I've used to show. Can you just get back so that, yep. So, this is one of the most holy river that we, like in India, so when it overflows, like this is how the scenario look like, because these homes are built near this, these rivers again, like because of the holiness, the religious sentimental that people have and also because that's how being, that's how most of the villages are being built in India. So, when these river overflows, yes, as you all can see that parts of like all these vehicles are stuck, there is no transport between villages, there is no way of sending electricity, no way of sending and like internet, all these people have been like starving for months, like for weeks they don't even get things like like a roof over their head. So, yes, can we get on the next slide. ITBB is the Indian Tibetan police. So, these people like are really brave, they work on clearing these tunnels, they work on clearing parts, they work on like everything that's related to like getting the things back to normal. So, I want to keep that photo because I know that these people can be our volunteers can be the people who do great things for our project. Okay, so for the next project I will like Madhu to explain the whole thing. Thank you. Hi. This is the project is the Giving Chain India women and it is the scenario is that it is an estimate that 355 million Indian women and girls must find ways and they are coping with monthly menstruation hygiene. So, the project is based on the menstruation hygiene of the unprivileged women and the girls. So, majority of women in India, they use clothes and racks for their Seminine hygiene. And these materials might predispose their women to reproductive tract infections or UTI because they have no choice that pads or tampons are too expensive as they have the countries are imposing the lot of GST taxes on the meromaterials. Madhu, is it me or just like no one can hear her. I guess he has. Yes, I think we lost Madhu for a moment. Let's see if she can get back. There she is. The internet is unstable but some is it is, it is very problematic for them to wash the napkins with the soap and drying them in the sunlight and due to the lack of water or the private facilities or there are many cultural taboos associated with the menstruation. So they are doing this kind of activities like washing in the just river and all this. So this is a statistical chart that around the world the family and hygiene products are taxed at rates highly than expected for essential items and even in India, sanitary pads are considered as the luxury item and many women and girls can't afford. So the giving chain India women is an initiative in the direction to make a difference in the Indian women life and I am extremely thankful to Bobby for giving me a chance to work with her and for working with the empowerment of women and giving a better life to the women by providing this sanitary hygiene napkins to the that ruler and unprivileged women. Thank you. We're very proud of you, Madhu. Very proud. Next. Thank you, Madhu. Okay. So, giving chain needs its project managers, just like Bobby me and Madhu, we three are project managers. Since 2019 when we started working on this project. Because our first aim was to make it as scalable as possible, like, as possible. We wanted this project to not just return on like different places but it, but it's something that can be implemented anywhere. Like, if something happens, anyone can just like be some like, like can take the charge and start the whole process of the, the giving chain. So we, we get to know that, okay, so I can back so yes, so we get to know that project managers, like, like we need project managers, not just for the planning, not just for the organization or the registrations, but to, to specify how a project will work to specify what problems we because like he or she will be facing in his or her scenario because like, as you all have just seen, all of these projects are unique in their own way. Like in Madhu case, the donor the recipients the volunteers are wholly like, like they are different her business idea her business perspective is a bit different from mine, mine is a bit different from Bobby. So, we are unique in ourselves. So, I still like the giving chain needs its project manager, I'm discussing it here so that we can make things clear, like as as you go forward. So again, the checkpoint to so we ask ourselves the same questions who are clients will be the clients here are not just the donors, they are also the recipients, the donor can be the an individual can be someone who like can be an NGO in my okay so I'm, I will be explaining, like the donor the volunteer and the recipients, like according to my project so it, so it gets much clearer, much clearer. So donor in my case, the individual the people who are going to visit these temples are are are staying in these expensive hotels the hotel managers like all of these people who have like, who are traveling to these places can be our donors, I can, like we all can ask them to donate something. Okay, so next, next the volunteers and the drivers volunteers and the drivers can be the itbp, like I talked about them can be me can be people again, those are travel because I know in Uttarakhand, we have many, many travel agencies again, like duty these holy places, like thousands and thousands of people visit these places every month. So, I know that travel agencies has their own vehicles they drive up and down like throughout the year. So they can be our volunteers they can be our drivers and finally are a recipient a recipient again in my case are the people that has been so suffering that they don't have a roof up their head. They don't have the schools to work. So, these people, mostly students, I'm planning it like we are because it just they have the same model. As we did in 2019, we have the donor volunteers and the recipient. Okay, so I've explained this. I guess. Okay, so then comes a checkpoint three. Here are the things started changing. So, for the checkpoint three, the first thing that we have included other project managers and, and, and their role of registering the donors the transporter that it depends there. As you all can read in the yellow box that project manager act as an administrator, making enrollments in decisions. Project manager will decide how their business idea will run and how things will go. So, also the registration process is one of the most important places, we all will see this. Okay, so, yes, how, how, like, like, how our model will work is that we are including a concept of NFTs. But I know that NFTs has been a boom, not just since last two or three years, but they have been in, in, in talks since, since the blockchain has started so at the, so the idea is that whenever a donor wants to donate something, he just pick up a phone, he clicks a photo and then send this photo is then and the information that like from where it is picked on, like what the item is some basic information about the idea and then like his information if he wants to give it. So, these information plus the picture that has been converted into an NFT will be then created when will be converted into a dynamic QR code. These dynamic your codes can be used throughout the process. The change these can store information these, these can give the, give the whole, the whole confirmation that the, that the process hasn't been changed throughout the, throughout the flow that that after donor like this happened and after this this happened so it will give us a whole flow of the transaction. So, as soon as the donor has clicked the photo the NFTs created of a broadcast message will be sent throughout the network that says that yes this has been done and then a private message will be generated that says that he wants to pick up that donation so that private message will be sent to that transporter because we can't keep everything public we need to have some things private information about the donation will be private so all these information will be sent to the transporter the address of the pickup so if let's say that like if a volunteer agrees to pick up the donation he will send another like a message to the donor that yes he's willing to pick up the pick up the donation and as soon as the transporter all the volunteers pick up picks up the donation he scans the QR code these and while scanning this QR QR code he will be asked to take a picture and this picture will be of the same donation that the donor has said so again like we are we are getting the pictures of the whole process these pictures will be saved in a metadata and the NFT that that was created and was on the name of donor will be transferred to the transporter. So now the transporter is the owner of our NFT he has the donation picture of that donation donation when it was being picked is being stored in our metadata and again a broadcast message will be will be sent throughout the network can we move forward. Okay, so then then comes the recipient so the donor has to has to get the get the thing and then finally get to the recipient so as soon as like the volunteer gets to the recipient again the whole thing happens again the recipient scans the QR code. He clicks the image this this image is being again stored in a metadata the whole transaction is being is being completed when the NFT from the volunteer is being transferred to the recipient. So this transfer of an NFT not just gives like not just provide us with the with the whole transaction but it also gives us the proof that yes a certain certain transaction or a certain donation has been completed all of these images that are being clicked at every point also and it also gives us proof that yes the the thing that that was being sent was at the same condition when it was at the donor's hand and then finally at the recipient side. So, yes. Okay, so for a data flow diagram. So, I'm, I'm just going to breeze through this so that we can again talk on things that we have completed till now. So, as like, like, like for let's say if, if, if avoiding disaster that some, like, if someone from anywhere wants to wants to do something on the giving chain. So, like, a trigger will happen and and and then project manager will be assigned. Let's say if I want, like, I want to be a project manager of a certain project so I so a giving chain, not just the same thing a whole new chain will be will be formed for me. So it's actually hard to explain this way but Okay, so when the giving chain is set then like I because I'm the project manager so I will have all the administrative powers so I will again, I will get to decide who my donors will be whom I transport or all the volunteers will be and whom I finally the recipients will be and then these like the donors will register through our website because we are planning on making a web app so these donor the recipients and the and the transporters can log in through our and can register through our web app they like all of, like all of them has a separate they are communicating with the giving chain and through this they will have Yes, so and finally the the fourth checkpoint the impact measurement. So we have a test run for the giving chain instance so Bobby can you please explain this whole test run. Of course so we did. We're still in the process of doing the donations for the giving chain but we did a few test run so to speak so that we have the data points collected. So the first one was just picking up from a farm, some vegetables dropping them off at my mobile food bank. We also did another collection on Labor Day and we got 100 pounds of food to the food bank, and we're still in the process of two more collections. So what we do with the collections again as we just grabbed the metadata like where the donation was the geo points so that you know the transporter knows where to pick it up that kind of information, and then I'm going to go over to Madhu to talk about her data points. Yep, I don't know if her connection is working so I'll just describe this for you. She had purchased some hygiene items for the women, and had delivered them, I think through local NGO. I'm wrong Madhu and you can jump on please do. And it was very successful and we're going to use that was her test run. We have we're going to talk about in a minute the collections that we've done for this project, and how we still have to disperse those donations out and track them on our blockchain. So that's coming up. So I'm going to turn it back to Hardik to talk a little bit about the code this time. Okay, so I'm going to start with the Hyperledge of Firefly. So Hyperledge, the first way, when we started the project our plan was to build the whole thing again on on the Hyperledge sort of but when we start. Me, Bobby, we, we both passed on their weekly meetings and we get to know that that example that they have used in 2019 is not being. It's not being used anymore so it's like the, like, they have got to a newer version, which is not like the older one and the newer one are not compatible enough. So it will be a tough thing for us to, you know, do the do the whole thing again, just like we did in 2019. Also the problem that we faced in 2019 was that we cannot use IOT devices for our project. So then we started thinking of other solutions and then we got to know about the Firefly. So Firefly is like is a technology created by Collider is and I get to know that like recently they have been selected as an official Hyperledge project so congratulations. So these guys are amazing they they have like like helped us not just in creating like not just in improving our technical solution but also you know answering mine and every question we have been bombarding them since since since last three weeks and and and like every single day or every single meeting that we had together they had been great help. So I don't know if they're here but if if Miko and Andrew like you guys are here, again you guys are awesome and thank you for helping us. So actually Hardik it is at the same time they're working group call that we usually are on. It's happening. They're not on the call but they sent their best. So Firefly is allows enterprise blockchains to communicate between each other using API so we are using that only so Firefly has this amazing concept of CLI that makes it makes creating all these nodes and communicating between each other so simple simple that the the thing that we have to focus on was our backing. So the next act that we have is the giving chain API is that this is directly related to the Firefly we are going to use. So, again, like we have selected ethereum blockchain to be used with Hyperledge of Firefly so that we can communicate again like communicate through their APIs we can we are going to make our back end in our sorry in our UI and react and we are going to have a back end in SQL. So for our registrations and then finally we have the giving chain blockchain that will be our end project so Bobby and you please move ahead so that I can show pictures. Okay, it's on the next slide so finally our checkpoint six the final submission so since we are on the since we are working on the checkpoint number five we still have to complete then and get finally on checkpoint six that we have three upcoming meetings the first one is on October 26 that is with social impact. Then we have it on November 12 where my mentorship will be ending but again like as I've told you before that I will be continuing my work with like the giving chain so on November 12 I will be having my closing ceremony and then on November 17 we again have a presentation the trade finance like and that will be a whole complete project so okay. So defining our project like we have two teams the first one is the business team and the second one was a technical team so business the things that the business team had to do was to create social media accounts manage them have to raise funds because we have raised few we have raised some amount of funds that again can be very helpful for not just my project but especially for to switch and then finally to get the whole idea then to make changes like according to the recent things and then finally we have the technical team. So and technique the things that technical team was to create and work on the GitHub, like we, we have our UI uploaded on GitHub anyone of you can. Anyone of you can just fork it and start working on it, then, like, as I've just told working with hyper ledger pipeline, not just not just refined technical perspective of the project but also gave us some of the ideas that were really amazing. And then finally is to develop code and we currently are on this stage, we are finally working on the code. Next slide please. Okay, so no problem I will send the link and then you can just open it. Okay, so for a business development we have a website. Can you please open it so that I can explain like the two. Excuse me. Can you please open our website so that I can explain. Okay, certainly yes one moment. Okay, so like, let me talk about the two types of funding that we are going to have the first one is the corporate funding the corporate funding is for our project development. So this type of funding is is for us to complete the project to do because like for like more than me we both are back in developers and working on the front end has been something new for us so we are learning but making something that is completely, you know, like at that level we need some funds so that we can hire people to work on that so the second type of. Yes, can you can find it on investors, the page investors, you can, you can do your corporate funding through here. The corporate funding is sponsored by the Linux Foundation so it's all done through their portal so you can check on it you can track it and you can follow it through. So again, like there's two ways to donate one is to directly to the two projects through the go fund me page. And the other way is through the investors button on our website. The second type of funding is the community funding this is like these this amount is like it's going to be used like fully not a single penny will be saved because everything is still now is being planned to give to Madhu's project, the giving chain India woman so that these so that this money could be used to buy her like the products that she want to donate. So yes please if if you want to help the giving chain anyway, you can do this by not just by applying not just by sharing but also by funding. Thank you. Next, okay, yes, this was a slide I was looking for. So the, the thing that the technical team is doing right now is like we have created our open source like we are we are using Firefly for open source project fire like the link to Firefly CLI can be in the here I probably can you please post both of these link in the chat so that everyone here can access these so if anyone of you want to get into Firefly the CLI is the is like what I think is the starting point and the photo below is the UI that has been created by Mona it's it has the four part the first is the donor page this you can see here this this is where we can upload our pictures these pictures will be will be uploaded in IPFS so like we still need to get our NFT part done so Firefly is working on creating its NFT token in ERC 1155 so they are still under development so so till now we are uploading all the pictures in IPFS so you can do this from here. The best part about this is that we can communicate between different notes so as you can see that donor is a single note driver again it's a second note NGO here is a note that we have created separately from the recipient recipient can can be an individual whereas NGO can be an whole organization so the newest feature that we have added is of connecting our wallet so we all can connect our MetaMask wallet through just clicking on that blue button so if any one of you here wants to help us or wants to you know just just wants to be a part of it just hope the GitHub and we all can start working we have our weekly meetings on Friday and Monday so just drop in and we can we can all start working. Okay so we are open to questions comments and discussion and thank you again Bobby for this amazing mentorship I have learned a lot not just in my technical stuff but also my soft skills have improved again thank you. Thank you so much for my side as well you know I can talk a little more freely right now. I wanted to thank you for this presentation. There are a few questions in pipeline Bobby if you want to handle them or maybe somebody else would like to take the word and as hardy can Bobby. More details into this. And there was a question in the chat about how you keep the recipients anonymous. The whole point is not to keep well not to keep them anonymous but the donors want to know who are who have to keep the recipients anonymous. The donors want to know where the donation goes so basically if it's going to a food bank or an NGO. So that would be the point where the giving chain ended. So the NGOs could enroll again it's up to the project manager who's enrolling them in the system can enroll with just to name food bank a, or they can enroll with Flemington food bank at this address, if they don't mind that kind of exposure. Again it really is up to the project manager to decide how much information is going to be released but we do want enough information so that the donor can see that it got to the recipient that it was intended. Any other questions I think that was the one I got in the chat. If there's any all please just shout them out. Everybody shy Bobby. You're free to ask him maybe more. Anyway, Bobby just few words from my side as well you know. It's great to have you here today and it's not for me to learn more about the project. This is just the first two minutes next one taking place in two months time. We can have more details into these technical solutions. This is actually from my side it's so, so much wanted and so much searched. Kind of me it's like this you know fills me up because, you know, I'm one of the promoters of the initiative bringing solace region solace within the hyper larger community. This is the good part of trade and trade finance actually we're talking about both of them you know, three funds being the backbone of international trade. Now what we are showing right now is the positive virtual side of trade. And of course it's trade finance was social impact is involved. So lots of good developments in the mid term, maybe in the short term as well you see me I can all thank you for joining. I'll thank you again for joining us in the two months time game. You're the whole team. What I invite you to is thank the promoter picture. It's like, how we'll do it today. Discussions more and more topics that will of course intimately be inclined in the larger picture. So I'll stop talking and handle it to you again Bobby. Yeah, of course feel free to ask questions you time. I think one of the goals I know that that hard to medu and Mona and I really see this project going is. Once the platforms built, it'll be great for any kind of disaster relief, like if you have a project like, like, for instance a flood in your hometown and you need to get blankets to the shelter. All you need is a project manager to enroll people and systems there to track it create the NFT and do all the hard work. And we're hoping that that even can scale up. And maybe it's something like the Red Cross or UNICEF or the UN, you know could be made aware of for future possibilities and synergies with this group and their groups so that's what we're really hoping for. And there is a question from Vendant if you'd like to go ahead and ask your question. Yeah, thanks. Thanks Bobby. First of all, a very warm congratulations to you and have the camera do as well for getting this initiative and working for the people are following the work. My question was like it was like a doubt for my side like this is open source and we can contribute to it right. I'm very new to the blockchain space like I know a bit about solidity and smart contracts and the working of various other platforms as well. But I have very little or surface level knowledge of hyper ledger. So is there any way for me to contribute because I would like to contribute in this call on the technical side. So is there anything that I can do. Absolutely. And I'm going to take this heartache and I were like, yes, there's plenty. If you are interested in joining the tech group on the hyper ledger public calendar, which I'll drop a link to. We have a meeting set up for Friday where we it's just us and we really talk about what we're doing with the code and who needs to do what. And I encourage you to join that meeting. It is on the hyper ledger calendar. And that's a good way and if you just need information on joining the hyper ledger community. Everyone is always welcome to join the learning materials working group call Monday at one o'clock, where we talked to the community about how to become an active member in the hyper ledger wiki pages and code pages so if you can't make the Friday we hope you'll be at. We hope to see you on Monday. Yeah, I will be there on the bottom. Great. Thank you so much. Yeah. Thank you. Thank you. Anybody else have any other questions. No, Hardik, do you have any more. Same question. The previous one I wanted to contribute but I just need the link to that meeting. I'm sure I'll be joining Friday. And I did put the link to the hub repositories in the chat to so both of those repository the firefly and ours is there and I am going to drop the chat to the calendar of public meetings which is a hyper ledger wiki page which lists actually the events that are happening in hyper ledger and I'll show you what that looks like in just a second. So again it has a scrolling page for everything that's happening and the link for the zoom room is contained within there so our call is Friday. It's right here, and then there's the link for the zoom room and again our Monday call is listed. So all the calls are listed with their coordinating zoom pages and everyone is welcome to come. There's no fee to enter it's just a great learning experience. I can see that there's a question by Carlos that can you please ask. You put this in the chat. Yes, thank you. Hi everyone. Congratulations for this project. I think it's amazing. And I really want to ask you this. Why to rely specifically on blockchain. When there is another technologies to do so. Okay, so the whole idea was to bring transparency in the system so I know like there. There are a few other databases or other technology. Like when we when we talk about the scalability or when we talk about is it's going is it going to do the same thing as we have planned. So I don't think so because like again we we want the whole world to see like how the whole transaction has been done. On which steps did the thing like at which condition was it and at which because we will be storing the pictures right we are also going to transfer the NFT so all of these things like are only possible through blockchain. Yes. So we did the project in 2019 NFTs weren't really a thing that people were applying to their business models. And with, you know, this idea for the 2021 project to use NFTs is remarkable only because there's so much potential with the NFT. I have now that NFT that that a donor can say look, I did this, this donation, and I can prove it with my NFT. And, you know, there's no limit to what we can as the giving chain people we can sell those NFTs on like open seas and maybe generate money for the project or, you know, we don't know what the NFT markets or their capabilities are yet. So for this project, the first time around we have to print out three individual barcodes on a ticket and attach them to each one of the bags so that when the bag went to a different person they retain the copy of their ticket. We're transferring an NFT. So it got rid of the whole idea of the IoT devices because we don't need to know like the temperature of the fish or you know it's these are just donations that are going from one place to another. So hopefully that NFT will give you that immutable record that cannot be changed or altered so that's for me why I think the NFTs are so wonderful and again like Hardik said there's no replacing the consistency authenticity and tracking of a blockchain supply chain. Thank you. It's just like we have three minutes left. Does anybody have any more questions. If not, I will tell you that you can also get one of these very cool t shirts we're selling them on our giving chain website and the money will go to Medus project so if you want one of these cool t shirts. Go to our www the giving chain.org, and you two can have one and now I'll turn it over to Andre to close out. Quick Bobby, thank you so much for being here with us today can't wait for the next one. It really is a pleasure for me to know more about this and see the developments I'm pretty sure it's going to be very interesting ones. So I thank you so much. Thank you for joining us today it was really really nice to see you all and can't wait to see you more and more during the next meetings we've gone to join forces for other seats, hopefully in the future. So again, so stay tuned and hopefully I'll see you again. Talk soon. Bye Bobby. Bye bye. Thank you. Great job. Great job, Madhu.


The federal government has promised to commence payment of compensations to Benway communities affected by the construction of the Abuja Kefi Makodi Federal Highway next week. The Minister of Works and Housing Babatunde Fasyalal gave the assurance on Wednesday at Government House Makodi. It was in a meeting with contractors handling the project and representatives of the Benway government. Represented by the Director of Works, Ishaq Mohammed the Minister regretted the stoppage of work around the Benway access over issues of non-payment of compensations to those whose lands and houses were affected by the construction. The Minister said it was important for work to resume because the project was financed through a bank credit facility and had a time limit.


My name's Sven. I got lucky. I work for Docker Inc and I'm currently support engineer, but I also do well maintaining the documentation, boot to Docker, all those little piddling things that hopefully somebody's read. You can find me easily because my name is unique still. The first Dovidite to call their name, their child Sven will well receive a nasty email from me. Today, well, that's right. Just to remind me. I'm going to talk about kick-starting new developers using Docker. Before I got the job at Docker, what I thought I would spend some time doing is racing around the Internet, looking at projects I wanted to play with, and making Docker files for them so that I didn't have to think about what I did the next time I came to play with that project. And so this is sort of, I'm going to show a few examples that are kind of like that. Hopefully they'll give you an idea of how you can then use Docker in your free software projects or even in your workplace, because people often, when they haven't had time to play with Docker, kind of look at it and go, so what do I do? I'm not sure that I've pitched this to people who have never played with it, but I'm trying. So the question is, who here has not used Docker at all? Right, can we swap? Because you can probably do this talk and pitch to more people than I will. Okay, so the examples I'm going to go through is I'm going to start with Apache, because my slim containers talk, I was originally going to compile Apache statically and show how to make that slim, but Apache is awful. That's the third time I've tried to contribute and they scare me. Then that's Perl C-Pan module, because I wanted to patch one small thing and it was hard to test. And then I will pretend to do some fig and then I'll show you a development environment that just works as my final demo. Okay, you guys can all read microwriting. Okay, so if you go to Apache's HTTP website and try to find out how to build it, they will give you a, I think it's like a 10 page document that tells you a whole stack of things and a little amongst there is all these little bits and pieces that you need to know to compile it. They also at the top of the page have this thing for those of us who can't be bothered reading, those are the steps. And you look at them and go, that's lovely. I could do that. If you follow them, it won't work. Firstly, I can't see any mention of actually needing compiler or which one. Make. No, we haven't got that installed. And there's a series of other libraries that you also need. And let's just find out if I go a little smaller. No. I may have listed them somewhere. But you just kind of go, in this day and age, do I really need to go read your 10 page document just to see if I can compile it? Of course, my answer is no. And then let's presume that you've followed these steps successfully, which of course I did.  I'd like you to test it on Centos, Debian, Ubuntu, OpenSUSE, Arch, and the list keeps going. And you just kind of go, okay, it's 2015. I should use virtual machines for that.  And so this is the first thing that I started playing with in Docker, which is that we give you hub images of all of those operating systems, file systems. So you don't need to boot them. You don't need to do anything. All you really need to do is take this software, which I've clearly built into user local Apache 2, link that into your container and run it. So you get something like this, really simple command. So what I'm doing here is I'm running a container using the Debian image. I have given it dash IT, which gives us an interactive terminal, dash dash RM, which means it deletes the kernel, I mean, the container after it's exited, just because eventually run out of disk space. So for me, Docker run minus IT minus minus RM is the default thing I'll type because I often use very ephemeral containers. Then the minus V, what I'm doing is I'm bind mounting my build directory directly into this container, which means if everything is there and everything runs, I'll get a bash prompt and then I'll be able to Apache control start. And from memory, this one worked, which surprised me because I expected that there would be some libraries missing because this is a base Debian. It's 85 meg. It has almost nothing in it. It doesn't have an editor, I think. You know, that sort of stuff. So you just kind of go, I didn't expect that to work. What I was expecting to see is that I'm missing some libraries and I'd have to figure out what they were and so on, but I got lucky. And then I do the same thing as CentOS. And personally, I find that an awful lot easier to use than Vagrant. Now, this doesn't mean that you've matched up the kernels and, you know, so you're not really running CentOS or Debian or whatever, but for a user space application, it's pretty darn close. Because most of the time what you're missing is user space libraries, that sort of thing. If you're playing with a kernel, the kernel guy seemed to be slightly scared of the idea of loading a module from a container into your non-contained kernel. I can't quite work out why, but then I'm not a kernel developer. I don't even pretend to be, although it might be a fascinating life. So I went through those manual steps and I got bored very quickly. Instead, we could add a docker file to the repository that would do the whole thing. And in fact, I've structured this docker file so that you wouldn't even need to put it in the repository, clone the repository and go from there.  And so I'm using the official hub GCC image, which has GCC make and all that jazz installed. It's 1.2 gig. It's great for development, but it's not great for your bandwidth, especially if you download it millions of times like I do. And then it'll install the prerequisites, which were sort of vaguely mentioned in the document I referenced before, but I kind of found them out because things didn't work. And unfortunately, I don't think I can show you the rest. Oh, maybe I can. Let's find out. All right. So what's the easiest way to do this? Isn't that lovely? F11. Jeez. It's not very big, is it? Maybe I've shown you all of it. Ah, okay. I did some more afterwards. Okay. So effectively, let's look at this one. That is the build. And the last thing there is telling the container, well, the image, what to run by default. We can override that and so on. But really, that's it. I kind of think that's more useful than the 10 page document because it'll work every time. And if it doesn't, then hopefully it's because I've got a bug in their repository. Okay. So the fun thing about that is you now have a build, which with all the prerequisites you need in Debian, you can do the same for CentOS and whatever. And you can run it.  And in this case, I've decided to start it manually because I was probably debugging something. Does anybody have any questions to this point? Yes. And that's because I've added my user to the Docker group because I hate typing. I still don't touch type properly, so shorter is good. Yes. Okay. Imagine this. Anybody who contacts the Docker demon in whatever way they can will be able to spawn privileged processes on your computer. Do you want that to go away? Or would you like root to be the only one who can do root things? You scare me.  Yes. No, I don't know whether because it's really actually kind of a bad idea. It's possible that somebody could do it and write the code. I don't know enough about how you would make sure that we restrict all of the things that you could possibly do. Possibly with not 1.5 but 1.6, I'm assuming that user namespacing will actually get into Docker. At that point, it might be possible for a non-root user to have enough privilege to start a Docker container as themselves. But you can still bind mount volumes and you could probably still link to a volume that's in another container that may give you more privilege. It just strikes me as really messy and really scary. But yeah, with sufficient code, I'm sure somebody could make something that looks like it works and hopefully it won't kill us. Apache building beforehand or I guess this Docker file is building Apache inside the container. Yep. Is there an advantage over one or the other or is one way generally recommended? Okay. Well, for me, there are a number of advantages to using the Docker file. Firstly, I don't have to read the 10-page document. I hope I get all the bits. Secondly, I hate having to install stuff on my local box. So if it's in a container, once the container's turned off, you don't have that installed. So to me, those are the minimum advantages. You also get the fact that this container, it's unlikely to break out without some extra effort. So for me, I don't want to go back to the old way, especially when I do a Java thing because I don't want to have Java on my box. Other than that, because a running container is essentially just a thin little wrapper around what's running natively, to me, there's not very many downsides, especially at a development point like that. Oh, there's more, there's more. Now I'm going to have to rush. You just mentioned Java. Do you have any advice on keeping the size of a Java container below a couple of gig? Last time I built one, I ended up with a 4.9 gig container. How do you make a Java result war file, whatever it is, that isn't ginormous? Okay, but so if your development or build image is for something gig, when is it a problem? It's not a problem when it's on your local machine, is it? Exactly. So don't move it around. Yes? No, no, the slim container talk basically covers that. Okay? So what you do is you have your build container and you have it generate a tar file or whatever of your result. So you've got your war file. Then your next step in your build is to take that out of that container and make a new lightweight container that has only what you need to build the sucker. And that's it. Yeah. No, no, I know. I know. I've talked to people and you just kind of go that's scary. But if your war file is two gig, then Docker's not going to help you make it smaller. What you need to do is figure out how you can transport that around. So your build artifact is probably the cheapest thing to run around. So if you can have your Java runtime images as your base image for what you ship around, and then the only layer on top of that is your build artifact, then it's as small as you can make it. After that, it's Java problem. And I would love to know the answer, but I know so little modern Java that I just feel under qualified. So at the top of this Docker file, you're already running out to get and I'm a bit of a docker noob. How does it get into Debbie and is there something that's missing from this fall? The GCC image is a Debian with GCC and make a few things installed and then compressed into one layer. So it masses of cheating because I can't. All right. I'll move on because I am going to run out of time. Okay. So we can run this sucker. It's great. And then we make the slim container by extracting just the user local out Apache 2 and building a new container that contains nothing but in this case, sentos and the second layer being the tar file or the result of it. So we get instead of 1.4 gig, we get a 280 meg container. If I had chosen Debian instead, it would be 120 meg because the Debian base image is 85, that sort of thing. But you know, in the slim container talk, engine X using my cut down Debian, I think was 60 meg. So another reason to maybe learn how to use engine X. Okay. Second example is where I wanted to test something. Now there's an awful lot less mucking around here of getting prerequisites because there's that C pan in install depth dot, just like Ruby, Pearl, go, you name it, it grabs the dependencies out of the project itself. And in this case, I'm not doing a W get. I'm actually copying. So the copy dot whatever is copying the current directory and subdirectory and bringing that into my container image. What do I want to talk about here? The really cool thing is that so long, oh no, okay. And the problem is with the way I've done this, because I put the copy dot at the beginning, if I change any file in my source, it's going to rebuild from scratch. If I was a sensible person, I'd actually just copy the file that my dependencies are built from, then do my install depths and then later on bring in the rest of the source code because that way, at least my dependencies would be cached. And so if I then change some source files, rebuilding this image would pretty much just go cache, cache, cache, cache, cache. Okay. Now I got to do a build and keep going because I live in Australia. I have sort all bandwidth. And while I do have, I pay for through the nose. I hear in New Zealand, it's worse. Whereas my American friends look at me and go, why do you care? The internet is fast. This again, we throw it in the repository and we end up with something where somebody new to this module can come along and go, I don't know what I need or how to do anything. I can just get clone and then go docker build that, tag it or not. And in this case, what I've done is made it so that it runs the tests during the docker build so that if the build succeeds, I now have a module that is considered working. Whereas, I can't remember with the other one. Yeah, I'm not running the tests here. Terrible man. Okay. I'm going to skip this one. This is a fig thing, which I don't use fig enough, but basically, so the docker is great for starting one thing and you can do things from the command line to link multiple containers. This example is basically just your fig command that tells it to use the WordPress image and the MySQL image and to link the two together so your WordPress gets started and knows how to talk to the MySQL database container. And so that makes the orchestration or composition part about as simple as using docker files as well. And we bought these guys and they're cool. Okay. Now for my little micro demo, because I've used up more time than I wanted. He says crossing fingers and hoping it works first time. Oh, look, what I have here is a containerized X windows. Whoa, that's not wanted. Let's make this look familiar to everybody because everybody loves Windows 95. Okay. All I need to do and here we go. I'm starting a second container of NetBeans containerized. This is about as close to my machine as I let Java get because it's in a container in a docker image. And if I delete the docker image, my machine is no longer Java. Thank goodness. But the thing that I wanted to show about this is it means that in your company or in your group, you can have a set of docker files that you give to everyone or you can just get them to pull the right image. And that way, instead of setting up a new computer and getting all this stuff working, you can just go docker run dev environment or figure up dev environment.  Well, any questions? I have time for one. Two. This is probably a silly question, but say with the NetBeans example there. So it would have access to like your other local mount file systems to say if you've got your various development repositories and things in another file system, you just bring that up and it still has access to all of the workspace. So for instance, Eclipse keeps its workspace in a separate space, that kind of thing. Yes. Well, you'd have to set up or use your feed command more than anything else to set up the volumes to talk to either your hard drive or a network mount or whatever and then orchestrate that so that the containers talk. But that's something that you would do once for everybody in the team. So yes. Question about the philosophy of docker. I'm just trying to understand how in a production environment how do you fit configuration management into it or do you guys prefer the philosophy of just nuking containers every time you want to make a change? And also, is CoreOS pretty much the only choice you have for a base OS? No, CoreOS is definitely not the only. I mean, an awful lot of people I know use Ubuntu. I use Boot to Docker because it's a 24 meg Linux distro. As far as ops and deploying real things, I'm not the right person to ask. I'm at the developer end. So I do prefer to blow everything away and start again. Yeah, I kind of, yeah, I'll punt on the ops bit. As far as OS goes, CoreOS makes a set of decisions. If those decisions suit you well, there's obviously no reason to not use it. Personally, I like Boot to Docker because it's just Linux and Docker and everything else is in container. I kind of think Rocket is in part attempting to make that way of working even better because what they want to be able to do is run their services in a container before the container system is ready. So, yeah, there's no one answer. Sorry. My first use for Docker would probably be to replace Vagrant as my one command set up a dev environment for someone with a shared directory on both. How do I do that in 15 seconds? What OS is your poor developer using? Okay, if your developer is on Linux, then you've obviously got to apt-get install Docker. Your 15 minutes is almost up. Yeah, it's almost up. You'd want to install fig, and then you would get clone your repository that contains your Docker bits, and so then you should be able to go fig up, and it would start all the containers with all the bits linked together, and they're done. So what's the listening ingredient for it? Fig. Yep, go fig.sh. It's effectively, well, it is going to be called Docker Compose in a few months' time when they rename it because it's the composition element that is coming out. If you didn't have Ubuntu but we're running OS X or Windows, then you'd add boot to Docker right now and eventually Docker Machine, which will start up the virtual machine or talk to a cloud service provider and create your virtual machine that runs Linux with Docker, and then you can do everything that way. But, yep. So there's at least five steps, and it'll unfortunately. Yeah, it does, yeah. Well, thank you very much. Thank you very much.