Welcome to Digital Asset News. Take your top stories in cryptocurrency digital assets and bring them on a bite-sized piece as today We've got some interesting stuff about mass adoption. First up IBM is turning patents into NFTs says it's a future trillion plus dollar market and at first glance This looks like a pretty great article, but we really dig into it. It's not that big of a deal I'm gonna explain exactly why on top of that Facebook backed crypto DM updates launch plan Will take a phased approach and the real question is do we really need something from Facebook to get into the cryptocurrency space? We'll take a quick look. I'm gonna tell you it's absolutely not needed and Last two we'll take a look at his former comp troll the currency Brian Brooks to lead Binance's US trading platform and why he was chosen and lastly we'll take a look at a new Bitcoin price concern from JP Morgan at Odds with immense support at 52k and we'll see exactly why JP Morgan doesn't really want Bitcoin to flourish So let's take a look at all those stories and we'll try to get through them as fast as possible first take a look Let's go on the market. So today it is April 21st 545 p.m. Now Paso, Texas time and Pretty great day so far looks like we haven't gone below 2 trillion dollars Which is amazing mark cap 2 trillion and of course for using trade the chain for sentiment analysis to see what's going on And if you take a look at it You've got pirate coin is one of the most bullish coins out there at our I like that one RDD cello DGB and bow ample So let's take a look at what's going on as far as the actual market and the prices and as we can see 7-day change for Bitcoin down almost 14% kind of a bummer But you know what I'll take the 54,000 as opposed to 52 Which we dropped from a very high of 64k and actually we had taken a look at this about what's going on and It's not a big deal and I know we talk about this on the channel But I really need to get this into people's heads, especially if you're new first of all if you're new welcome And this isn't a big deal traditional market. This is awful, but for a little bit of a Depression of what we got now. It's just a Wednesday. So not a big thing Also, we got to remember that these types of dips these types of pullbacks are completely normal And in the last bull run in 2017, we would see things that would go between 29% to 40% so a 21% dip from 64 to 32 not a big deal and we're on the way up Ethereum, I know everybody's happy about this 23 74 congratulations. Ethereum holders I'm one of those who knows what's gonna happen, but it looks like it's doing pretty good Binance up 2% XRP watch out down 27% Hey, you know what who knows what's gonna happen But if this lawsuit gets dismissed like people are talking about maybe it could be a good day I have no insider information, but you know knows maybe it'll be great tether. Nobody cares dogecoin No idea why this is up because I think it's It's still a project. It's still a cryptocurrency. I still think it's trash. Sorry And if you if you comment below, it's gonna go to a dollar I will probably just ignore that Cardano down everything's pretty much down Bitcoin cash up 11% last 24 hours Pretty good 37% for Vechain new partnership was announced of course They're doing great and everything is just a little bit all over the place The big thing I want you to take a look at is the sentiment I know sentiment people say well, you know, what is the big deal about that? It's just the overall feeling of where the market's gonna go And this is all based on trade the chain as they pull that data in From Twitter and they scour the internets and the webs and whatnot and we're still a pretty bullish sentiment I still think we're gonna go up I still think we're gonna hit Bitcoin at 150 K not financial advice And I still think that altcoin season is right around the corner On top of that, let's satisfy your inner trader. Let's click a look on the projected range Nothing really too good right here But if you are a trader and a gambler like some of us take a look at Sora golem Ave unibright who will be token and Aragon Beyond that really can't tell you too much. Also. Take a look at trade the chain There's a link for that 14-day free trial Let's take a look what's going on into the market today. So Not the market the stories the big thing is and this caught my attention Especially when IBM is involved in pretty much anything Because it's a big name and when I saw this article, I was pretty impressed. I'm like, hey, look at that IBM is turning patents into NFTs non-fungible token. So that's a future trillion plus dollar market And it's a pretty good article written by crypto slates Just some basic fluff in here and there, but I really don't care But I really care about it's where the article actually came from and for that we take a look at the IBM website And what I want you to notice here is That IBM has its own blockchain and I'm gonna tell you right now This is great for to get into public consciousness about what's going on But in the overall grand scheme of things, this is a big nothing burger If you're gonna talk about what it could do for you and what's going on. I'm explain a second So first up this was on today April Sorry yesterday April 21st. They announced plans began representing patents as non-fungible tokens or digital assets But working with IBM and they're going to do this to create the infrastructure for representing patents NFTs and storing the records on a blockchain network the tokenization of a lent intellectual property or IP will help position Position pans being more easily sold Traded commercialized or otherwise monetized and bring new liquidity to this asset class for investors and innovators. So first of all there's this thing called an intangible assets and You don't know what that is. It's not a big deal Really what it all comes down to is that things that you really Can't see touch here smell taste Like a patent those are intangible assets and these types of things must be held on Corporations balance sheet. Now the problem is is that it's held there, but how do you give that value? How do you kind of make these things? Be able to come alive as far as like for your for your accountants for your division and then how you would actually Say this has value. Well, this is how they're gonna do something like that By they're going to create these patents and put them into an NFT and put them on They're a treasury or their spreadsheets. So I think it's an interesting point of what they're doing, but here's the big thing by representing Intellectual property in this way be licensed Sold and commercialized. That's the big thing corporations want to know. What's the bottom line? How much can I get for this? How much can I make? Organizations can also more easily view the intellectual property of an assets and their balance sheet. So that's great. Good for them These NFTs will be stored. This is the big thing and shared on the IPW platform Hosted on IBM cloud and powered by the IBM blockchain and then it goes into talks about how this could be great for these Corporations entities and whatnot, but this is the big thing the IBM blockchain. So what does that mean? I mean we think about the IBM blockchain Hyperledger fabric, what does that mean for me and you who are just a retail investor? Well, not a darn thing and we take a look at there was an article written This was on July 2nd 2019 But they all took a look back and said what is this new IBM blockchain? Well, the problem with the IBM blockchain is that it is centralized It is private and there's pretty much run in the IBM Ecosphere, which if you want to talk about blockchain it is what that is But it is not the fundamental analysis of what it actually can become which is decentralized and will never be that So when we take a look at well, where's the token? How do I invest in this? How do I get into this? You can't because it's it's just saved there on the IBM platform And that is why even though they have they launched blockchain pilots with Walmart and Etna and all these different places. I think VeChain did too It doesn't really matter. I mean for the retail investor now This is great for corporations who really are like, you know what? We want something private We want something in here We want something that we can really control and not have anybody access to but that's not the whole points of cryptocurrency and blockchain So again, this is a great idea and it'll probably be like they call a trillion dollar industry But for us this this isn't really gonna be we're not gonna be a part of that So it's not like it's on ERC 20 token or Ethereum. It just is what it is. So again, great article. Don't really see Anything for us per se. Let me know just think of the comments section. Let's move on to our next piece which Speaking of huge corporations who don't need more money Facebook back cryptid DM updates launch plan will take a phased approach and I know as we go through this You probably think to yourself who cares about Facebook and their crypto Project because really if you're gonna talk about the most centralized one I mean, we'll take a look IBM is probably number one and maybe this probably number two So the Facebook back crypto DM firmly called Libra is taking a phased approach to launch Co-creator and chief economist of DM Christian Catalini The aim is to launch a pilot with a single stable coin pegged to the US dollar this year This pilot will be small in scale and we're largely focused on transactions between individual consumers. Well, how convenient DM is now in talks with Swiss financial regulators to obtain a payment license a Big step of our dialogue with regulators has been a phased approach to launch We're going to be phasing in different functionalities and use cases and blah blah blah. Okay. Here's the big thing Listen to this all members will have to undergo extensive KYC know your customer probably AML to Once we get the green light from the regulators We will start experimenting with a small number of users with a small number of players and here's the thing if you were around Back in the day 2018 2019 Facebook came out and they said we're gonna do our own blockchain all crypto currencies last set It's gonna be called Libra and it's gonna be awesome and all these different corporations were lined up to get in line and go You know what Facebook? We are right behind you We would love to be a part of this as you usher in this new world order To make payments available to the global community and the US government said take a seat Grab some bench because you're not gonna go anywhere. We're not gonna allow you to do this global Infrastructure for payment system. That's our job and that's pretty much what happened They pretty much slapped them down and so you're not gonna do it and before you know it all these entities all these corporations that you know What we're gonna just sidestep and you know exit stage left and that's exactly what happened So they're rebranding it they're gonna do this whole thing with Facebook and go, you know what we want to do payments Between all of our users and you take a look at let me show you something. Let me show you something If you take a look at where Facebook is located And the kind of penetration it has globally Well, first of all this I couldn't really find it for Facebook itself But it's pretty global except for China and some other places. They're not gonna allow that thing, right? But remember Facebook just isn't a Facebook. It is Facebook. It is Instagram It is WhatsApp and whatever else they bought and I can't keep track of so they're pretty darn huge So if they're gonna do this DM project, this could be on all the different platforms But here's the question and the question is this Do we really need a global payment system in a centralized manner? By an entity that we can't even trust with our private information Because they have no idea how to keep things safe So you're telling me the same people that leaked all my information online For all the Facebook things and all the different things they've done I'm gonna trust them with my financial incident my financial information. Are you out of your mind? so Again, I don't see a point for this I don't see why I would trust them to do anything with anything with my information and The big question is even if I wanted if I'm in America and I wanted to pay somebody in Nigeria or something like that and I want to do a quick transaction Could they do that could they make it from the US dollar to whatever the fiat is over there in Nigeria? And could they make this actually happen on a low-cost basis and actually do it? Well, maybe but there's gonna be limitations I can tell you like what just like that with like a Venmo that with with a Zell other different types of payment plans or payments Applications, there's only so much you actually send and actually do and here's another thing If they're gonna have KYC for everybody well, guess what in a lot of places in Sub-Saharan Africa You can't be identified because there is no way to do that And that's why there's a huge amount of people who are unservant unbanked. So again, I do not see the whole point of this Let me know in the comment section what you think potentially be a I don't know global payment system We'll see we'll see what you have with that and that's all I have to say on this this one Let's move on to a couple of our last pieces Second to last former comptroller Brian Brooks to lead Binance's US Trading platform. So this is not CZ Binance is not stepping down But Brian Brooks the former comptroller is stepping in for Binance us and there's nothing really great about this article It just you know says this is what it is and the only thing I will say is this With this actually happening and then bringing Brian Brooks in I've said this before and you probably this yourself. It's not about what you know It's who you know and if Brian Brooks can come in there and all the different people that he actually has contacts with How far behind do you think it is for Binance that us to actually be able to bring Binance global Into United States and actually just become that huge exchange. Well, maybe because I'll tell you this Binance just hired former US senator Max Bacchus who served Montana from 78 to 2014 So again, if you're looking for Regulation and to be able to get and to move into different parts of America Why wouldn't you just hire something like this to bring things into the forefront? So I gotta tell you if I was Coinbase, I mean as good as they're doing You got Binance right on your heels And they got a lot of people behind them. Anyhow, let me know what you think about that in the comment section I think this is a beautiful move by Binance, especially to really capture a ton of market share But only time will tell and then Let's finish up. Shall we so? Talking about articles Bitcoin price and everything else. We've seen it quite a slump lately, right? 64,000 just a couple weeks ago and now we're at sitting around fifty four thousand dollars So there's always gonna be somebody who says that to Bitcoin price is gonna be just fine This is Willy Woo. He talks about that There's a line of support, which is the one trillion dollar market cap Which is like the line in the sand and of course he goes to technical analysis and talks about how great it is And there's this line of support here around fifty two thousand, which is the same thing I've heard a lot of ta people talk about who knows Then we move forward JP Morgan is talking about how bearish they are on Bitcoin. This is Nicholas Panna Gertzeglu pretty sure I nailed that name in his latest note argued that his price chip would not see buyer step in like before Futures positions unwinding they would not reverse and thus overall interest in institution Bitcoin bets would now fade and he states Momentum signals will naturally decay from here for several months months given their still elevated levels and Here's the thing They could both be right. Who knows Willy Woo Ta is just an indicator and it could actually be Then you've got you know JP Morgan coming out and saying, you know what we don't think it's gonna it's gonna make it It's gonna go down. It's amazing how JP Morgan always tries to push this price down for Bitcoin I don't know if you see it, but it seems like every time I turn around JP Morgan's like it's not gonna make it It's gonna fail it's gonna go down It's like they're trying to pull the train back to get back into cryptocurrency Don't know if that's the case of what it actually is, but it seems like what it is I just remind everybody again These things that we see these corrections these dips They're all normal and this is not the traditional market space. Remember just like in 2017 I mean, you've got uptrends Look, even when we finished out in 2020 Bitcoin was what around what 30 29,000 dollars Let's see. Let me do some quick math Jennifer. So four months We're doing pretty good. I think even at $52,000 and that's you know, almost double a little bit less 40% Just remember we are in a very very early start of this bull run We're only around mid-April April 20th I think we got a lot of room to grow and on top of that if you take a look at How much as far as like the corrections as far as time frame goes. I Mean last time we had huge dips of 29% which lasted 21 days 33% which lasts for 34 days 40% which lasted 12 days and so on and so forth. So 64,000 to 52. I'm not too sure we won't Correct ourselves and just keep going up. But again Anybody's guess I'm still in the camp of Bitcoin 150k But I still do believe that altcoins will probably crush it This bull run and maybe a lot more than Bitcoin has but time will tell All right, so that is it for today's news and stories. First of all, if you made this far, thanks for sticking with me I appreciate it. If you liked the video found some value give it a thumbs up also consider subscribing all the stories We talked about usually time sensitive and that usually helps out a channel a tremendous amount So thanks so much for watching. I appreciate it. We'll see you on the next one


