My name is Dr. Kasim Abdullah and I will be teaching Geography 597 Geospatial Application for UAS. UAS is unmanned aerial system. It is a part of the Penn State online geospatial educational program. The UAS development and use started long time ago in fact, but we didn't get the practical to use until recent days due to the advancement in technology such as miniaturized IMU, GPS and other communication instruments. We started with the defense application and now we're seeing revolution in the use for civilian use and that's why we're introducing this class. The class will introduce the history and overview of the UAS. Elements of the system, payloads and sensors for remote sensing. One important topic we will deal with is FAA regulation on owning and operating a UAS and how to apply for certificate of authorization, the COA. The other part of the course will focus on the application of geospatials and the product development and such as camera calibration and board sighting is important of the product development, ortho rectification, DTM generation and so on.


Hello everyone. Thank you for joining us. I'm Michael Delabida, Director of Technology at the Digital Public Library of America, or DPLA. Today, we'll be discussing a project that has brought some of the vast collections that DPLA and our partners share with the world to a new audience in the Wikipedia ecosystem. By making these items available to users and editors in the Wikipedia universe, we have been able to have significant impacts in terms of item views. We believe that the field should be considering cooperative projects with the Wikimedia community as a way of growing the audience for these materials. Thanks to generous funding from the Sloan Foundation, the DPLA network is now the largest contributor of media to Wikimedia Commons, the digital asset management system that undergirds Wikipedia and other Wikimedia properties. As items have been edited into Wikipedia articles that relate to their content, we've been able to gain greater than 60 million page views since this project began over a year ago, a number that outstrips ordinary page views on DPLA and our partner sites. We are confident that continued investment in uploads and outreach will increase our viewership by borders of magnitude. I'm joined today by partners of ours who have worked with us side by side as we engage in this project. Coming from Brazil, Giovanna Fontanel is a program officer at the Wikimedia Foundation and has been an important guide and mentor for DPLA. And Lee Jeremiahs of the Colorado Virtual Library is the former chair of the DPLA member network council and the administrator of the Plains to Peaks Collective Hub that participates in this program. Each of them are here to share their perspectives on this important work. Speaking here first is Giovanna, who will talk about the programs at Wikimedia Foundation to work with organizations like DPLA. Hello everyone. It is a pleasure to be here presenting together with Michael and Lee in the leveraging the power of Wikimedia to increase discovery and the use of archival collections. My name is Giovanna Fontanel. I am the program officer for the Glam and Culture team. I will explain soon what I mean by Glam. And I work at the Wikimedia Foundation and within this presentation my talk will be especially about the power of Wikimedia part. For that I will present a brief introduction to Wikimedia, Wikipedia and some of our projects and hope that you will too understand how powerful the Wikimedia ecosystem can be for cultural heritage and archival institutions. First, I would like to open up with this quote, imagine a world in which every single human being can freely share in the sum of all knowledge. This quote is from Jim Wales, the founder of Wikipedia. And I always like to use it in presentations like this one because I believe it describes and sums up very well the spirit of this presentation and of the Wikimedia community and the Wikimedia projects. And here we have Wikipedia, the free encyclopedia that everyone knows and uses, and it has more than 300 languages and more than 45 million articles and more than 3 billion edits made by its millions of current readers, volunteers, contributors across the world. But it is not just about Wikipedia. Wikipedia is part of Wikimedia. It is one, the most famous one in many projects. The Wikimedia Foundation is the official nonprofit that helps to take care and maintain all of those projects. Here we have Wikipedia and the icon above. On its side we have the Wikimedia Commons logo icon, which is the multimedia platform that houses all the media content that appears on Wikipedia. And on the bottom with that similar to barcode, we have Wikidata, which is the databases of the Wikimedia projects. But not only on the volunteers, the power of Wikipedia and the other Wikimedia projects lays. It lays on the reach that they have. Wikipedia is one of the most access sites in the world with more than a billion unique devices every month accessing it. Just on the last month we had more than 22 billion page views being 3 billion only in the United States. But I would like you to pay attention to the end of the page here where you can see the total of media requests. That is an important information for me, my presentation and the team that I work with, as it shows the interactions with media files, that is images, videos and documents and so on. And just on the last month we had 73 billion media requests and considering the last year we had 2 trillion media requests on the Wikimedia projects. And as I was saying the beginning of the presentation I am part of the Glamic Culture team, and this Glam acronym stands for Glowways, Libraries, Archives and Museums, but also many other knowledge and memory holding institutions. We think that Wikimedia projects that have been hundreds of those partnerships around the world, united by the common goal of preserving cultural heritage and sharing knowledge with the world. We usually call them Glamic initiatives or Glamic projects, institutions such as Europe, UNESCO, the British Museum, US National Archives and the Digital Public Library of America, among many others. These institutions' partners have opened up their archives, libraries and collections and worked with us to bring them into Wikimedia and to new audience around the globe. People who have never sat foot inside those institutions doors. And as I was saying, images are very important for my team and for Glam's and images from those cultural partners don't just illustrate articles about their own topics or about cultural culture. They are used to illustrate a wide range of topics in Wikipedia, such as biographies, historic events, films, cities and so on, like the Wikipedia page about love, or the Wikipedia page about play for example. A sample of the top 25 articles on Wikipedia in one week in May 2020 found that eight out of the 25 articles were illustrated by images that came from Glam's. And images usually appear like this in various different versions on the Wikimedia Commons, the multilingual platform, the multimedia platform, sorry. And here we can see in 2018 the Metropolitan Museum made a comparison of their collections website versus Wikipedia. So in red here we can see the number of visualizations of those artworks here in the museum's website. In light blue, we can see the number of visualizations only on English Wikipedia. And in dark blue we can see the number of visualizations with in every although the language on Wikipedia. And in 2010, sorry, the British Museum, the largest encyclopedic museum in the world, looked at the traffic to its own sites versus the traffic to articles on Wikipedia. They found that they were as five times as much traffic to Wikipedia as their own site, and that thousands of images from their collections were missing from Wikipedia. They realized that and saw how powerful that could be and reached out. Or the Library of Congress that now had had 28 billion page views just over the past decade on Wikipedia. Or in Brazil, the Museum of Veterinary Anatomy of the University of São Paulo that with only 500, sorry, 600 files generated nearly 7000 page views last month. For the example of the Smithsonian which shared image of women as part of their American women's initiative. And during the project they made some important discoveries like some of the most viewed image were from women of color. Among bigger institutions like the Smithsonian we have UNESCO which share its UNESCO World Heritage Site photographs and have been connected to some funded projects, even with a weekly and residents working for them. And one of the most inspiring on projects in the last few years was the digitization of more than 3000 palm leaf manuscripts to preserve by this culture and literary headers, but also to revive the body script online meeting to a new language on week source. But lastly, I would like to talk not only about media files but about metadata. For data we have with data which is the open multilingual structured platform that connects everything on the Wikimedia projects. And as a newer feature, we have distributed on commons which is which connects the data on the data to the media files on the Wikimedia commons that I said that it was a multimedia platform that houses all the files that are used on Wikipedia. And with data that with data therefore is very important to link between topics to connect to Wikipedia but it is also connects to several other databases and sites, contributing to the link it open data or culture metadata convergence. An example at the National Library of Wales here visual demonstration of some of the data reported and converted to with data. And bubble chart on how the National Library of Wales use with data to create visualizations and to translate descriptions of rare print collections from English to Welsh. An example by the Metropolitan Museum of our global initiative that exemplifies the discovery and the connection petition of the data. The initiative discovered a new information. How in the 1946 movie, Gilda the dress were by Hita Hayward, which was the most famous dress ever made at the time was actually inspired by the painting portrait of madam acts, which is in the museum collection. And to show the place of birth locations for most permanent artists from the Metropolitan Museum of Art. And here we have an open knowledge production delivery or folk published published by Elena Villa Espeza interest never had that exemplifies how the Harris institutions content travels. The Wikimedia projects and the internet and to arriving at the final users and readers. And finally, I would like to say that Glam's use Wikimedia as an essential infrastructure for language diversity, knowledge preservation unified collections and digital outreach. And with that, I hope that you could see together with me the power of Wikimedia. Thank you. This is my mail. I hope to see you soon. Goodbye. Thank you to Giovanna for filling us in about glam programs the Wikimedia Foundation. Next up, we will tell us what participation in the Wikimedia Commons uploads program looks like from the perspective of an organization that contributes item that I did it to DPL a Hi, my name is Lee Jeremiah's and I work for the Colorado State Library. I manage the planes peaks collective the Colorado Wyoming service hub of the digital public library of America. I'm going to share information about our hubs experience and workflow with the DPL a Wikimedia project. We jumped at the opportunity to share items with Wikimedia because of Wikipedia's wide reach and it's large and active user base. We see this as an opportunity to be proactive and bring items to where users already are, and to not just rely on users coming to us directly. We're going to start by discussing the challenges we knew we would face. The good news is all of our partners are using right statements dot org statements, and a few are using creative common licenses, which puts our partners in a good position to share items with Wikimedia. Some of our partners have already evaluated rights on an item by item basis. And this has resulted in statements that are compatible with Wikimedia. Many of our partners are using the statement copyright not evaluated. In other words, we knew these partners would have to do rights work if they wanted to share they want to share items with Wikimedia. This could be challenging. Like in many hubs, our partners use a variety of different systems, such as content DM, Luna, the space and past perfect. Before diving in, we had to figure out the different ways in which these systems share either the triple IF manifest, or how they share the full full media file. We discovered that not all systems are able or fully able to share these files. For example, past perfect can share the fullest version of an image provided by the partner. But at the moment cannot share all images included for an object, such as all the pages of a document. In many institutions, our partners are facing challenging times and are stretched even more thin than they were in the past. Because of that, we wanted to ensure that this project did not feel like a burden and yet another thing put on our plate. Our approach has been to let partners choose whether or not would like to share items with Wikimedia. As a hub, we still have some contributing partners that are hesitant to share full media files. Only partners that want to share items with Wikimedia are sharing a triple IF manifest or the full media file with us. We also let DPLA know prior to each ingest if a new partner would like to share items with Wikimedia. They will only pull appropriate items for those particular partners. This allows our partners to feel confident about what they are sharing with us. We also wanted to start slow by proving concept and working with partners that we consider long hanging fruit partners that we knew would be able to share the items with compatible rights information and provide the triple IF manifest. As a hub with a small amount of staff, we knew we could not take on all the long term work of adding images to articles and creating new articles. However, initially we were prepared to take on the work of adding items to articles in order to prove the benefit of participation. We want to show and stress that this project only builds upon the hard work our partners have already done partners that participate in the DPLA have already digitized their collection and created and shared the metadata. This work has made it relatively easy for them to then share items with another platform. That's how easy it is to add items to Wikipedia articles and talk a little bit about my workflow. My workflow may be a little different than a partner that actually holds the material and contributes content. While we manage the hub we are not a contributing institution so I'm not as close to the content as a contributing partner is likely to be. So my workflow was to browse the PPC material being contributed to Wikimedia and find items that I thought might have a related Wikipedia article. For example, this image of a badger contributed by the National Wildlife Research Center. I added this to an article about address. I found the task of adding the image to be simple and very similar to adding media to a WordPress site or blog posts. This only took me a few minutes. This one item has received over 150,000 views during the last three months. In this example I spent about an hour total adding 12 items from the Denver Public Library. Many of the items I added were maps or birds eye views of towns in Colorado so these are relatively easy additions that took very little thought. And contributing institution might have more knowledge of a particular item or subject matter so what they choose to add or write about might have more depth in my additions. As you can see the more well known the town the more views the items and page received. Collectively these items held just over 50,000 page views in July. We want to continue to educate partners about right statements and use of Wikimedia project as an added benefit of doing the important work of evaluating rights. We also know that adding images to existing Wikipedia articles is only part of the project. We need to be creating articles to. And this does bring up one of the challenges we face our partners time and effort. Again with this we would like to build upon the work we and our partners are already doing by repurposing blog posts that have already been written or maybe text from exhibits that has already been created. We are currently working to develop and then prototype a graduate student project that will add items to existing Wikipedia articles as well as create new articles. We hope this project will be replicated to help other help partners in their Wikimedia work. In the future we hope to engage not only am I at MLIS students, students and other related departments such as the history or education departments. In the end our experience has been that this is another avenue of access to our partners collection. It enhances the historical record and so far it has taken little work on our end and our partners and. And of course the more you put into it the more you are likely to get out of it. With that in mind we aim to create an environment of support for our partners, so they don't feel as if they are going alone. Thank you. Thank you Lee. Finally, I'd like to quickly discuss what this project looks like from the DPLA perspective. The DPLA thus far has gathered 10 partner institutions to work with us on this program. Participation is voluntary although we already need to be working with a hub that contributes data to DPLA to include their items and uploads. We view this as a service we can provide to our membership. You can see here, we've uploaded 2.3 million files to Wikimedia Commons thus far, and we continue to grow this collection every month. The files are available in search to any Wikimedia editor who is looking for media to place in a Wikimedia article. You can see here a screenshot of an analytics tool available to Glam institutions contributing to Wikimedia Commons that shows web views month over month and breaks down the last month's page views by each language edition of Wikipedia. Interestingly, there are page views coming from dozens of language additions and other Wikimedia properties like dictionary, wiki quote and wiki data. Here's a screenshot of the analytics dashboard we make available to DPLA member network institutions, which among other things provides statistics about the collections that members contributed to DPLA in terms of their readiness to be included in uploads. Thank you again for joining us and learning more about our project. DPLA is proud to be involved in this work to bring these resources to a new audience and help our partners have a greater impact on the web. If you have any questions would like more information, please feel free to reach out to me directly at Michael at DPLA and I'll be glad to help you. Take care everybody.


