Hi everybody and welcome to today's presentation on internet and gaming addiction. For the next 30 minutes to an hour we're going to define internet and gaming addiction and explore the metamorphosis of what we consider regular internet use and video game use into addictive behaviors. We'll also explore what makes internet and video games addictive because you know some sites are more addictive than others. I don't think most of us will probably get hooked on google news but there are some other sites that tend to have more of a drawing capacity to them and that will review current treatment best practices and interventions as we know them for internet and gaming addiction. Why do we care? Well the internet provides an immense amount of information although not all of it is credible so people can find constant novelty which gives them a chance to escape. I for example am into organic gardening. I can spend days going through the information that's out there in text and on youtube videos and all kinds of other stuff learning about organic gardening. Does that mean it's an addiction for me? No because I can put it down and go do what I need to do but it's important to understand that someone who is struggling and who wants to escape can generally find a way to escape on the internet whether it's gaming social networking gambling porn video games video games online gambling online shopping that's one I didn't mention and pornography all have the potential to become problematic because they do have a rewarding capacity attention and release sort of thing going on. Social media also has an addictive quality that can cause withdrawal and exacerbate mood disorders and addictions. When we think about social media you know I'm thinking about Facebook in particular but also for the younger generation my daughter's generation it's more of an Instagram sort of addiction and hearing that ding and keeping up on what's going on and knowing what's going on and putting your two cents in is very important in the teen and tween world but for a lot of adults it also can be just completely overwhelming and encompassing and exhausting staying up on all of that and when people are not able to access their social media for example when they're at work or eating dinner with their family or something like that they get anxious they start to feel stressed out so we want to look at what is it about that social media platform or being involved with that platform that is so rewarding and it's more rewarding than all of these other face-to-face sort of activities. So the symptoms of internet and gaming addiction are very similar to the symptoms of pretty much any other addiction it's a behavior that someone uses to escape from either emotional or physical pain or both and they continue to do it despite negative consequences as humans as living organisms we choose things that are the most rewarding so if you're choosing video games if you're choosing online gambling over spending time with your family then we want to look at why that's more rewarding yes you know it's fun but you know why is spending time with the family not fun what is it that makes you not want to spend the time with them lack of control spending more and more time playing video or computer games to get the same enjoyment and this is true of gambling video games as well as online social media and things like that needing to be more involved more in control of what's going on needing to get more of a reaction withdrawing from face-to-face friends and family to the point of disrupting family social or work life there are a lot of people who spend an inordinate amount of time on facebook and other places they also spend so much time that they're relinquishing sleep they're not getting their day-to-day tasks done they're not spending time with their face-to-face friends and they may even be doing it at work which can often get them in trouble a lot of the businesses and places block many of these sites that tend to be more addictive but guess what people bring their mobile devices in order to get around the organization's firewalls experiencing feelings of anger depression moodiness anxiety or restlessness when you're not online and gaming is just one example when you're not in that situation when you're not escaping then you're facing reality or at least you're immersed in reality as reality exists and if you're having difficulty dealing with life on life's terms either because you don't feel good about yourself your coping skills are overwhelmed you're just completely exhausted and stressed out whatever the case may be then when you're not in that escape zone you're going to tend to feel those negative emotions even more and the reason a lot of people go into that that exists that escape zone is to escape from the anger anxiety depression and moodiness another symptom is spending significant sums of money or time with online services computer upgrades gaming systems trying to make sure that you are able to access your addictive behavior whatever that may be and and you're able to be sort of top of your game if you will and preoccupation thinking obsessively about being on the computer or playing video games even when you're doing other things when you're at work when you're driving thinking about what you're going to do as soon as you can get on to the computer when you're laying down going to sleep you can't sleep because you'd rather be on the computer so we're going to start kind of backwards and work to the beginning the consequences of internet addiction carpal tunnel a lot of people who are into gaming develop carpal tunnel syndrome this isn't necessarily a symptom of all internet addictions but it is a symptom of especially gaming uh everybody who has carpal tunnel is an internet internet addict no but it is important to understand that this can can be one of the negative consequences and if you keep playing these games despite not being able to feel your fingers it's going to indicate that there's a greater problem because you're sacrificing your health and welfare in order to engage in this behavior my grains staring at a computer screen for anybody is taxing on their vision over a period of time staring at a computer screen in poor light and probably poor posture over a period of hours can contribute to my grains a lot of times when we're playing computer games when we're online I know I'm as guilty as anybody else when I'm searching online especially on one of my portable devices my posture is deplorable which can lead to neck and shoulder strain which can contribute to my grains so it's important to understand that my grains can be exacerbated or even just caused by some of the things that come out of being on the internet for too long sleep disturbances I said before a lot of people will forgo sleep in order to stay on the internet insufficient sleep can be the person who started playing a game at you know six in the evening and they look up and it's three in the morning and they're like oh crap I gotta get up for work in two hours might as well just skip sleep all together keep playing and then I'll go to work that doesn't function for very long in in a healthy capacity so it's important to understand that sleep helps your body repair helps your body prepare when we are sleepy you know think about the last time you were sleepy you know really exhausted not just you know you know kind of kind of tired how well did you function at work how well did you pay attention when you were driving how easily did the day go compared to days when you had an adequate amount of sleep so insufficient sleep has multiple repercussions for people and then circadian rhythm disruption many people will play video games look on the internet do those sorts of things and not pay attention to whether it's day or night outside they may not turn on lights they may be in a dark room so the body doesn't get the signals of oh I'm supposed to be awake or oh I'm supposed to be asleep circadian rhythm disruptions lead to sleep problems which can also exacerbate depression and anxiety because the neurotransmitters start to get out of whack speaking of which when you engage in a behavior that is extremely rewarding for a period of time not just like you know one one time or one evening but over a period of days or weeks the body says oh there is way too much dopamine in this system so I need to shut down some of the ports that transported out throughout the rest of the body your body adjusts your brain really wants to protect itself so it shuts down some of the dopamine receptors now when you're not engaged in that high pleasure activity you have a normal level of dopamine but not enough is there now to keep the body feeling happy when you don't feel happy you want to engage in the addictive behavior again so it sets up a cycle the really cool thing is that once the body realizes that it's not going to be flooded with dopamine all the time it will start opening those receptors back up or working around depending on how much damage was done the short version the brain can recover and people who had a relatively normal level of neurotransmitters to begin with will eventually get back to that homeostatic state where they feel pretty good even if they're not engaging in addictive behaviors or things that make them feel really really happy physical consequences are back aches as well when you're not sitting with good posture when you're hunched over I mean I watch people I watch my kids I watch other people playing video games doing things on the internet and like I said I'm as guilty as anybody even when I'm surfing on the internet I may be sitting in a precarious position which can lead to muscle strain back tension etc additionally we're not really made to sit still for that long so if you're putting that much pressure on your spine and you're not moving around a lot it can just by nature cause back aches hamstring tightness those sorts of things why do we care well all of these physical things can make it harder to deal with life on life's terms and you're taking somebody when we're talking about inner any kind of addiction and specifically internet addiction here people who have addictive behaviors are having difficulty dealing with life on life's terms so these consequences of internet addiction are just making the situation worse it's a downward spiral social consequences when we talk to people who come to treatment more than 50 percent report that there was a strain in their relationship or marriage as a result of their internet use that's a big percentage but I want you to think about the other person the the other person in the relationship if your spouse is choosing to play world of warcraft instead of spend time with you what message does that communicate now on the other side of it you know thinking from my perspective if my patient is choosing world of warcraft over spending time with their spouse I'm wondering why that's more rewarding I'm wondering what's going on in the marriage or what's going on with the person engaging in the world of warcraft play maybe they don't feel good about themselves they are dealing with some anger that they can't communicate what's going on that makes this escape behavior rewarding enough to risk losing their marriage additionally and and you know I have teens and tweens at home and they are constantly texting they are constantly on instagram they don't really do facebook that's kind of an old people's thing now but they have learned to communicate through text and you know as an old-fashioned person that grew up in you know the 80s before computers happened and when I went to counseling class we learned that 80 percent of our communication is nonverbal well you lose you know at least 60 percent of that through texts yes you have emojis I'm going to give emojis 20 percent but you're still losing 60 percent of your communication through if you're texting so people are not learning to interpret nonverbal behavior they're not learning to communicate in a face-to-face situation if they are growing up texting and in an online situation another situation that arises when people are online a lot is there are fewer controls on their interpersonal behavior you know when we were in school when we were growing up we learned that you can't throw a complete temper tantrum hissy fit every time you don't get your own way unless you're like three but once you get older we learned that that's not acceptable behavior there is a condition if you want to call it that called virtual discontrol in which when people are on the internet they feel anonymous they feel like they can say anything and do whatever so people tend to be really nasty and lash out a lot more on the internet than they would in real life that people will say things in comments on youtube videos or in texts that they would never say in a face-to-face situation unfortunately if you've learned to communicate that way all your life then when you're in a face-to-face situation you don't know how to not act that way so it creates a lot of strain in interpersonal relationships which can send people back into the virtual world where they feel more comfortable where the where they know they know how to behave and get along additionally as we're growing up we learn coping skills by observing people if you are constantly texting then you are not observing how people deal with life on life's terms so they're not learning coping skills they're not learning to interpret nonverbal behavior and they're not learning to self-soothe and manage those angry and aggressive impulses when they're communicating in an online environment finally aggressive behavior is often rewarded online online communication whether it's instagram or snapchat or any of those tend to be very clickish it's like high school times 10 so people can get their feelings hurt really easy and people can be really nasty really easy and people can bully a whole lot easier you know we've heard of all the problems coming up with bullying and social media why are we talking about this this is a consequence well all of these youth that are growing up with these interpersonal deficits are going to have difficulty functioning in the face-to-face world so they're going to gravitate toward a digital world which can lead to internet addiction gaming addiction wanting to stay in that virtual world as much as possible so what makes the internet and in particular video games addictive high score or beating the game these are two things that are more common with gambling and video games if this is a rewarding feature for your particular client then my follow-up question to them would be tell me some ways in real life that you have been a success that you have achieved something and gotten your own personal high score a lot of times they can't identify anything they don't feel like they're successful in real life so they go somewhere where they feel like they can be successful there's no ending to the game and this can be massive multiplayer online role-playing games or you know a variety of different situations pornography is another one and then there are also a myriad of shopping sites online so when we're talking about something that you can immerse yourself in if there's no ending to it that can be very you know rewarding to some people because they know they can stay keep doing that indefinitely so they don't have to face the real world again if somebody says that you know it's just it's constantly new i'm always seeing new things and learning new things well that's awesome tell me about how you can do that in real life or what are some ways that you try to learn new things or what things do you explore in real life and that can be a treatment goal as well if novelty is something that somebody really likes and we're going to get to novelty and discovery also in a minute but there's fact that there's no ending have them identify some things they want to learn about some things they want to do where there's essentially no ending and have them explore those in the what i call the face-to-face world role-playing is another addictive quality of a lot of games and internet sites this can be popular on like i said in games but also on social networking because there are a lot of people who create profiles and portray themselves to be something that they're not they're taking on a role they're trying on different personas to see how they feel comfortable some people also take on a role online in order to vent their frustrations and their anger and everything that they don't feel safe venting in a face-to-face situation because they know it wouldn't be appropriate novelty and discovery if people like learning that's great but there has to be a time when they can turn it off a good portion of world of warcraft is spent exploring imaginary worlds and minecraft is also in both world of warcraft and minecraft people can spend time just imagining back in the day you know back before there were computers people who would buy the dime store novels would do the same sort of thing so why didn't they develop addictions because eventually you'd run out of books you would the book you're reading would be at an end and you wouldn't have another one to replace it online there are there's a never-ending source of books my son just read the harry potter series as soon as he finished the series he went to harry potter fanfiction i mean he's an avid reader and i'm thrilled that he reads but it highlights the fact that if you get an interest in something you can pretty much stay immersed in it for as long as you want to and finally online situations online venues provide a place for people to develop acceptance the people in these rooms are often or in these games can be your allies they can be your adversaries you can forge relationships now i don't want you to think that all online relationships are bad there's a lot to be said for meeting people from other places meeting people who have similar interests who may be on a completely different continent that's awesome it's when this is the only place you can find acceptance and when you shun face-to-face relationships to the exclusion of having online relationships that it becomes a problem and like i said earlier with role playing video games and the online world social networking is a place to anonymously try out different personas to see what you feel more comfortable with or maybe just to get out some of that stuff you don't feel comfortable saying or doing in real life now is this appropriate not necessarily does it happen oh yeah researchers at hammer smith hospital in london conducted a study in 2005 which found that dopamine levels in players brains doubled while they were playing doubled that is big normally it's just a little drop in the bucket this is doubling so it's important to understand that there is a lot of reward value in playing video games so what are the risk factors who are the people that are more likely to to develop addictions and we talked a little bit about this people who have poor interpersonal skills typically have poor interpersonal relationships that's a problem because our relationships they found tend to be our biggest buffer against stress so if you feel like you are completely isolated and nobody gets you and you don't have good relationships with others where you can lean on them and look for support look for guidance just look for acceptance whatever the case may be you're probably going to be at risk of dysphoria and i don't want to say of addiction or of depression most people who don't have good interpersonal relationships have some sort of mental health or addictive consequence i need to escape not being able to deal with life on life's terms and you know you may be getting handed a bushel full of lemons and not everybody is expected to deal with everything by themselves at all times it's just not possible so everybody needs to escape every once in a while but when you need to escape constantly or when the only option you feel like you have is to escape then you are at high risk of developing addictive behaviors if you're easily bored the day to day the mundane people who are really really smart often get easily bored and they need to engage in something that has that stimulation that has that never ending novelty in order to feel excitement my question to them is what are some things you can do where you can feel excitement in the real world you know going out and weeding the garden ain't going to do it for them what is it that you might enjoy doing rock climbing whitewater rafting teaching at a seminar what is it that might be mentally and physically stimulating and then you have people that are just what i call adrenaline junkies they need to feel that rush there are some theories that say they may have brain differences than the rest of us that make it harder for them to feel pleasure there are other theories that say that they've already kind of monkeyed with their dopamine system enough that they need to have the adrenaline rush in order to feel any pleasure that's one of the things that you can kind of work out in counseling to figure out whether this has always existed or it started about the same time as the addictive behaviors now if you haven't watched other presentations on addiction i think it's really important for everybody to understand that addictive behaviors are sort of the tip of the iceberg the behaviors leading up to that the thinking changes the thinking errors the depression the anxiety the low self-esteem that all started long before the person finally said i just i've got to get out of this i've got to escape i have got to numb this out for a little while because i can't take it anymore so true recovery is going back and looking at what sort of started causing it it's kind of like having an infection on your arm you get a cut you know we all have them if you just put a band-aid over it and you don't address the bacteria that's in there it's just going to fester so we need to figure out what's causing the infection so the wound can heal appropriately and not just you know try to pretend it's not there so treatment abstinence from problematic applications and sites because you know what abstinence from the internet in this day and age probably not going to happen most people have to be plugged into a certain extent for work to communicate email watching tv netflix whatever so identifying the problematic applications and sites of its video games gambling sites porn shopping and figuring out how to keep those out of your life and we'll talk about those in a minute and then balanced internet usage the rest of the time not spending four five eight hours continuously on the internet doing what you need to do on there and getting off if your job involves being on the internet all the time then leaving the internet to the job and then when you go home engaging in the face to face world this balance will depend on every individual person so i can't say two hours or six hours or anything it depends on what their lifestyle is like how bad the problem is what the sites are that are causing them problems and what problems the internet use is causing you know in their life if it's causing problems in their family life then we probably want to have them look at not using the internet during family time looking at compromises we're not eliminating we are moderating interventions prevent use parental controls can help by turning off the wi-fi turning off the internet at a certain time in most cases you can also turn off data plans for mobile devices if you go into your data your mobile devices account you can turn off the the data at a certain period of time so like with our kids at home we turn off data usage and we turn off the internet at 9 30 period they can't get out would it be nice to think that everybody could exercise self control and get off the internet at nine o'clock and go to bed and do that kind of thing great yeah it would be awesome but that's not realistic because we all can get sucked into things on the internet and kind of lose track of time so parental controls is one thing and yes maybe you're not controlling it for your adolescent maybe you are the one who has the issue that's okay if you have it set to turn off at a certain time you try to respect that and if it turns into a craving and you just can't get it off your head then you have a relapse prevention plan in place and it also means that you have to get up log on to the computer log into the control panel and change the internet settings the other thing you can do is just give the password to somebody else so you don't even have that option firewalls preventing certain sites from even being able to come into your house you can use keywords to block all sites that have certain content there's lots of software out there that can help protect people and protect families from addictive sites being introduced into that environment timers setting a timer on you know you can set one on your desk if that's going to work for you for my son that didn't work setting a timer for him he would turn it off and you'd be like okay i'm just going to finish this mission real quick 20 minutes later it's like he's still on the computer so we started setting a timer downstairs so he has to walk downstairs and turn off the timer which means he has to stop his computer game right then isn't he can't do the i'm just going to finish this mission or just one more minute and then have clients look for and accentuate exceptions when they're not on the internet or on these problematic applications and sites what are they doing what is it that they enjoy doing besides gaming besides gambling besides looking at porn have them increase those so when they are when they come home from work maybe their first reaction is to come home put their bags down and turn on the computer well we want to change that routine they need to come home put their bags down and do something else for 15 minutes and generally at the end of 15 minutes they're not watching their watch going i've got to get on the internet they've gotten into something else so we want to break that habitual pattern of getting on the internet and have them remember the things that they liked if there's nothing else that they want to do or if they can identify a bunch of stuff that they would enjoy doing instead but then they never do it then we need to start looking and saying okay why is all this stuff that you said you wanted to do not motivating to you what is it that is getting in the way decisional balance exercises are excellent for that to help people identify underlying motivations to continue to engage in escape behaviors instead of interface with the face to face world again when you're preventing use don't forget tablets smartphones any mobile devices another thing that can help is moving the computer into the main living area of the house people are less likely to stay on the computer and just completely immersed in it if other people are walking around watching tv talking and it's easier to monitor computer and internet usage and i said earlier i just mentioned decisional balance exercises decisional balance exercises help you identify the benefits to this behavior because you're doing it because it's more beneficial or more rewarding to you than anything else right now for whatever reason so we need to look at why it also helps you identify the benefits and drawbacks to recovery when we look at the benefits to the addictive behavior it can help us understand issues that may need attention the benefits to engaging in this online world you don't have to deal with people and the face to face drama that's always going on okay so then i would ask what's stressful about that and maybe we need to look at working on some interpersonal skills coping skills or reevaluating your relationships because maybe the relationships you have in the face to face world are just flat dysfunctional we also want to identify areas to target alternate rewards if this environment this online environment is so much more accepting and rewarding okay how can you find that in the face to face world what's missing in the face to face world and how can we kind of try to find that there so you can have people in in real life or i guess online is real life as well but people where you're meeting face to face in addition to online drawbacks what are the drawbacks to you know let's use online video games to being on on video games constantly we talked about migraines headaches just loss of time and this is true as with social networking as well i know people who can get online on facebook at you know four in the afternoon and before they know it it's 10 in the evening and they haven't gotten anything else done identifying those drawbacks and highlighting them because they're not rewarding so we want to remember that everything has benefits and drawbacks then we want to look at recovery what are the benefits to giving up these video games giving up the online gambling giving up whatever it is you're doing we want to highlight these we want to make this as rewarding as possible so if you think it's going to improve your relationship with your family that's great we need to make sure that happens and not just have it be some theoretical construct out here if you think it will free up your time so you can do other things what other things can you do and let's start keeping a list of these new things that you're able to accomplish so you feel like you have a sense of accomplishment and achievement and then we want to look at drawbacks to recovery or abstinence you know if you don't want to recover if you don't want to give up your video games why what are you afraid of what are you afraid you'll have to deal with what skills do you need so this face-to-face world is not so bleh to you and it may be scary it may be intimidating it may be depressing it may be not rewarding have your clients tell you what it is but then we can start to figure out how can we make life outside of video games and online gambling and stuff more rewarding so they can enjoy watching squirrels eat peanuts and sunrises and sunsets and you know whatever it is that does it for them some of the interventions that have been studied in the literature cognitive behavioral therapy this targets the way you think and the automatic beliefs those tapes that you have in your head that you tell yourself that create a reaction when you get cut off in traffic and you get upset you have to ask yourself why did i just get upset well between the time you got cut off and the time you got upset you had all these automatic beliefs that just flooded through your head that happens all the time anytime something happens and you react then there were there was a flood of automatic beliefs cognitive behavioral therapy helps you identify some unproductive beliefs and address them and figure out what you want to devote your energy to because some things you know they just really suck and there's nothing you can do about them so just getting angry and using up all that energy being angry is that how you really want to use the energy that you do have and if not what could you do instead dialectical behavior therapy teaches distress tolerance and impulse control it teaches you that you can feel a feeling because feelings are very natural reactions but you don't have to act on every feeling feelings crest and go away generally in under 10 minutes unless you feed them and if you feed them like the feeling of resentment you can make that last for years feeling a feeling and letting it dissipate then you can use your rational cognitive thought processes to go okay let's go back to the cognitive behavioral therapy and go is this something that I really want to devote my energy to in this process you're also learning impulse control the fact that you can feel a feeling without having to act on it you can get angry without having to lash out you can feel sad without having to just let it completely crumble your world motivational enhancement therapy teaches people how to keep going even when the going gets tough change is not easy so helping people figure out how to stay motivated how to keep moving forward even though it kind of sucks right now is really important in the recovery process because there are going to be days that life hands you lemons so how do you keep moving forward part of that is staying focused on your long-term goal and asking yourself with every action that you choose is this getting me closer to or further away from my ultimate goals acceptance and commitment therapy kind of goes along with that and teaches people to accept not judge how they feel accept how they're thinking feeling and what's going on and then making choices cognitively and rationally that get them closer to their goal instead of just reacting to make it stop finally psycho education a lot of people and I've said this before I'll say it again people don't come to treatment and go I am all that in a bag of chips so let's just talk about my depression the two don't go together the two don't go together with addiction either so when people come to treatment generally their self-esteem has taken a beating for one reason or another so we need to look at that and help people figure out why they are all that in a bag of chips interpersonal skills communication and relationship skills how do you communicate in the face-to-face world how can you effectively communicate if people have difficulty with communication or they feel like people don't like talking to them you can role play and figure out if there are some nonverbals that they're communicating that may be intimidating or off-putting looking at relationship skills you have to nurture relationships online if you're in a relationship and I use the term loosely with someone and you get angry you get in a fight you get bored with them you just quit talking to them and move on and there's you know billions of other people out there in the face-to-face world there are not so many options and finding relationships and developing relationships means working through challenges arguments frustrations those sorts of things which a lot of people who never nurtured relationships in the outside world really developed coping skills learn some and the first thing I do is I start with my client's strengths I say when you get stressed what do you do when you get depressed what do you do these are the coping skills that they've used that have worked in the past so let's build on those instead of reinventing the wheel and then finally goal setting you would be surprised probably or maybe not at how difficult this concept is for counselors as and clients alike when I do goal setting workshops or treatment planning workshops I tell people to tell me something that they do you know one of their hobbies and whether it's taking apart an engine or planting a garden and I say okay now let's take the engine example for this presentation tell me I've got you know a thousand parts sitting out here tell me how am I going to put this engine back together and make sure it is functioning optimally and you know the person will start walking you through well the first thing you've got to do is blah that's all goal setting is then I say okay now let's do that with real life you are feeling depressed right now and in order to get out of this depression or you think you will be free of this depression when you are you know what does it look like when you're not depressed anymore this is our ultimate goal okay now tell me the first step to getting there then the second step it's not rocket science so helping people understand that they can set their own goals but also helping them understand that when you set goals every time you achieve a goal even a little goal there has to be a reward achieving the goal in and of itself is generally not enough of a reward so what are you going to do when you achieve this first goal what are you going to do make sure there are sufficient adequate rewards sometimes people need medications to help them temporarily rebalance their neurotransmitters this is something obviously they're going to talk over with their physician or their psychiatrist there are three kind of classes if you will of medications that they've studied the SSRIs these are your antidepressants lexapro and wellbutrin have specifically been studied in the research that I looked at I don't know about the rest of them now trexone is an opiate agonist it's one that we use um in in substance abuse treatment if somebody overdoses on opiates and dex methylphenidate is a generic form of an ADHD medication so you can see that these three kind of classes of medications treat very different um conditions or symptoms which is why it's important for the person to really talk with um their counselor and their doctor to figure out what is it that's underpinning this behavior depression anxiety the need for the dopamine rush um the need for focus you know just kind of experimenting will be part of the process too because we can't do tests to tell which neurotransmitters are at a balance in your brain it's a lot of it is just taking your history and making an educated guess which I'm sure makes people feel really good exercise it doesn't have to be going to the gym and lifting weights for an hour just doing anything to get your blood flowing increases serotonin and dopamine which are your relaxation and and your reward chemicals additionally sunlight can help regulate the neurotransmitters which are serotonin and dopamine and acetylcholine and all those your happy chemicals to help your body not not only make them but get the right balance and it can also help help your body develop melatonin which will improve mood and sleep so sunlight you get it in the morning it says I'm supposed to be awake and the body says okay no more melatonin it's time to be awake as the sun goes down your body starts to relax it releases serotonin which is your calming neurotransmitter and melatonin is made from serotonin which is why a good sleep routine is so important making sure that you do the same two or three things every day before you go to bed even if you're not going to bed at exactly the same time to cue your body in that hey it's time to release serotonin so we can start winding down for bedtime another intervention is just good nutrition a lot of people who are on the internet a lot especially gamers will not drink enough water because they don't want to have to get up and go to the bathroom they don't want to have to leave the game water is important to flush toxins from the body dehydration can cause symptoms of depression foggy head difficulty concentrating one of the things I point out with my clients is you'll actually probably perform better in your game if you stay hydrated because you won't be foggy headed and have difficulty concentrating you know it's a give and take here and then good nutrition that provides the building blocks for all those happy chemicals can include adding things to your diet like oats bananas chicken dairy products green leafy vegetables almonds and walnuts a nutritionist friend of mine said use a salad plate instead of a dinner plate because most americans way overeat but at every meal have three colors on your plate if you do that you don't need to worry about counting food pyramid groups and calories and all that stuff have three colors on your plate at every meal and try to eat every three to four hours in order to keep your blood sugar stable and that will really help with concentration and mood and a lot of the other issues that people talk about so we've gone over a lot of stuff think back over the past week was there a situation in which you a client or a friend were spending too much time on the internet and it was causing problems what did you or that person do and with this new information what could you do differently or what could that person have done differently and how can you start integrating this new information into your routine knowing that circadian rhythms are important and sleep routines are important how can you integrate that into your routine it's a simple change but it makes a big difference for people like other addictions internet addiction can have physical social financial and emotional consequences in our digital age is highly unlikely that people completely completely unplug we need to be on email you know our boss gets really upset if we go 24 36 hours without checking email do you have to be on facebook do you have to be on social networking sites some people do for marketing but the number of people that actually have to be on there especially for the amount of time they are on there is very small it was important to consider what do you actually have to do similar to other behavioral addictions like eating and sex it's necessary to identify the motivations behind the internet use because just stopping internet use like i said that was the way to escape but if you take out the escape route then the person that's left immersed in whatever they were escaping from and that's awful so we can't just say well stop using and everything will be fine that's not going to happen there was something that happened that happened before this became a problem that they were trying to escape from and we need to address that additionally by its very rewarding nature internet addiction will cause neurochemical imbalances which can lead to depression and apathy yes you can be too happy too much dopamine and happy chemicals flooding the system for too long will cause the brain to adjust it'll say oh i need to turn down the amount of dopamine the brain can readjust but it's important to understand that your brain has a certain level of neurochemicals that it wants to maintain and when you start monkeying with it either by taking drugs supplements medications or engaging in addictive behaviors it's going to try to adjust to maintain that level so it's going to do what it needs to do to protect itself recovery involves under addressing underlying mood self-esteem and coping issues identifying triggers for use and ways to deal ways to deal with them why is it that you want to get on the internet what are those issues and what are things that trigger you to want to get on the internet you know there are certain tv shows times of day you know maybe times in the month um i remember when i was working in in a facility at the end of the month every month we had this meeting and it was a seven hour meeting i can't sit still for seven hours i can barely sit still for seven minutes and i would dread that meeting and the night before i would just get into the most horrible mood so identifying things that may trigger an escape behavior and figuring out ways to deal with them are part of the recovery process and they're also part of creating a relapse prevention plan you have to understand what function this addiction is serving for you and figure out other ways to meet that need you have to figure out how you're going to stop yourself from engaging in this behavior because it's the easiest one right now so what kind of safeguard are you going to put up so you can't easily access the internet or particular sites on the internet um and you know what are you going to do instead just stopping yourself from accessing the internet leaves you sitting there stressed and twiddling your thumbs there has to be a what are you going to do instead thank you for attending today and i hope to see you in future presentations