We review a selection of methods for performing enhanced sampling in molecular dynamic simulations. We consider methods based on collective variable biasing and on tempering and offer both historical and contemporary perspectives. In collective variable biasing, we first discuss methods stemming from thermodynamic integration that use mean force biasing, including the adaptive biasing force algorithm and temperature acceleration. We then turn to methods that use biased potentials, including umbrella sampling and metadynamics. We next consider parallel tempering and replica exchange methods. We conclude with a brief presentation of some combination methods. This article was authored by Cameron Abrams and Giovanni Bussi.


and welcome to This Week in the City. On Monday, September 19th through the 21st, Animal Services will be hosting a free pet adoption special, Fall in Love with a Pet. All animals can be adopted free of charge at Animal Services. So please call 803-776-PETS, P-E-T-S if you have more questions, or visit our website at colombiasc.gov and get your free pet this week. Also this week on Tuesday, Columbia City Council will hold a Council Legislative Committee meeting at 1 p.m. at City Hall at 1737 Main Street. The meeting will be held in the second floor Mayor's Conference Room. For agenda items, visit our website at colombiasc.gov. Also on Tuesday, City Council will hold their regular four o'clock meeting at City Hall in Council Chambers. The meeting again will begin at 4 p.m. and it will be live streamed and it's hybrid if you would like to attend in person. This meeting will be held in Council Chambers which is located on the third floor and for agenda items, visit our website at colombiasc.gov. On Wednesday, the Task Force to Prevent an Inholstice will hold a meeting at 4 p.m. at the Busby Street Community Center. This meeting will be held in person but it will also be live streamed for those who cannot attend in person. For those seeking information, please contact our city clerk's office at<PHONE_NUMBER>. As we roll into the weekend, it's Food Truck Friday. Once again, this coming Friday. Come out to 2300 Bull Street at the corner of Bull right in the parking lot of REI Co-op and enjoy our Food Truck Vendors for Food Truck Friday. This series will continue throughout the month of September. For more details about Food Truck Friday, visit our website at colombiasc.gov and check out our social media platforms for details on Facebook, Twitter, and Instagram. Well, this wraps up this week in the city. If you have any questions about any meetings or information, please contact Public Relations Media and Marketing. You may call us at<PHONE_NUMBER> or send us an email at pio at colombiasc.gov. And of course, our website is a 24-hour information station at colombiasc.gov and make sure you follow us on social media, on Instagram, Facebook, and Twitter. We hope you have a great week in the city.