Welcome to Cointelegraph. I'm Benton. I am here with Eamon Gunser of Ava Labs and founder and CEO of Ava Labs. We're super excited to talk to you today, Eamon. I want to first dive in and really kind of thank you for putting on this summit. It's been an absolutely awesome experience, but I also want to know what has been Avalanche's secret to success so far? That's a hard question. I think it's been simply just having the best people around. I've been very lucky to have a group of people who brought in an amazing community and built an amazing thing around them, and that's been the big true secret. But that's sort of the meta-level secret. The other thing that we take great pride in is the fact that we're doing the best of science. And when you have advanced technology that tends to attract the best minds, the most energetic people who want to build innovative new applications. So coupled with that, the growth has been tremendous. Seems like interoperability is a big theme this year. Is that one of the key components to an interoperable future for Avalanche? Absolutely. So we're thrilled about the bridge that we ourselves built because it's so cheap to use for value transfers. There are other people also building more complicated bridges for smart contract to smart contract invocation across chains. So you can have a contract invoke something else on another chain. For example, when the yield opportunities on Avalanche are higher than others, you can go from any other chain onto us using one of these more generalized bridges. So I mentioned this maybe nine months ago that we were going to have an upcoming year of the War of Bridges. And it's a fantastic war. It brings us better technologies. It blurs the distinctions between where the assets were created historically and where they are best served today. So I think it all leads to a very nice experience for the users. Definitely. And I know it can be hard to tell the future and what that may look like. It's so easy to tell the future. I'm not going to claim that I have a crystal ball or anything, but often the next few steps are obvious and it doesn't take all that much to call them out. We've had a history of calling out what's going to happen. And also because of my vantage point, I get a unique view of institutions that are about to come into the space before everybody else knows about their arrival, as well as developers building new applications. So I've had a pretty good track record of foreseeing the future, not because I'm clairvoyant, but because I have good connections. Now, ZK proofs have seemed to be an emerging technology inside of blockchain. Is this an area of exploration that Avalabs may be looking into this year? Absolutely. We announced this at the summit here. Zero knowledge proofs are key to making sure that computations happen what we call with integrity. They happen as you want them to while hiding what exactly the computation was. So you and I can engage in a series of transactions and we check back and we are in a position where we can prove to the world that we follow the rules, but we're not going to tell them exactly what we did. We're not going to reveal private details. So zero knowledge proofs in general, ZK Snarks in particular, are a fantastic way, a very practical way of achieving that privacy, that integrity guarantee that people seek for financial applications. In addition to finance, there are many other applications even in gaming because you don't want to reveal to other people what you might be doing off in your own portion of the game universe. And there are many, many other use cases as well. So I'm thrilled about that technology to come. I should add also that we're working with some of the world's best people on this. Awesome. And more broadly speaking, what are you most bullish about in the crypto space for 2022? So I think I'm just bullish about growth. The growth is unstoppable and I think we've established somewhere mid last year that the space is big enough that it cannot be regulated away. I think I've been in the space for a very long time. Every year until I would say a year ago, I had somewhere in the back of my mind that something could happen that would drive everything down systematically and depress it massively. Take everything down to zero by just an outright ban. I think by now this technology is on so many minds that people understand what it brings to us. People can clearly see how much better it is. I've had many conversations with people on Wall Street. They've shown me the systems they use for trading and there is no comparison to the elegance that we offer to this world. So I'm thrilled about the growth. The hockey stick growth we're seeing in Avalanche is fantastic and I think that's going to be the theme for the space as a whole. We're going to be onboarding many more users. Awesome. You heard it here first folks. This is Ayman Gunser, founder and CEO of Avalabs. Thank you for joining today. We are Cointelegraph, the future of money.


