Conf42 DevOps 2025 - Online

- premiere 5PM GMT

Environment as a service: unlock innovation and speed up products development

Video size:

Abstract

At your organization, how easy is for any product team ask for a new environment or either scale an existing one? It should be as fast as possible to not disturb fast flow to production.

Summary

Transcript

This transcript was autogenerated. To make changes, submit a PR.
Hi everyone. Welcome to my talk. I hope you will enjoy it. So let's start. What I have prepared for you today is a talk about environment as a service. And I hope I will explain it well enough to help you understand how with this practice you can unlock innovation and speed up product development. Why I'm talking about this today for you? Well, first of all, my name is Caio Medeiros. And, I have been playing as DevOps human, a huge part of my career, but also a software engineer. So I'm going to talk from my experience working with teams. and in the last, six or seven years, I, I had the chance to work with the different teams and different companies. So taking all this experience, I want to explain this practice to you. also I had the chance to start, being ambassador for DevOps Institute, platform engineering, do my, my participations in the communities. And I will be bringing the DevOps Days to Santiago first time in the history with some folks. I hope if you have the chance to join us here, and also with Open Source Santiago, we are generating some content, Time to time and we are planning also to bring the key CD if you are able to come to Santiago, drink some wine and enjoy with us. If you want to connect with me, just scan my QR code and the request to connect in LinkedIn. So let's start with the talk. And this is the structure I prepared for this talk. We're going to Check first what must see behind the continuous improvement process to unlock innovation inside companies and improve the productivity. And later we're going to talk about what I have seen and how we can go through the practice everything environment as a service to help organizations on that same path. So the first. I think I have seen there is, or what Massey is, the adoption journeys of these three main topics, the endless adoption journeys, because again. It's about the continuous improvement. So continuous improvement is not something with a clear end. So it starts and probably whenever I end or just will stop for some specific reasons. But what I have seen or people see based on my experience is Agile transformation processes to improve the customer focus and the time to market. DevOps adoption journeys to a customer. Increase the productivity of teams working throughout the software development life cycle at the same time, ensuring the reliability of these products and the platform engineering to ensure that the experience of the engineers behind the agile and DevOps adoption journey is the best one. At the same time, is standardizing the practices they will be implementing to. You know, live the principles, values of Agile and DevOps. So to, to have a better understanding, I wrote this, my vision of the software development life cycle is just, a small, or let's say macro vision of the software development life cycle now, a small value stream mapping where the customer is in the beginning, right? And all the needs or ideas of this customer will come through the. Ideation phase to later develop a requirement, verify and promote to production, an amazing product that will solve all the needs of these customers that, probably we know everybody know that, Each of these phases, they have a specific roles or sometimes specific teams assigned with the ownership of the specific phase or some of these phases, depending on the structure of the organization on how they did the transformations that we have been seeing in the last 10 or 15 years. But definitely we still have some organizations with teams that are creating this wall of confusion between them. Reducing all the possibility to improve the productivity or the reliability of their products. They are generating with the software development lifecycle. So through this three main or most popular adoption journeys, we're going to see, People or the leaders of these adoption journeys trying to bring frameworks like Scrum. The Scrum is the one that they have seen is the most popular, to some frameworks to scale, the adoption of agile inside organizations like safe, trying to reorganize in the teams in product. Multidisciplinary teams where all the different skills will be there. So the ownership of the whole product life cycle will be in inside the team, reducing all the handoffs and delays that we can have with other teams. Obviously, the, the, the, the restrictions will still exist. That's why Scrum has the Scrum Masters, and the Scrum Coach to improve the communication between other teams, and implementing the integration practice to release every, two or one week, right? that will help. Definitely. I have seen that has a good result. I don't like at all all the different specific details behind some frameworks, but definitely it's something that works for specific to improve specific phases or specific parts of the software development life cycle. Later, when we talk about DevOps adoption journeys, the most popular practices we have seen, what people see in the market is the implementation of CICD and everything around CICD, right? Continuous integration, continuous delivery, and continuous deployment. Trying to reduce the human touch with automation, right? To give the chance to engineers to work on creation. On put their minds on generate value, moving left all or shifting, shifting left all the quality and security gates that usually we have later in the software development lifecycle process and promoting practices like everything as a goal, testing automation to reduce even more than human touches. And finally. Not only related to platform engineering, but, for all the three adoption journeys, we're going to see AI everywhere, everywhere, because with AI, we have, some success. For use cases like generating, auto generating the testing code to do unit testing to your, regression test or load test, helping developers to code or engineers in general to code, to create the infrastructure as a code as well, if we need to talk about the infrastructure or, operation side, reducing the time to solve issues because sometimes, People rotate to a lot in IT world, so sometimes it's not the same person, not the same engineer who needs to fix an issue or who wrote the code. So using AI we have seen that this can be improved the time to solve issues, to generate documentations and some other use cases. So even without this Different adoption journeys focus on this most popular practices or movements. If we want to say that, we're gonna see that not all metrics will be showing as good as we want to, right? In case of agile, some of the ones, the metrics I have seen is spring burnout, customer satisfaction, cycle time, lead time. And focusing on specifically in the metrics that are measuring. Time here when we talk about lead time or cycle time, it depends really depends on where you start to measure to really know if the whole cycle is improving or just part of the cycle, which is okay, right? We can improve the whole cycle, just improving some part, but we're going to reach the end. Some levels, we're going to reach some level of improvement and from there it will be hard to keep growing, right, to keep improving. And we're going to see this in some, in an idea I have so in the other section of this talk. Later with DevOps metrics, we have the Dora metrics, the most popular metrics in the market, right? Due to the Dora reports, the state of DevOps reports, right? there we have delivery time, the volume and frequency, time to restart, change failure rate, and, the idea I want to broke with the environment as a service, will not be visible in some of these metrics. And that's why I'm putting them here, because, as well as, some agile metrics and platform engineering metrics. The in a pass on boarding time mean time to unlock on resource allegation. Sometimes they are just focusing on show what is the current state or where we are in with some specific part of the flow, right? So I want to invite you to see what I saw there, right? Because, A lot of organizations using this matrix going through these three adoption journeys and trying to implement those practices we already talked, discussed, they seem like, they see that like they are, they are having success. They are improving. Everything is going good, but they have so that developers are burning out. Do some other reasons, some other holes we can find in the software development cycle because maybe I'm automating everything after my commit push, my commit and push to the core repository. But what happens before if I need to start a migration to cloud and, the, the unique, support they have inside organization is provisioning the resources, but they need to go ahead I need to go to other side to request network configurations and I need to go to other side to request certificates. So everything it's in different teams or even in small companies, the is the same thing who wants to who must own everything and manage everything. So all these different holes will generate problems in the flow that cannot be solved with the traditional We are at least the common practices. We, I, I, I mentioned it before. So what I, I, so, as main problems, or if I need to put an example of Some of these holes. The first thing is lack of knowledge. And, you're gonna say probably. Yeah, it happens. It's normal. Lack of knowledge is something that we can we will live with lack of knowledge. It's a problem that we're gonna have all time. If we don't have the expertise inside the organizations and thinking on in all 80. It's a common problem even more and more. But there I also have seen lack of capacity, lack of budget. That again, you may say it's, they are common problems. so to, to reinforce this problem that probably you see, yeah, it's a problem at the fact that I have seen, in with some of the teams I have worked is, They took from 3 to 24 months to adapt, to really adapt new technologies. So it's a, it's too much time, right? If we want to innovate and be better than competitors and win in the marketplace. Same thing happens with the tractors. People that is saying, if it works, don't touch it. Let's leave it there with the speech, like, we are using, this process or this standard because we are used to do like that. Or someone else told me I need to do that and I don't know who decided this. And the standard says that, have you ever read the standards? and also sometimes the standards are, based on interpretation and it can generate a lot of biases. And the fact gives a story again, because 70 to 80 percent of the teams I have worked, they had the tractors, they had the skills to, start, in, improvement path. And later, we have the bureaucracy that, is one of the holes I want to reinforce with the, Environment as a service practice because the bureaucracy generates a lot of burnout on teams. the probably most of the organizations are trying to solve this with platform engineering and the agile and DevOps. but, in the organizations they have worked, mainly in the bigger ones, even having years working in the adoption journeys. They still have some problems with bureaucracy and the fact they cannot look at the software development life cycle as a whole process. They just focus in specific phases of the flow. And the fact kills the stories again. Some teams they have worked, they waited during three to six months to for their environments to just start deploying some small POCs. It's crazy. It's crazy. That definitely will block any kind of competence the organization can have. So where to start with the environments as a service and how to approach this to, face the challenges and try to, solve or remove the holes I mentioned that before. The first thing is a start by name, there is no way to improve if you don't know where you are, that's part of my, my, my, my pillars, my mindset, and they want to share this with you before to even talk about the practice because DevOps, Agile and platform engineering practices have been shared in the last years as something that can be reused and definitely it can be done, but, it depends a lot on the reality of each customer company, right? Sometimes, there are some practices that will really help the organization. Sometimes, they gonna do that just because they want to have. C I C D as an example, right? So Gator data from the value stream is important to understand if the efforts you can put to implement some practices will really generate the value expected Gator the data, do some Gemba walks, walk with teams, understand what they are doing and understand these holes they can have in the in the process and be as much as possible open with your mind to go fewer, even more to the left, right? Or even more to the right, because maybe there is the holes that is really generating delays in your software development life cycle. So there, having that in mind, let me introduce my understanding of environment as a service. Definitely, it takes some ideas and principles from these three different adoption journeys, the endless adoption journeys I introduced later. Before, sorry, which is Agile DevOps and Platform Engineering, mainly DevOps and Platform Engineering because the teams to go and implement the practices. And the mindset of DevOps, they're going to need technology, they're going to need, the environments where they will be able to automate the deployments, where they're going to be able to automate the monitoring, and improve the practice of DevOps and all the different roles in between them, or even Before after them. So if we take the idea of platform engineering on generating platforms as a product inside organizations based on the needs and exposing them as a service through API's, we're going to have an example on how to implement environments as a service because, What I have seen here in the market working with teams is usually they request for environments, and the idea of environments is just the resources, but it's not just that. And when they reach production, they discover that they are a lot, they are, they have a huge gap on non functional requirements and, specific security conditions to reach production, generating a lot of delays. So I'm not talking about Infra provisioning or configuration provisioning, right? This is just a small part of it, right? it's not a matter of, putting as a service the generation of a virtual machine or to request a namespace environment. I'm talking about, To something greater than that. Also, it's not just reusable assets, right? This is a common service that the organizations are trying to implement generating in their source communities inside the organization to share, Small pieces of technology that can be reusable to to improve the activity of teams and also very used by platform teams. I have seen that the platform teams are generating a lot of community inside organizations to avoid teams to reinvent the wheel. But also, I'm not talking even. of user management. It's these three things are parts of the idea of environment, right? An environment. It's a concept for me is everything you need to put your software and make it run. So that's the definition of environment. I want to generate the shared understanding between us right there. It's everything that need a team needs to start working. On their, release of the software they are developing of the product they are delivering. So it's a box with a lot of things inside. Resources. I'm talking about infrastructure and configuration things. Secrets. Credentials to connect with the third parties, services, databases, messaging brokers, processes to understand how I can promote my software to that environment. What is the standards I need to follow? What kind of authentication, authorization, non functional configurations I must ensure to promote something to production inside my organization. The rights, the permissions to my internal team, right, and also other support teams to ensure that this environment will be useful. Assets to reduce the reinvention of the wheel. Ensuring that the teams are using the right. Tools, the right files, the right configurations, and finally documentation, which is, something, I have seen, it's, one of the worst things that, platform teams I had the chance to, to work with, they, they must take more care of documentation is, is the way to solve the gap of knowledge, adopting new platforms and environments. It's something similar, right? when we talk about the commendation, it's, Achilles, fit, for every product team, Because, since they are focusing too much on generate the product, sometimes they delay or they forget to create documentation. So environments will be everything a team needs. So, and also in specific organizations, well, in each organization, the needs of an environment will be sometimes different, right? So that's why I think the generation of this environment should be a product. An internal product and as fast as you can provide these environments will have the teams to not only generate value throughout the software development life cycle, but also will help them to modernize their applications in the future, right? Some of the experience I had was, some teams trying to move from, virtual machine based environments to go to containerized environments, and they Waste a lot of time, like around three to six months just waiting for the first environment to do the first POC of that migration. That's crazy. Not, competitive at all. Some, some other takeaways I want to share. For you today, in order to really be successful, if you want to go and try to implement the environmental service with this, this, conception of environments in your organization. One of the things you must take care is this is the costs. So something we discussed a lot with my my friend Francisco Meneses in the last Q comes out Lake City. Which is, if you want to give environments to, to the teams, you, you need to understand the money is, limited, right? It's not a, endless resource. So, here it's important to make it visible. If the information is there, if you are monitoring the costs of generating an environment, it's enough to generate the shared responsibility. And say you have your budget. This is the costs you're going to have if you request this environment and give also the chance to have a trial plans, right? Maybe I can request an environment during one or two days to do a PLC and I can have that environment in a matter of minutes or one hour, maybe, and remove all the burnout or all the stress of waiting for an whole environment just to be able to try. That environment to try that technology. Another thing which is super important. I have seen makes the difference between the success or not are the failure is generating training. Training, and observability enough to, again, generate this shared responsibility because we're going to have different teams here. It's not the same team which will use the environment, who will be providing this environment as a service. Which can be even a platform team who will be providing this environment as a service. So the different teams using the solution of environment as a service, they will need some training, some preparation to use the platform. And also they will be able, they must need to see what is happening there, to understand what is happening there. So the team, That will be in charge of generating the environment as a service. They must ensure that the solution is understandable with the logs. It's generating the messages, right? And also have a huge amount of knowledge base to train the team. Sometimes I will Try to correct what I said on huge training knowledge base, I will say, as better as possible to guide the teams as fast as possible to start using the platform and later, last but not least, I think it's super important to have a clear service level of agreement. With the support team providing some connection with the users of this platform and the engineering team working on continues improve this solution of environment as a service and the delivery time is a is a corner. Stone that you must take into account, right? As I mentioned that before, the experience I had with some teams waiting for months to have the first environment, the delivery lead time of releasing from when I requested the environment to when I have the environments in my hands can make the difference between a company that will win And release a new feature to a company that will be the last one releasing that feature in the marketplace. So the last part of this talk is, helping you to understand what kind of tools you can use or what tools I have investigated and tried to implement environment as a service. The first one is crossplane. I had the chance to. Talk with, Victor Fabric and the last KubeCon Satellite CD to discuss a bit about the environments, ephemeral environments. Well, cross plane is, control plane to connect, to manage, providers of infrastructure providers of configuration. It's super useful because you can define your. On APIs, and it's highly extensible, so you can manage the back end and configure some controllers to manage this environment, ephemeral environments that I mentioned that before, or even generate connections with some kind of providers that are not Available by default in the tool, definitely it will help you to generate everything you need for an environment as a definition and orchestrate everything for you thinking on those environments that are that are related on where you're going to offer a service later, deploy an application, release a service, to, network service, The other thing you have is, that I think it's important is the technology agnostic that some to some platforms provides like a test cube test cube. It's a platform that enable you to orchestrate testing throughout the software development life cycle. And for testing, you also need environment. Right? Environments as a service and test cube can help you to generate these environments as a service to do testing to ensure that you can move this feedback of, if your unit, functions are working as expected, if your user flow is, working as expected, if the load is the expected for your application. So with test cube platform, you will be able to, radiate information. Generating environments to on demand to test your applications, your solutions, your it products with the execution on demand. As I said, with reusable assets, some of the things we already discussed before, right? As part of the environments, everything I need to make my application work and fully integrated with the whole software development cycle life cycle, something that the people is just, putting too much focus like CICD, but also something that people maybe is not doing too much, which is continuous testing. After deploying the production, I can keep testing my application. And with TestCube and the technology agnostic that this platform offers, I can cover most of the technologies or almost technologies I have inside our organization to implement continuous testing. And finally, the open cost, because it's something I reinforce with the takeaways, which is the FinOps visibility of the costs to generate the shared responsibility over the dispensers I have when I are working with when I'm working with the environment and be able to have this, this option to work with any vendor and see the costs in real time. Right. So joining all these three platforms, I thought it's a good way to start implementing every environment as a service. But if definitely if you need some other solutions to complement this, it depends on, on what technologies you already have, but if you don't have, One technology for one specific requirement. You can find a lot of these options in the cloud native computer foundation landscape from where I took this three important and amazing products, or platforms, projects as you want to call. So at the end, we're going to have something like this. It's my proposal, right? Have a platform team with a product called environment as a service platform. Where are they going to provide different, APIs where the teams will be able to use to request their environment using platforms like crossplane, testcube, open cost to cover all the different aspects I mentioned it right to generate an environment, not only releasing resources, not only generating a virtual machine for a team, but also Put in there, the certificates, the network configurations and everything that is needed. Same thing for a Kubernetes namespace. so all these artifacts will be part and will be needed to generate this environment as a service solution and, using automation, using platforms like cross plane test cube and open cost, the delivery time will be reduced, but definitely you need to tell. Think in the in the whole architecture of your product, considering this aspect, because I have seen teams that are providing Kubernetes namespaces as a service, and they are delaying a lot on generate the environments due to the resource management. This is another thing that must be considered. finally, to Take to have success. My let's share my, my success keys for platform teams. The first thing is focus on customer. That's why I have this sign. The first sign here, this is coming from another talk. If you want to, go deeper on this, you can see. Find that talking in YouTube. the three practices I recommend to have success with platform engineering. The first one is focused on customers. So the platform team must understand who is their customer and how to generate environments for them. Because I mentioned it before, the environment for one team maybe will be different Of, environments to other team in another company, right? Because each company has different standards, different, providers. So that's important to understand and identify your customer, identify their needs and generate a platform of environment as a service based on that. The second thing is measure and try to implement the practices you are releasing as a service. So if you use a tool, you will be a customer as well and will be better for you to get your feedback if you are using the platform and you have the same pains that other teams. And finally, form a team. Champions inside the platform team where you have different platforms totally integrated with each other with artifacts specifically created for your own company or your specific customer. You're gonna need expertise inside and one person cannot be expert in everything. So form experts inside your team to support each other with a T shaped format. and, have a platform team that can grow together. So my closing comment is do not just replicate what others did think out of the box and discover the continuous improvement never that continuous improvement never ends. Right? And why I'm saying this because a lot of people is just focused on On the implementing the DevOps adoption journey with CICD agile adoption journey with scam or scaling with safe platform engineering, generating the DevOps platform engine, a DevOps platform with a lot of tools, everything connected, but they forget. about these other aspects that can heavily impact on the time to market, right? Just imagine, reduce the whole team stress to go from idea to first touch in a matter of minutes, in a matter of hours, right? So let's say a team was requested to generate a new product. Amazing product. And they want to test deploying the first feature, and they just remember that they require an environment. So they go through this platform and request the trial, right? And they deploy some pieces of software there and they can start receiving feedback, celebrate. That will be amazing. I have seen a lot of stress on teams do they don't have access to their environments in the time they are expecting. So thanks for joining. I hope you will keep enjoying this com, 42 20 25. I love to have this space to share this idea with you. And if you wanna want to go deeper on this, you wanna talk about this with me or some other people, feel free to reach me out, in linking and or in the chat of the event. and see you soon for a next another talk.
...

Caio Medeiros Pinto

DevOps Human & Evangelist @ Citi

Caio Medeiros Pinto's LinkedIn account



Join the community!

Learn for free, join the best tech learning community for a price of a pumpkin latte.

Annual
Monthly
Newsletter
$ 0 /mo

Event notifications, weekly newsletter

Delayed access to all content

Immediate access to Keynotes & Panels

Community
$ 8.34 /mo

Immediate access to all content

Courses, quizes & certificates

Community chats

Join the community (7 day free trial)