have potentially what is going to be the most beautiful palette for swatch and sip of the entire year is the D'nesa Myricks Lightwork Volume 4 Palette. Last year's was insane so I absolutely, positively had to get my hands on this palette but before we get into it, welcome to swatch and sip. If you don't know what we do at swatch and sip, we sit here, we sip our drinks. So pause right now if you don't have yours. I made myself a lovely iced coffee for the morning. It's actually like 11 and I've been holding off on my drink for this video and I was starting to get a headache so, mmm, I needed that.  This is what gives me joy in makeup so let's go ahead and do it. So D'nesa Myricks just launched her Lightwork Volume 4, obviously it's the fourth one but it's the second one that is of a multi-chrome, multi-shift, multi-dimensional eyeshadow palette and last year's I thought was so fun so I definitely wanted to pick up this one now. The catch with these is they are $125, yes the same price as Pat McGrath so it better be a good right and last year's I kind of argued that it really wasn't worth the money but I take that back. I mean multi-chromes are expensive to formulate. At the end of the day I feel like it was just a really great starter multi-chrome palette and this looks different, it looks amped up. I'm excited to talk about it because I've played with all of the formulas on my eyes today and I have to tell you I hate to start this off negatively but I have met my match when it comes to this palette. I had some difficulties applying it, I don't see it as the everyday person kind of palette because I find myself to be pretty experienced with makeup and I kind of struggled with this, I looked up ways to apply it. So this is a palette that I do not feel comfortable reviewing, I haven't gotten a full handle on it which is why we're gonna do a swatch and sip. I'm going to spend more time kind of figuring out how it works best for me but I'll share my experience with it as a beginner but I just don't see it being very good for beginners for makeup. I'll get started with that, I'll talk about that more as we get into it. So the palette comes in this packaging right here, it has a 12 month shelf life and is made in China. On the back you are going to have all of the names here and when you open it it is gonna come with a sleeve that directs you to exactly what the formulas are, not the names of the palette which I like and then boom, here are the colors. I feel like this is great because I feel like it's so different from last years but obviously it's the same concept and I feel like when it comes to multi-chrome shifty shades, how different can you get, you know, they all eventually can have the same shifts. So I actually feel happy this one is a little bit more dual toned and deeper, I feel like it's a little better for the fall time but let's go adding it into it. So here are the formulas, there's two different formulas along the top and bottom, most of them are gonna be velvet chromes. So these four right here are velvet chromes and then this one and then these three are velvet chromes and then the next formula is glass metallics which is gonna be angels and divinity. Then we have two aqua chromes which need to be activated with water and then two pressed chrome flakes. Let's go ahead and swatch all of the velvet chromes to begin with, I think that's the more classic formula here and it's my personal favorite so sit real quick. So we're gonna go in with trance nirvana, my nails aren't dirty, it's just from playing with this palette before filming, six cents and out of body which I know is gonna be insane. So sometimes it's easier to look at them and their shifts on the fingers so take note if you are interested in any of these shades, this has a green blue shift, I mean it's difficult to describe the ships, you're gonna have to let your eyes do the talking here, this has a purple blue shift, are we ready? So we have trance, there you can see that shift pretty intense, nirvana which I'm excited about because this is gonna be one of the more wearable shades so if you're intimidated by multi chromes and duo chromes, this is one that you might be able to get work for you. I saw a pretty cool look on denessa myrick's instagram page which was very wearable that utilized this shade then we have six cents which also could translate into something wearable right, this one is really gorgeous, it's gonna be gorgeous for brightening the eyelid then we have out of body which I feel like I have a few shades that are like this shade but dang it is gorgeous and you can see just how thick pigmented they are swatching, beautiful beautiful quality here, then we have zen skipping this one, trippy escapism and I literally skip the finger for what but then we're gonna go into awakening which I actually have all over my eyelid so I'm really excited to use zen, I think this is gonna be great for fall and this shade can like swatch the whole way down my arm, that's impressive then we're gonna get into trippy right which has kind of a sexual terrestrial from pat McGrath vibe so pretty escapism oh my gosh yes I mean you can see all the shifts just right here the way that my arm is angled and then I have awakening which you'll see in my tutorial I did use that all over the lid and that's stunning so all of these have so much coverage and pigment to them this is absolutely a beautiful formula if you were to buy these shades individually from an indie brand there would be like $20 each so that's why I think these are great for a multi-chrome beginners collection if you have a lot from the indie brands I'm not gonna lie the indie brands carry more glimmer shimmers they're a little bit better quality but the denesemirex is a great base for sure and I didn't even show you my finger like look what's left over and then we're gonna get into the glass metallics which are going to be divinity which I haven't swatched yet and then angels which I use on the inner corner both are so pretty right so these are gonna be more kind of topery but they still carry a big base to them so this is that divinity shade as you can see it does not have the coverage of the other formula but still is gonna look gorgeous and then angels is the perfect highlight shade in this palette it's not as smooth looking as these guys up top these will absolutely be holding their own weight right I mean this right here sells the palette look at this the next four shades you're gonna see me kind of struggle with but wow okay we've got to talk about the next shades I want to do the pressed chrome flakes next I do have one of the press chrome flakes on my eyelid I'm really not a fan of these I find these messy and hard to use so if you just go like this you're really not gonna get much and it's gonna swatch really patchy so the best way to use these and I watched your videos you almost have to like warm it up and break the seal which I don't like doing that and anyways when I do that and I'm getting in there I still find it swatches really patchy so this is the shade heaven okay that's the best one I've been able to get so far let's see how this one does that's the best one so far I've really struggled up and oh my gosh it's making a liar out of me because when I've been trying to use this it's been super patchy and difficult and I mean you see how beautiful this looks this literally made a liar out of me okay let's do the other one and then I'll talk about this formula a little more so paradise is what I have on the eyelid right now I'm really gonna get in there you can see we have some flakes falling she's messy and this is what I'm talking about I just I can't get any pickup I gotta dig into it flat against the table I don't know how I got a good one on heaven but I did but I'm struggling with paradise and I was struggling with heaven before so you almost have to like get a literal flake and then spread it out you see it's just not it's not easy to use you guys it looks really gorgeous but you see I literally have to warm it up and push it out and that is super intense and rough for the eyelid I tried to use this on my eyelid and it was tugging and that's just not good for the skin I don't know you really have to take your time and almost warm the product up to get it as creamy as possible and you want it to be creamy so that it applies easily so it seems that I've broken enough of the seal for heaven for it to be creamy but paradise I mean I've gotten in there I've used it I'm just not getting to a creamy part of it I'm making a huge mess okay I really just dug in there I mean it's pretty crazy I'm not gonna lie if you're willing to put up with this have at it in terms of swatch and sip this is satisfying but in terms of application on the eyelid for the everyday person I'm just I'm not in love with it okay let me clean off my disgusting hand now but that looks impressive I mean look what I had to do to get in there it's just it's not an easy to use functional formula you're into editorial looks have at it but I just don't see myself wanting to deal with this really at all and it's getting stuck all up in my fingers sip last formula are the aqua chromes and I'm kind of trying to figure out how much water I need I've been playing with these it's not been impressing me I know they said like two to three drops of water so I'm gonna put a really light spray into one of the shades so I got just a little bit in intuition because at first I definitely applied too much water but the less the better because I feel like it just spreads right on the top layer here and then I have trouble getting a little bit pigment here's what it looks like when I feel like the water is freshly applied it's not that impressive right it's too watery you don't get the pigment what I find is you must need to let the water dry down a little bit so that you can actually pick up the product so it's dried down a little bit this is what it looks like now this just doesn't have the opacity that the velvet chromes have and the catch with this though is once it dries it's not going anywhere but I found this really difficult to apply I tried to do a look where I put down my base shadows and then I used a water activated shade on my eyelid but it was so sticky on my eyelid it was creasy and separated and then I put a chrome flake on top and oh my gosh it was the most awful disastrous creepy creasy look I've ever created so that's why I'm quite dubious of this I'm gonna go ahead into aura now just spraying literally a little a few drops cuz it's not working when I apply too much it just sits kind of on top of the product and see it gets really watery so let me let it dry if you have any tips for me on this palette please help me out it is not often that I am struggling so much with a ballot but here's aura looks pretty it's just not impressive for me I'm so impressed by the velvet chromes that I don't even need this water activated stuff you know but here's the palette I mean this is really impressive this is denessa myricks artistry right here I feel like to love this palette you have to have an artistic mind and be very creative I don't with my boring soft glam kind of looks that's my style makeup this definitely takes me out of my comfort zone that's for certain the best part about these swatches it's just looking at them right so overall I mean like I said this is not a review of this palette because I've got a lot to learn before I feel comfortable giving my thoughts on it but I mean on my first use today I really really struggled with it I don't see it being super easy to work with if you're playing with the middle row for the average user but the outside shades the velvet chromes and the glass metallics are just phenomenal so I'm gonna continue playing this I'll keep you guys updated but I'm a little uncomfortable with this so we will see like I said I'm wearing a couple shades from this palette right now I'm gonna go ahead and take you over to that tutorials you can see a couple of the formulas in action yeah yeah creating these looks have been a struggle I'm on my third eye look and this is the one that I'm just gonna have to wear this ballot definitely has a learning curve I'm gonna use some of a weight why does my finger look like this it has all the chrome flake stuck in here my fingers are gross the chrome flake for messing with it I'm gonna go into awakening and this is not a unique duo chrome multi-chrome whatever it is but I'm gonna put that all over my lid very smooth beautiful application let me blend that in and I use the purple shades from the matte about hue palette from color pop on my eyelid by the way as the base matte shades gonna blend that okay and then I had to do a look with one of the chrome flakes and I'm really struggling with these chrome flakes I know you kind of gotta warm them up almost like break the seal kind of situation but it really tugs on my eyelid to apply it and I just feel like I know there are flakes and they're supposed to look like flakes but it just looks really messy to me it's not my style of makeup that's for sure but I do find these messy and hard to work with and for the editorial gal I mean I think you'll appreciate this more than me oh yeah yeah but I am not I'm not feeling it but that's that's what we gotta do that's all I got you guys it says all I can do to finish off the look I'm gonna go in with angels down here and this one is kind of a more sheer shape it does not look like that based on how I applied it but this is the perfect kind of corner color to finish off any look with this palette and then I'm gonna go back into awakening and I just want to run that over my lower lash line as well just like that to bring in the duo chrome element so buttery smooth that's amazing that's all I'm doing for the look I'm gonna do a liner and that's just all of that and there we have it this is my final look I'm not really in love with it but I definitely want to continue playing with this palette though because I've seen on Denessa Myrick's Instagram some really stunning looks that she's done there's one neutral look I don't know which exactly shade she used but she had like a warm brown in the crease and just one of those in all over the island and it was so beautiful I'm really excited to figure that out if you have any tips for me on the middle row I need them so thanks so much for taking your time hanging out with me so watching some absolutely stunning eyeshadows and if you picked up this palette let me know your thoughts I feel like everybody's in love with it and I'm just not I'm not there I don't have the proper tools I know she recommends like silicone applicators I just don't know that this is my jam anyways it's pretty slouch so I'm happy I could make a video out of it and hang out with you guys I will see you in tomorrow's video bye guys have a good one


