Conf42 DevSecOps 2021 - Online

PIACERE - DevSecOps automated

Video size:

Abstract

The unique and innovative DevSecOps process with supporting tools will be presented. The PIACERE tools allow for the complete, secure and optimized deployment of the infrastructure to the selected cloud providers and private cloud. The unique concept of the Canary Environment for stress tests will be presented. The wide selection of supported IaC will be covered as well.

All the tools are created within the PIACERE project which aims to deliver the complete DevSecOps pipeline for devops and cloud developers.

Summary

  • Piacere is a research and development project founded by the European Union. It is all about DevsecOps, all about automating devsecops. This presentation has been prepared by me and Pablo Schibeck.
  • Gartner claims Devsecops is the integration of security into emerging, agile it and DevOps development as seamlessly and as transparently as possible. Piacere aims to make it easier for companies who struggle with adding security to their DevOps pipelines.
  • Piacere is a horizon 2020 project in software developers call our consortium consists of twelve organizations. Pichera is actually programming trustworthy infrastructure as code in a secure framework. Seven Bluescoscom is responsible for the integration part.
  • First and foremost is obviously to develop, build and deploy applications. Then again, as I mentioned, this heterogeneity, so we are moving towards the cloud. With that goes the optimization of the usage of resources.
  • The final goal is what usually butchers the security in DevOps, in infrastructure in general. The concept of snowflakes is a server that was specifically crafted for some purpose. Anything that you are not expecting that has drifted from the great standards may affect your actual security.
  • The development and the actual deployment as operations agile approach without losing security level. sandboxing guide to test the dynamic properties to be deployed infrastructure. Access control, accountability of that procedure is probably one of the most important points to take from this presentation.
  • Another key feature already mentioned as well regarding the multi cloud approach, cloud agnosticism. The infrastructure as code is actually designed using an intermediary language called Dumml DevOps modeling language. Information about what is being deployed, what has been deployed is stored in the infrastructural elements catalog.
  • The project is going to be extensible. Unified way to build and deploy into the multi cloud environments. Automatic optimization of cloud resources. And finally the embracement of Githubs with a single source of truth and streamlined access control.
  • As for why to go pitcher with your devsecops and the key elements, those will be now described in much more detail on the different slides that are coming. All this is integrated together in the Piazza framework. So for the performance and security as well as this infrastructure optimization platform.
  • The Domal, the devsecops modeling language is cloud agnostic. To achieve that we offer multiple layers of modeling and presentation. Application modeling is minimal. The target act generation is possible and it's into multiple languages.
  • static analysis of the domino and the generated IAC to verify the correctness according to select criteria. This again for the time being focuses on ansible and terraform. Made to be extensible to support other languages for single domain IAC repositories and runtime controller.
  • IAC executor manager is all about the execution of IAC. To be able to save this information to the infrastructure admins catalog that something has been deployed. Other tooling that we are working on is the mock cloud. This is for testing of the dynamic aspects of the deployment.
  • If you want to reach out to us, this is our website. Our company name is our domain, so you can find us there. Thank you very much again and see you.

Transcript