Hello and welcome to our on-demand CNCF webinar on adopting infrastructure from code. So we are here to talk to you about challenges with infrastructure as code and why infrastructure from code is needed. So first up to introduce who we have here today My name is Danielle Cook. I am a CNCF ambassador and also a VP at AppCD. And I'd like to have my co-presenters introduce themselves. Asif, over to you first. Sure. I'm Asif Owan. I'm one of the co-founders and chief product officers at officer at AppCD. And Lauren. Yeah, I'm Lauren Rother and I'm the VP of product here at AppCD. Awesome. Well, let's jump right into this. So we are going to present to all of you first seven challenges that exist with infrastructure as code. And we want to go back and forth on this and give you some context because we all know that infrastructure as code is widely used throughout the cloud native space. We are sure that you're going to relate to some of these challenges if not all of them. So let's jump right in with the first one around a learning curve. So this one I'm going to throw over to you, Lauren. So talk to us a little bit about the learning curve. Yeah, for sure. So infrastructure as code often requires mastering new tools, right? And especially when you think about infrastructure as code, we often think of in the cloud, but actually also applies to on-prem things. And so you are mastering tools for all of what you're using and that and whatever frameworks they come with. So you're looking at things like Terraform, Helm, Ansible, Chef, Puppet, etc. There's even more than that. We're not going to list them all. That would be boring. So the learning curve can obviously be kind of steep and especially for teams that are accustomed to doing things manually or via a series of scripts or doing things in a console for a cloud provider. And I think hardest of all, most infrastructure as code tools, especially now use declarative languages to define and support infrastructure and resource management. And specifically that means defining what is needed and not how it gets built. And that shift can be really difficult for teams who are used to programming languages, which tend to be imperative. And I know this has been a struggle since even my time at Puppet. So 10 years ago, it makes a lot of sense on that one. So keeping moving on, let's talk about number two, which is tool proliferation, which is obviously something that is not unique to infrastructure as code, but it's something that is everywhere and widespread. But let's talk specifically about infrastructure as code. So Asif, you want to answer this one? Absolutely. So just like Lauren mentioned, there are so many tools that over a period of time, mostly in the past 10 years have been built for specific purposes. And the configuration that any of these tools provide, they resonate with a particular audience. So what I mean by audiences, developers like Lauren said, as an example, Chef uses imperative language. So it's much easier for developers who are used to using imperative languages, which most of the developers do, they can relate to it and they can ramp up very quickly. So it's not that big of a deal. Whereas in case of Puppet, as well as with Terraform, they use declarative languages. So it's not that intuitive for the people or the developers with their kind of background to be able to start using those tools. So the problem with over a period of time, what happens is that in larger enterprises, all these expertise silos that start getting created, and then your workflows or pipelines start reflecting those silos. So there are a lot of tools that need, and which causes fragmentation and knowledge and fragmentation and approaches. So that is something that has turned out to be in the past 10 years or so. As I said, based on at least my experience of working at larger enterprises, as well as interacting with people who work at large enterprises, that seems to be a big challenge. How do they pick the right tools? That makes a lot of sense. And I know something, I've written alongside a working group, I'm part of the cloud native maturity model. And we talk a lot about you are going to have lots of different tools that come into the organization. And as you become more mature, you're going to have to choose what's right for you. So I think this talks a lot about that. IAC isn't necessarily the first thing you use, but it's definitely something that becomes all over the place. And then you need to be smart about it. Okay. So moving on, next up, the third challenge is around cloud complexity. Lauren, go over to you. Yeah. Yay. So lots of tools, lots of choices. But no matter what you pick, no infrastructure as code tool removes the need for you to know, at least on some level, how to create and manage infrastructure components and what those components are, how to provision and configure the services and resources around those components, how they connect to each other, the order of operation that you have to call them in, who among us has not built a config and then realize they put things in out of order and then it can't be built and they have to tear it all down and write the config again, because I've definitely done that. And then on top of all that, you're keeping up with changes in the configuration that you're making and the resources that the tools you're using offer to you. That's a lot to ask of someone. So like, let's think about AWS, right? Like AWS has what, 200 some-odd services and like 800 different resource types. I am pretending like I knew that number off the top of my head. I did not. Daniel helped me with that. So if you're thinking about it, like you have these public cloud service providers, let's say you only use one cool, that's still a lot of things to know. But what if you're trying to get into multi-cloud, now you have to know AWS and Azure and GCP, et cetera. And all of these service providers introduce new services, right? And new resources that offer faster and sometimes cheaper ways for you to perform the same business task. And now you're shifting and having to grow your knowledge. And none of this is your, if you're a developer, this isn't your daytime job, right? Like knowing the cloud is not your job. Your job is building applications and other things. So then add all of that onto all of the third party and open source services that your app is relying on in the cloud that also has to be considered when you're building this infrastructure. And that is a lot to ask anybody to know and hold in their head at all times, let alone to build a config out of it. Well, and we know as an industry, we're talking a lot about cognitive load. It's just like a perfect example of I need to remember all of these things. I just have to remember it. And it's a lot for people. So, all right. Moving on to number four, which is around version controlling. So ask that over to you. Yeah, absolutely. So coming from services being monoliths, right? And over a period of time, containerization has helped us develop applications into microservices using microservices based architecture. All of that is nice and handy. But the problem is that each of these services could be owned and developed by a different development team, right? And obviously, each of these services could have its own configuration. So you're talking about various different life cycles of the services that need to be managed and across various different versions and their corresponding configurations and act to that the complexity of each of these services being tested and deployed and various combinations of these services being deployed as an application in different environments, which is why having a streamlined, well understood process and automated pipelines to handle these various different versions so that at any given time, let's just say that you have an application which comprises various different versions of microservices. And if there is an issue, you should be able to right away be able to duplicate that issue or spin up that particular combination with the exact configuration in a new environment. So it's a fairly complex thing. I try to explain it with some simple examples. And that is one of the challenges, like I said earlier, that large enterprises, especially with that have teams that are responsible for different microservices or the development and release of different microservices are constantly based. Yeah, that makes total sense.  It opens you up to reliability issues, like all of these things that can really hurt an organization and hinder their ability to meet their business goals. So moving on to the next one, it is around drift management. Lauren, back to you. Oh, yeah. So I think maybe with the exception of declarative, a lot of these are issues that kind of happen around infrastructure as code, right? I think they might have happened regardless of whether infrastructure as code is there. This is one that's hard, because it's like, I love infrastructure as code. And this is a problem that infrastructure as code gave us. It's a fun little gift. We all have these things, right? So you have this configuration, and this determines what your infrastructure is. But then how do you detect and track and then remediate drift from that configuration? Because configuration drift happens all the time, right? When engineers of any stripe, whether they're application, platform security, make changes to your platform resources directly, either in the cloud environments via consoles, and they don't use your infrastructure as code, there's like, how do you figure that out? How do you then fix your configuration to match that? And there's usually like a very good reason someone's doing this. I think it's very... I won't ever really get a comment about this. I'm sure that sometimes it's just that someone doesn't want to, but a lot of times you think about it like someone asks you for a really quick change, and they are very high up. You're in the middle of an incident management, and you just have to fix something because you cannot leave your service down. Doing that through IAC is really hard. And unless you have a really robust incident management team that is used to kind of following through full best practices, it's easy to forget to make that change in IAC. And so how then do you find it? And then you have to probably get a tool, because unfortunately, I think a lot of the IAC tools like try to do it, but none are doing it particularly well. It's a really hard problem to solve. And then you're relying on one to try to find it. And that means whether you're building that tool in-house or buying something, you're reverse engineering the creation of your IAC files from the environment state management files. So you've got your environment that is deployed in real life. You're trying to reverse engineer what the IAC would be and then compare it to the one that it was supposed to be, but is not. And now you have to remediate that.  And that is a life none of us want. That can be very hard. So now you're also in a how do I begin to do this in a way that doesn't actually like destroy anything? Really, really hard changes. And that's assuming that everyone who's in charge of the IAC code agrees with all the changes that got made and want it to be there. And you don't have to have several meetings to make sure everyone is good with it. Well, and as you said, if there's an incident, if you put it in, you don't have time to do all that. So yeah. All right. So two more to go. So we're moving on to the sixth one, which is around security, which is always an issue with every technology out. It just is. So Asif, let's talk about security. Yes, absolutely. There are, I mean, there are a lot of security related concerns when you're introducing a new tool, a new approach. Which like Lauren mentioned, IAC offers an automated way for provisioning resources, for provisioning infrastructure components. But when you're defining how the resources need to be provisioned, one of the key things is that you have to also define how you are going to access those resources in first place or get to those resources, which means that in most of the IAC, if you're not careful, you would end up including those credentials, those account credentials, and secrets. So the first point is that the awareness of being able to handle or how to handle those credentials and those secrets in the infrastructure as code files or those configuration files, that becomes very important. So it's between that somebody has to review it and ensure that those credentials are not included in these files because infrastructure as code, code being the keyword there, is eventually going to get checked in to a version control system, which obviously if you have included the secrets, then anybody can see those secrets, even the ones who should not be having access to those accounts. The second big challenge is that of provisioning the privileges, I mean provisioning the resources that are, I mean provisioning enough resources that are required by the application. So not over provisioning of resources. So the obvious thought that comes or goes with the over provisioning is that of cost. But when you're over provisioning resources, the issue is also of access. And especially when you have, as I mentioned earlier, this kind of a microservices based application or microservices architecture based application, you have to be a lot more careful from the perspective of what kind of resources are being provisioned and accessible to each of these microservices. Because in the context of microservice, in the context of application A, needs to have certain kind of access to a resource. In the context of another application, it needs to have different kind of access to a particular platform resource. The third, so it's basically enforcing zero trust. The third key point is that of along the similar lines, ensuring that after you have given access to an application or a microservice that is part of an application to a platform resource, the privileges are not over provision. I like to give this example that if a particular microservice or an application needs to have just a read only access to an AWS S3 bucket, right? Then if you're not careful and if you end up over provisioning and give it read write access, basically the application, if it gets compromised or misconfigured or due to some bugs can end up making the changes in the S3 bucket that you would not want it to make. So those are some of the things to definitely keep in mind. Well, and there's a human error or element in this, right? So humans, unfortunately, we're all not perfect. So everything you talked about requires a level of human involvement, which can, again, open you up to some security risk, which is not ideal. All right. Moving on to our seventh challenge. It's all around enterprise governance. So as if I'm going back to you on this one. Absolutely. So when you introduce new tools, obviously, there needs to be new set of policies that are that needs to be defined in the context of each of these tools. And what is it that they are allowed to do? So what that means is specifically going back to what I was talking about just a moment ago regarding the security related compliance and the policies that need to be applied. What that means is now specific to the tool, there needs to be a call it a roadblock, call it a gateway, call it a check that needs to be introduced so that when these IACs are created to ensure that there aren't any secrets that have been included in the IAC. So many times what happens is that even though the pipelines that have been created for including the checks before the provision actually happens in any of the environments, those are automated, but the review process is still manual. So what that means is as a developer as an example, if I have gone ahead and created my own infrastructure as code from scratch, and I thought that I have complied with the policies while writing the infrastructure as code and then as part of the automated pipeline, if there was a scanning IAC scanning tool as an example, TerraScan, this is a very popular OpenScore project. So if that is used and it flags certain alerts, what that means is that that IAC file that I handcrafted is going to come back to me. And I need to fix it. And which means that I need to have an offline communication and understanding as to why what I thought was right has been bounced back to me. So that could lead to a lot of iterations and hence the delay in eventually deploying the application because as a developer all I want is to write the business logic, deploy the application as quickly as possible. So that is something that needs to be, so what I'm trying to say just to tie everything together is that new tools leads to new pipeline, but from a security compliance and governance at scale, if you want to have the consistency across enterprises, across various different teams, then you need to be careful about the kind of process that you're putting in place with the realization that some of these processes could lead to multiple turnarounds, going back and forth with the developers and the DevSecOps team and eventually leading to a delay in the deployment of those applications. Well, and we know with everything, time is of the essence. People need to get everything to applications to market, new features, new functionality, so speed is important. So we have given you seven challenges, but we're not going to leave you with that. We're going to actually talk about how you solve these challenges because, you know, want to bring problems, we want to bring solutions. So there are three main challenges that were, sorry, three main ways to solve these challenges that we mentioned. The first is golden templates followed by options of new programming languages and then infrastructure from code. So we're going to talk through a few of these and we're going to talk through the pros and cons of each, starting with golden templates. So Lauren, you have created lots of templates. So let's talk about some of these and we're going to start with cons first and then go for pros. So, you know, we're going to flip it a little bit. So first let's talk about the cons. Yeah, of course, we love to end on a positive note, right?  Yeah, so I, having worked at Terraform did actually work a lot on templatizing and how does that work? And golden templates are great, right? They, they save us a lot of time, but they save us time by being really tied to a specific point in time at which they were created. And then they tend to go out of date, depending on what environment therefore that can, or application therefore, that can be very quickly, that can happen very quickly and updating them. Well, if anyone who is here or watching has built software, you know how getting anyone to update anything is very hard. So they also encourage copying and pasting, which is kind of a pro and a con weirdly like, yay, copying and pasting saves you some time, but copying and pasting is prone to a lot of errors because it's a template that person doesn't necessarily have, if it copied wrong or something happened, they're not going to know, right? Like until it doesn't build, they're not going to have the wherewithal to be able to read through that. And that's difficult. Also, when you're copying and pasting answers, that can get strange, right? You don't necessarily know what goes in there. So that's a challenge, too. And it takes a lot of time to make changes to golden templates, right? How do you know what version is employed in place for what application with what team at one time, you have to have a single source of truth from that. A lot of templates are like built in storage or maybe VCS, but like cool, you know where the template version is, but you don't know where it got deployed, that's going to require some fun scraping of your VCS. We all know how great that is. Sure, we've all done that too. So yeah, keeping them up to date, knowing who's deployed them and when and then getting them updated is just a big challenge. That's it. They do save you a lot of time, right? Someone doesn't have to write something from scratch. That is always a win. It's much easier to get started with a fill in the blank than it is a literal blank entirely. It also helps give your developers a step in the right direction, right? They know what order things are in. So that whole problem of like, I have to understand what order components need to be called in already there for you. And you don't have to worry as much about you can inject some nice environment variable stuff, and then no one has to mess with it. They don't have to learn. So that's nice too. Templates. Awesome. Yeah, templates. And I know there's a lot of talk about golden templates and the golden pathway. We like to talk about golden standards, but we will get to that. So Asif, let's talk about new programming languages. And first, let's talk about the cons of this. Okay. So as with any new programming language, when you're introducing a new language or a new way of doing things, there's always going to be a new way of doing things with any new language, even though it falls under, as we talked about earlier, under the category of being imperative or being a declarative language, right? But whoever needs to start using that language, A, they have to learn, B, still, it doesn't take them, take them away from the fact that they still need to understand the underlying infrastructure, the platform resources, how they need to be configured and so on. The third con, if you can call it that, is that it typically or very easily works for new applications, greenfield applications. But how about your existing applications, right?  Do you pick some of those aspects, some of those pieces from there? How do you migrate onto this from the old land to the new land, so to speak, right? So those are some of the cons that need to, and I like to give this example in the context of some new programming languages is that before Java became popular, there were like, at least tens of languages that came about that were not successful, right? I mean, not as successful as Java. So those are some of the challenges or the negatives of adopting a new language. The positive, of course, is that the developers in these days, as an example, AWS CDK, right? They allow the infrastructure to be codified or provisioned using existing languages that the developers are already aware of. But like I said, the challenge is that it's not just about learning a new language, but the thing that goes with it is that it does not take away the fact that the expertise or the knowledge of understanding the infrastructure and the platform resource attributes or each of the resource attributes and how they need to be configured, that doesn't go away. So that still remains. Awesome. So now we're going to go on to the last one, which is infrastructure from code. So first, we're going to define this for you. So Asif, do you want to talk to me about what infrastructure from code is? Yeah. So as the term suggests, right, infrastructure from code is actually inferring infrastructure directly from the application code itself. So basically, take the application code as the foundation and use that foundation or that infer deployment needs of the application to auto-generate the infrastructure-related configuration. And when you're auto-generating anything, as in this particular case, you can have the security-related, compliance-related, best practices-related, design-related policies already be taken into account. And hence, the infrastructure that is generated from this, from treating the application code as the foundation, that could be used without having to worry about the challenges that we were talking about earlier from a security perspective, from a compliance and governance perspective, and so on. Now, do you make sure we're balanced here? Let's talk about a few cons about infrastructure from code. Yeah. So one of the challenges to be very fair and honest about infrastructure from code is that since the infrastructure, the deployment-related needs are inferred from the application code without making any changes to the application code, what that means is now that solution, that IFC solution, has to have the ability to be able to understand the application that is written in various different programming languages. Okay. That is dimension number one. The second dimension in terms of scope is being able to generate the infrastructure as code specification for the target cloud. So it is not a challenge with respect to the approach, but it is a challenge in terms of what needs to be covered as part of the scope, because there are quite a few popular languages on one end, and then at least on the other end, there are pre-main target cloud service providers to deal with. Well, and you know, for somebody who writes a lot of IAC, you might be thinking like, what could it do everything? Like, would it really see everything? And I think, you know, that's where you're going to try it to see. But let's talk about some of the pros of infrastructure from code. So Lauren, we have a few animated options here. So Lauren, let's talk about how infrastructure from code helps you get streamlined. Yeah. So infrastructure from code, because it's pulling from your application, streamlines the application cloud deployment, right? Because it keeps it aligned and it allows developers to kind of stay in the flow and the tools that they use, which is a better overall and more productive experience. And they don't have to know things about infrastructure because the infrastructure is assumed from what they already knew, which was the application code.  And then with improved developer experience, things get done quicker. That's time is money, generally more profitable, right? Also, who doesn't love automation? Like, the whole reason you're probably watching this webinar is because you're at least somewhat invested in automation. It's been a big talking point for a lot of years. This infrastructure from code allows DevOps to kind of do what it originally wanted to do, right? Which is provide developers with an automated solution for deploying applications correctly. And then you don't have to create knowledge silos because you get to utilize the knowledge that you have without having to try to build strange bridges across them. It's already there for you. Well, and then that kind of leads a segue into standardization by default. Yeah. So when you're generating infrastructure as code, rather than having someone write it, you get consistency and security and policy all built in to the application deployment by default. You don't have to remember to do them. You don't have to know how to do them. It just happens. So that means, you know, it's more secure because standards are built into the application deployment process, not scanned after the fact. Side note also less annoying, right? Just hate doing things twice. So this means also that if you're deploying to the cloud, forever, your cloud is more secure by default and you don't have to worry your security team and have them doubt you and check on all your work because they know that this is just getting put in by default. It also allows for governance where standards are implemented as it's generated, meaning things are least privileged and you don't have to be thinking about how all of the different parts of your app are in all the components of your infrastructure are going to interact. We know that for you as infrastructure from code and it just happens. Well, and there was somebody we were chatting to today who was saying policy is worst policy. So, you know, to have something that builds governance in is cool. And so the final pro is there being context aware and I feel like this is one, Lauren, that you are really all over. I do. I love communication. What that sense about me. Also, if you're really into policy, that's amazing. Like we need people who are really into policy. No shade to you there. Yeah, but in this, I think context awareness hits on that too, right? So from development through deployment, each team involved has the context that they need for the part of the application deployment lifecycle that they are knowledgeable and responsible for, right? And they don't have to try to convince any of the other sides why they're right or how they're right. You just have what you need to make the decisions you have to make. This keeps things productive, right? Applications are deployed with dependencies, resiliency, reliability and security all automatically built in. And that just saves the company and you time, money, resources and removes the human error of like, I didn't get a lot of sleep. And so the way I worded this was bad and now no one knows what I'm talking about. And we're going to have a 20 minute meeting because I wrote the wrong word in this one sentence slack DM. Who hasn't been there? I think everything that we've summarized here talks to the business value, right? So yeah, or at a business, the organization, they don't want to do things unless it maps to a business goal and, you know, anything that can help the company be more profitable, reduce risk to be more secure and to be more productive as a team is really good. So we're going to move on to us at CD. We're going to talk a little bit about what we do and how we address this. So we provide generative infrastructure from code. So what does that look like? I'm going to give a quick little summary and then Lauren's going to talk through it. So we look at your application code, we analyze it, we create a visualization of it and we generate your infrastructure as code from the application code. And we do this without you requiring to do any new like learning new languages. You don't have to do code changes. Like it's just done for you. So your developers get to keep doing what they're doing. They don't have to learn anything new. And you DevOps platform engineering team, you also, you get to know that this is being created with the standards you need in place, your golden standards, if you will. So Lauren, why don't you talk us through these steps? I would love to. So first, obviously we're analyzing your application code. Right now, that is Python and Java version two. I learned that today. So excited to share my knowledge with y'all. What that allows us to do is understand the required infrastructure and cloud dependencies that are coming from your application itself. This is inferred via API calls. The core infrastructure we see you trying to call out to service configuration, ingress, egress, environment variables, anything your application is trying to use in order to get its work done. We're looking at statically and analyzing. And then we're visualizing it. So instead of having to read a really fun blob of configuration language that you may or may not understand, you get to visualize what your infrastructure is called. Deployment architecture is going to look like so that you can see all the components. You understand how they're connected. If you know that you need something, say an extra database that you wanted, you can add it in, be it easy drag and drop. You don't have to remember what the exact formatting is for the configuration or like worry about where to put it. We will deal with that for you. It also allows you to connect resources in a way that's safe and guard railed because we will validate that all of the information that needs to be there in order for it to build and deploy properly is there. If it's not, we'll call it out and show you where you need to fill things in. If it's violating policies, we'll call that out and we'll not let you build a nonconforming infrastructure. And it validates the connections between the resources. So you can't put things in the wrong order. We won't let you build any impossible stuff. That sounds like a nice safeguard. And finally, let's talk about generative. Yeah, when you've got all your pieces together, we then generate either Terraform or Helm charts and that is an inclusive or it can be one, the other or both. And we do this with all of those golden standards, all of those policies applied at creation. This means we've said it a lot, but you really care about it, right? Least privilege, least privilege access, only talking to what it needs to talk to. Also includes things like best practices from AWS and Azure, including well-architected framework type stuff and compliance, right? HIPAA, NIST, GDPR, we offer you a range of things out of the box to make sure that your app is compliant with various well-known industry standards. All right. So now we've talked a lot about what we do, but let's actually show you what you do in a demo. We're going to work our magic and see if we can stop sharing and Lauren can demo this for us. Yeah, amazing. Can you see my screen? It is coming. It's thinking about it. Of course, yeah. Still thinking about it? Here we are. Yay. And that was at the end of that, which we'll just ignore. So what we're going to do is we're going to walk through a demo where I am going to play an application developer, but I am going to have some insights about where DevOps comes in because I think there's a lot that our platform has to offer for DevOps. And please also, if you want to interject stuff, I've been talking a lot and people might be quite bored of me. So please have things as I go. So also worth noting before we get started, everything that you're about to see in the UI with the exception of the visualization is available in the CLI right now. So it's just harder to demo because Ben, who hasn't spent hours trying to make their text big enough, we're going to do it visually. It's cuter, but we do have it in the CLI. So when you come to app CD, you're going to log in with GitHub, GitLab, or actually Google, and you're going to authenticate. And then you're going to be presented with a list of repos that you've already onboarded, or you'll be asked to onboard some repos. And depending I've been here before, so I have repos all set up. You're going to want to verify that the repos you need in order to build your project are here. Mine are. That's great. So I'm going to go ahead and get started looking at my app stacks and building a new app stack. What I will be doing as an application developer, right? I'm working on this payment microservice update. It's going to tie to the wish list to let you see what things are in your cart, how they impact your total fun stuff. The cart itself I'm not working on. So I'm going to go ahead and select the language it's in, but I'm going to leave it on the main branch because I'm going to use my co-workers work as I do this. But when I get to the payment repo, I'm actually going to use the branch I've been working in, which is version one. And then when I get to wish list, I'm going to use my fail-safe branch. I can also do this with a Git tag or a commit shot, if that's how you like to roll and you don't like name and branches, totally understandable. So then I'm going to, these are all that I need to build. Also, if you have a monolith, no problems. Select that, select your language, select your branch. We got you. No worries. Not everybody's in microservices. It's some work to get there. It's cool. So all I have to do now as an application developer is I'm going to hopefully name my app stack something good and not something weird. It depends on how I feel that day and hopefully give it a description that will help my future self remember what I was doing. But we're going to pause because there's a lot going on on this screen that I don't have to pay attention to as an application developer, but y'all might care about. So in addition to the repos that I've selected, there is a cloud service. If my platform team had wanted to give me access to a cloud choice, that could have happened here, right? I could have put AWS ECS instead of EKS. We will very likely have Azure coming in the future, near future, but future. So that could be a choice or it can be auto selected for me and I don't have to worry about it. It also automatically figures out what infrastructure is code I need. I don't have to think about whether I need or want Terraform or Helm. I don't have to know that or care. It's just there for me. And most excitingly, in tiny font at the bottom, it says 256 policies applied. Noticeably, I can't get out of that. If I don't like one of those policies or I find it annoying, too bad for me. It's getting applied because this is what needs to be applied to make sure that my app is safe. And I don't have to mess with it. I don't have to remember to pick it. It's just, they're all just there. So, but I'm probably not thinking about this. I'm probably trying to get on with my day. So, I'm going to go ahead and create my app stack. And here is where we're going to see that app CD is statically scanning my application code to get a sense of what infrastructure my application needs in order to work. And because this is a demo, I get to pick when this analysis ends and I choose now. Exciting things about versioning, which I'm going to talk about for a brief moment, is that once I've done this, if I make updates, if I want to see what a different implementation would look like and how it might impact my infrastructure, I can push another version and then I can look at it and compare. So, your versions of app stacks can be versioned along with your code pushes, which is nice. But we're just going to look at this first version right now. This is a visual representation of the infrastructure that my app needs in order to run. Now, we are in the real world as much as sometimes I wish everything could be ideal. This is pretty magical, but it's not going to have all the information that I need to just go ahead and deploy. Immediately, I'm going to have to supply some information. So, I'm going to go ahead and click on a component. In this case, route 53. It's marked by this little error icon. And I have to fill in my host name and the time to live. This is stuff I know off the top of my head. That's good for me and us in this demo. If it wasn't something I knew how to do, though, we are giving you the plain name of the component and the specific piece of information you need for that component. As someone who wrote Terraform config for a while, that can be pretty rough if you are in a Terraform config file and you do not know the name or thing that you're looking for. You're like, I need to fix this block of code. How do I do that? And then you look kind of silly. You're not actually asking questions is good, but I felt very silly trying to ask my coworkers instead of having a plain name for things. This gives you that. But I do know it, which I should because it's a demo. So, go ahead and input that information, click save, and now I'm going to let it, it's going to validate, which of course it's doing because it is from scratch. So, from my app code. So, it's fine. If I had dragged any of these resources off to the side over, this is where validation is super helpful because validation is going to be what allows me to make sure that all of my connections will run and that all of my information is right. Go ahead and validating, clicking buttons. And now I'm going to go ahead and generate my infrastructure as code. Ta-da! I feel like I didn't maybe need a ta-da, but it got one. We've talked about that something that could have taken days, maybe not days, maybe days to create versus, you know, if you were in the office or at your home office creating it, this whole process would take an hour, maybe two at a push, but a lot less time than days of back and forth. Yeah, definitely. And the next part is if I do want to read this and I know stuff about this, great. I can read it. If I need to get signed off, fantastic. It's right here. You can call someone in. They can sign off. If I want to ignore this because it's a staging environment and I don't actually want to learn Terraform, cool. I don't have to learn it. I can just go ahead and export. I'm going to export the generated IFC files. I am going to put them in a PR and I'm going to PR them into my CICD pipeline or deployment pipeline or whatever I've got going that's going to give me the infrastructure I need. And then everything I need is going to get those. Beautiful. Love it. So as we round this out, thank you all for listening to us as we go through this. We do have some resources available to you. So you can try appcd. So appcd.com, you can visit our playground. So if you don't have something or some repos that you can scan and work with and write not use right now, you can look at our playground, see how it works. We also have a free developer edition. So you can totally use it. A CLI as well. And then of course, with every organization, we do have an enterprise product as well. So if you have any questions about this or if you want to get in contact with us, I am on the CNCF Slack channel under Danielle Cook. But we also have created this lovely email address for you CNCF at appcd.com where you can talk to any of us. So I want to thank all of you and thank you, Asif. Thank you, Lauren. It's been great going through this. And thanks. It's been fun.