Gen Z. Why American teens are so sad? Stressed kids and that's- Mental health crisis. Gen Z thinks. Depression, millennial and Gen Z. A night of sorrow in Southern California. Friends and family mourning the loss of 13 year old Rosalie Avel. I remember the first time I saw a teenage girl that was gonna take her life. Instead lay her life down to Jesus and encounter him was the moment I realized God, we need you in our generation. Now more than ever. It's not enough for us to wait for them to come to us. We need to go to them. The time of being on the defensive is over. The time of hiding and standing by is over. People that knew me, nobody can tell you I live my life in parties. I live my life through girls. I live my life through drugs, through football, through all these different things that I put my trust into, my identity into. And when that all came crashing down. You're going through something in life. You're going through something in your house. You're going through something with your family. The Bible says what does it gain? That you gain the whole world, but you lose your soul. We are sick and we are tired of the stories and statistics of what's wrong with our generation. We are done being indoctrinated. We won't allow the enemy to take any more students' lives. Drugs, alcohol, suicide, depression, anxiety. Won't be what this generation is known for. When we become unashamed of the gospel, the world will listen. When we push back against the enemy, we will win. Gen Z is longing for more of God. Our schools need Jesus. Students need salvation. Inasers need hope. He will take away fear, anxiety, suicide, heaviness, all of that. Addiction, he'll take it away. I'm gonna count to the count of three. If you're serious about that, I want you to meet me right here. One, two, three. Meet me right here. It takes one person to say that's me. Come on. I know there's more people. Congratulations, bro. I know there's more people. Don't think this is just a quick one decision. That's it. This is you. You give your life for the Christ. I know there's more people. And I want us to pray this prayer together. Pray this prayer together. Say, Lord Jesus. Oh, say, Lord Jesus. Lord Jesus, I'm coming for you. I ask you. Come into my heart. Make me new. Take my sins. Take my sins. Wash you with your blood. Gen Z, you are called to answer the cry of your generation.


It would help if we could decide here and now on your name. My name is Elizabeth. Long live Queen Elizabeth. And while you mourn your father, you must also mourn someone else. Elizabeth Mountbatten. For she has now been replaced by another person. The two Elizabeths would frequently be in conflict with one another. The fact is, the crown must win. Must always win. Nothing one can do about it. One just has to get on with it. To do nothing, to say nothing is the hardest job of all. It requires every ounce of energy that we have. We have a new sovereign, young and a woman. Let us give her a coronation that is befitting of the window change that she represents. Modern and forward looking at a moment in time where exciting technological developments are making things possible we never dreamt of. Always a mistake to assume just because people are privileged. They lack grit. I am protecting the Constitution. I am protecting democracy. The smoke and the mirrors. The mystery and the protocol. It's not there to keep us apart. It is there to keep us alive. You're the captain of the team. This whole thing, it starts and stops with you. Long live Queen Elizabeth. He's the oxygen we all breathe. The essence of all our duty. The only person. The matters. We should take comfort that while we may have more still to endure better days will return. We will be with our friends again. We will be with our families again. We will meet again. But for now I send my thanks and warmest good wishes to you all.


What's up guys? I'm Brian Sakawa. You're watching He Spoke Style and today I'm going to share with you my 10 favorite men's style Instagram accounts.  There are so many amazing accounts out there from people all over the world and it's great to have access to what they're doing from a style perspective to get inspired by the way they put their outfits together and also as a way to discover brands that you may not have heard of. Now I follow many many style accounts for different reasons but I find myself drawn most to the ones obviously that resonate with my personal style views and values but are also very honest and authentic and you know maybe not the most popular accounts out there from a number of follower standpoint but people who are in my opinion seriously doing style the right way and here they are and if I mess up the pronunciation of a name please correct me I am not good with some accents. First up is my good friend Fabio Atenazio. Fabio is from Milan. He is one of the co-founders of the bespoke dudes eyewear company. He is one of the nicest people I have ever met in this business. I feel like he is sort of the Italian version of me. He always dresses very classically a lot of suits a lot of tailoring perfect fit great fabrics and he is just extremely knowledgeable about all aspects of classic men's style. He's got such a great personality we've met several times in person and the thing that really sticks out to me is you know sometimes you have a picture of who someone is via their online presence and you know maybe you meet them and they're not really the person you thought they were but Fabio is the exact same warm generous elegant and stylish guy you see on instagram. Next up is Andreas Venus. Again like Fabio Andreas who I do not know personally has a very classic and timeless style. He also happens to be a very handsome dude. You see a lot of suits a lot of great shirt and tie combinations but one of the things I really love about Andreas' account is the way he does casual. It's casual but it's elegant and sophisticated and if you are wondering how to dress casually as an adult there's some great inspiration there. Now one other thing I personally love about Andreas' account is that he is a watch guy and from the looks of his instagram feed he has an amazing collection including a Patek 5711 Rolex 1675 and AP Royal Oak 15202 Enviable and some great pieces there. Next is Derek Blizzard. Derek is the founder of the tailoring company Beckett and Rob. On his instagram you see a lot of suits and tailoring and one thing that I think is worth noting is the fit of his pieces. It is perfect. It's not too slim. It's not too baggy. It is cut with him in mind with the idea of being timeless rather than trendy. I do love how he mixes in some more preppy elements like a club tie and also some contemporary pieces like pairing a denim shirt with a suit or sport coat. His style is timeless but of the moment while still being classic. Next is Shuhei Nishiguchi and I know I pronounced that right because in college I did a minor in Japanese language and literature. Shuhei Sama is the fashion director of the Japanese brand Beams and his style is out of this world. He's very classic but contemporary. He's refined but expertly disheveled. It's just this perfect mix of high, low, dressy, casual, modern and vintage. Nobody does style like the Japanese and Shuhei. I just find to be so inspiring. Next is Steve Norsch aka the Snob Report. Such a great name. Steve is a good friend of mine. He's a tailor at P. Johnson and Soho and what can I say about Steve's style other than it is unique and classic and somewhat cheeky at times but just so perfectly him that you really need to check him out to understand what I'm trying to say. Steve is very much a connoisseur. If you follow him you will definitely discover many brands that you would not have heard of otherwise. A lot of them are smaller and more boutique but they are people who are just doing extremely high quality work, very focused on craftsmanship, very focused on the best materials and very focused on creating just the highest quality stuff that you can get. Next up is Paul Fournier. His account is Paul Luxartoria. Paul lives in Luxembourg. He had a blog called The Parisian Gentleman. He was an ambassador for Vitaly Barberis and now he contributes to the rake. I admire Paul's account for its simplicity, for his focus on classic menswear and for his knowledge of tradition and great menswear brands and tailoring houses. You know sometimes when we think about classic men's style and those simple color palettes like blues and grays and browns it can maybe seem a little boring you know like everyone's wearing the same uniform but what I really like about Paul's account is that he shows and really drills down into a lot of the smaller details that make it interesting like patterns and specific tailoring details. It's really an account focus on quality and all of those little things that go into making menswear so interesting and special. Next is Gabriel Cohen. I'm not sure exactly who he is or what he does but his email address and his bio would lead me to believe that he is associated with the online retailer Baltzar.com. His photography is great as is his style. Again very classic very classic color palettes of focus on really high quality menswear and again someone who does grown-up casual right. Next is someone who just popped up in my explore feed one day and really caught my eye. His name is Johann Matzels and his bio says only that he is a thrift shopper. If he is only a thrift shopper he is a very good thrift shopper and he has an amazing collection of great outerwear suits, sport coats, knitwear and ties. He always posts photos of himself I assume in his elevator.  There's a lot of thought and attention paid to texture and mixing colors in the same family and he doesn't have a lot of followers but I personally find his style extremely inspiring. Next up is Andreas Kloh also known as flannels and tweed that's flannels underscore and underscore tweed. His bio says that he is a husband father lawyer photographer and menswear enthusiast and that he loves Italian clothes and British shoes so not someone in the menswear industry per se but someone who is just extremely passionate about men's style and documenting not only his personal style which is amazing but also some of the most stylish guys around the world and you should check out some of the photos he just posted from pity if you haven't already. Finally we have Simon Crompton whose instagram name is permanent style the same name as his blog which you may have read before. Simon is uncompromising in his approach to style and quality and he wears a lot of if not exclusively bespoke pieces he is very traditional there's a focus on heritage you see a lot of fuller cuts you see a lot of attention paid to perfect and interesting detail work and it really gives you a lot of inspiration and a real appreciation for the finer points of menswear. So those are my 10 favorite men's style Instagram accounts I will put links to all of them in the description below and I'm always on lookout for inspiring authentic real style so I would love for you to leave your favorite men's style Instagram accounts below in the comments. If you like this video give it a thumbs up and don't forget to subscribe to the channel that's all for now thanks for watching and stay tailored.


