 I guess we're gonna about to start welcome to preview environment. I'm very excited to give this talk I am Sui Martinez. I am a software engineer based in Boston. Also a AWS community builder I'm very passionate about community and advocating for exclusivity And this is one of the reason why we bring in this talk to all of you guys And hi everybody, my name is a Ramiro, but yes, I'm the founder and CEO of octero Octero is we're building a platform to automate dev test and preview environments for software teams of all sizes Can I get a show of hands? Oh, who knows what preview environments are? Okay, awesome awesome Can we get another show of hands who actually use it at their company currently? Okay, not a lot of you. Hopefully we'll change that by the end of the talk Exactly so, you know by now it's gonna an old saying that every software company is every company's a software company But it became a reality from the moment we wake up You know the moment like we put a shower have breakfast, you know get take the train get to your office We into that would solve work everywhere our phones our appliances our cars our houses It's really everywhere like I've been in this industry for about 20 25 years Back then Software was more of a solo effort, but we're that doesn't happen anymore software is now built by large teams and Software is more than just writing code, right? We have people to write code very important But we have people who design interfaces. We have people that specialize in testing software We have people that specialize in talking to customers to understand their pain points We have people that design businesses business processes that will need Software to provide value for their customers. So, you know, you get it, right? Like there's a lot more in the process of building software than it was 20 30 40 years ago However, we still have a lot of processes that are left over from, you know an older different times This looks like, you know, what the standard of the software development life cycle looks in a lot of places You know through my role at octet or get a chance to talk to a lot of like CTOs VP of engineering And this is still happens in a lot of places. It's another simplification I know but in general, you know, you have a team that will be chartered with implementing a solution to a problem The engineers will the pms will speck it engineers will code it and at some point This code will be put in github github bit bucket Where you're gonna have a code review Your fellow engineers will review your code will give you feedback on style on scale correctness Are the test passing linting all those things at that moment, you know, you will be hey I'm ready as much as changes. Then if you're following good practices, you're gonna have CICD Argo Harness any of these things and you will deploy to a state If you have a what I think is a healthy process Then you will gonna have kind of like other people look at these code changes once they're in staging Maybe your PM, maybe a stakeholder in some cases other teams, right? And then when they have feedback and this happened to me in the past We get into this very contentious process because for most developers They were done. Hey code review past is merged. And now you have somebody from outside of your team You know your random CEO random founder of a startup giving you feedback when you were done and this creates a not so good cycle where people can get in trouble fight, so this is not ideal and If you look at this right see this flow, there's a couple of pink squares there and There's something interesting about that, right? I find it interesting and that's why why we're here to talk about this problem You can see that the code review and then the rest of the reviews are two separate steps at two very different Points of the review cycle. It's almost I was creating two different kind of like Review moments right the first one is just about the code It's not about the value. It's not about the customer. It's not about the problem We're solving it's about the code and I don't know you but I had expedience in teams where the code review becomes style Spaces Thomas linting not really about are we building the right thing? Are we solving the problems that our customers need us to solve? So this is not great No, especially now that we're building software for pretty much everything in our life And then the other aspect of this if you remember the diagram is That code review process is called code review. So anybody who's not Trained to read code and these are like technical people who are not expert in reading code p.m. Designers stakeholders Founders of companies directors even your customers in some cases, right? They are excluded completely from this process. They only see the final step. They don't see, you know So and this is this is not good So but you know, this is the past like we're all here. We're all technologists. We believe there's a better future So what if there was a way for us to kind of shift this to move this pink squares both of them as close as possible To the beginning can we can we shift it left? Can we invite everybody? Can we give everybody in your organization and early access invite to the software development life cycle party? Can we? Yes, we can. Yes, we can we're Meryl We can do a preview environment Preview environment is an isolated environment where you can test your code as soon as the pull request is open Creating a simultaneously like similarly like real production. You get to interact with the changes and see and review your code So as soon as you do a pull request that generates a shareable link a suit And then you now you get to see everyone be part of this inclusive Process you get to provide feedback now just a developer But your stakeholders are just liner get to see these changes and their browser They're no longer need to run it in their local machine. Now everyone is included in this process So now I'm going to put you on the CEO of this famous taco restaurant because who doesn't love tacos. I We've been meaning to deploy this big feature in our application because we knew it was going to enhance our customer experience and However, once the the feature got deployed is not what I envisioned is not what the customer what the customer or the team wanted So we were all frustrated See as a non developer. I'm excluded from this process So I couldn't detect these issues early on or provide my feedback So we impacted our business lost money and potential customers now we had to repeat this whole process all over again and Our developers are not happy about this because that mean they the work that they thought that was completed Was actually not completed and they had to repeat this whole cycle all over again Clone the repo test it on the local machine and hope that in this time. They got it right This effects and I think Romero mentioned on this effect So kind of like the moral of the team the developer doesn't want to hear that their work wasn't done Well, the first round they don't want to mean I'll repeat this process multiple times We want to create like an automated process for them This impact is gonna eventually if we could kind of repeat this process we gonna impact our business are the moral of the team and Potentially lose a lot of money. So I want to change this. I know there's a better more effective approach from Miro Can I see some of these changes before it goes live? I know you want to our great developer Yes, yes, we can great. So we're gonna show you now is the process. We just implemented Now we use Kubernetes. This is a lot easier than before. So now we have preview environments in our changes So I'm gonna show you what we've been working on and then you see how how much better it is so first, you know for all of you if you haven't heard of The famous taco shop that we work at This is what it looks like is the software to validate our our taco store very simple You put some orders you put your email you order them and when they're ready Tacos are on the way. This is a microservice application We're on son on Kubernetes and the source code is available. You do want to check it out later All you need is a cube cluster and QCT. Yeah, so it works microservice is the whole thing So what I did was You know we're in Cufcon Chicago has great Mexican food by the way you should check it out But they're also known for another food item which is pizza pizzas So I figure why not let's just have another version of our application branch into the new market For hungry conference course So what we did is we implemented preview models. The first thing that happens here is that when the developer opens a pool request You now are gonna see two things, you know, you have the code So we can check it out. You still see make sure we follow the standards that the logos are the right format right size all that stuff but The beauty of this is that now you have a live environment that was created on our cube cluster for this I'm using a cluster in Siebel running in in New York standard vanilla Kubernetes And you can see these links and you can see the application up and running So let me go here and you can see now that instead of tacos. We have pizza Hold on. I noticed the logo is not up there. What happened. Oh That's a good point Something something happened here. I don't know but I'm glad you caught it. Thank you. Yep. We didn't have tests for this I looked at the code and the low was there It's there you see the it's called pizza This is a good reason why we have preview environment and we can see it the co has been changed But it doesn't reflect it on the visual integration of it. Okay, so we can improve that. I magically fix this already I did it Talking But you know we have a separate pool request same changes, but you can see now it's a different preview environment Different number different URL. It's a different names between Kubernetes. And let's see this one. Oh, this one has See has the logo. It is one, you know, it has the menu for a dip dish things like or my favorite pineapple pizza And you have a logo for the conference all those things but you know The cool thing about this is you know, if you click on all the other Links here we have them that application running. So we could even you know, like verify that actually I can order a Pineapple pizza and then we see the integration is working in this case It went through a queue to the other system that cooks in the back end. I'm gonna cook our pizza The check will be generated I can even see the receipts and you can even see that actually make some changes here to show you That there's pizza and this is the big value of premium out of this you have fully into the environments They look as close to portion as you want They're easy automated available. And as you saw this enables a much healthier better Conversation between developers stakeholders customers to help us build better software faster And now we're ready to start selling pizza No, I appreciate you for fixing that Okay Okay, so has from your mentioned Previous environment like having the early feedback increased the faster to hit to market It also fostered that collaboration not just with the developer But with the rest of the team to increase exclusivity Foster that collaboration also includes means that the business is gonna be better because now you're given room for diversity Ideas to be developed innovation to happen And now everyone feels, you know, have that VIP access to the party And essentially no one misses out on these delicious tacos So why Kubernetes? So I'm pretty sure you guys are familiar with Kubernetes Kubernetes such a powerful tool there allows you to do a lot of different things and adjusts depending on the demand of your business You're able to do it Manage large infrastructure a lot of the microservices and you can easily create these resources and clean up as soon as you no longer need them Essentially being more cost-effective than other approach And these are also like easy to automate a lot of the processes as well and one of the reasons and this is on a high level of what happens with github actions and Kubernetes on this diagram. We see like when we push the code to github that signals or trigger Github actions to now create this build and now essentially now able to deploy your your project We'll create this isolated environment where you can test your code And see a vision integration of what that looks like simultaneously Like it will look like in real production. So now we are not alone here We've done some case studies of companies that are integrating this and have seen the benefits of previous environment They understood what previous environment can do for their company. They know that they can like create You know faster they can you know upscale faster that's how these issues and performance of their application And also increase exclusivity Mander team they understood that just not the developer is could be part of this process But everyone can share Innovated ideas and in different feedback and we can essentially make a better product after that I'm actually this morning. I wish though the skill ahead of me the other way around But this morning was a great talk in argocon on how master class implements preview environments for their teams using argo Kubernetes crossplane and a bunch of our technologies. So the recording will be out in a couple of weeks It's a topic that you care about. I highly recommend that that's a bit more technical they talk about Manifest generation parameters was a really good talk on the power of this and you can see the scale This is like large companies with thousands of free environments and how well Kubernetes allows us to just manage them and Here's like like a call to action for all of us is There's a lot of evidence that pre-environments make everything better Like for the silver the life cycle quality Testing verification so highly recommend you to kind of take a look at this as you saw in our demo Is it's not hard to start you can start simple? You can do it either open source or there's a lot of vendors out there We're doing this including including Oktero, but you know start simple leverage the ecosystem. There's open source. There's commercial. There's a lot of guidance The important thing here is out of my everything Make sure that you have that sweet spot of like nobody has to think about this create a PR Create a pre-environment close the PR destroy the pre-environment and the most important thing is evangelize I think that the technology part is Straightforward I think what we all need to do as people in the the edge of technology is Talk more about this for me one of the aspects that I love our community is how we normally talk a lot about technology But also about the humans and the value and how technology helps us solve problems So please help us evangelize this if it's something that you believe it's important go back to your team Share this share the other talk. I'm sure there's more talks on on this topic today Because it's important right like building software is more than just code We have larger teams different functions. We can all benefit from people being able to give us early feedback So please please help us and here's the list of Of some of the vendors out there is not included. There's a lot more doing this You can do it our goal. You can do it like everything yourselves. I don't recommend you do that fine A good partner, you know, each of this company is dusting a different way depending of what you need Check them out Most of them have free vast tutorials What's important is, you know, pick the right tool for what you want to accomplish But you know, I'm a big believer free environments course by us here, but do check them check them out And essentially again, this is all about bringing everyone to the party not just the developer into the process Everyone has like a valid feedback to bring And create a foster this happy medium with within your team and essentially create a bit a better business for you So when we think of preview environment, we know it builds better product But the most important is that working together as a developer and the rest of the team to come into the same page To deliver the best possible experience for your customers. It's essential goal of preview environment And this will be like what it will look like you implement your solution and As soon as the pull requests happened, you see your core review and a vision integration What that looks like you get to interact to provide your feedback now merge it and voila here to go And now this is it If you have any questions we're here Yeah, one in the back So and except what we have We're using the triggers to give action when the PR is they're merged or closed To do the tear down and it's gonna be as simple as the lead and in space or if you have something more complex That's where you can use our go crossplane Terraform any of these tools to manage the lifecycle of your cloud services microservices all those things like we would our customers implement One of these things with QCTL helm and and all these triggers that the different CICD systems have Yeah, but that can be a challenge and there's no there's no silver bullet out the scalars things like carpenter Work really well for this Part of the work we've done with our customers isn't going to help them understand the sizing One thing that we've discovered through use especially seeing the pretty environments at very high scale Is that they actually take a lot less resources than one thinks because most of the previous environments are not used at scale They're deployed You use them a bit and then you close and that's what investing in a good cleanup sequence is very important Setting up requests and limits ski having a closer to the outer scales and that it scales down Other these vendors ourselves included also implement things like Garbage collection policies so that the after a few hours is shut down It's put a scale to zero when there's no no requests in a specific time period You do have to invest in those things to make it easier because You can just put your closer to the scale forever But cost You have to watch that as well We haven't seen that much the errors because of capacity the only one and it's kind of a very tactical trick is When you serve your cluster make sure you have enough eyepiece because actually that the one thing we've seen people hit Faster rather than resources is when they have too many pots In a single note because at least in the AWS I think hundred and ten hundred twenty pots is the maximum and you have to play with like your VPC configuration to get my piece so you have to measure these things But that's more of a concern. You want to set it up We've seen examples of very large scale Thousands of privy environments, you know per day and that's why like and we would say it's early Why kubernetes is such a great technology for this because you know This was for infant scale in like high density and that's a great thing for people about it because you want them to be cheap fast and effective And the other questions going once Well, if I talk later, we're gonna be here, you know all week Connector, it's our cure code points to our Twitter accounts websites and stuff like that We love to continue conversation outside of the conference on X on mastodon or your favorite online medium and if you have any feedback feel free to also provide it We also welcome feedback to have to get better in the next one. So thank you for We're enjoying us today You