Now, we will look at how talent management can be used as OD intervention. Briefly speaking, talent management is attraction, development and retention of human capital. So, there are three key processes involved in the talent management. Number one, coaching and mentoring. Number two, leadership and management development programs. And number three, career planning and development. Coaching is a specialized form of OD and perhaps the fastest growing area of OD practice. Those who are more interested about it, they can visit the website coachfeteration.org. It is the website of the International Coach Federation. ICF or International Coach Federation does the accreditation of the business coaches. So, coaching essentially involves guided inquiry, active listening, reframing, appreciating inquiry, etc. Coaching is not telling people what should be done and how should be done directly. It is about making people to reflect on their own behavior. Asking a specific question to the people which will make them reflect on their specific performance or behavior in a specific situation. This is a simple interpretation of the process called guided inquiry. Second aspect of mentoring is active listening. Many a time, coaches are engaged for very bright and high potential executives. Generally, when organization pay for the coach, they generally engage coaches for a high potential employee. These high potential employees or managers may have the solutions of their problem, but they need someone to talk about those. And coaches provide the active listening to these managers. And in the process of active listening, managers also get insights about their work and about their performance. Another aspect of coaching is reframing. We look at some situation as a problem. The same situation can be looked at as opportunity as well. Many a time, it does not happen naturally. To make this process happen, coach can be a very important and powerful medium. They can make people to see situation in different light and that can help the people to identify the creative, innovative, bold or off the beat ways of addressing that situation. Appreciative inquiry is something which we have already discussed in the previous session. We all know appreciative inquiry is based on a basic assumptions that organizations or people are not the problems to be solved, but miracles to be embraced. So appreciative inquiry starts with asking what are the light giving forces to the individual, to the group or to the system. Appreciative inquiry is completed through discovery, dream, design and delivery or destination phase. There are three major reasons for the coaching engagement in an organization. According to the HBR study, the top three reasons for engaging in a coaching work are developing high potential or facilitating end transition. Second acting as sounding board what we discussed in the act of listening and addressing derailing behavior of the leaders or managers. Developing high potential or facilitating the transition is the number one reason why coaching as a OD intervention is used. That simply means transition from one organization to another organization or transition from one function to another function or transition from a specific function to the general management role. Mostly coaching is required when people reach to the top post in their function and then they are given opportunity for the general management. They might be very good for working in their specific function like finance, HR or marketing. So they may not be as comfortable in the general management role where they are in charge of all or many other departments. This kind of transaction is very crucial for people to move to the top management level. And this is the situation where coaching is found to be very useful. And that's why it is number one reason for engaging the business coaches. Second reason is need for sounding board what we discussed in the act of listening. That act of listening and sounding board role is being provided by the coaches and that is the second reason why they are why coaching is used as OD intervention. The third reason for using coaching as OD intervention is to address the derailing behavior of the leaders. These managers and leaders though are high potential people they might be lacking in some specific aspects of their roles at the higher level which they themselves are not being able to recognize and are not able to practice. In these kind of situations coaches can help them to look at their own dysfunctional behavior and prevent the derailing of the managers and leaders. Within the talent management aspect another method of OD intervention can be management and leadership development interventions. Management and leadership development interventions are used to enhance the knowledge, skill or attitude of the employees attitude of the managers. Management development programs or leadership development programs which in the short form called MDP and LDP are focused on the leaders and managers knowledge, skill and attitude. LDPs and MDPs are conducted in the large number of forms. They are conducted as an in-house program. They can be conducted as in-class program, outdoor programs, project, coaching, action learning projects etc. Before we talk about the different methods of LDP and MDPs so what are the leadership competencies identified in Indian context are as follows. First ability to visualize and articulate a path to the future meaning having a vision, having strategic thinking. Second ability to inspire and take the accountability and demonstrating entrepreneurial spirit. It means leaders need to inspire others, they need to take the accountability of the performance and they need to have the entrepreneurial temperament. It means they need to be actually involved in innovation, risk-taking and people development. Third is ability to spot and nurture talent. Very rarely leaders and management can get teams where people are already competent and performing at their optimal potential. They need to invest time and effort to bring up the performance of their team members and to become a valued member of that team. So that requires leaders to spot the talent and nurture the talent. Fourth competency found to be very critical in Indian context is crafting and deploying business practices that further the business goals. It simply means ability to translate the strategic direction and strategic objectives into the operational procedures in systems and policies. Strategy cannot be implemented without right processes, systems and policies and that is a very important competency of leadership found to be crucial in Indian context. Next is ability to optimize the organizational structure and articulate core values. Everything job can be accomplished with a different type of organizational design. So we discussed about the organization design as functional, divisional, metrics, innovative designs like team-based designs, virtual organization design, etc., etc. What is the most optimal organization design to accomplish the task in a profitable way is a very important competency. Next is ability to understand the competitive market and manage external stakeholders and relationship. We all know that business operate in a larger society. Business has to keep interacting with the regulators and the government. They need to identify the ways of interacting with the different stakeholders and establishing a functional relationship with them. These are the critical leadership competencies identified in Indian context. How a management development or leadership development program is implemented. Invariably, LDP and MDP start with need assessment. You might remember we discussed the diagnosis as a very important component of OD intervention. So MDP or LDP start with the organizational, group or individual level diagnostic study. That diagnostic study result in identification of need for development at these levels. Needs are then converted into the specific learning objectives. Bloom's taxonomy is very useful to identify the action related or knowledge related learning objectives. For example, Bloom's taxonomy gives a typology of learning at the cognitive level. In a cognitive level, learning can happen in the form of remembering or in the form of understanding, in the form of application, analysis, evaluation and creativity. So using the Bloom's taxonomy, appropriate learning objectives can be identified for the LDP or MDP. After identifying the learning objectives, next step is instruction design. Instruction designing can be done more scientifically with the help of Cole's learning cycle. Cole's learning cycle says that learning happens by acquisition of information and transformation of the information. Acquisition of the information can happen through concrete experience or abstraction. Transformation of the information can take place through observation or by experimentation. So the combination of the ways of collecting information and transforming that information result in different learning style. So people with a different learning style prefer different ways of learning. So some people are more comfortable in the project-based learning, some people are more comfortable with the lecture-based learning, some people learn better by reflecting on different aspects of a problem or some people need to have a very clear first concrete experience to get them engaged in learning process. If we look at the different type of training methods or management education methods like case study, project, lecture, simulation, all these are catering to different aspects of learning cycle. So once we know the learning objectives, the next step is to convert those learning objectives into the specific learning exercise. And that learning exercise has to be identified according to the Bloom's taxonomy and the cold learning cycle. The learning exercises can be integrated using the cold learning cycle. And specific learning exercises can be identified using Bloom's taxonomy. Then comes the next stage which is validation. After doing need analysis, you develop the learning objectives, you make the instruction design, but that instruction design has to be validated by the different stakeholders. We talk to different stakeholders about what should be included in MDP and LDP and that is done in the stage one that is need assessment. Those stakeholders can tell whether their concerns are being addressed in the design or not. After the validation comes the delivery of the program. Delivery of the MDP and LDP can be done in the combination of the in-class session, group work, action learning project, simulation and many other available techniques and methods. After delivery comes impact assessment. Kirk-Patrick model is the most famous model to evaluate the impact of the interventions. The evaluation can be done at four levels. Number one, reaction level. That simply means how participants reacted after attending the program. It is more like immediate feedback. Second level of the Kirk-Patrick model talks about learning. The definition of learning over here is modification in the mental models. Have participants understood things in different way? Have they identified the different ways of performing their task or looking at the situation? That learning at the third level translates into behavior. Behavior means how they behave differently which is more aligned to their own well-being and more aligned to the organizational objectives. And the last level of Kirk-Patrick model talks about the result. The business result or operational efficiency related results achieved through the intervention. So MDP and LDP goes through these six steps from the need assessment to the impact assessment and that can be a very comprehensive OD intervention. Another component in the talent management related OD intervention is career planning and development. This has become very important with the emergence of knowledge economy. Knowledge workers have emerged. The knowledge workers do not identify primarily with the organization. But when people identify themselves more with the profession and less with the organization then they expect their organization to help them to grow in their career. And career planning has become a very important way of enhancing employee engagement and organizational effectiveness. Now we will look at how career planning and development can be done as an OD intervention. For that we need to recognize that people go through different stages in their career. According to the most popular classification the career of a person goes through establishment, advancement, maintenance and withdrawal stage. At each level their questions and concerns about their career and life are different. So when we use career planning and development as OD intervention we need to be conscious of what are the most important and concerns of employees in that particular stage of career. For example in the establishment stage when a person just starts his career her career planning needs to include exploration and development of her capabilities. So an OD intervention should facilitate the people in the establishment stage to explore and develop their capabilities. At this stage people need more frequent feedback they are exploring the different possibilities they look at different avenues to build their career. So they need to also be given up more frequent feedback so that they can align their interest in competency with the right line of career. From the mid 20s or late 20s to up to 40s early 40s advancement stage in the career comes. So at this stage employees look for exposure in their profession they look for advancement at this stage they need less feedback so the need of autonomy increases. And this is also the time when generally people are growing up their families. So this is the time OD intervention pertaining to career planning and development also need to look at how they can integrate the career choices and the personal life. So lot of women workers have to leave their jobs in the late 20s or early 30s in their career and many of them join back in the mid in their late 30s stage. So they need to be accommodated through reskilling through confidence building and other facilities. Next stage comes the maintenance stage which is generally which generally starts from early 40s till late 50s or 60. At this stage people generally look for maintaining their position if they are enjoying their work they generally like to maintain their position and grow slowly in their career. If they are not enjoying they also look for the opportunity to redirect their career path. This is also a time when they enjoy developing younger employees. So OD intervention need to provide the opportunity for the people who are in the maintenance stage to maintain their position or to redirect their career path. Then comes the withdrawal stage. Generally people are in the withdrawal stage of their career around 60 and after that. At this stage the role of OD intervention is helping to a helping to explore and develop the interest outside of the work. Employee need to be helped to identify their interest at the outside of their job which they can joyfully pursue post retirement. This stage also involves preparation and planning for retirement that includes career planning also includes financial planning. So in the career planning stage for the people at the withdrawal stage if employees are prepared and given opportunity to develop their younger colleagues that is very satisfying to them and that is how their talent can be still used in the organization. So these are the ways how the career planning can be done at the different stages of the career of the employees. So we conclude today's session by a quick recap. In the today's session we look at HR function as OD intervention. Within that we looked at performance management and talent management. Within performance management we looked at goal setting appraisal and reward system can be used as OD intervention. Within the talent management we discussed about how coaching and mentoring MDP and LDP and career planning can be used as OD intervention. Thank you.