So, I will just do an introduction today to some I will tell you a little bit more about multi act games. So, multi act game is some is simply one that is not a single act game ok that means there is at least one player who acts at least at least twice on some path of some path of the tree ok. Now if the so once a game is a multi act game can you tell me qualitatively what is it that is changing from as compared to a single act game. What is this one we need to model or we at least pay attention to let us say some some new aspect of the game and what is that sorry strategy space yes of course, but that is that that is that anyway you know changes from when you go from static game to dynamic game. That now from single act to multi act what qualitatively something is changing yeah that is the case even in earlier. So once a player is acting more than once a new angle comes in to the theory of games which is the issue of memory ok because you are now with up till now we were only talking of what a player knows at each step whenever it is it is turn to act. Now you can also ask what does he know relative to what he knew earlier and that is the issue of memory right if he was acting just once there is no issue of memory at all right. So so in a multi act game you have to pay attention to memory now so the so games the general rule is that you can say multi act games get extremely complicated if you are if you allow for arbitrary sort of memory structures ok where players can forget things across time instance that they have played or and forget what you know with whether they are at this stage of the game or that stage of the game and so on all the if you allow for all kinds of crazy all of those are well defined games ok well defined multi act game, but they just become extremely hard to analyze you the only way to analyze them is to write out a huge normal form and then you know just go about mechanically finding the equilibrium if you want to hope for some kind of structured way of thinking about these games you need to have a some structure to the memory of the of each player ok. So the way so a typical so multi act game will as I said a broad category is that any you know any player there is at least one player who acts at least at least twice along some path ok. So now a but the kind of multi act games that you can actually study you know in a systematic way or what are called multi act games in feedback form ok. Feedback basically this word comes from control theory and the reason feedback essentially refers to something that you knew in the past which is being passed on to the next stage right that is essentially the idea of feedback. So if you so if the if the game has a feedback form then you can what you can kind of what you what kind of happens is that players do not lose lose what access to information that they had in the past ok. So they have effectively recall and those kind of games are the ones that we can we can study you know more systematically ok. So I will give you a I will give you a a first let us write out a general structure of a multi act game again as I said an arbitrary multi act game is very difficult to analyze we can start and getting before we get to feedback games we can at least start talking of things like stages to a game ok. So if there are no stages also it is where you know anything can happen then it is again extremely unstructured. So first step is to actually have a game where there is a time axis involved which keeps track of stages ok time 1, time 2, time 3 and so on ok. This starts becoming more like a state space type model where you have a way of keeping track of time and you have a way of defining what the state of the game is at that time right ok. So let me let me write out that sort of model definition here stage wise. So the tree is divided into stages and what do you mean by stages each stage is a you can say is a single act game. So each player plays at most once in each stage ok. So stages means that at most or you can even say exactly once you can add a trivial action where he does nothing. So you can says let us say plays once in a stage ok. So when you are in stage 1 all there and there are suppose n players you are in stage 1 n players will act each of them will act 1 and then stage 2 will begin ok that is so there is some you know kind of an independent clock or a referee or whatever keeping track of stages ok that is the sort of structure here. So tree is divided into stages and now players are aware of which stage the game is in ok. So that means what does this mean different stages exactly. So no information set contains nodes from more than one stage right that is essentially if there is an information set that passes goes from one stage contains nodes from more than one stage then it means that that player does not know whether he is in this stage or that stage ok. So no information set contains nodes from more than one stage ok. This is stage wise. So this is what it makes a game stage wise now in addition it will be so it is in feedback form. Now feedback form means that players so I will let me explain this. So feedback form so at each stage begins with so player let us say so what we have assumed so far is no information set contains nodes from more than one stage right. But at the start of a stage is there clarity that the stage has begun let us say a part of the tree that we can say is has started in that stage. So let me explain what I what I mean. Suppose you can you can have a situation like this where suppose these are this part of the tree is stage 1 and now stage 2 is beginning ok some there could be multiple nodes and all that in between here ok. Now the first acting player at stage 2 this part is stage 2. Now the first acting player at stage 2 could have an information set that goes like this ok. So he knows that stage 2 has begun but what has what information has he lost? No so when he is confused between these two nodes this node and this node right what is he confused about? Yeah there could be multiple players in this. So this could have you know I am just drawing this as a tree but there could be you know the there could be this could be a very complex tree here with but each player plays once in each stage. So but the point is the new stage has started here with these and there is at the first acting guy here he is confused between these two red nodes. What would that mean? He knows that stage 2 has begun but what he has the information he is lost or what he does not know let us say forget about lost what he does not know is what happened in the previous stage what was the conclusion in of the previous stage. He does not know if the previous stage concluded with the red node or with this blue node right. So when you divide the game into stages if you want for the game to be in feedback form essentially whatever happened in the first stage there should be clarity that that is from where the next stage is beginning. So essentially there is a well defined sort of end to the first stage from which a new game the next stage is beginning of course players have to strategize across whatever is the number of stages if there are K stages to the game they have to strategize over the K stages but when when playing in the next stage they know that this is what is the history of the previous stages is this clear. So what this means is you cannot allow an information set for the first acting player to have more than one node. The first acting player in each stage starts with a singleton information set. So let me start putting down these requirements. So in the feedback form you need in addition to this the first acting player in the of stage one so the first acting player in each stage now acting player in each stage has a singleton information set. So think of this as like you know like in tennis you know the first set is done you know what the score at the end of the first set is and then the next set is beginning right. The reason we are imposing this is because otherwise the problems are this is the only class of problems that we can systematically analyze. So we are putting some structure on the class of problems so that there can be you know some sort of systematic analysis sorry. Now a player is playing more than once this is a multi these are multi act games the game is divided into stages okay and in each stage a player plays at most once or exactly once okay. So in stage one each player plays once stage two each player plays once. Now the first acting player of stage two should start with a singleton information set okay this is one requirement there are more requirements also. Now this guy is what this means is if this is a singleton information set what this means is that so if these are singleton information sets okay what this means is that the first acting player let us say it is I will call this some guy suppose this is player three who starts in this stage two okay. Now player three now knows that this is where the game started from this blue node is where the games is where the stage two has started. Now the players that follow this should also have this information okay. So everyone must be clear that which sort of sub game in stage two they are in is this clear. So you cannot have a situation where for example something like this for example. So player three for example here player three knows that this is that this is where the game ended he knows that it is ended at blue as a blue node or ended at the red node sorry this is where the stage one ended he knows that it ended at blue node or the red node but the later acting player is confused about that say let us say later acting player is four player four player four does not know whether stage one ended with the blue node or red node you can imagine the kind of complication this would result in essentially what this would happen that what it would mean is that player three knows that the score at the end of stage one but players four does not right he does not know I mean what was the conclusion of stage one okay. So a lot of these things we take for granted when we have a game that happens through multiple rounds and in fact whenever we module things in state space form we actually take these things for granted that there is something that you know that there is a systematic sharing of passing of enough information alright. So the next requirement is that information sets of other players are such that none of them nodes okay nodes corresponding to branches emanating from two or more different information sets of the first acting player of the stage. So what this means is essentially if you now these each of these you look at any of these trees these are sub extensive forms in their own right because all information sets of players are contained within these if the nodes are here the information sets are also here itself no information set will grow from go from one sub branch like this to another sub branch out here right. So that what this therefore means is every time a stage begins it can it can be thought of as an entity in itself you do not have to think of there is no uncertainty about whether you are in the you know this sub tree or you are in this sub tree for any player alright okay but that does not mean that players have perfect information okay. So players could have loss of information for example it could very well be that so this as I said is not allowed so but any of these kind of things are allowed so for example it is quite okay for a player to not know with you know within the stage whether he is at this node or this node. So long as they do not stretch outside of you know so long as these information sets do not go across from this branch into this branch and they do not go across from one stage to another we are perfect that is perfectly okay yeah now we can ask for more okay now we can ask for more it does not have to be ladder nested but you can now so every stage effectively can be sort of is kind of like a single is now basically like a single act game provided you could slap on the payoffs at the leaf nodes right. So now you can ask okay what kind of single act game that is okay it can be nested ladder nested etc etc and then you what that is then you can hope what you can hope to do is basically use feedback essentially that you start doing sort solving for the game using a dynamic programming like argument start from the last stage solve for an equilibrium in the last stage for every subtree that comes in the last stage replace you know put the payoffs at the leaf node then go to the the last but one stage and so on and so forth so if as I said I keep emphasizing this if the information sets go across different legs of the tree you are in trouble because then you will not be able to decompose in this kind of a neat manner right okay so yeah so I will just add to what was just said so if these if the single act games at each stage ladder nested nested then the game is ladder nested or nested feedback form okay so we can just write out what we are looking for as far as the equilibrium is concerned now of course a Nash equilibrium is very would you can just write out Nash equilibrium in the usual sense but now we can look for a Nash equilibrium which will hold in this feedback in this feedback sort of manner right that what would that mean what so what that would mean is that suppose you are you have a game like this of K stages okay so suppose this is stage 1 this is stage K now if you have a game like this of K stages now what you can look for is that well in the case stage every such node each of these nodes is a singleton information set right so you start from that subtree that starts from that in that in that stage look at that subtree corresponding that that is emanating from that singleton information set find its equilibrium okay then go go up keep replace that subtree as I said by the payoff of that tree and go up and and so on now what you would be then doing effectively is you would be solving for you what you would be solving for then is a is an equilibrium in which you are in which every player at every stage is being recursively rational right so which means he is the in every in every stage the equilibrium is being found for every possible past actions that you every possible past strategies that you could have played that the players could have played right so which means that no matter what he was played earlier suppose you get to this point then as a function of this node I will find the equilibrium irrespective of what I had played earlier right it is what you know in in in control we call this a Markov policy right essentially you take an action you where the the action is a function of the state at that time so think so sub so what you find is an equilibrium correspond for this tree for this subtree or this sub extensive form which is now a single act game you and you find it for that one without taking into consideration what was done prior to this right and then assuming that you have solved for this you then propagated backwards what this gives you is a is a is a is a is a profile of strategies that are in equilibrium at every stage in addition to being in equilibrium across in the full game okay so what this ends up doing is basically it means that players are being rational at every stage and not just you know rational in the game as a whole okay we saw this even in single act games the same kind of logic will now hold but now it will be in a multi act setting because now in every stage that same logic will be applied is this clear okay so how would I express this so this is what this is then a more demanding notion so this is what is called a feedback Nash equilibrium okay so I have J I which is cost of player I so I will explain what my notation is just give me a minute so I have written this for stage K okay so this is this is written for stage K I will explain what my notation is here my so gamma remember play player I will now have a strategy in each state for each stage okay so gamma I is will be denoted like this gamma I 1 to gamma I K this is these are the strategies of this is the strategy of strategy of player I in stage 1 and this is the strategy of player I in stage K okay so every stage he has some information sets actions you have a function mapping information sets to actions so that is the strategy for that player in that stage okay now now gamma sub this thing so sub K here or sub K okay is this is the profile of strategies of all n players in stage K this is okay so this is the pro so this is gamma 1 K till gamma n K okay so this is the profile of strategies of all n players in stage K now what am I asking for in a feedback Nash equilibrium what we are asking for in a feedback Nash equilibrium is this so I have a first time asking writing this only for stage K okay so at stage K regardless of so you have this is the payoff of player I when he plays his start strategy in stage K and all others pay their start strategies in stage K and what is this this is the payoff of player I when he plays his start strategies in stage K others plays their start strategies in stage K and at previous stages players have played some some arbitrary strategies gamma okay arbitrary K minus 1 arbitrary profiles are here now this has to be better than this okay so what is there on the right hand side here player I has deviated in stage K to a strategy gamma I K is lift deviated from his start strategy in the in stage K others are still sticking to their start strategy which is minus minus I K and on the right hand side I have this the same K minus 1 profiles for the previous K minus 1 stages the one same ones that are there on the left and we want this to be less than equal to this for not only all players so you want this for all players for all gamma I K for all players I and for all gamma 1 to gamma K minus 1 why is there a for all gamma 1 to gamma K minus 1 because regardless of what was played in the first K minus 1 stages the K stage strategy should be chosen such that they are in equilibrium okay so so which means that your K stage what you are going to do in case in the K stage has to be basically is essentially tuned to the exact information exact subtree that has come up in that stage okay so here remember you have a for all gamma 1 to gamma K minus 1 okay so for every so you have to pick you have to pick a you have to pick a strategy in the K stage such that regardless of which history has brought you to the K stage you are it is your it is your in equilibrium all right yes no no no no so so gamma K gamma I K right in stage K will have one function here another function for this another function for this another function for this etc what it what this is preventing is from you to issue it is preventing you from coming up with a function that will work you know that will ignore this information for example it is preventing you from coming up with a common you know sort of doing a threat across these these sub trees because it has to be in equilibrium regardless of which tree you have got into that does not mean you are taking the same action in each tree of course there is a there is a function here there is a function here the function here all of these collectively defined gamma I star K okay but each portion of it has to be chosen in such a way that it is in equilibrium regardless of which history got you there okay so this is at stage K now let us write it for stage K minus 1 can you tell me what should I write for K minus 1 for K minus 1 I now have profiles up till K minus 2 okay stop till stage K minus 2 but K minus 1 is anticipating the equilibrium from stage K right so here now I would have gamma I star K minus 1 gamma minus I star K minus 1 and then I have gamma star from stage K this is less than equal to 1 to gamma K minus 2 gamma I I do not need a star here gamma I K minus 1 gamma minus I star K minus 1 gamma star K so what is the for all now for all is over gamma I K minus 1 which is his deviation in the Kth stage it has to be true for every player so for all I and it has to be true regardless of what what history got you there right regardless of all of this so so regardless for all gamma 1 till gamma K minus 2 and coming back now working back now to stage 1 so at the at stage 1 what do you expect you stage 1 in stage 1 your play each player is playing taking into account that he is play that in all the subsequent stages he is played in this kind of recursively rational way okay so stage 1 he now has gamma 1 so where do I put the stars on the left since I am writing for stage 1 all should be star right yeah so gamma 1 star gamma 1 star 1 gamma my sorry gamma I star 1 gamma minus I star 1 and then I have gamma 2 star gamma 3 star all the way till gamma K star less than equal to J I gamma I 1 gamma minus I star 1 gamma 2 star gamma K star okay so this is now for all gamma I 1 for all players I and for there is no other for all left right because I do not have anything anything to you are at stage 1 so there is no history up till now okay this is clear so so this is this is a feedback Nash Equilibrium now so what is what kind of let me ask you this what kind of threats is this preventing this is preventing the kind of threat where a player may say well he will couple his he will say that well regardless of whether he is in this subtree or this subtree he is going to play a certain you know certain type of strategy where he is basically ignoring the subtree information inter subtree information cannot be ignored when in an equilibrium like this because you are because you are in an equal you are in equilibrium in every subtree however intra subtree you can still issue threats right because for example suppose this subtree is some kind of say let us say some ladder nested of some form like that in which there could be again multiple equilibria and it could be threat equilibria for that for that subtree that are threats within that subtree not across that do not extend across different sub trees but within that there could be there could be imperfect information and a player could ignore information that is there in that subtree okay so now if you look for a ladder nested or whatever type of equilibrium in each subtree then you would get a ladder nested feedback equilibrium feedback Nash equilibrium okay now so what this means is that if you look at this here right this is just so ignore the first part then this is if this is essentially just a Nash equilibrium at stage k there could be threat equilibria at stage k also if for every node there could be every subtree there could be threat equilibria so if you make sure that you ignore there also players are not allowed to make threats or you look for delayed commitment type equilibria in every subtree then you would get a delayed commitment type feedback Nash equilibrium okay


