 Cześć, bardzo dużo. Witajcie. Gorąco zazwyczajmy na sesejce. Dzisiaj pobieramy na Alicja Miedlić. Chciałbym o projekcie. Jest to małacka plaktyczna. Plaktyczna jest plaktyczna na otwórzanym plaktycznym. I to jest nie tylko otwórzanym plaktycznym, O, dobrze. Cześć. O, perfect. Zjednę. Ja zaczynamy kilka slajdy, tylko kilka, do co dać Wam nadąsztanie tez systemem i potem Ala will present So melodic, multi-cloud optimization platform, it's fully open source, built by several partners as open source project, and the aim of the melodic is to optimize the deployment. Why to use melodic? First thing is because it is probably the simplest way to deploy application to the multi-cloud. It is the unified way to deploy virtual machines, containers, serverless and also big data frameworks. The deployment is fully automatic, we will show that live. And the deployment is optimized, so that's the unique thing of the melodic. Melodic is fetching the offers from the different cloud providers and automatically optimize the deployment. First thing is the model of the application. We are developed our own cloud modeling language, which is cloud agnostic called camel cloud application modeling and execution language. The unique thing of that language is that we can model user requirements and user constraints. Thanks to that we are able to optimize the application deployment. And another unique thing about melodic is the ability to decide what is the best deployment. Because usually we want to deploy applications and we have certain goals. And the goals are usually contradictionary. We can optimize some kind of the trade-off between the cost and performance, cost and security. If we want to optimize only cost, then the simplest thing is just simply not to deploy application at all, because the cost will be zero, but of course the performance and other features also will be zero. So we need to find the trade-off between the performance and cost, security and cost, and other features of the application. And melodic is optimizing the deployment of data based on the collected metric, and not only technical metrics like CPU usage, memory usage, but also on the business metric, which are defined in the application, like average time of the processing user request or average time of the job calculation. And how the melodic work. First step is to model application in the camera language, and it unfortunately needs to be done manually, but it is done once. You need to model your application. And then application is deployed. Initial deployment of application is done using the standard parameters, which are in the camel model. And then initial deployment is done to the selected cloud providers. Then melodic started to collect metric from the running application, and based on the values of the metric, is able to optimize deployments. So to add resources, to remove resources, to move some resources from one region to another, or from one cloud provider to another. Also melodic is continuously fetching the cloud provider's offers from the top living free cloud providers, and also from the open stack based cloud providers. And based in the current offer is able to move some components of the application. We will show that live. And we are continuously developing melodic. So we are adding new features. One of these features is polymorphic adaptation. So we want not only to add or remove resources, but also to use the most appropriate resources for the given task. For example, if we have the application components, which is using GPU or FPGA, then we can decide to deploy the component on the machine with the GPU. If it's heavy use, if it's not heavy use, then we can deploy that machine with the CPU, which is cheaper, but of course the performance is lower. So that's the one concept, which we are working on. And the second one is proactive adaptation. Because currently melodic is reactive, so fetching the metrics from the application and based on the value of the metrics, add or remove the resources. So for example, if the number of the users is too high or the request processing time is too high, then melodic add or remove the resources. But in the proactive adaptation, we want to predict. We want to predict that the number of the users is rising, so we want to add these resources proactively to be able to handle peaks without the degradation of performance and the ergonomy of using the application. So that is the second concept, which we are working on. And how the melodic works in practice. AI Investments is one of the early adopters of melodic and is using melodic for optimizing its cloud deployment. AI Investments is a Polish company, which created the software for using various machine learning methods to optimize the investment portfolio. And AI Investments is focused on time series forecasting, financial time series forecasting and optimization. And of course, both of these tasks requires a lot of resources. And the optimization of cloud resources is crucial for that type of the company. And typical business goals for the AI Investments is to train a certain number of the machine learning models, like, for example, 50 predictions models in one hour. And how it works. The business investments analysis in AI Investments starts to train models, so send the request to train the models. And initially the on-pervices resources are used, because they are available, they are already involved, so in place. And the training starts on that resources, but usually it's not enough. So melodic is calculating how long this training will take on the on-pervices resources. And if it's too long, so longer than the business expectation, then additional resources are deployed automatically to the cloud. And these resources are automatically used to processing the data. Again, melodic is tracking the metrics. And if the expected time for the processing is one hour or below, then new resources are not added. And these resources are used for the processing. If the processing is finished, then all of the resources are automatically removed from the cloud to save the cost. So as you can see, the use case is very simple. We are just to add the resources or remove resources in the proper way, but the benefits are really significant. Now, for the AI investments, the difference between the not optimized deployment, like cloud-only deployment, the cloud-only is in the first row at the top of the table, or on-pervices-only, is about $175,000. So this is the difference between the optimal and the two extremes or the most expensive variant, which is not optimized. So as you can see, there are significant cost savings using that approach and thanks to that, investment can use more computational power and achieve better results. This is a typical example of the AI investments results based on the AI optimized deployment. So as you can see, the benefits of that approach are huge. Melodic is open source. As I said, you can download it here. It is released under the Mozilla Public License 2.0 and can be used. I think now, Ala will present how the melodic works live. That was, as I said, my theoretical introduction and now Alicia will show how it works. Ala is a team leader of the development team melodics. Techniczna kwestia, Ala jest prawdopodobnie najlepszą osobą. Tak. Dzień dobry wszystkim. W moim częściach prezentacji would like to present you how our project works in practice. Now I need to switch off the presentation and show you the melodic web page. So here we can see the initial view of melodic deployment process. And now we can see that our deployment process is being performed now. But at first I would like to show you how to configure our platform and how to start such process. And also we will observe not only the first initial deployment process, but also a regularization process and metric predictions because we not only react on current real situation, but we would like to predict our application performance, predict metrics and react in advance to ensure the most optimal deployment for us. So melodic now is performing application deployment. So in the meantime I would like to describe you how melodic works in background. The first step in melodic usage is to define provider settings. In this step we need to define which cloud providers we would like to use in our deployments. And also we need to provide credentials to our cloud accounts. So for example, in case of AWS we need to provide our developers credentials, secret and user. Also it is possible to configure our private properties which we would like to use during our deployment. For example, set of private images which we would like to use and also for example preferred security group. On my virtual machine when my melodic platform is installed I have already configured as you can see credentials and settings for two cloud providers for AWS and also for OpenStack. But melodic supports also Azure as well as GCP and OctaWave quite small Polish cloud provider. So in this place we can configure all of our cloud accounts. After that we can start the whole deployment process. In this place we need to upload to our XMI format. So the first step is to model our application in camel model in camel language which was mentioned by Paweł at the beginning also. Camel is human understandable form. We model our application in camel and after that we need to transform it to XMI format. XMI is the form understandable for melodic and we need to attach such XMI file here. Just at the beginning of our presentation I have already attached such model for our application which we are deploying now and here also we have information that our model our model also can have secure secure variables because it is possible to put some secure content to our model and not define it directly but put it in a specific way and after that just after uploading the XMI model we are asked for providing these values these secure values and they are stored in secure store. Also here it is possible to configure our model in proper way we have dedicated tool for that UF creator so it means utility function creator because it is really important to properly configure to properly model our application in order to ensure the most optimal deployment and here we have various possibilities to configure our model for example by function, by template and by plotting here we have for example our application model and we can configure how to use specific metrics during our application optimization but now we can back to our process so in this step we have model of our application we attach this model it is of course validated and after that stored in database and here we have the last step which is needed to perform manually by us just before automatic deployment so in this step we need to choose which application we would like to deploy and which providers you would like to use for example we can use all possible providers, we can choose only one today I would like to focus on deployment of AWS so just before our presentation I choose only AWS with my properties i just after that we can go to the last step where we only need to push the big green button start the whole process and after that we can relax and observe how melodic performs the deployment of our application but as I mentioned we started the whole process at the beginning because the whole deployment is quite complex and also because of that time consuming so I needed to do that a few minutes before now we can come back to our deployment process and we can see that it is already done because all boxes are checked as done and I would like to I would like to describe this process so the first step is fetching offers in this step melodic fetches offers from previously selected cloud providers in our case from AWS and after that from these offers we can also observe the details of these offers so we have our clouds hardware locations and images and from these offers melodic chooses the best configuration for us but how melodic know what is our configuration so we have our conflict problem which was defined in camel model in case of our application we have spark based application which is modeled as two components so worker and master we have one spark master which manages the application performance and we can have many spark workers and the task of melodic is to ensure the proper, the most optimal number of these workers our conflict problem we defined that we would like to have from one to maximum 10 workers here we have our requirements from worker course and we defined that we would like to have exactly one spark master and also we have requirements for providers for both spark master and spark worker and after that melodic performs next step so the rezoning part here it finds the most optimal solution and we can observe it here so in this case we have at the beginning one worker with eight course and also we have one master after that it is time for deploying in this step melodic performs deployment of our the best solution so real virtual machines are being created in our providers in our case of course we would like to see the result of this deployment and here we will see of our already created virtual machines so here we can see detailed information about these VMs so IP addresses provider also detailed information about localization of these VMs and technical information about hardware image and so on of course we would like to monitor performance of our application in order to do that we can click monitor application and we are directed to Grafana Grafana is the tool for monitoring applications and displaying statistics also we use this tool to monitor applications deployed by melodic of course each application has on metrics on parameters to measure so we need to create dedicated dashboards for each application also our application so general application has on dashboard and we can see here how our application works and what it is in the background of our application on this dashboard we can see at first number of instances so now we have two instances, one worker and one master the limitation of traffic lights means if our application with current configuration will finish on time or not the red light so it means that current configuration is not sufficient and we need to provide additional resources also we can observe here estimated time left estimated time at time left because in our requirements we defined our expected time and we can see that our estimated predicted time is higher than time left also here we can see a number of course if we now we can see also also another matrix so our predictions and current information if we finish on time or not here we have average average length of one task also estimated time matrix, which means if we finish on time or maybe we will finish too soon ok, so now we we are expect that we need to we need to have additional resources and in the background melodic performs for us reconfiguration process and after this reconfiguration process we are expect to have more efficient worker and after that the performance of our application should be better and we will see it soon but now it is it is the end of our deployment deployment by melodic presentation so we observe the reconfiguration process and and the whole process is done fully automatically by melodic ok, so thank you very much for your attention and if you have any questions please feel free to ask but maybe individually because I think that we are overtime a bit