 It's 41 probably it's time to start Yes Okay, I'm you dream I'm from Altroz Minsk and I'm working with Cloud Foundry there My co-speaker Arsene is helping a blockchain department with automating their stuff Unfortunately, he was not able to attend he sends his story he has some personal reasons So Blockchain was quite a hot topic Some time ago and actually it's still hot But still some of my friends think that blockchain is equal to Bitcoin or Ethereum or something like Definitely, they are not right and technically blockchain is nothing more than just a database. Oh Ledger and its management system And the data in this database organized in a special way it's organized in Transactions and transactions are combined into blocks each block has a link to the previous one So the name is from here. It's a chain of blocks To obtain a blockchain node and to participate in the blockchain network We need a special middleware so called blockchain plant server It's a special software. It's unique for every particular network Several for blockchain, several for Ethereum. We are mostly working with Ethereum like networks. So we selected parity It's quite a good client. It has a great community. It Has a official docker image and its feature rich. So it was good for us As I already said blockchain is a database and to make it useful We need to do something with this data. We need to receive this data. We need to upload this data We need to analyze it somehow and do something useful. So we need an application in blockchain applications called dubs distributed applications Actually, it's the same applications as usual, but uses blockchain methods under the hood and some blockchain logic Also, it's realized on smart contracts. Smart contracts is a software that validates some digital Negation story between network participants Was mentioning then in dubs authorization working a bit different than usual dub relies on a wallet wallet provides a key and the data the transactions are Encrypted in dubs and the client parity in our case receives encrypted flow Actually, it helps to mitigate Manage the middle attack in this case. It's not valid at all dub developers are Often in our case at least are often guys who wrote normal business applications and Some of them are familiar with cloud foundry. So one day they came to us and ask us Hey guys gives us some automation. Give us something like cloud foundry. We want to move fast. We want to deliver feature fast We decided to get to give them a note something like we decided the Give them exact cloud foundry and actually cloud foundry selection It's not too technical here because we had a foundation where developers already work another developers not blockchain And we had a platform team who can manage Foundry and as you already said we had a developer who can see a push and like see a push So our first step here was to select the first citizen of application and Some kind of application and push it to cloud foundry Even with quite a large cloud foundry experience, we were surprised because we just see a push and it almost worked then we make party no npm version consistent in our code and World foundry not just built pack and it's actually works The solution is not great You can ask You can probably ask about where party here party was installed on separate VM and we had coded configuration of party in the our application It's not the best I understand but it's working and we understand that we are doing things right we on the right way But again, it's not the best solution and we are upset like this corgi Then we decided to do some improvements We wanted something that helped us to have several party nodes At the same time because our developers needed it We also wanted something which helps us to develop destroy and deploy party client and also we wanted to live in containers to Reduce virtual machine overheads So, you know the answer on any cloud related on even not cloud related a question today is Kubernetes So we wanted to give it a try It's we created a deployment. We created the services and it started to work We received the flexibility for operation team. We reduced our cloud bill, but still We had some difficulties. We still have manual management manual I mean that developers still need go to operation team and ask them to deal with Kubernetes And flexibility is still low because the service the Kubernetes service is hard-coded somewhere in application Somewhere here. We realized that we are dealing with typical cloud foundry setup. We have Application stateless moving fast in terms of features Node.js based and its developers love CF push. It's typical Node.js cloud foundry application cloud native and We have an external service In our case living in Kubernetes. It's faithful not so fast in terms of feature In terms of feature so probably we should do something with service broker We should create a service broker to connect to our Kubernetes It was our step two What is service broker service broker? Probably, you know a lot of it being quite common concept in cloud foundry world Service broker is a software which connects a service and a platform It's main goal to answer the several important questions Is service here? How many resources I need and how many resources can service provide? Who configure the system which provides the service and how to connect to the service from the application? We started to code even and it was somewhere in this autumn And I saw on spring one conference such a project like kibosh kibosh is a demand service broker It deploys resources to Kubernetes So it's what we were looking for our developers can use CFCI to manage services to create them on demand to delete them when they are no longer necessary and the service connection stream can be get from From environment variables which are set up in application container So our step three is to use kibosh kibosh relies on Helm To deploy resources to Kubernetes Helm is quite popular thing in Kubernetes world probably the most popular Way to deploy complicated software So what we needed is to create a Helm chart. It's much simpler than deal with service broker is go coding or something like this Now I'll try to answer that service broker important questions to help you understand how all this stuff working So is service here? Yes says kibosh kibosh. It's a typical service broker It can be used with something like CF create service broker command and It's offering a piece in Cloud Foundry marketplace after this command How many resources do I need and how many resources can our service provide? This question in typical service broker is answered by a concept of service plans Here in our deployment. We should somehow Set up services service plans in our Helm chart so Helm chart has variables and We create some YAML notation some plans to redefine these variables So we have a several variables set Rebels set for several plans Probably the easiest question Who configures the service source the system who provides the service as we are on demand We are using Helm the answer is Helm here our Helm chart do the job Our Helm chart can be customized to correspond the reach parity functional But nowadays it's quite simple. It use only one default service plan and Probably, you know Helm can deal with dependencies on Kubernetes Parity is independence of where it's not It have no dependencies on my thick already is anything like this. So no dependencies And probably the most interesting question how the developer and the application can access the server service who live in Kubernetes kibosh is a software who can provide Description of Kubernetes service and Kubernetes secrets to the container with application They appear in wicap services environment variable and the developer can do the job They can do and like do they can parse variable and Create the connection string or the configuration file how it's shown on our slide and in our case it's a brief description of our solution we are relies on the Patterns which provided in kibosh official repo We deliver kibosh as a Bosch release Our Bosch release includes kibosh itself and our Helm chart And also plans description definitely kibosh is a great software which can be the shipped with a bazaar subsystem bazaar subsystem it helps to manage Helm charts with Which used by kibosh With SLI without redeploying Bosch release probably we should use it somehow somewhere, but nowadays we are not using it we realize on concourse our ICD system Creates a Helm chart Bosch release on every single commit to github when we do something with Helm chart In general our ICD system that it's under construction now to be honest, but it has three Branches, I should say We should do something with Bosch release. We should do something with Helm chart itself And of course we should do something with application then we should merge all these flows And see how all the things are working together This is pretty all for now, but I'm show going to show a video With which can demonstrate How it's working Here we can see that we have cloud foundry And we have already installed Bosch release with kibosh Now the operator is going to create a service offering in cloud foundry marketplace And of course we need to enable service access to have the plans accepted by in space CF space Now we can see that offering appears in CF marketplace We have installed and configured Kubernetes and here we can see that we have only default namespaces Let's see what's going on with bots Also only the default stuff It's our favorite magical command CF push. We are going to deploy Node.js application It's much faster than usual because on video I make it six time faster Application is here and receive a Road Let's create now a service from the service offering Services here and see what's going on in Kubernetes Oops, we can see new namespaces created in Kubernetes for us by kibosh and see what pods exist there Yes, it's pods from our Helm chart Services as well Let's bind service to our application Definitely restate it and now we can see in environment variables All the stuff all service description and secret description from Kubernetes deployments Here's this big JSON and finally we can see that application is up and running It's a voting application using in power network to select validators. That's all from my side