Hi everybody. I hope you're all having a great conference. Thank you for coming to my talk about Tamland or how GitLab.com uses long-term monitoring data for capacity forecasting. My name is Andrew Nudigit. I'm a Distinguished Engineer in the Infrastructure Departments at GitLab, where I focus on GitLab.com. Let's start with a bit of a backstory. The story begins in mid-2021. GitLab.com experienced a series of S1 database incidents related to high resource utilization on our primary Postgres cluster. Within the company, concerns were raised about the growth rate of GitLab.com and the ability of our primary database to support this growth. If the database hit maximum capacity, it might lead to further outages due to saturation issues. Vertically scaling the main Postgres cluster was no longer an option. It was generally agreed that the way forward would be to split up the main Postgres database into more than one cluster. Since a large proportion of our database traffic is related to CI, it was decided to move this feature to a second Postgres cluster through a process we called Functional Decomposition. This would be a complicated project spanning months. The fact that we wanted to keep the application running while migrating a huge volume of data to a new cluster made it even more complex. A plan was devised and a date set for the completion of the migration, but valid concerns were raised about whether, given the recent spate of Postgres incidents, the primary database could continue to support the growth we expected to see until the Functional Decomposition project was delivered. One option would be to bring the project delivery days forward, but doing so would add additional risk to the project, forcing corners to be cut and possibly leading to further instability. It would be much better if we could confirm that the database would have sufficient capacity, allowing us to stick to the original date, giving the team the space to carry out the migration with due caution. We needed an accurate and data-driven assessment of the available capacity in our main Postgres cluster. Using a new tool called Tamland, we were able to carry out a capacity review. With Tamland, we analysed all potential saturation points within the cluster and plotted their individual growth forecasts to predict which, if any, would hit saturation. We found that if a few small changes were made in the short term, we'd have enough runway to support the delivery of the Functional Decomposition over the multi-month time frame the project was expected to take. So it turns out that this is a pretty boring story. As predicted, we had enough capacity to perform the migration safely, the migration got completed in time, without hitting capacity issues that we were being concerned about, and everyone lived happily ever after. But in software infrastructure, boring is normally a good thing. The point is that we were able to manage risk around an already risky project and control uncertainty. This eased some of the concerns around the project and gave our executives the confidence they needed to now project delivery dates. I found this quote from a paper called SRE Best Practices for Capacity Management by Louis Casada Torres and Doug Colish, and I think it captures the goal of capacity management really well. The goal of capacity management is controlling uncertainty. In the midst of the unknown, the service must be available now and continue to run in future a challenging but rewarding and delicate balance of tradeoffs in play, efficiency versus reliability, accuracy versus complexity, and effort versus benefit. Before I continue, I'll define a few terms that I'm going to use throughout this talk. The first one is the definition of a resource. A resource can be anything that can be consumed and has a limit. A lot of capacity planning literature focuses on hardware resources for example, CPU, memory, and network bandwidth. And these are, of course, very important examples, but there are a lot of other software-defined resources that are equally important to our capacity planning process. Some examples include open file descriptors, cloud quotas and rate limits, 32-bit ID address-based utilization and SQL tables, Postgres auto-vacuum utilization, NAT gateway utilization, global interpreter lock utilization in Ruby, database connection pools, NCPU thread utilization in Redis, and node pool size utilization. These are all examples of the types of resources we monitor, track, and forecast on GetLab.com. By combining all of these, we're able to build an accurate capacity forecast for our services. Four more terms that we need to define are the first being utilization. Now, this should be fairly evident. It's a measure of how much of a given resource is being used or consumed at any moment in time. This always has a unit of measure, for example, open files, bytes, database connections, etc. Capacity is, for any given resource, the maximum utilization possible. For example, the maximum number of open files that a process is allowed, the total capacity of a disk in bytes, or the maximum number of database connections allowed in a pool. Utilization percentage is the utilization expresses a percentage of the capacity of a resource. Finally, saturation is what happens when the utilization of a resource nears or reaches a capacity of that resource. In some cases, saturation, or at least prolonged saturation, will adversely impact the performance of the system. For example, through increased queuing, higher latencies, errors, or possibly complete system failure, planning for and hopefully avoiding saturation is the goal of capacity planning. Here are some examples of saturation events and the typical times that a full mitigation might take. In some cases, the low impact of saturation or the ease of mitigation means that we don't need to focus on these items as a priority in our capacity planning process. For example, in Kubernetes pod CPU saturation should be mitigated automatically within minutes by the horizontal pod autoscaler. So it's unnecessary to focus on these resources in a capacity planning review. However, there are many other resources that once they've hit saturation have mitigation times stretching from days to weeks or even months. The story I described earlier about functional decomposition of our Postgres cluster is one such example. If one of these resources unexpectedly became saturated it could have a detrimental impact on the availability of the system for weeks or even months. That could mean that requests to the service start experiencing latency issues or the application could fail completely. For example, in the case of a Postgres transaction ID wraparound event in which reaching saturation will automatically shut down the database and a disaster recovery operation will need to take place. The goal of our capacity planning process is to focus on resources with high risk or long mitigation times. Let's discuss the general approach that we use to capacity planning on getlab.com before diving into further details. A lot of capacity planning advice that I've seen focuses on the system as a whole using demand signals such as monthly active users or requests per second. They talk about the current utilization in terms of these signals and the total capacity expressed in the same terms. In other words, the current and maximum utilization of the entire system are represented by a single metric. You could call this black box capacity planning in that we treat the capacity as fairly opaque with the capacity planning taking place outside the system and a single metric defining the utilization and capacity of the system in its entirety. The difficulty in this type of capacity planning process is that it requires the maximum utilization capacity of the system to be estimated. There are three common ways of doing this. Guessing, load testing, and modeling. Let's discuss each. The first approach and by far the most widely used is to guess what the maximum... The first approach and by far the most widely used is to guess what the maximum... The first approach and by far the most widely used is to guess what the maximum utilization capacity of your service is. This is known as the back of the envelope method or even the seat of your pants method. It's not scientific and it's not based on data, only intuition. It has many problems. It's almost certainly not going to be correct. You can't systematically improve the process behind it so it never gets any better. It's not scalable and you can't automate it. This means that you're less likely to carry out capacity planning since it's a manual process. The second approach to determining utilization capacity is through load testing. This is much, much better than guessing but this approach also has several downsides. If you're running a large system, setting up an appropriately sized test bed can be prohibitively expensive if possible at all. Additionally, you'll need to create a large cluster of clients. Additionally, you'll need to create a large cluster of clients to generate the workload. This adds to the cost and complexity. The second problem is that it's easy to overlook failure modes which may have a major impact in the real world. For example, pathological clients generating unexpected workloads possibly due to abuse or being incorrectly configured. Building a test suite to generate an appropriate workload can be very challenging too. A third approach is using modeling. This approach involves building executable performance models possibly in a spreadsheet, Jupyter notebooks or regular programming language. The model attempts to capture the performance and scalability characteristics of the system. This approach can be very complex. Additionally, it can be very difficult to validate whether the model is predicting the maximum utilization correctly. The first approach and by far the most widely used is to guess what the estimated capacity of the system is. This is also known as the back of the envelope method or even the seed of your PANTS method. It's not scientific and it's not based on data, only intuition. It has many problems. Firstly, it's almost certainly not going to be correct. You can't systematically improve the process behind it so it never gets any better. It's not scalable and you can't automate it. This means that you're less likely to carry out capacity planning since it's a manual process. The second approach is determining capacity through load testing. This is much, much better than guessing but this approach also has several downsides. If you're running a large system, setting up an appropriately sized test bed can be prohibitively expensive, if possible at all. Additionally, you'll need to create a large cluster of clients to generate the workload and this adds to the cost and the complexity. A second problem is that it's easy to overlook failure modes which may have a major impact in the real world. For example, pathological clients generating unexpected workloads, possibly due to abuse or being incorrectly configured. Building a test suite to generate an appropriate workload can be very challenging too. The third approach is using modeling. This approach involves building executable performance models possibly in a spreadsheet or Jupyter notebooks or a regular programming language. The model attempts to capture the performance and scalability characteristics of the system. This approach can also be very complex. Additionally, it can be very difficult to validate whether the model is predicting the utilization or the maximum utilization correctly. So, estimating capacity is really hard. To make matters worse, the application is evolving very quickly as is the production environment. In a monolithic application such as GitLab, multiple teams may be making changes to the environment and the application simultaneously, making it even more difficult to control for change. Additionally, experiments are running, feature flags are being toggled, and user activity patterns are constantly changing. Any maximum capacity estimates that are produced quickly go out of date and lose their meaning, constantly lagging behind the true state of the environment. This means that the capacity estimates need to be constantly revised through frequent updates. Unfortunately, none of the methods for capacity estimation are easy to perform and efficiently automating them is very hard or not possible. The approach that we use on GitLab.com is closest to modeling. However, instead of trying to estimate the capacity of the system as a whole and expressing that using a single demand indicator such as active users, we treat each service as a collection of related resources and monitor and track them independently. So, the resources for each service are treated as a collection of independent but grouped capacity planning metrics. All of these metrics have different growth rates, thresholds and periodicity. Each new change introduced to the system, be it through application changes or infrastructure changes or even user activity, will impact the resources differently. We do not attempt to aggregate these resource capacities back into a single system capacity as this is error prone and difficult to verify. Unlike when attempting to estimate social system capacity, estimating the capacity of individual resources is fairly straightforward. For example, for disk space, the capacity is the disk size. For open file descriptors, the capacity is the maximum number of file descriptors. And for database connection pools, the capacity is well defined in configuration. The biggest downside to this approach is that we have to track and forecast a lot more metrics, but many services share the same types of resources. For example, many stateful services will share disk space and inode resource types. Many Ruby-based services will share a resource metric representing global interpreter lock utilization. We can therefore think of resources and services as being in a combination matrix, something like what's shown on this slide. The downside to this approach is that instead of having a single utilization that we have to monitor and forecast for each service, we have between 10 and 20 per service. This generates a lot more data that we need to manage and perform capacity planning for, but luckily this is something that we can automate. To further explain, let's dive straight into the implementation, as I think this will help illustrate how this approach works. So in order to build a system that can monitor many different types of resource utilization across different services, we first need to normalize and standardize the resource utilization metrics that we use. We do this by constructing recording rules in Prometheus. All the resource utilization recording rules use the same name, GitLab Resource Utilization colon ratio, but they have different labels to distinguish them, one label for the name of the service and another for the name of the resource. Each combination of service and resource will have one series. The value of these recording rules is between zero and one, with zero being 0% utilization and one being 100% utilization, in other words, at capacity. These recording rules are fairly easy to construct. For any given resource, they are simply the current utilization divided by the current capacity. Here are three examples from the GitLab code base. For GCP quota resources, we obtain current quota utilization and current limits from a GCP quota exporter for Prometheus. For open file descriptor metrics, many Prometheus client libraries automatically publish these metrics out of the box, so they're very easy to obtain. A third example demonstrates how persistent volume claim disk usage can be monitored using metrics exported by Cubelet. This approach results in a lot of utilization metrics being generated. Using the open file descriptor utilization metric on gitlab.com, there are close to 5,000 series for this at present. This is too much data. We need to reduce it down by aggregation so that we can have a single representative metric per service resource pair. Now, there are many different ways that we can do this. For example, we could use an average or quantile, but in most cases, we find that the best way of aggregating these metrics is by the maximum value. This isn't always the case. For example, for some Kubernetes metrics, where we might have very high cardinality, we might use the 99th percentile removing our client values. However, in the majority of resources, we aggregate using Max. The reason we use this is that the highest utilization is the one that leads to saturation and instability in the system. For example, if you have four servers in a cluster and three of them have very low disk utilization, but one of the servers has a disk that's almost full, then that's the signal that we want to aggregate. The average disk space across the servers is below 50%, which seems fine, but one of the servers may be close to failure, and by using Max, we can pick up the worst case for alerting, monitoring, and forecasting. Taking the same example of open file descriptors as we used previously and aggregating on the Max for each servers significantly reduces the volume of data, giving us a single signal per service. If any service has a process nearing saturation for its open file descriptors resource, we'll have a clear signal of it, which we can visualize and alert on. Each of these resource service combinations has a set of recording rules, alert threshold values, alerts, and Grafana dashboards associated with it. Early on, this configuration was hand coded, but this soon became unmanageable with too many combinations of resources and services. To get around this, we migrated to a configuration language called JSONet. This allows us to manage a single configuration for each resource, including metadata, such as documentation, or whether or not the resource is horizontally scalable. This slide shows an abbreviated example of that configuration. We can then validate the configuration before using it to generate all the recording rules and alerts. For dashboard generation, we use a JSONet library maintained by Grafana called Grafanaet. This allows us to generate all our dashboards from the same configuration and ensure that they're always up to date. In fact, most of the dashboards for GitLab.com are now generated from a Grafanaet definition. This slide shows the main utilization dashboard for a service. In this case, a primary Postgres cluster. Each of these series represents the worst case for a given type of resource. This allows us to quickly review resource utilization across dozens or even hundreds of resources that are being consumed by the service. If one of the metrics requires further investigation, we can navigate to detailed dashboards that are generated for the resource. This is what some of those panels look like. For each resource, we generate a full Grafana panel. These six resources belong to our main Postgres instance once again. The aggregated recording rule value is represented by the thick yellow line and the de-aggregated underlying values are visualized alongside those two. This allows us to quickly dig down into the source of a utilization or saturation issue and determine the problem. Of course, we generate alerts for each utilization metric too. Generally, the alerting threshold for each resource is somewhere below 100%. The actual alerting thresholds depends on the nature of the saturation metric and the way in which it's measured. In particular, the time period over which samples are collected. These thresholds are used for real-time monitoring alerts but also for forecasting capacity issues as we'll see later. Now that we're collecting utilization data for resources in a normalized form, we can start analyzing it over long periods of time looking for trends. Luckily, GitLab.com uses Thanos for long-term metric storage. This means that all the resource utilization data that we use for short-term monitoring of GitLab.com is retained for several years in object storage. Here's an example of resource utilization data over a long period showing changes in trend and a steady growth towards saturation. Reviewing this data made us confident that we could potentially be using it for forecasting. We started looking at how we could leverage this data for planning purposes by forecasting future potential saturation. Our first attempt at forecasting was not a huge success. We attempted to use linear regression to predict future growth. Prometheus has a predict linear function that we can employ so our first somewhat naive attempt at building a forecasting engine was built on this function. Since the data could be processed within Thanos, this approach was very easy to do. It was very easy to implement and to experiment with. We could see promise in the approach but unfortunately the forecasts were very inaccurate. One of the main reasons for this is that linear regressions fail to take seasonality into account. In this example, the linear regression is able to determine the single long-term growth trend in the utilization data but fails to take into account weekday peaks averaging the trend with weekend of peak times. Any changes in trend possibly due to application or environment changes are also averaged out into a single growth trend based on the entire historical data set. We knew that we would have to go back to the drawing board. Luckily around this time we became aware of an open source project out of meta called Profit. It's a library written in R and Python for performing forecasting and predictions. It seemed like a much better fit for our purposes than linear regression could ever be and we started experimenting with a proof of concept. It quickly became clear that it was well matched to the task at hand. Here are some of the reasons we rarely like Profit. Forecasting is notoriously difficult to do. It generally requires specialist skills. Profit has been designed to make forecasting easier without the need for data science expertise. Profit works on time series data and can produce very good forecasts without needing specific tuning and customization on a per series basis. This allows us to scale it up to hundreds of forecasts. It's very fast at generating forecasts too which also helps when you have as many as we do. It's able to recognize seasonal patterns for example traffic activity over hours in a day or days in a week. Our utilization data is strongly seasonal. We see the same traffic patterns week in and week out. Profit is also able to handle outliers and missing data really well. Finally it can detect changes in trends and adjust forecasts accordingly. We jokingly called the proof of concept Tamland after Brick Tamland the kind but simple-minded weatherman from the Anchorman movies played by the actor Steve Carrol. We selected the Python version of the Profit Library because we have more expertise within the team in Python than in R. Profit is well suited for use with Jupiter notebooks but we wanted to automate the process of generating the reports so we used the Python library called Jupiter Book which is designed to generate static websites from Jupiter notebooks or from Markdown documents. The utilization data is combined with metadata such as service catalog information and resource metadata to augment the forecast with useful context and descriptions. In a GitLab CI pipeline we import the utilization data from Thanos, run forecasts and generate a static site including plotly graphs showing trends and forecasts over time. We then publish this site using GitLab Pages. This pipeline is run automatically on a weekly basis. This is an example of what the weekly report looks like. It's a fairly standard static website. On the left we have links to the various services running GitLab.com and then clicking through to a service we presented with the capacity planning forecast for that service for each monitored resource. Here's an example of a resource from a service in the report. At the top we have a description of the resource being monitored. This is important because in some cases such as for inodes it's very easy to understand the utilization metric but in other cases some of the resources that we measure can be pretty abstract and having a clear explanation of what's being tracked can really help. Next we have some deep links to Grafana dashboards so that the operator can quickly navigate to access more information. After that we present some dates about when the resource is predicted to violate its alert thresholds and also the 100% threshold. This is used for prioritization and alerting. Finally we have the most important component the forecast chart. This is a time series chart plotted over a 270 day period that's six months into the past and three months into the future. Because of that the current date is always two-thirds across the time series. For the forecast we present the median confidence line and an 80% confidence interval range around that. Depending on the variance in the data this confidence band will be wider or narrower. Let's take a look at some examples. This chart measures our total Git disk utilization across all 80 or so of our Git servers. Recording this as a resource metric gives us a pretty good idea of when we'll need to provision additional Git servers. The provisioning of these servers doesn't take particularly long but there can be a lead time in getting quota limits raised for storage so it's important that we're planning ahead for these events. Here's an example of what profit calls a change point. A change point is an inflection when a trend changes. In this case we see a sudden step up in resource consumption. Because we don't have much headroom on the service and the lead time to mitigating this saturation is long the decision was made to investigate what had led to this change. A regression in the application was discovered and corrected avoiding a saturation problem further down the line. Here's one more example. This resource represents Redis memory on our Redis session storage cluster. The cluster stores session state. If we hit saturation Redis will start to evict old session state with the least recently access being evicted first. If that happens you may need to re-log into the GitLab web application sooner than you otherwise would have needed to. This is caused by a bug in the GitLab application coupled with some unusual user activity. The issue on the right was created around about the time of the event and demonstrates how the team were able to pick this issue up very quickly within a short period of time from the start of the event and long before the issue became critical. Unfortunately, in this case the forecast wasn't accurate in that it didn't predict saturation because it had not yet picked up the change point but it was picked up via manual review with plenty of time to mitigate the problem. Here are some figures from our current deployment of Tamland. We monitor about 360 different service resource combinations but this is growing all the time. Coincidentally, we've investigated about the same number of potential issues within the last 12 months. The Tamland report generation job takes around 90 minutes to run on a dedicated N1 standard egg runner. This job does a lot of caching to speed up retrieval of historical data from Thanos. Tamland is an aesthetic project and we're improving it all the time to make it better and more useful for forecasting for engineers at GitLab. Here are some of the improvements that we're considering implementing in future. Tamland started off as an internal project and it was highly coupled to our specific infrastructure and monitoring systems. We'd like to continue to evolve the project in a way that would allow other people to benefit from it. This would require decoupling it and allowing more configuration options. Further improving the accuracy of the predictions is going to be a perpetual goal for the project. One of the ways that we might consider doing this is by allowing customization of forecasting and alerting parameters for different resource types. Another goal is better ownership to shift the ownership left to product teams. We can do this by sending alerts directly to those teams and finally it would be worthwhile evaluating whether other forecasting libraries including Neuroprofit which is a PyTorch neural network forecasting library based on profit our LinkedIn's Greycott Library could work better. In summary, we use Tamlan to generate a weekly capacity planning report. This capacity plan is tightly coupled with our engineering scheduling processes. The same metrics that we use for short-term resource utilization monitoring and alerting also get used for long-term forecast thanks to our ability to retrieve them from Thanos. Profit is a very useful tool which makes forecasting very easy. I would highly recommend you give it a try for forecasting. If you're interested in exploring further here are some links to the Tamlan source code. Unfortunately, the report itself is no longer public due to restrictions in publishing forward-looking statements now that Kitlab is a public company but all the source code is still available and of course if you're interested in this sort of thing please reach out. We have a large number of vacancies open in the infrastructure team and that's the talk thank you very much I think we're now going to have some questions.