This transcript was autogenerated. To make changes, submit a PR.
Hello everyone and welcome to my talk. As I mentioned in my introduction, today I'm going to present Piacere, a research and development project founded by the European Union. And Piacere is all about DevsecOps, all about automating devsecops, all about ensuring that Devsecops is usable in customers'environment. This presentation has been prepared by me and Pablo Schibeck. We are both from seven bullscom and a little bit about ourselves. So in this project especially, we are acting as a research and development center in polish center Badavcheros voyove. We have the status in Poland and in France as well. And I guess this is enough about us. Let's get going with the topic of the presentation. So regarding the devsecops, quick reminder. So in general this conference is all about devsecops. So I'm guessing you know what devsecops is, but a little quote from Gartner's it glossary on what devsecops is. So Gartner claims Devsecops is the integration of security into emerging, agile it and DevOps development as seamlessly and as transparently as possible. And basically as it goes on. Ideally this is done without reducing the agility or speed of developers or requiring them to leave the development toolchain environment. And precisely this is where Piacere aims to fit in. As we know, devsecops is hard in general. So the experience shows that many companies are struggling to add this sec to DevOps. Even if they moved already to DevOps. Some companies are still struggling to move to this more agile, formal DevOps. So that is one part of the equation. Another part is that adding security to DevOps is not as easy as it seemed, at least initially to some. So this is the framework that is going to make it easier for those companies who struggle with adding security to their DevOps pipelines. And a little why do we need SEC in DevOps? Again, based on this conference, I guess I don't have to persuade you too much at least, but a quick slide about that. So security, security. So security is important in general. But then if we consider DevOps and agility that comes from DevOps, when you have your infrastructure all software defined, you have software that powers your infrastructure, that powers your software. Again, you are adding new points to be attacked in those scenarios, and thus you need security for your DevOps as well. Additionally, if you consider the agility, the agility comes with increased frequency of built and deployment processes, and this increases the attack surface. So in general, recent news about the attacks on the delivery chain, on the way that we deploy our infrastructure, the way that we deploy, for example, our containers show how security is important at this stage as well. And another point to mention is that heterogeneity of infrastructure is another risk. So if you consider agility, if you consider the frequency, if you consider the heterogeneity, then the security part is a must, in that if you want your DevOps to be sustainable, to really affect your business in only a positive way, let's say security in DevOps is crucial. So devsecops all the way. And here I introduce piacere. And as I mentioned the introduction, piacere is actually an acronym. So it's this very long sentence being acronymized into piacere. So Pichera is actually programming trustworthy infrastructure as code in a secure framework. So the framework itself is supposed to be secure. The framework is all about the infrastructure as code. So the way we do DevOps normally, and making sure that this infrastructure as code is trustworthy so that it is secure as well. And a quick recap, this is a horizon 2020 project in software developers call our consortium consists of twelve organizations, and those range from academia, business and government. And consortium is led by Technalia and Technalia is from Spain. So the project started a year ago. Now that you're watching this video, it has already been a year since it started. And we at seven Bluescoscom, we are responsible for the integration part. So ensuring that everything works in the end, let's say. And also the part about the Canary sandbox environment, more on that later. And here about the tools of Piacere devsecops. So this is probably already familiar to you, what could be the goals of DevOps and security in DevOps. So first and foremost is obviously to develop, build and deploy applications, because otherwise what's the point of doing this? Then again, as I mentioned, this heterogeneity, so we are moving towards the cloud. If someone hasn't moved toward the cloud, then they are probably going to hybridizing the environment. So doing something on premises, doing something in fog, doing something in edge, and also having those multi cloud deployments when some services are running in a different crowd from the other services, or even load balancing the traffic via those multicloud deployments, similarly maintaining and figuring the infrastructure, because if you want to get your applications on something, then this something is the infrastructure. So the infrastructure is actually the main part of modeling in piacere. And with that goes the optimization of the usage of resources. So the infrastructure resources that are given to our applications are going to be optimized so that the optimal set of resources is being used at all times, as well as given this framework for testing the deployments and testing the infrastructure in general. And the final goal is what usually butchers the security in DevOps, in infrastructure in general, is the concept of snowflakes. So if you don't remember what snowflakes is, I urge you to look it up quickly. But in essence, Snowflake is a server that was specifically crafted for some purpose and it hasn't really gone through some regular procedure. Let's say in a company it has been manually configured, for example, to achieve some level of performance, to deploy some very custom application that is generally not supported inside an enterprise, and then left as it is, perhaps some administrator has already moved on to another company, and then you are left with this snowflake that has been very much cared for at some point in time, but in general the time has forgotten about it. And then you've got this conflict drift and the conflict drift. So anything that you are not expecting, that you are not monitoring, that you don't know that has drifted from the great standards that you have set for yourself, may affect your actual security. So that is some point to consider and the framework is actually disallowing you from doing this. So this is discouraged both in documentation, let's say, as well as in the approach that is kind of forced on you. So moving on to the key features of your chair. So yet again, the integrated security principles in those DevOps operations. So the development and the actual deployment as operations agile approach without losing security level. So that's the key feature, one of the key features, sandboxing guide to test the dynamic properties to be deployed infrastructure. So this created to the cannabis sandbox environment. I'm going to talk about it more soon as well. Another important point, and I want to stress this particular one out as single source of truth. So if you've been exposed to term such as git ops, when you are supposed to control all the config that you have via git repository, this framework is actually designed to work with that. So that you have this single source of truth, you have this git repository when you have all the configs, when you version them, when you ensure that they are managed properly, et cetera. So this access control, accountability of that procedure, this is probably one of the most important points to take, if anything, from this presentation. Basically, if you consider those snowflakes that I have just mentioned, the way to ensure that you don't end up with snowflakes is to have procedures to control access to the actual config that is being deployed. And the best way that we have as a humanity developed so far is the usage of version control systems. And nowadays this is most of the time git knowing that some folks still using subversion. So if you are using subversion then it's fine as well because the general principles are the most important ones. But you know the drill. Another key feature already mentioned as well regarding the multi cloud approach, cloud agnosticism. So that we are not fitting into one offer, for example from Amazon Web services, but we are considering all the other potential cloud providers, obviously the major ones like the Microsoft Asia, like the Google Cloud platform, but also all those platforms, public clouds with running OpenStack. So in general the cloud agnosticism is a key feature of petrare and also important part automatic healing and optimization. So ensuring that the infrastructure that has been defined first of all doesn't drift away from the actual configuration and is healthy at all the times, and also proposing optimizations to the way that the infrastructure scope is defined. And here is how we are going to go about that. So as I mentioned, this is quite a young project. So we are only a year in and this is some architecture that we have designed so far for piacere. First of all, we are going to have some ide for the user where the user is supposed to actually design the infrastructure as code, and the infrastructure as code is actually designed using an intermediary language called Dumml DevOps modeling language, more on that later as well. And as you can see on this diagram in the left upper corner, you have design time. So these are all the parts that are for the design time. So first of all, as I mentioned, eclipse ide, very likely this is going to be the web based ide as this is the most modern one and what most people nowadays expect to be. So the eclipse chair based on Eclipse TIA, and in there you're going to have those modeling tools, the support for the DamL language and also the interface to the other piacere tooling so that it is callable from the id itself. So having the user modeling the doml, then the ICG, the infrastructure code generator is used to generate the IAC that could be actually deployed on the infrastructure as we generally rely on the existing tooling, for example terraform for example, ansible to do the hard job of running the infrastructure as code, let's say. But the modeling language has to be. So the designing the modeling language in the domal has to be converted to that runnable IAC and this is where ICG comes in. Also, both the DOM model as well as the generated IAC go into this verification tool. So the verification tool is a general verification tool as well as security verification tool. This is where the emphasis is on the static testing of the generated IAC. More on that later. As well as I mentioned already, some git repository tooling. So this is kind of agnostic what that tooling is. It could be, for example GitLab, it could be something else, something like Garrett and Gitia for example, and creating those pull requests or merge requests, whatever, with the Domal and IAC that have been verified using the static verification step. This all goes into the runtime control that ensures that the processes relevant to the deployment actually start and ensure that the flow completes for that particular deployment. The IAC executor manager, the IEM is what actually calls the ansible, the terraform, whatever else to execute the IAC that was presented to it. Information about what is being deployed, what has been deployed is stored in the infrastructural elements catalog. And this is used for two purposes, as you can see. Well, even free purposes. But two purposes have already been called out, let's say. So the infrastructure elements catalog is used as database for querying from the id. So what are the possible choices for you as the user? What cloud be deployed? And then again, the information about what has been deployed is also saved in this catalog. So moving on, the flow then moves on to the infrastructure advisor. The infrastructure advisor sets up monitoring and analytics. The self healing, the optimization part of piacere is all in the infrastructure advisor, and the infrastructure advisor is also connected to the infrastructure elements catalog. It's actually the third usage of the infrastructure elements catalog that I've mentioned in that all the data, all the performance data, all the information about the state is stored in the elements catalog for easy querying. And this easy querying is for the optimizer part to be able to decide on the optimal strategy to propose. And all the others are concerned with the resource provider. And there are two kinds of resource providers from the PHRA perspective, the production resource providers. So those that actually exist for some production purpose, even if you're using it for testing. This is something that is generally considered to be production like. But there is also this tooling Canary sandbox environment tooling that is about provisioning specific kinds of resource providers, the canary sandbox resource providers, and those are especially to be used for development and testing of the generated infrastructure as code. More on that later as well. So in general, that's the diagram that's showing how the workflow of your cherry could be because it's not there yet as this is only a year in. So we are presenting how we are thinking about it, but not how it works already. But this is the general concept and the general view of that. So we are proposing something else. We are proposing something else again. And I bet some of you already know this image from XKCD about how standards proliferate and well, we have to really show why we are doing this instead of just saying that we have to do this because so, and our main point is that it hasn't been done yet. So many companies are struggling, as I mentioned already, with deciding on the approach to security in DevOps. There's really no complete, let's say standard for devsecops only. Kind of like parts of what piacere is going to propose are kind of standardized, say. But other than that, the devsecops is just wide west nowadays. Still, this is unfortunate and we are working to change that, to change this perspective. So first and foremost, this is to be simple and easy way to use devsecops approach so that you don't have to think too much, so that you don't have to worry about whether you are doing the devsecops right or not. We are proposing this as end to end solution for you. Unified way to build and deploy into the multi cloud environments already mentioned as well. Not relying on a single target platform but supporting all the environments, the ones at the bottom are the ones that we are thinking about the most at the time of this project. But in general, the project is going to be extensible. So if you find a need to use another resource provider then this is easy to actually add. So thinking about the other providers that aren't using OpenStack but are still public resource providers, cloud resource providers, then this is easy to add later support for multiple IaC languages so that you are not bound to a single IAC language. So again, the extensibility point comes in here. As I mentioned, the ones that we have considered so far, we have considered so far include terraform and ansible. But this could change as well automatic deployment to different cloud providers so that you don't have to worry about the details, how to contact the different cloud providers. This is already abstracted away from you. For you, automatic optimization of cloud resources. This is again important that you are not left alone with the optimization stage. If you require the optimization. The way to do it securely is also to be built in in deputy framework. And finally the embracement of Githubs with a single source of truth and streamlined access control. As I mentioned already, these are the selling points. As for why to go pitcher with your devsecops and the key elements, I've already kind of mentioned them, but a quick recap, those will be now described in much more detail on the different slides that are coming. So the first one is devsecops modeling language. So actually this is only for the D ops or DevOps modeling language. But in general, since we are dealing with security as well, this is Devsecops modeling language. Then you've got the verification tool. As I mentioned, this is both for the security as well as the formal verification of the DOM and the IAC, the central DOM and IAC repositories and running control. So this is actually the git repository I was mentioning and the random controller that is providing the general workflow of the petrol framework. Then we've got the IAC, the IAC executor manager that actually executes the IAC, the kind of sandbox environment tooling that is kind of a helper service in here, the infrastructure elements catalog that contains all the different information still to be defined as well. So let's wait a couple of slides more to learn more details about that and the infrastructure advisor, which is about the random monitoring. So for the performance and security as well as this infrastructure optimization platform, and also the bits that are not shown here will be shown later for the self healing and self learning of the data. And all this is integrated together in the Piazza framework. So as I mentioned, this is an end to end solution for devsecops. And now moving on to this first component mentioned. So the Domal, the devsecops modeling language. So this is where we are going, cloud agnostic. And the way that it's phrased in the slide, the cloud agnostic able language, is because we are allowing the user to actually ignore this fact. If the user is willing to use a very specific feature of a certain cloud provider, and that is not available anywhere else, or that needs special configuration for that particular provider, then the user is welcome to do that. This is obviously blocking the multicloud approach for that particular part of the IAC, but otherwise there could be more generality in other parts. So to achieve that we offer multiple layers of modeling and presentation. So we are showing this abstract modeling when you have it, environment agnostic. So for example, this cloud agnostic and complete level where you have environment dependent data. Application modeling is minimal. In here we are focusing on the modeling of the infrastructure. So digital parts like the complete, what is to be deployed, how it's connected, what are the security relevant aspects that's in there. But other than that, the very detailed like it could be application modeling is not part of the dummy. The target act generation is possible and it's into multiple languages, as I mentioned, terraform ansible, the basic ones that we are offering at the beginning that we are thinking about at the moment. And the modeling toolbox is available in the eclipse id and I mean the web actually the eclipse share id based on eclipse there. Okay, so that's for the demo, now for the verification tool. So as already mentioned, static analysis of the domino and the generated IAC to verify the correctness according to select criteria. So it's also configurable to ignore certain parts if the user wishes to ignore them. But in general this is offering a wide range of criteria to analyze the domain IAC for those formal correctness as well as the security aspects of that. And this is to ensure that the IAC and the companies that are used are free of known vulnerabilities and that they follow best security practices. So this is what can be achieved at the static analysis level and this is the tooling that does specifically that. And this is very much related to the code generation. So this again for the time being focuses on ansible and terraform and is made to be extensible to support other languages for this single domain IAC repositories and runtime controller. Again think repositories like the git repositories or subversion repositories if that's your thing. But in general this is about the single four operations. So pushing to the repository, getting your deployment updated via that, probably with some procedure like using the merge request, the pull requests to actually confirm that the OPS person is willing to proceed with this change. This allows for the single source of truth approach where everything infrastructure, it's all in one place, it's defined there, it can be compared against the state. This is also the way that for example kubernetes pursues this, where you define the desired state and then you can compare against this desired state. So this movement was inspired by this, by this approach in kubernetes, again simplified and streamlined access control. So control access via repository permissions and any procedures that your repository tooling allows you to do, to verify, to control, to ensure that the right people are stamping the change to happen in your infrastructure. That's all available to you with that approach. As for the random control, as I mentioned, this is for the workflow of the general framework and this is based on BPMN. So the business process model annotation and this allows for quite an extensible vernacular, this mostly not to be modified by the end users of piacere, but it's there, it's flexible and it allows for further customization if such it arises. And now on to the IAC executor manager. IAC executor manager is all about the execution of IAC, so it has to understand the tooling that deploys the IAC. So for example the Ansible playbook command, the terraform comments and outputs of those comments, and the state that they save, the logs that they produce. This is all in the IAC executor manager which understands those. Again, I'll be repeating myself thinking in this first release about Ansible and terraform, but yet again being extensible about that. What's more, it actually is to understand the deployed infrastructure. So to be able to save this information to the infrastructure admins catalog that something has been deployed. The infrastructure as code executor manager is to understand the deployed infrastructure, understand what has been deployed and where, what the parameters are, et cetera, that are relevant for storing in that catalog, as well as support for reconfiguration scanning is also in the IM. So reapplying the ansible pegboards or the terraform terraform configs and scaling, applying the scaling procedure via the IM is also in here. This is also what supported both the actual resource providers, the production resource providers, as well as the canary environment resource providers. So it's like the universal solution for using IAC infrastructure and secure use of credentials to the target environments. This is also the part that actually integrates with your, for example Hashikov's vault where you store your credentials. And those are obtained by the aims itself, not the other components. As for the Canary sandbox environment tooling in here, we are proposing two tools. One is the provisioner. So the provisioner is about the deployment of select environments in an opinionated way. So as most of you may know, especially OpenStack. But kubernetes as well could be quite daunting for the deployment part. And we are proposing an opinionated way that is deploying the minimal set, let's say, of those complete that are required to run applications models specifically for OpenStack and Kubernetes. So you have this like one click, one button way to deploy your OpenStack cloud, your Kubernetes cloud, so that it can be used by the rest of the framework. So this is mostly for the testing and development aspect of the framework. And the other tooling that we are working on and we are proposing in Piacere is the mock cloud. And the mock cloud is about the mocked APIs of selected cloud providers. So like for example, when you have Amazon and you interact with Amazon Web services, you might actually be interested in checking if your infrastructure as code behaves a certain way without actually calling the AWS. And there has been some work in that regard in general public. But this is what we are going to elaborate more on in this project as part of the smoker and in general the Kanai sandbox environment. As I mentioned, this is for testing of the dynamic aspects of the deployment. So like the verification tool lives at the static stage at the design time, but sometimes static analyzes is not enough. Some bits could be omitted in that some could be not observable. And dynamic testing is always closer to the actual behavior that is going to be observed in production and for the infrastructure elements catalog. So like I mentioned, this is storing all kinds of information. We are calling this the central storage of local phrase knowledge local because it's relevant to the deployment of the user. So it stores both the offers, but it also stores the historic data. The information that was obtained about the performance metrics, security metrics of the actual deployments, and the details on actual deployments as well are all in the infrastructure elements catalog. And the infrastructure elements catalog can be used to answer the questions as to what providers are available, what the offers are so like for the optimization part, if you are optimizing for the cost, the way that the PSA framework knows what the costs are, what the available options are ahead. This is where infrastructure elements catalog comes in. As I mentioned already. Yes, it stores the history characteristics of the offers. So if you are optimizing both against the cost, optimizing for the cost as well as for the performance characteristics, because you are interested both in ensuring that your users get the right levels of SLA and you are optimizing for the cost because you don't want to overpay for the same performance, this is also useful information for the optimized and the optimized. And the monitoring comes from the infrastructure advisor, and the infrastructure advisor has those two main parts. The first part is the random monitoring for performance and security, and the other part is the actual optimization platform. So the goal of the monitoring is to collect those metrics and events related to performance and security, actually to self learn and self heal from that. So discovering those small discrepancies and healing them right away, and also self learning from the data to discover that certain issues are going to repeat soon. Like for example from the data, the last time that you've seen those spikes, you soon needed another instance to be provisioned. And this is especially what the self learning is about. But similarly, the self learning is about the security. So discovering patterns in how the security could be violated, what aspects of the security are relevant to that, is also in that self learning and the infrastructure side. So like you probably recognize. So when you want to monitor something, you need to somehow access the systems. So this is an approach with agents. So the agents are actually deployed during the IEM run. So the IEM gets those additional, let's say for example ansible playbooks or otherwise, the infrastructure scope to deploy the actual agents to be configured with the infrastructure advisor so that the metrics can be collected from there. The IOP, as I've mentioned, the platform for the optimization, it actually computes the optimal solutions based on those collected metrics. So it collaborates with the infrastructure elements catalog and the trade offs that are to be optimized of the cost, performance, availability, et cetera, style. So those aspects, and this is using multi objective optimization based on machine learning. And that's it for the optimization side. I guess this was also the last slide. Yes, I was right. Okay, so that's it from me for this presentation about piacere. Thank you very much for staying with me, for listening to me and let's stay in touch. If you want to reach out to us, this is our website. If you want to reach out to us for seven boost.com, our company name is our domain, so you can find us there. Thank you very much again and see you.
...

Radoslaw Piliszek

IT systems architect @ 7bulls.com

Radoslaw Piliszek's LinkedIn account



Awesome tech events for

Priority access to all content

Video hallway track

Community chat

Exclusive promotions and giveaways