 All right, good morning everyone Thank you for joining me today today. I'm gonna talk about an approach basically to migrate applications to market enterprise applications into a open stack So konnichiwa to our Japanese friends. I'm really excited to be here. I'm Arthur Bresen From Giga spaces working on a cool product named Cloudify so Hello Tokyo very very excited to be here You know obviously never never thought I would be in Tokyo for the open stack event and for me Actually, this is very exciting for two main reasons. First of all, I drive this car I really really love by Honda, which is a Japanese car. So thank you Japanese guys for for making this I'm really you know if you read the specs and if you're into cars You'll be you'll definitely, you know, enjoy the specs and I think this is a true You know true short showcase of great engineering So I'm super excited, you know for for being here and being part of this community and basically Making the Japanese guys and making you guys basically and core members of the open stack community and basically Help us build this community and build this this this platform To be way more stable and way Way more approachable to everyone So one thing to note though, I'm not the driver if you're on for law enforcement This is not me And the second reason I'm super excited to be here because I'm basically announcing a book I wrote about open stack production named the production ready open stack Where basically you can find multiple recipes on how you configure open stack use multiple components configure LDAP configure Various cool things. So I'd like to thank a gigaspaces red hat Lifeperson and matrix in Israel, you know, this is my personal path. I took and this is what made it happen for me So I'm raffling free books if you Follow me and Twitter and just you know tag me on whatever you would like I'll be raffling some some free copies and you have also promotion codes Don't hesitate to use them So today, I'm gonna focusing on on on several things For migrating applications into open stack So I'm gonna talk about the various approaches a few approaches have been hearing around it Basically, we've been hearing around in the open stack community our approach with with with cloud if I basically our orchestration oriented approach and discuss some use cases That we've seen with with customers actually, you know making a Making the migration the seamless and work So if we if you look at the application level If you look at the application level vision and you know, how would we and vision? Applications to be deployed on clouds. So, you know, we've obviously seen this this Major shift in in mind share actually in the past I think five or more years where we basically have everything as an API, right? So all the infrastructure all the services all the new products all the cool open source projects that are coming out Everything is available through an API and this this basically allows us to automate everything and make everything seamless You know kind of like the revolution that the car industry was going through So, you know instead of making each and every car by hand and having a long assembly line and you know Having a human error margin etc. So this allows To make everything automated and then and then basically Way way faster deployed But there's also another aspect to that and basically this enables awareness and Reaction to self to the application itself and this is actually the missing the missing piece in a puzzle that we have not Achieved so far. So, you know, you build applications. They are automated But it would be really awesome if they would be able to to know that they're running an open stack If they were able to know that they're running on VM or if they're using specific configurations And basically would be able to react to what's going on So if you have a node failing if you need to scale out if you need to scale up, for example, you know Whatever the case needed to be whatever the measures needed to be taken for from the application Side it would be really awesome if the application could Automatically react based on what's going on basically on know on what's what's going on underneath it So, you know coming down a little bit from the vision from this grand vision of having self aware applications So the reality is we have multiple applications and all the applications basically have multi-tier architecture You have databases you have location servers front ends firewalls DMC is you know, you have tons of these components in place, right and Basically, all of them are hardwired To the infrastructure they're running on so if you used to have a VMware cluster and if you're now You know most of environments I've seen so far with open stack as well when you deploy a new application into open stack the configurations and the code and everything that you all the work that you do to to to Provision that that application on open stack. You basically tie that application to the specific environment and so Having said that and you know, if you look at that at various Migration paths that we've been hearing around so if you like go quickly over some methods Obviously, there are many many more methods of migrating applications to open stack from existing clouds Today so Just to quickly cover some of the some of the approaches so manual migration, you know, it's kind of like the most Obvious one and you know, it might seems easy at the beginning, but it's never easy because everything is always usually a Hardwired and configured to the specific environment So, you know, if you take in one application runs and opens on VMware, for example And you would like to move it to to open stack You would have to first of all, you know Just for yourself to map out the whole the whole Topology and the architecture of the application obviously have multiple components you have storage you have networking You have lots and lots of bits and bytes that you need to take care of and once you take care of them You migrate each of each of those components for that architecture into open stack and basically Hardwire again creating basically the same problem again in the open stock in the open stack realm So another notion we've been hearing Quite a lot recently Is the container notion, right? So basically restructured application again, but you're saying you're containerizing the various components and build various Microservices out of that application. Obviously, there are lots of details. You need to work out here as well For example, you know storage And networking with here we've heard the announcement for the networking for containers this morning, which was a really good news and Should make some of the things my way way more easier, but you know still you're migrating a very complex applications and again bounding them into the open stack realm and in the container realm and And the additional stuff that you need to Need to work through you again, for example networking and storage you still bound those things To the specific environment open second this case So there's also another quite new notion. Well, not new in the virtualization world, but new in the in the public cloud Public cloud offering world which is called nested virtualization. So you take all your existing application That you already have today running in your environment and basically you put all of those virtual machines into one single huge virtual machine and you have All those virtual machines running today nested Insider the virtual machine. So this allows you to have multiple virtual machines bound together and this makes this whole huge VM portable basically, right? But again, you're still not solving the portability issue of the application itself You're just working around that problem So another approach Is the API portability so We've all heard VMware's proposal for for open stack where you basically install open stack on top of VMware and present The open stack API is on top of VMware's workloads. So this is the product VMware offers they called the VMware VIO really cool offering interesting to to to a native open stack use in the native VMware Users, but again, this makes the application live inside the VMware world and Unbound to the VMware configurations and obviously tomorrow if you would like to change a specific technology a specific component You would have to unbound that and then and work That configuration So there's also the pass notion the platform as a service. So for example You could build your application basically this most in most cases this requires you rewriting an application In a past manner right so basically You change all the flows Of how you of how the application is structured or how you deliver the code And you use an existing platform to rewrite the code to deliver the application And there are some some great projects and products based on pass obviously OpenShift and Cloud Foundry are one or two examples of those quite popular out these days But this note this this approach again requires rewriting the whole architecture of the application and the structure of the application itself and you know requires quite quite heavy lifting So it's not in place migration of the application itself rather rewriting the whole thing from scratch Which again, you know very very time-consuming and obviously not not suitable for for all all cases so There's also the orchestration approach. So once you are able and this is basically this approach This approach basically allows you to orchestrate or says that you once you are able to orchestrate the deployment of the whole application This this this makes the application way more easily deployed on multiple environments, right? So for example, if you have a fully automated process of deploying an application on VMware for example, or any other technology obviously and just picking up on VMware in this case But if you're if you're able to automate the deployment of an application It would be rather it would be quite easy to to deploy that specific application on a different type of technology And obviously I'm a bit biased towards this direction and I'm gonna talk a bit about Our approach to orchestration and how we we help our relations do this migration so a quick quote by to I Charles Darwin He's saying basically That it's not the strongest species that survives It's the one most adaptable to change and we know that you know from look look at industry in the past few years There's there's been tremendous changes In the technologies and the adoptions of various technologies in any open source world, but also, you know as general in the in the IT World so we've seen open stack and we've seen containers we've seen Kubernetes and there's I think the waves of New technologies that arrive in going quicker and quicker. So change is always happening and this is the second quote which Unfortunately, I couldn't find the source. I think I'm not sure if we Couldn't find the source of this quote, but our CDO constantly says that you know, given from his perspective And obviously quite quite a long experience in the industry So the only constant is change and things always change right in 2000 in the Indian Late 2000s we had virtualization which made a major Transformation in how we look at computing now we have open stack and now we have open source Which which gains lots of traction and changes the way we think about things and after that we have Kubernetes that again Looks at how we structure applications, etc. So they call the only constant and change and I think it's important to be ready for that change So what I what are what we are basically proposing is, you know What if your cloud? What if you could deploy a specific? application on multiple clouds and It that the whole process of deploying it would be seamless you basically would choose You know you would have your application and you would be able to choose where you would like to install it and the application would be Aware of that environment aware of the of the specific details for each environment So you for you as a user or or as an organization deploying applications This process would would be seamless So three three key aspects to this approach The first is all open source right. We're all here because of open source open source drives innovation And basically, you know once we collaborate with one another we would definitely achieve a Tremendous tremendous goal. So, you know, we're all here basically because because of open source. The second is not less important If not even more is open standards So open standard means we're all speaking the same language. We're all using a standard way to do things And I'm gonna dive into that a bit in a second The third also is important aspect is to be able to be trend aware So once you have a new cool technology, you can seamlessly play with it You can simply simply deploy it and use it But you would also should be able to to keep on using well-known and proven technologies at the same time So this is also a very important aspect when you look at at the point that it's At orchestrating applications So if you match that the various types of orchestrations, there are several there are several Key types there. So obviously you all know project heat, which is very open-stack specific awesome project To orchestrate workloads in the open-stack world So this is basically an infrastructure driven and an infrastructure specific Orchestration solution obviously for AWS, you know the similar for that in WS is cloud formations and every major Cloud platform has its own orchestration tools There's also the container specific Components so Kubernetes is one is one example of them Mesos is another example for container Container orchestration platform that you could use and and these types of of platforms are bound to containers only So cloudify is a pure play orchestration tool meaning it works seamlessly with all tools Using a plugin mechanism. I'm gonna talk about a bit to that in a second and it uses the Tosca specification to describe applications In a standard manner in a standard language based on a standard By oasis So if you look at the Tosca spec and how you build a Tosca application And how you define that the application blueprint that three major three main aspects to that the first is a topology Where are you where you describe the topology of the application of multiple components? You have the workflow part Which is how do you actually deploy specific thing? How do you install something? How do you uninstall it in case you want to? Reverts a specific action you've done or how do you scale out? new virtual machines or new new new database in case something goes wrong, for example, how do you heal a specific failed node and the third part is the policies Which is the notion of what action should I should should I should should the system take play? What action should the system take place in case something goes wrong or something is happening in the environment? So for example, you know, I'm seeing lots of traffic. I need to make a decision of what do I do now? I'm seeing a specific VM, which is key to my application Failing or not responding what I do now. So this is defined in the policy part So this is a typical application topology and you have certain notions When describing a topology you have the node type notion and there could be multiple node types That you could use you know containers VMs volumes Etc. Etc. And basically every Every component every major resource that the cloud can provide through an API We could we could map it to a specific node type and use that within a blueprint So if there's tomorrow a new service in OpenStack A new API called in OpenStack that present that represents specific resource We could map it to a node type and use it within the application blueprint There's also the notion of of connections Connections in the topology. So for example, we have our you know our Java application, which is connected to the MongoDB database And you have also notion of of contained in And where basically you describe as part of the technology that the NodeJS application is Contained on a container on a Docker container and that containers Contained on a virtual machine on run or the trans on OpenStack, for example So the specific node type for the VM would be would be Would be an OpenStack VM node type so That the topology consists of all the types the node types and the interfaces It also consists of inputs and outputs So I could define as part of this application blueprint that I'm writing I could define the inputs to that blueprint So for example, I want to specify when I running when I'm running my application for the first time I want to specify the number of of of the web front ends. I want to run in my environment I want to specify a specific IP address that I want to present publicly I want a specific URL. I want to use in that application. So these are Examples for inputs I could define. I could also define outputs. So for example I'm running a new application, but you know once the application is running I want the I want the blueprint to tell me what's the IP address to access it I don't want to tell it. I want the application itself to tell me how to access it for example So these are the topology outputs and also I could define the relationships I've described before contained in connected to etc. And there's also the notion of requirements and capabilities So I could I could define specific capabilities for a node type for example Let's go to the previous Screen so in this case, I could define that the MongoDB nodes type is Basically providing the capability of a database of an is no sequel database for example And then I could define For this Java app I could define a requirement for it to to to have a MongoDB node type. So this allows me to do a very sophisticated mix and matching for specific for specific for specific resources and configurations that I can use within the application So the second part is the workflows and basically in this part I describe like the actual actions I should be taken I could be taken as part of this application So how do I install a specific node type? How do I uninstall that specific node type? How do I configure the database? How do I scale out a database for example and this mechanism is written is basically a Python code that you can you know you could It could be basically implementing whatever you would like in this in this part and We have lots of thoughts on on multiple possible integrations with with the declarative workflow mechanisms that are existing out there. So, you know, I've just taken few notes here for a few examples obviously mistral for in there for the open stack world But it also look quite cool cool tools out there to do, you know, workflows really well as well So cloud slang and stack storm and really two cool tools that we're thinking of integrating with and the third part of the application Blueprint is policies and in this part. I basically describe on how do I react? When things go wrong or things go right or when things happening in my environment So I'm basically monitoring the application constantly and in case I need to take some certain action I can define those actions as part of the policies So currently our implementation is based on on reman Which is also another open source project and you can write the policies themselves in closure code Obviously you can do a lot of cool still cool cool stuff here as well And we also have some thoughts on possible future integrations But this area is a bit less defined from a Tosca perspective. So we are exploring in this area as well So once I've written my my Tosca application Cloudify basically takes that Tosca blueprint including all the inputs I'm providing to deploy an application and it uses multiple plugins to provision monitor configure that specific application And I have multiple types of plugins. For example, I have the infrastructure service plugins. I have container specific plugins And configuration management plugins and also monitoring plugins that I could use So for example, I could use, you know diamond mechanism and various technologies to implement those parts And this architecture basically allows me to use multiple types Of configuration multiple types of technologies in a single application blueprint So again, imagine the app like in the application in the blueprint itself I'm just describing my application, but all the pieces of the puzzle Are basically I can change them if I would like and these are the details I would need to figure out when I change specific technologies and This basically allows me to describe a not only, you know application is bound to the open stack But could be used in multiple technologies. So for example, I could use, you know The open stack virtual machine. I could use Docker container as part of open stack, but I could also use as part of the same application Docker Containers that are managed by an external Kubernetes cluster that I have, you know Separately from open stack or on top of open stack as part of the Magnum project, for example So this is really allows me dynamically and then Use multiple technologies as I need them, but also rely on on existing technologies If I would like to keep using them as part of the application itself So to talk a bit about specifically about two use cases with we are in engagement right now The first is TD Bank that uses Cloudify to to provision Applications and to manage applications on multiple environments So they have basically multiple environments and open stack and on VMware and they first of all They would not look like to be bound to any specific technology And they would like to make the decision, you know based on on business rules For example specific application needs to live in open stack You know to be cost-effective or or the SLAs is good enough or to be you know to a specific DMZ for example And such such use cases So again, you know for them open source is really important The standard part is really really key because you know, this is not something Cloudify invented this is basically an industry standard that we're just implementing So it's not up to gigaspaces for example or to Cloudify You're not bound basically to this product you can reuse the specific application Because this is an open standard That we are using and this is a really key I think to to many of our of our users today The second interesting use case is in the is in the NFV in the telco world so So Deutsche Telecom are looking to implement an NFV environment and they're looking for an open source Mano orchestrator so The application management part there is done by cloudify using open stack and chef for example and we have a Showcase where we deploy a clear water application, which is kind of like this Skype equivalent You can you know using clear water application You can do video chatting and stuff like that and it consists of different Microservices there interact together to build this this video video streaming a video chatting service so this is again implemented using cloudify as well where cloudify is is the management part in the as part of the the Etsy model So one more or less thing I would like to show today And this this is our cloudify composer So we have a UI composer where basically you can drag and drop various node types as part of the task aspect and this allows you to To structure and to build the topology of the application using a simple web UI tool So you know just go through a web browser And and this this lets you get get a get Writing application very quickly so instead of you know learning the whole DSL from from scratch on how you describe task aspect You just go to the to the composer and you know using a simple web web UI tool. You could create seamlessly a Tosca blueprints that you could use within cloudify So this is actually you know, this is this is not yet g8 We are releasing our first version of the composer on November 30th And all you're all welcome to to go to the giga to the cloudify and get cloudified at org website And to get the sense and feel of cloudify and how you orchestrate applications So thank you all and I'll be happy to take questions if you have any and this is the QR code for the slide deck I know some of you have been taking pictures So you can just scan the QR code here and and get access to the presentation itself And I'll be happy to take questions and there's a mic over there if you're if you have any questions No questions All right, thank you all and I'm here in case