All right, I guess we'll go ahead and get started. So my name's Bob Calloway. I'm a technical marketing engineer, reference architect. I have a variety of titles at NetApp, but essentially I'm focused on NetApp's integrations with OpenStack, our community participation, and making sure that our customers are having success with joint integrations that we do. Today I'll be talking about how do you use a concept within Cinder called Volume Types to avail differentiated levels of service within Block Storage, the Block Storage project within OpenStack known to the development community as Cinder. So first we'll quickly go over an agenda. So I'll talk a little bit about why is it of interest to actually differentiate what you have around block storage within a cloud. Give you a little bit of background as into how Cinder works, because I think it's relevant to understanding the overall flow of how Volume Types are actually respected in the provisioning process. We'll talk about two unique features within Volume Types. One is called an extra spec. The second is called a QOS or a quality of service specification. We'll give some examples of what those look like. And then I'll walk you through kind of a workflow of when you provision a volume of a particular type. How does that actually work together with the specifications that you've defined to affect the outcome that you're looking for? And then I'll have a recorded demo given time. I'll see what we can get through. But essentially it'll show you kind of how that end to end flow works, both from a view of Horizon as well as from the CLI. And then if there's time we'll do Q&A. So it looks like this isn't working. So why think about availing different types of storage capabilities from Cinder? I think the first thing that's probably fairly obvious to most folks is workloads are not created equal. I mean, you think about what a web server would need versus what a Hadoop deployment would need versus a more traditional SAP type workload. I mean, the way that storage is consumed by the application layer is very different. So a one size fits all approach may be very simple to get started. But when you try to pin the underlying capabilities that you have from a hardware perspective into the application layer, oftentimes differentiation is where you're led. From a service provider perspective, this is relevant as well. Think about, they're obviously trying to sell product at a particular margin. Anything that they can do to make that deployment more efficient drives not only greater revenue but at better margins for them. And as well, if they can show that they have better function that can align towards big data workloads, if that's kind of their specialization, then that's great. And the wonderful thing about Cinder being an abstract block storage layer that sits on top of, can sit on top of a variety of different storage platforms, whether it be kind of software defined storage in the LVM or even the Ceph type of mode. And then you look on the other end of the spectrum where you've got kind of hardened storage appliances. NetApp is an obvious example that's near and dear to my heart. But there's other companies, EMC and Huawei, Hitachi, IBM, etc. That all are looking to plug in their capabilities into a cloud infrastructure. And so since Cinder sits as an abstract layer up on top of that, you're able to access that from a user perspective in a consistent manner. So it's not, I have to code to the EMC API for this and oh, for my big data workload, then I have to do NetApp for that. It's a single API and this concept of volume types is what allows you to differentiate the underlying service that you have. So what do people typically differentiate on? I touched on performance, that's kind of the first thing that comes to my mind whenever people talk about kind of differentiated services. Going back to the kind of the network stack, there was a lot of push in the late 90s, early 2000s around looking at different tiers of network service based on latency or throughput requirements, storage in some senses. Not too dissimilar from that. You think about whether it's media format as a spinning dish, disk is it a flash drive, what are the IOPS limits that you're looking to achieve? Was the underlying storage thin provisioned or thick provisioned? That has implications from a performance perspective. On the flip side, depending on whether you're looking at like a dev test workload or the canonical SAP kind of mission critical enterprise perspective. You may have basic requirements in terms of if it's not mirrored and it's not snapshotted on a 30 minute cadence, then that's fine. But for my near and dear ERP system that may be running on top of OpenStack, I need to make sure that there's backup when I create a volume here. And I know where that's going and how often are the snapshots or the backups taken. And then finally, thinking about the specifics of an environmental environment, that's a great phrase. You can tell it's right after lunch, so I'm trying to wake up. I didn't find the coffee, I only found the water when I got into the room. But whether it's a protocol perspective, whether it's iSCSI versus NFS, whether it's you have this heterogeneous environment, multiple vendors like I mentioned. All of these things are what a service provider might wanna differentiate on and avail through Cinder. And just to give you some context, obviously Amazon is the elephant in the market today from an IaaS perspective. You look at kind of what they do today. When you go to create a block storage volume through EBS, you get the choice of do I want standard or specify the number of IOPS that I want, and I pay based on that. Standard volumes, a flat rate provision is a multiplier based on the amount of IOPS I ask for. You look at Rackspace to take another example. They're differentiating based on media type. So SATA versus SSD and a flat rate from a price perspective for both. Which I mean, that gives you some flexibility but when you really think about kind of the core workloads that have been running in the enterprise for a long time and are looking to perhaps migrate on top of OpenStack. Having a differentiation is really key to making sure that you align what you allocate in a self-service fashion to those workloads. Versus having it be a very static, heavy dependence on a storage administrator to come in and do the right thing. It just, that doesn't work in a cloud environment. It has to be very dynamic and user driven. And so Cinder really in providing block storage services to and users, this is what it was built for. It was originally part of the core NOVA project.  It's a core project that really is about allowing users to provision a volume of a particular size and then through a particular type. While it's typically deployed as part of a larger OpenStack deployment, we have seen certain customers actually deployed as a standalone management tool just for block storage within their infrastructure. If they're kind of consuming OpenStack in a very piecemeal fashion, that's certainly a possibility with Cinder. But it's not the norm. And finally, one thing to mention is that Cinder is really the management or the control plane. It's not sitting in the data path. So it's a set of management processes that are making sure that you have block volumes created. But once those are created and instantiated, they're connected to their endpoint with most typically a hypervisor and Cinder stands out of the way and just periodically will monitor usage and can handle administrative commands on that. But it doesn't sit in the data path, so it doesn't serve as a bottleneck. So Cinder is really comprised of four core processes that are all interconnected through a messaging bus. They rely on a SQL database. This is a fairly common paradigm within the OpenStack ecosystem. I mean, this is similar to how Nova works, Glance works, a handful of other services all have this type of paradigm. The important things to call out here, the block in orange is a Cinder scheduler. And that's kind of the brains, if you may, of Cinder. It decides, based on an incoming request, where should I actually provision the storage to fulfill that request? So it actually takes a look at the multiple, in this picture, green volume processes that each have a driver that corresponds to that particular back end. And the name driver is often kind of frowned upon because it connotes in most people's mind being part of a data path thing. As you think of a driver being for a fiber channel card, or for a nick, or something like that, it's just a bit of a misnomer. But essentially, it contains all the logic of understanding how to talk to a NetApp box, how to talk to an EMC box, how to interact with Ceph. All of that logic that actually builds into the abstraction layer is implemented within the driver. But the scheduler is the one that's kind of looking at the overall state of the system. Understanding where is there available capacity? Where are there different features that users might want to access? And then mapping that to the incoming request so that you know when I get told I want a six gigabyte volume that's mirrored and put on a Ceph back end. If that's what you'd like, then the scheduler is what's going to go through all the state and make that determination and say, I should put it on the middle one because that fulfills the requirements. So what is a volume type? To be explicit, it's an abstract collection of criteria that you can use to describe a particular level of service. The key things to think about here are, number one, a cloud administrator defines what a volume type means to their end users. This is not something that's baked into the sender. You have flexibility here to define these volume types relevant to your use cases. But they're, at the end, utilized by your end user. So your end tenants that are going in and actually creating volumes, that's where they'll select the individual volume types. So your end users are not saying, I want a net app back end with mirroring, with a 30 minute snapshot schedule. They're not doing any of that. They're simply saying, give me a gold or give me the analytics type of block storage. And that all just simply is abstracted away from the end user. One thing to note is, in most cases, you can actually retype a volume. So if you started with it being bronze and wanted to move it into a gold environment, assuming that that's a viable transition from the underlying storage mediums, then you can actually do that retyping after the fact. So you're not locked into a decision in most cases. Now as I mentioned, these are completely defined by a cloud administrator. The typical, going back to the networking analogy, the typical thought is gold, silver, and bronze. Those are your three tiers. And while you can certainly do that within sender, you can also go with a more use case driven approach, say archival, analytics, streaming, database, those types of notions. So it doesn't have to be, again, this is really a flexible and very administrator friendly construct within sender, so it's not going to force you into a particular model that may not make sense for your use case. And I mean, for that matter, you can name them cats and dogs and ducks if you want. The name really has no meaning at the end of the day. It's what are the underlying functions that you want to get at within the storage and avail them to your users. So how is this all used? So your end user would come along, as I mentioned, they're maybe in horizon or at the command line, and they're defining their topology. Maybe they're writing a heat template, and they're saying, I have this particular sender volume that will attach to this instance. But at the end of the day, they're saying, I want a 520 gigabyte silver volume. So how does all this work together? So the first thing that happens is a sender scheduler will go back to the database and say, tell me what silver means. So the user specified the type and the size. The scheduler goes and learns, OK, for this particular setup, silver means they want deduplication from a NetApp controller to be true. And the actual back ends are reporting their current state, not just how much available capacity do I have, but also my back end has dedupe turned on. Maybe 30 minutes ago, it wasn't turned on. An administrator came along and turned it on. Second, you've got mirroring relationships that may be established. They may be disconnected in the background. So if you wanted to look at the individual driver state and make decisions, that's certainly a possibility. But all that information is really collected from the back ends, collected from the database, and from the user request. And the scheduler then determines, OK, based on all of that information, I should provision that 520 gigabyte silver volume. That's going to end up in the back end B. So the logic of how volume types are applied in the provisioning process is really done by the scheduler. Now, as you can imagine, each of the different vendors that have done integrations with Cinder have looked at availing features that are unique to them up into this framework so that their end users can get access to it. But there's a set of, there's kind of a challenge. This being an open ecosystem, when we were looking at this concept in its very early days, we wanted to kind of have a standard set of capabilities that individual Cinder drivers would export. So if we could come in agreement to the definition of what DDoop meant across EMC and NetApp and IBM, and then we could agree on what mirroring meant, and we could agree on these things, then we'd have the standard extra specs that everyone would use. The problem is that everyone has a little bit unique view and object model and abstraction, so it's really hard to get a standard definition for a lot of these advanced features baked into Cinder. So the approach that was taken was to start with a set of default capabilities that would kind of be the basic things, and then a vendor could actually go back and advertise specific things, and those specific things are what are called extra specs. But you can see here on the chart, basically the name of the back end, the vendor, the driver version, the actual protocol that will be used in the back end. Those are all fairly consistent across the drivers and can be exported and used when you define a volume type. So what do extra specs look like? And like I said, these are very vendor specific. This list is not meant to be an exhaustive list of what NetApp can do or any individual vendor can do. But just to give you a flavor of what this kind of looks like, I brought forth kind of the NetApp specific examples. So we've got here what's the RAID type underneath in the individual storage? Is it RAID 4 or is it RAID data protection, a unique scheme that NetApp has? What's the underlying disk type? Is it a flash drive? Is it a spinning media? If so, is it SATA or is it fiber channel attached? What was the underlying volume thin provisioned or thick provisioned as Ddupe flipped on? So it's booleans and strings that get basically expressed in key value pairs that are hooked into a volume type. And simply when you specify what does a duck volume type mean to you, it's literally just a list of these key value pairs that you have. And I've got the reference here to the OpenStack documentation page, the config reference guide for each of the vendors typically has a table where these extra specs are defined so that you can figure out, I'm using HP storage or I'm using NetApp storage, what are the actual capabilities that I can connect to? Now, there's also a concept within Cinder called QOS specs or specifications. And they allow you to define more of the traditional data path framework or requirements that you might have. So think of, I want to limit the overall IOPS for a particular volume to be at x level. And maybe that's because my storage network is shared across multiple tenants. And I want to make sure that network traffic is not too dominant between a gold user and a bronze user. You may want the hypervisor to actually enforce those limits, but the QOS spec concept allows you to actually specify again, what are those limits and where do you want them enforced? So you have the choice of either doing it at the hypervisor, doing it at the storage subsystem, or you can actually have it done at both if that's of interest. So the front end specifications, the standard fields that are there today, currently it's only supported with Libvert and KVM as the hypervisor. It makes use of a feature called IoTune that was added I think a year and a half ago. So it's in most major distributions, it's kind of in the default, I think it's version 098 of Libvert, but essentially it allows you to either limit on throughput or IOPS, so you can specify the overall total of IOPS or if you want to read or write specific things. One of the examples I've got later, if you think about an archival workload, maybe I want to allow you to write whatever you want, but reads need to be limited out, because maybe it's going to tape or something on the back end. For the limits that get defined and enforced at the actual storage subsystem, again this is a vendor specific field, we've got two vendors today, HP and SolidFire that have gone and actually defined specific fields within the QOS spec structure, got them listed there. NetApp and Huawei actually have defined QOS extensions within their sender drivers, but they actually go through the extra specs framework. And this is more a nature of open stack projects or living breathing entities, depending on when you contribute code in, what frameworks are there when you actually go to contribute. So it's not that these vendors don't have support for quality of service, it's more just that they've chosen a different way to do this, and perhaps over time they'll look to move under the more emerging standard framework that's there. So what do these look like? I've talked about them a lot, but give you some concrete examples. So going to the canonical gold, silver, bronze. Taking performance as the reason why I would want to build up a differentiated set of services. Let's say gold then means I'm running on a flash drive and it's thick provisioned. So basically let's remove all performance bottlenecks that we can think of in this particular example and make gold screaming fast. Silver, I don't really care where it ends up, but I'm going to limit the overall IOPS perhaps to 500 a second. And just to give you context, when you go to Amazon and you ask for a standard EBS volume, they're actually rate limiting your IOPS to about 100 per second. So we take that forward in the bronze example here and let's say we're going to force that onto LVM, which is using direct attached storage and limit the IOPS, again, just like Amazon would do for you at 100. So that's one way that you could slice this up and define it. Going more towards the use case driven example, let's say again with archival, this is where I know the back end is mirrored, I know compression is on because it's going to live for a long time and I want to limit the amount of read workload that occurs through this. And it really comes down to what's your use case, what makes sense for Hadoop may not make sense for streaming versus database workloads. And this is really more of your storage admin who knows your workload well, or actually can instantiate and look at the performance characteristics at the back end through a variety of different management tools and actually figure out what are the right mappings for your particular environment. But the framework of extra specs and QoS specs allow you to mix and match. And when the scheduler gets a request for archival, it's literally going to go through the list of capabilities that the individual drivers are advertising and do a Boolean match to find where is the common set. So you can really just envision if a request can't be fulfilled because the requirements are such that there's no back end volume that has mirroring compression turned on, then that request for that volume will simply just be rejected and say, sorry, we can't give that to you. So switching over to the demo here. Just give me one sec while I move over here. So what this demo is going to show is I've got an all in one DevStack VM running the latest from the Ice House release of Pretty Current. We're going to go through, we're going to create a gold silver and bronze volume type. We're then going to associate particular extra specs and QoS specs with those different volume types. And then we'll go and create volume types of each of the respective flavors. And one of the flavors I have, a particular QoS limit on, and we'll actually go into the logs and see that the Iotune parameter that KPM uses to enforce the QoS spec was actually set. So kick this off here. Where is my, there we go. All right, so the first thing we're going to do is we're going to log in as an administrator because you have to be an admin to set up volume types. So the first thing I'll do is I'll create a gold one, we'll then create a silver one, and then we'll create a bronze one. And you'll notice that, I'll pause it right here, you'll notice that I didn't actually define any of the QoS specs or extra specs at this point. Literally it's just a create a container with a name. It doesn't have any predefined meaning when it comes from Cinder. So we'll then continue, we'll say, OK, let me go ahead and create, there's a separate object within Cinder for the QoS specs. So I'll create an object called silver QoS specs where I'll limit the overall IOPS to 500. Again, pulling from the prior example. In here you can see, so you can see it's chosen a backend consumer type. That backend consumer means, again, that it's the storage subsystem that's expecting to enforce this particular limit. In this case, we're actually going to switch that to be a front end consumer such that the actual hypervisor will enforce that limit. But you can see here, again, the key value pair that I've specified is literally stored as JSON in the database. So it's very straightforward to understand what values are there and to edit them. There's not currently support in Horizon for editing QoS specs or editing extra specs. So that's why I'm showing it by the CLI. It's not just because I'm trying to hack this up. But today, that's the only way that you can actually do this. There is a review that almost made it into Icehouse, which was going to give GUI support to the extra specs framework. But I think I saw on Friday that it's hopefully going to go into Juno very soon. So we'll rename the first thing I created there and create a new bronze one. Again, just changing the IOPS limit down to 100 to match the example. And then we'll go and we'll actually start setting extra specs. So the first thing we'll do is we'll say, for gold, we want it to be provisioned onto a back end named c.nfs. And c. is an acronym for cluster data on tap, which is the operating system that NetApp uses on its FADS series. So if you think kind of the normal box that people associate when they think NetApp, that's going to be running the cluster data on tap operating system. And so the next thing we'll do is we'll set a second key for the bronze type. We'll specify that I want bronze images to be sent to an LVM back end, so a logical volume manager. So this is running on direct attached storage. So it's going to be created within the virtual machine since this is a DevStack VM. The next thing we need to do is associate the QoS objects that we created here in this step. We need to associate them with the IDs for the volume types that we got back when we created them originally here. So we'll just issue this associate command. You can actually have multiple quality of service specs associated with a single volume type. So there's just a single associate command and dissociate command that's the negation of that. So we'll simply just associate those with the volume types as soon as I can click play. So we'll just copy the IDs for, again, the QoS spec object and the volume type object. We'll do the same again for the bronze back end and the bronze volume type. So the next thing we'll do is we'll actually go back and look at the current list of extra specs that we've defined, as well as the current list of quality service specs. So now that we've set it up, I've given you a pretty simple example here of just forcing volumes to be sent to a particular back end. And this is the IAPS limits that we defined here. So we've got one final thing that we need to do. We need to change the consumer here from back end to front end so that the hypervisor is responsible versus the storage infrastructure. So the next command we'll issue is just to change the value. And the value there is actually set by a key called consumer. So a little quirky there, but that's how it's done.  Oh, I messed that up. This is why I'm not doing it live, by the way, because I know I got it right when I did it before. So now that we've got both of those set again, or we're still doing the second one here. But essentially once we've done and we've set it up everything from an administrative point of view, then we're going to quickly turn to a tenant view and say, well, now imagine I'm somebody else on the team. I'm going to log into Horizon and ask for a VM to be created and I'll attach it to an instance. So I'll go to the Volumes tab and there's no center volumes there today, so I'll come in and I'll say, well, let me create a gold volume. I select the volume type from a dropdown list. Actually let me back that up so you guys can see.  There's this type field. That's what actually links back to the objects that we created. You specify the size here and you just create. And then it goes through that workflow process that I talked about before. Currently with Horizon today, when you go to boot a new instance, you get several choices as to whether you want to boot that instance from the ephemeral disk or whether you want to boot it from persistent storage as the root disk. So there's some options like boot from image, create new volume, or boot from snapshot, create new volume. And in that case you're actually creating a cinder volume that serves as the persistent disk. There's no support in Horizon today to actually specify the volume type in the web GUI as part of that. But that's something that we've looked at actually going back and contributing that into Horizon. You could envision it really be just another dropdown window that would appear when you made those selections. So we go through, say, gold, and I only want a gig for this particular use case. It goes through the creation step. At this point it's going and it's saying, OK, it's talking to the NetApp controller and saying, create me a one gigabyte volume on that particular back end. So we'll just go through it. We'll create a silver volume. We'll create a bronze volume as well. So again, your users are not doing anything different except for selecting the type of a volume at the end of the operation. So once we've done that, we finally get back that everything's ready to go. So the next thing we'll do is we'll look to actually attach that volume to an instance. So I fired up an instance ahead of time. You can see it in the dropdown list there. So it's actually going to go off and do the logic behind the scenes. In this case, I attached the bronze image. So it's coming from LVM. LVM is going to export it over iSCSI. So it's talking to the hypervisors, creating the target, setting up the initiator, and doing all of that so that the hypervisor can talk to this particular image. And just to show that the quality of service specifications that we had put in, back it up here. The quality service specs that we had done for bronze, if you remember, there were a limit of 100 IOPS per second. So looking at the NOVA logs here, you can actually see that there's an XML file that gets created. And the IOPS limit here is specified in this total IOPS set. So you can see where I actually defined it in text on the CLI as an administrator. Now as a user, when I've come in and I've selected to attach a bronze node, it's then enforcing the limit at the hypervisor when that attachment occurs. So I think I've got a few minutes left for questions if anybody has any. But that's a general concept there. So volume types give you a very easy way that end users can then pick from, essentially, a catalog of services that they can be differentiated on a price basis if you hook in with a metering infrastructure, a billing infrastructure. The volume type information is sent through metadata in Solometer, so it's available for you to actually query in that database. But it really gives you that flexibility that you're not going to get from an Amazon or a Rackspace today. So thinking about how do you perhaps leverage this in a private cloud environment, or even a public cloud environment, it's a pretty attractive extension to sender. So I'll pause there. Any questions from the crowd? When you say a user can access a particular volume. So that is not done under the scope of a, under the volume type, because it's more a description at a generic level across a tenant. So it's not going to, it doesn't have that scope of a per tenant or even a per user within that project. I think that that enforcement is done in a different place. Well, you have scoping to individual tenants, so it's not like any volume can be attached by anything in the public cloud. So there is actually checking to make sure that the user who is trying to attach a volume is under the same same tenant scope and can actually facilitate that communication. But it's not under the volume type construct that that's done. So yeah, we've got somebody here at the mic. Yeah. Right? I had a question about defaults, right? So we're talking about enforcing. But as far as I know, there's no way to force people to use a type when they're creating a Cinder volume. So the default is essentially to have none which could very well still create a volume. Sure. So I mean, it really comes down to how do you allow users to interact with the cloud if it's simply just exposing horizon? Yeah, you're right in that today there's nothing that limits someone from asking for a one gigabyte volume of no type. However, if you think more kind of holistically and say, I define a heat template form this particular workload that gets deployed, then I have a natural space to create that linkage. So perhaps in a very self-service dev test type model there may not be an explicit way to do that. But for particular types of workloads where you want to define the topology and policies around that topology, this provides you a hook to do that. Thanks. Sure. Any other questions? Sure. So the extra specs you said were the vendor-specific capabilities? Correct. If those are basically what I gathered was correct, those are simply exposing what the characteristics of the underlying storage is, then why wouldn't the storage vendors simply pass those variables forward? Pass those variables forward. If I've got my NetApp, if the volumes are being backed by NetApp. Sure. And those volumes are deduited, why wouldn't NetApp just pass that variable forward rather than you have to supply it to the internet? So the NetApp storage actually does avail that it has deduited enabled on the actual controller. It's an administrator has to create the linkage between gold, silver, bronze, or dog, cat, bird to that. So it's not that you are having to go to your storage and so perhaps I'm not answering your question. Are you saying by defining the extra spec to say I want dedupe, are you saying then it should go to the controller and flip on a dedupe switch? It's grade five, it's whatever. Sure. So I've got to set it to the back end, bring that forward, and then allow it to QOS and so forth. Yeah, I mean I think it should be a fairly straightforward extension to do that. I mean if you bring up the scheduler logs and you look at the periodic updates that come in, I mean the different storage systems are advertising on a periodic basis, what they can do. It shouldn't be a far stretch from that to actually pre-populate at least a set of choices of what's available versus having to manually go through and do that. But that's not the way it works today. That's something that certainly could be done. All the kind of fundamentals are there to enable that. All right, yeah, go ahead. Yeah, so what happens is when you get a retype request, it'll say I'm going from bronze to gold and that means I'm changing a disk type. So at that point it will go back and consult the scheduler as if almost a new provisioning request were coming in and say is there space on a system that has SSDs that has all the properties that gold is defined to be. If that's true, then Cinder will actually take care of doing that migration on a per driver basis. Now let's say both systems were net app back ends and if the environmentals were set up correctly that could be as simply as cloning the file from one directory into another directory and that could happen instantaneously. If you're going from Ceph onto EMC, there's no way for those two things to just magically know what their formats and everything are so it'll have to do a copy over the network in order to facilitate that. But that will happen as long as all of the scheduler heuristics are executed line up. Again, as if you're provisioning a new volume, it's just that the source for that volume is an existing volume rather than empty in that sense. So I think we've got time for one more question if there is one in the crowd. Yeah, they're in the back. You may want to come up to the mic. I don't know if I can hear you. So the volume types are only set at the creation of the volume or can those be set afterwards? And can we change the volume type? Yeah, so as I just mentioned, when you create a volume, you can say no volume type or an explicit volume type. And then there's a retype command. I think it's currently only done in the CLI that allows you to switch the volume type after the fact if you later determine that the contents of this workload really needs to be on a flash drive and it wasn't to begin with, then you can use the retype function to achieve that. All right, well with that, I think we're out of time. But feel free to catch up with me afterwards. But thanks for coming.