A Pinch of Salt by Robert Graves Red for LibriVox.org by Alan Davis Drake When a dream is born in you with a sudden, clamorous pain, When you know the dream is true and lovely, With no flaw or strain, O, then be careful, or with sudden clutch You'll hurt the delicate thing you prize so much. Dreams are like a bird that mocks, Flirting the feathers of his tail. When you seize at the salt box, Over the hedge you'll see him sail. Old birds are neither caught with salt nor chaff. They watch you from the apple-bow and laugh. Poet, never chase the dream. Laugh yourself and turn away. Ask your hunger. Let it seem small matter if he come or stay.  A Pinch of Salt by Robert Graves Red for LibriVox.org by Alan Davis Drake When a dream is born in you with a sudden, clamorous pain, When you know the dream is true and lovely, With no flaw nor strain, O, then be careful, or with sudden clutch You'll hurt the delicate thing you prize so much. Dreams are like a bird that mocks, Flirting the feathers of his tail. When you seize at the salt box, Over the hedge you'll see him sail. Old birds are neither caught with salt nor chaff. They watch you from the apple-bow and laugh. Poet, never chase the dream. Laugh yourself and turn away. Ask your hunger. Let it seem small matter if he come or stay.  End of poem. This recording is in the public domain. A Pinch of Salt by Robert Graves Red for LibriVox.org by Alan When a dream is born in you with a sudden, clamorous pain, When you know the dream is true and lovely, With no flaw nor strain, O, then be careful, or with sudden clutch You'll hurt the delicate thing you prize so much. Birds are like a bird that mocks, Flirting the feathers of his tail. When you seize at the salt box, Over the hedge you'll see him sail. Old birds are neither caught with salt nor chaff. They watch you from the apple-bow and laugh. Poet, never chase the dream. Laugh yourself and turn away. Ask your hunger. Let it seem small matter if he come or stay.  End of poem. This recording is in the public domain. A Pinch of Salt by Robert Graves Red for LibriVox.org by Ezwa When a dream is born in you with a sudden, clamorous pain, When you know the dream is true and lovely, With no flaw nor strain, Oh, then be careful, or with sudden clutch You'll hurt the delicate thing you prize so much. Dreams are like a bird that mocks, Flirting the feathers of his tail. When you seize at the salt box, Over the hedge you'll see him sail. Old birds are neither caught with salt nor chaff. They watch you from the apple-bow and laugh. Poet, never chase the dream. Love yourself and turn away. Ask your hunger. Let it seem small matter if he come or stay.  End of poem. This recording is in the public domain. A Pinch of Salt by Robert Graves Red for LibriVox.org by Gem of Life When a dream is born in you with a sudden, clamorous pain, When you know the dream is true and lovely, With no flaw nor strain, Oh, then be careful, or with sudden clutch You'll hurt the delicate thing you prize so much. Dreams are like a bird that mocks, Flirting the feathers of his tail. When you seize at the salt box, Over the hedge you'll see him sail. Little birds are neither caught with salt nor chaff. They watch you from the apple-bow and laugh. Poet, never chase the dream. Love yourself and turn away. Mask your hunger. Let it seem small matter if he come or stay.  End of poem. A Pinch of Salt by Robert Graves Red for LibriVox.org by JC Guant Montreal, June 2007 When a dream is born in you with a sudden, clamorous pain, When you know the dream is true and lovely, With no flaw nor strain, Oh, then be careful, or with sudden clutch You'll hurt the delicate thing you prize so much. Dreams are like a bird that mocks, Flirting the feathers of his tail. When you seize at the salt box, Over the hedge you'll see him sail. Old birds are neither caught with salt nor chaff. They watch you from the apple-bow and laugh. Poet, never chase the dream. Love yourself and turn away. Mask your hunger. Let it seem small matter if he come or stay.  End of poem. This recording is in the public domain. A Pinch of Salt by Robert Graves Red for LibriVox.org by Karen Savage When a dream is born in you with a sudden, clamorous pain, When you know the dream is true and lovely, With no flaw nor strain, Oh, then be careful, or with sudden clutch You'll hurt the delicate thing you prize so much. Dreams are like a bird that mocks, Flirting the feathers of his tail. When you seize at the salt box, Over the hedge you'll see him sail. Old birds are neither caught with salt nor chaff. They watch you from the apple-bow and laugh. Poet, never chase the dream. Love yourself and turn away. Mask your hunger. Let it seem small matter if he come or stay.  End of poem. This recording is in the public domain. A Pinch of Salt by Robert Graves Red for LibriVox.org by Leanne Howlett When a dream is born in you with a sudden, clamorous pain, When you know the dream is true and lovely, With no flaw nor strain, Oh, then be careful, or with sudden clutch You'll hurt the delicate thing you prize so much. These are like a bird that mocks, Flirting the feathers of his tail. When you seize at the salt box, Over the hedge you'll see him sail. Old birds are neither caught with salt nor chaff. They watch you from the apple-bow and laugh. Poet, never chase the dream. Laugh yourself and turn away. Mask your hunger. Let it seem small matter if he come or stay. But when he nestles in your hand at last, Pulls up your fingers tight and hold him fast. End of poem. This recording is in the public domain. A Pinch of Salt by Robert Graves Red for LibriVox.org by Lucy Burgoyne When a dream is born in you with a sudden, clamorous pain, When you know the dream is true and lovely, With no flaw nor strain, Oh then, be careful, or with sudden clutch, You'll hurt the delicate thing you prize so much. Dreams are like a bird that mocks, Flirting the feathers of his tail. When you seize at the salt box, Over the hedge you'll see him sail. Old birds are neither caught with salt nor chaff. They watch you from the apple-bow and laugh. A poet never chased the dream. Laugh yourself and turn away. Mask your hunger. Let it seem small matter if he come or stay.  End of poem. This recording is in the public domain. A Pinch of Salt by Robert Graves Read for Libberbox.org by Lella Balka. When a dream is born in you with a sudden, clamorous pain, When you know the dream is true and lovely, With no flaw nor strain, Oh then, be careful, or with sudden clutch, You'll hurt the delicate thing you prize so much. Dreams are like a bird that mocks, Flirting the feathers of his tail. When you seize at the salt box, Over the hedge you'll see him sail. Old birds are neither caught with salt nor chaff. They watch you from the apple-bow and laugh. Poet never chased the dream. Laugh yourself and turn away. Mask your hunger. Let it seem small matter if he come or stay.  End of poem. This recording is in the public domain. A Pinch of Salt by Robert Graves Read for Libberbox.org by Michael Sirwa in Houston, Texas. When a dream is born in you with a sudden, clamorous pain, When you know the dream is true and lovely, With no flaw nor strain, Oh then, be careful, or with sudden clutch, You'll hurt the delicate thing you prize so much. Dreams are like a bird that mocks, Holding the feathers of his tail. When you seize at the salt box, Over the hedge you'll see him sail. Old birds are neither caught with salt nor chaff. They watch you from the apple-bow and laugh. Poet never chased the dream. Laugh yourself and turn away. Mask your hunger. Let it seem small matter if he come or stay.  End of poem. This recording is in the public domain. A Pinch of Salt by Robert Graves Read for Libberbox.org by Mary Mack. When a dream is born in you with a sudden, clamorous pain, When you know the dream is true and lovely, With no flaw nor strain, Oh then, be careful, or with sudden clutch, You'll hurt the delicate thing you prize so much. Dreams are like a bird that mocks, Flirting the feathers of his tail. When you seize at the salt box, Over the hedge you'll see him sail. Old birds are neither caught with salt nor chaff. They watch you from the apple-bow and laugh. Poet never chased the dream. Laugh yourself and turn away. Mask your hunger. Let it seem small matter if he come or stay.  End of poem. This recording is in the public domain. A Pinch of Salt by Robert Graves Read for Libberbox.org by Mark Smith When a dream is born in you with a sudden, clamorous pain, When you know the dream is true and lovely, With no flaw nor strain, Oh then, be careful, or with sudden clutch, You'll hurt the delicate thing you prize so much. Dreams are like a bird that mocks, Flirting the feathers of his tail. When you seize at the salt box, Over the hedge you'll see him sail. Old birds are neither caught with salt nor chaff. They watch you from the apple-bow And laugh. Poet, never chase the dream. Laugh yourself and turn away. Mask your hunger. Let it seem small matter if he come or stay.  End of poem. This recording is in the public domain. A Pinch of Salt by Robert Graves Read for LibriVox.org by Mark William Derbyshire markderb.googlepages.com When a dream is born in you with a sudden, clamorous pain, When you know the dream is true and lovely, With no flaw nor strain, Oh then, be careful, or with sudden clutch, You'll hurt the delicate thing you prize so much. Dreams are like a bird that mocks, Flirting the feathers of his tail. When you see Zatz the salt box, Over the head you'll see him sail. Old birds are neither caught with salt nor chaff. They watch you from the apple-bow And laugh. Poet, never chase the dream. Laugh yourself and turn away. Mask your hunger. Let it seem small matter if he come or stay.  End of poem. This recording is in the public domain. A Pinch of Salt by Robert Graves Read for LibriVox.org by Nate Goldbaum When a dream is born in you with a sudden, clamorous pain, When you know the dream is true and lovely, With no flaw nor strain, Oh then, be careful, or with sudden clutch, You'll hurt the delicate thing you prize so much. Dreams are like a bird that mocks, Flirting the feathers of his tail. When you see Zatz the salt box, Over the head you'll see him sail. Old birds are neither caught with salt nor chaff. They watch you from the apple-bow And laugh. Poet, never chase the dream. Laugh yourself and turn away. Mask your hunger.  End of poem. This recording is in the public domain. A Pinch of Salt by Robert Graves Read for LibriVox.org by Patricia Oakley When a dream is born in you with a sudden, clamorous pain, When you know the dream is true and lovely, With no flaw nor strain. Oh then, be careful, or with sudden clutch, You'll hurt the delicate thing you prize so much. Dreams are like a bird that mocks, Flitting the feathers of his tail. When you see Zatz the salt box, Over the head you'll see him sail. Old birds are neither caught with salt nor chaff. They watch you from the apple-bow and laugh. Poet, never chase the dream. Laugh yourself and turn away. Mask your hunger.  End of poem. This recording is in the public domain. A Pinch of Salt by Robert Graves Read for LibriVox.org by Robert Scott June the 5th, 2007 When a dream is born in you With a sudden, clamorous pain, When you know the dream is true and lovely, With no flaw nor strain. Oh then, be careful, or with sudden clutch, You'll hurt the delicate thing you prize so much. Dreams are like a bird that mocks, Flirting the feathers of his tail. When you see Zatz the salt box, Over the head you'll see him sail. Old birds are neither caught with salt nor chaff. They watch you from the apple-bow and laugh. Poet, never chase the dream. Laugh yourself and turn away. Mask your hunger.  End of poem. This recording is in the public domain. A Pinch of Salt by Robert Graves Read for LibriVox.org by Scott D. Farquhar June 6th, 2007 Baltimore, Maryland When a dream is born in you With a sudden, clamorous pain, When you know the dream is true And lovely with no flaw nor strain. Oh then, be careful, or with sudden clutch, You'll hurt the delicate thing you prize so much. Dreams are like a bird that mocks, Flirting the feathers of his tail. When you see Zatz the salt box, Over the head you'll see him sail. Old birds are neither caught with salt nor chaff. They watch you from the apple-bow and laugh. Poet, never chase the dream. Laugh yourself and turn away. Mask your hunger, let it seem Small matter if he come or stay.  End of poem. This recording is in the public domain. A Pinch of Salt by Robert Graves Read for LibriVox.org by Squid Vajlakova. Found at Frisco-Squid.blogspot.com A Pinch of Salt. When a dream is born in you With a sudden, clamorous pain, When you know the dream is true and lovely With no flaw nor strain. Oh then, be careful, or with sudden clutch, You'll hurt the delicate thing you prize so much. Dreams are like a bird that mocks, Blurting the feathers of his tail. When you seize at that salt box, Over the hedge you'll see him sail. Old birds are neither caught with salt nor chaff. They watch you from the apple-bow and laugh. Poet, never chase the dream. Laugh yourself and turn away. Mask your hunger, let it seem Small matter if he come or stay. But when he nestles in your hand at last, Close your fingers tight and hold him fast. End of poem. This recording is in the public domain.