Why Do I Need Kubernetes When I Already Have Cloud Foundry? - Sanjay Patil, SAP

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
all right good afternoon everyone this is the talk on why do I need kubernetes then I already have Cloud Foundry just wanted to make sure that you are in the right place you are in the Cloud Foundry summit right there are a bunch of conferences going on and we are hearing all these different buzz words so it's easier to get confused anyway so my name is Sanjay Patel quick word about myself I work at CP as a product manager in SA P cloud platform I have been in the tech industry for or two decades have had an opportunity to work on application servers integration broker middleware like corba b2b web services and now cloud platform so a lot of gray here and my wife told me one day that my hair was dark black until I started looking into cloud okay so yeah that apart the topic that I want to cover is why is a CP looking into Cuba notice when a CP has already been committed to cloud foundry for so long and what's our perspective in bringing these two things together so this is not a product roadmap presentation by CP but the main intent here is to share the status and thinking at a CP so that we can explore collaboration opportunities wherever there is common interest so that's really the Candide agenda I have over here and the way I want to address or go through the different topics is first talk about the role of cloud foundry in SCP solutions particularly a CP cloud platform as I mentioned ASAP is heavily invested in cloud foundry we have a member of the cloud foundry foundation since its inception several of our engineers have been making leading contributions to cloud foundry open source projects and we continue to do so so that's the first thing I wanted to talk about and set aside secondly then there are cases where the cloud foundry paradigm is just not a good fit and I want to take some concrete examples of ACP zone solutions very engineering engineers made a conscious choice to use cuban ladies and i wanted to put that into perspective and then talk about path forward in this multi environment world where we have cloud foundry kubernetes and legacy and other environments so that's the general high-level agenda and i'm guessing that this is a topic that's also being discussed at several of your companies so what i'm going to talk about probably will make sense to most of you as well so this is a high-level overview of cloud foundry environment in acp cloud platform I think this will be more or less similar to most providers out there so what you see right there in the center is the application so obviously application is the king and then the application could be programmed using variety of programming languages node.js Java Python Ruby PHP echo and you can always add new languages using the Cloud Foundry built back mechanism I'm sure you all are familiar with that and then to expedite innovation there is a variety of backing services popular backing services like post based sequel rabbitmq MongoDB Redis NSEP zone in-memory database engine s AP HANA then what you see on the other side from here or the typical platform services for scaling logging scheduler and then on the right hand side security service that can connect to your on-premise or corporate identity provider whatever you may have and then obviously cloud applications are great but hey our cloud also needs moisture and it gets moisture from the ground right so just like that any cloud application always needs some data and functionality that comes from on-premise systems so there has to be a connectivity service connecting you with the on-premise or other cloud applications and then there are a series of innovation services like IOT machine learning using which you can build powerful cloud applications one of the unique aspects over here is all of this platform is running on public cloud infrastructures like AWS Microsoft Azure GCP and this is not just technical enablement that you can take it and run on the clouds but a CPS cloud platform is running on these different public or intra structures so you can build an app and pick and choose which cloud is provider you are interested in and deploy the app over there so the customer does not have to enter into a contract with the public is provider separately and get a different bill which is all taken care underneath by the cloud platform so a typical Cloud Foundry application looks something similar like you first of all have application programmed in any language using a bill pack and then most applications do require either a data persistence data messaging or some backing service so that the application itself remains stateless right that's the that's the main idea behind Cloud Foundry based applications the application developer focuses on business logic specifies dependency on backing services platform services declaratively in manifesto and does a push of the code and then the platform takes care of looking into the code and the dependencies creating a droplet spinning of instances of the processes doing service binding and doing all the hard work right so it is a simplified platform for application developer so that the hard stuff like Health Management scaling resiliency all that is taken care by the platform pretty powerful model and therefore obviously why ACP cloud platform has been supporting it and we can plan to continue to do so right so having said that there are other scenarios where you know this paradigm is not a perfect fit I mean we engineers always want new things obviously from a technical perspective but there are also cases where we have to think about new scenarios and new solutions for scenarios the first one I want to point out here is custom development of the full application stack not just the business logic but the frameworks the backing services all of this entirely designed by the developer so if you think about Cloud Foundry paradigm there is a separation of concern right application code is what the developer focuses on and backing services and the entire platform is managed by the Cloud Foundry platform sabri as I said it's a very powerful model like for example if there is a security patch that needs to be applied to one of the backing services with the Cloud Foundry paradigm the security patch management can be done at the platform level the developers need not be bothered about that right however there are scenarios where developers want to take care of the entire stack there may be some custom binaries that needed to be added to the application stack there may be some custom configurations so these are developers who know what they're doing or at least they think that they know what they're doing and we need to provide them the platform so that's the first scenario secondly there are cases where the application package not just the code again but the entire package the developer or the development team wants to ensure that the package is identical in development environment in testing in production so that if there are any things that are broken at runtime the developer does not have to go through the nightmare of figuring out what exactly was the stack that was running in production right so you want to have a high fidelity of the entire application package in all of your stages of development of course you can do that with Cloud Foundry as well but you typically would need some careful processes and some careful considerations of managing your configurations whereas I think most of you would agree that the container oriented development has a much more higher guarantees of maintaining the same container image across the different environments so there are these cases then there are those cases where the application team requires the greater freedom a greater control or infrastructure binding network designs cloud is a pretty powerful thing right so you push the application and the platform runs the code for you but in order to give you that simplicity cloud has to do a lot of things in the background right so like there's a nice restaurant you get nice food but you don't want to look into the kitchen how things are being done so just like that right in the case of cloud there may be lot of moving parts the backing service that is right next to your application during one deployment after some time the backing service might be remote right so there may be this process topology changes that may be happening in the background but there are cases where the application just cannot tolerate any changes in the overall runtime process architecture like for example think about machine learning application that is expecting the deployment on a GPU server you cannot arbitrarily move that application from the GPU server to another server just because you know cloud wants to make that decision there may be cases where you're building a multi-tenant application and the multi-tenancy design might require that there is a set of processes that are contained in an isolated network so you cannot arbitrarily move processes from one network segment or other your application design might require that some processes run always together on the same host or alternatively there may be cases where the two processes can never run on the same host right is this application designers choice so what you're looking at over here is you know greater control or not just application design but how it is bound to the underlying infrastructure similarly for resiliency high availability requirement there may be some special considerations where the application designer might want to again specify how infrastructure is utilized so general purpose platform this might not cut it right so these are some high-level scenarios now as I mentioned at the beginning you know I'm gonna talk about how a CP solutions are have made a choice of using kubernetes for similar requirements since they're a platform for handling all these scenarios you just talked about the answer right now is Kuban edges right but you know you never know tomorrow there might be something else you know I still have lots of other here that need to become gray so I'm still saving them for the next innovation but in general today kubernetes is the answer for handling all these scenarios this is a high-level overview of kubernetes this is not a you know tutorial on kubernetes or touch on only few specific aspects that are key to my top over here so the core idea of containerization is that you know there's a container that is representing the whole application process what is a container which the container is a standalone application package it's simple standalone and it includes all the bits of the software right the application code the runtime different system tools that are needed settings for consuming your infrastructure like disk space and everything so this container image once you build then it can be deployed in Windows environment Linux UNIX environment and it will run identical so that's at the core then there's this concept of grouping together related containers in a part and the parts then get deployed on nodes right which are your physical hosts or virtual machines and a bunch of parts together then represent a specific service right so if you think about this model from a developer's perspective you're thinking in two ways one is what is my application logic right what are the different binaries frameworks it is using and how do i structure my application in terms of one or set of container images so that's a pure application function ID perspective at the same time in parallel you are also thinking how would this get deployed what is the process architecture at the runtime which process needs to run on which specific hardware what how do I manage scaling that is taking into consideration the specific requirements of my application in original purpose you know scaling or availability solution so this paradigm of a simpler development view of container based programming as well as this powerful mechanism and freedom to control the infrastructure utilization that is what is setting kubernetes model or the controller ization model apart from the other platforms like Clark foundry so having said that what are the solutions a tcp that are leveraging kubernetes there are many at the moment or more on the way I'm going to talk about some of them first one let me spend a few minutes on an emerging solution at ACP College acp data hub so what is the most important asset in any enterprise data right exactly so and where does the data come from so different departments have their own data sources there are types data systems and then there are the departments that have their own data warehouses data Mart's operational applications whereas in the business level the business users want analytics powerful operational applications they want to share this data with this partners really quickly so this is an age-old problem right we're not talking anything new about this anybody who has been in the industry for some time knows that we always keep talking about this problem so why has this really not been solved you know once and for all right that is essentially because I think at the core of it there are many challenges of course but a key problem there is the data silos are not connected really well there are missing links right that's the fundamental problem or there I'm not claiming - I'm going not going to claim that we have arrived at a solution that is going to fix it for forever but here is an attempt from acp to solve that problem called as a CP data hub so this slide looks a little bit busy I just directly took it from a marketing team but I'll talk about the core point of this slide which is to leave the data where it exists today not try to bring all the data in one central location that just doesn't work your vendors might tell you that yep let's use this solution and bring all the data over here we own the data and we own your business this never works so you got to leave the data where it is today and you of course there at the same time want to have central governance so you need a solution that allows you to do central governance while keeping the data where it exists today so that is essentially the core idea or here and how are we doing it again I'm not going to go through all the details of the product well let me directly cut the chase and go to the core design element of a simulator hub which is that there are many enterprise systems that hold data big data systems cloud storage your applications right and to bring all of this together what this solution is doing is building powerful data pipelines in a pushdown manner meaning you construct you design the data flow and then you deploy this application so the actual elements are processing that need to operate on certain data storage will go close to the data storage or data system and do that execution so the idea here is to have a pipeline which is a computational graph and computational graph is essentially network of operators and each operator is then basically designed to the data system it's working with you can imagine data operators operators for Kefka consumers another operator for HDFS producer so if you now think from a developer's perspective of data pipeline the developer of this pipeline knows what needs to happen not just that the developer or architect also knows that where a specific operator needs to be deployed right and what kind of different operators in this computational graph need to be clubbed together how they need to scale so directly you can your mind you can map these requirements to keep a radius right it's not just the application design but its deployment architecture which is germane to this whole realization the development and implementation of this data flow so this is one example and there are other cases that are not pointed out over here like for example you have to trigger a certain data pipeline when some data changes somewhere your businesses want to be responsive to handle any new threat or any new business opportunity that gets typically reflected because some data change is happening or somewhere so this is more pointing to the functionless sorry the function as a service server less architecture for which again kubernetes is a is a perfect platform underneath likewise for this specific solution from si P we have seen customers we have data on premise there are other customers who have data in clouds so I'm having both places by having the architecture developed on Cuban Ares we're finding a very great deployment flexibility 50% of the customers today have deployed the solution on-premise and the rest in cloud and this kind of flexibility is possible because the Cuban Ares has a much broader and greater adoption across both on Prime and cloud walls so from that business agility perspective as well this choice seems to be a pretty good choice or the right choice or here another solution blockchain as a service I'm sure you heard of blockchain again I'm gonna spend only a couple of minutes on this topic or here but fundamentally what does block Shin do right it blocks in basically introduces a technology where by you can build trust in the network without requiring intermediaries and not requiring intermediate is tremendously cuts down your costs as well as time of processing lots of applications can definitely benefit from this SCP obviously has a series of application that want to benefit from this technology so what do we need from an essay piece application development strategy perspective we need blockchain as a service right so that then we have this ability to build trust in the network and different applications utilize it now how do you implement blockchain as a service right over there again there are variety of technologies to be used which come with different programming libraries in different programming languages different implementation environments kubernetes comes to be pretty handy over there as well for reasons that I talked about for the case of data hub earlier and other reasons such as the implementation involves special Hardware custom libraries custom binaries and the container paradigm and the container orchestration paradigm from kubernetes comes extremely handy over here and the other topic of having you know different tenants using different network segments that comes extremely handy for this application for this service design as well so essentially you can think about the SCP data hub more as a quasi platform right so Kuban EDC the underline platform a CBD drive is a platform on top blockchain as a service is more an example of backing service right so you might say okay this is obviously a case that is not for cloud founded you cannot do see a push of an entire platform on Cloud Foundry platform now I'm going to talk about another example which is more an application example however this is an example which is not about you know lightweight well factor apps but this is a heavy-duty complex application called a CP Conqueror it does it manages travel expenses and invoices it's used by millions of people across the globe so this essentially helps you handle you know filing your expenses as and when you need and obviously these travelers on the road they expect this application to be running responsive and always available imagine if you are trying to upload a dinner received after the dinner is over and you're struggling with the app your entire party has bored out of the room and the waiter is waiting for you to be politely kicked out you don't want to be ended situation right I mean it's not a mission-critical situation but if an app does not respond very well for a few times you're gonna stop using those apps right so it is obviously a high it's a requirement to have this application globally scalable always available in this particular scenario the development team when they looked at it looked at the different choices the main problem they were trying to solve is the application existed and they wanted to kind of modernize it right use micro services architecture for that they wanted a platform that would allow them to piecemeal take parts of the application turn them into services and continue on that journey and that's where they wanted a transformative platform and if you think in this particular manner you need a platform that has a pluggable API that would ease integration between different parts of the application as well as rest of your system so cubanía is with its pluggable api was the mid as the right choice by this product team likewise they at that time they wanted a platform that can be quickly set up with minimal complexity they found communities to be spun off much more easily and while they really love the idea of containers they wanted to have some platform that is not tied to a specific container technology so for this reasons ASAP conquer an application so we talked about a quasi platform like a CVD to have a backing service like blockchain as a service and SCP concur as an application various different large-scale projects at ACP making choices to use queue Benares this is just a V of the CP Conqueror having multiple different groups of services or 30 services in different groups how already transformed to use communities and rest of rest are on their way so this is again a quick listing of ACP applications and projects that are using kubernetes services like data hub blockchain machine learning IOT multi scale is a CPS Hadoop as a service that's considering to use Kuban areas likewise a series of applications and this is just a CPS on project our customers and partners obviously have similar requirements right when SAV partners add their own solutions they have a very similar requirement of having a flexible platform that can be then deployed on-premise in cloud and provides the same benefits so what is the CP technology yeah for catering I love this cube Ernie's kubernetes clusters the CP stakeholders as well as outside the answer there is something or less project Gardner I don't know how many if you heard of it and we are just started talking more about this but project Gardner is an open source project by asipi you can find it on github today github.com slash gardener and the main idea there is to allow end users to create and manage kubernetes clusters in a highly homogeneous and secure manner on any given public is infrastructure it's extensible obviously so that you can add new features and you can add support for new cloud providers and it uses kubernetes itself for its own health management and skilling and i'll talk about that in a minute so if you think about a traditional Cuban ADIS cluster setup right so it has the master nodes which runs the control planes it has worker nodes which don't actual workload your applications and in order to have high availability of the control plane you typically have multiple master nodes so that that probably is pretty well known concept now if you have multiples of these clusters for your different projects right you are now faced with the task of managing all these clusters independently keep them secure keep them homogeneous from an oral cloud platform management perspective pretty daunting task to keep all of these clusters well synced up in a homogeneous manner so what we're doing over here with kubernetes sorry gardener project is that we're taking the control plane from these clusters that are managing the workload in a dedicated kubernetes cluster which will run the control planes of other clusters as its workload okay so we got the shoe the clusters called as chute clusters on this side which are actually running the workload and their control plane is running in a seed cluster and the workload of the seed cluster is nothing but control plane for all of these actual chute clusters and we have a dedicated chute seed cluster for each cut provider for region and to manage them we have another cluster called as garden that would run this seed cluster then shoot cluster so it's like kind of like using kubernetes to manage the different clusters and their availability and resilience it's kind of like the movie Inception if you have seen it right so actually I slept off in that movie and I woke up in the middle and I asked my wife like what's going on here she said you're probably watching that part of the movie in your dream and if you go back to sleep you will enter into another dream and catch up you the next part of the movie so go back to sleep alright so basically we're using kubernetes or kubernetes to provide high availability or here so it seems that we need both cuban Redis and Cloud Foundry so what is the path forward well integrated multi environment is how we are looking at it so this is one quick set of slides that should show us how we're looking at these two things so motor cloud is pretty essential aspect of everything we do all right we definitely want to retain and respect the choice of customers and partners to pick and choose their cloud provider on top of that then we have cloud foundry running today and then you might have services deployed either as part of the cloud firmly platform like most of the backing services or it might be using services deployed elsewhere right through the common mechanisms that Cloud Foundry provides and then Cloud Foundry uses creates apps and these apps would be consuming those services great model for agile innovation that provides the platform as a service simplicity for development team using which they can build 12 factor apps so this provides of mechanism for customers to have centralized governance so that still lots of different teams can have their own innovation right and we're definitely continuing to do that for Cuba radius it has a variety of workloads I talked about backing services domain platforms and complex applications over here again we want to respect the multi cloud aspect first and then using the open source gardenerd project we want to have an abstraction of kubernetes on these different public cloud providers and then using this then our teams can build services like blockchain machine learning as well as build different applications like acp concur i talked about and they can consume the services this services by the way can be exposed to not just communities apps but any other apps using open service broker API concept which is CP supporting now going forward this is a combined vision where it's not an either/or choice but we want to have again starting with a multi cloud support kubernetes cluster is a service using open source gardener support kubernetes based services and apps in their consumption and run Cloud Foundry itself as a workload on kubernetes clusters so that then you can have apps created by Cloud Foundry also running on kubernetes and consuming the same services so this is the direction we're headed like as I talked about currently cloud funded and so on different clouds multi cloud approach kubernetes also will be supporting on multi cloud instead of trying to solve the problem two times like how does our Cuban ideas cluster runs on multi cloud how does the Cloud Foundry runs on multi-cloud we need to solve it once all right I mean this again divides me of the great physicist Newton who had made two holes in his door one for the bigger cat one for the smaller cat the smartest guy but you know sometimes we don't want to do those kinds of mistakes um so these are the main open source project ASAP is driving in under platform leaf foundation to bring these two stacks together there's this there going to be more presentations on this there's also a panel discussion in the afternoon that might touch upon this the first project talks about how do you publish and consume services across these two stacks how do you reuse some of the code componentry instead of reinventing the wheel two times how do you use reuse some of the main components that are needed both of these platforms so this is more like a must-have project where a CP is taking a leading role and driving it there are lots of detailed requirements as well as high-level design documents that are publicly available today that you can check out the second project led by IBM at the moment is to use kubernetes as a scheduler for cloud foundry applications so you can do a CF push of your app to Cloud Foundry and cloud foundry instead of going through the diego route and spinning off a run C container it'll use the cloud for a to Brady scheduler for the runtime of your see a pushed app the third project is taking that idea further and using and container izing the entire control plane of Cloud Foundry so you can think about the whole cloud foundry as containerized cluster a containerized workload running on kubernetes cluster so this is the general direction and I think this is really nicely laid out in terms of the value it provides so the path forward is again multi-language is multi-language multi-cloud multi environment is our reality today that's the need of the current times and we are we have kicked off some of these open source project to collaborate with you know any and all of you who have common interests in these areas open source project Gardner is to enable kubernetes cluster as a service uniformly across different public cloud providers and I just talked about the three different work streams led by a CP IBM Sousa and others but it really doesn't matter we work together as a closed community so those are some of the projects over here so that brings to the end of my talk I can take some questions or hear in the remaining few minutes if you have more questions I would like to point out that there is a panel discussion today at 5:25 p.m. in room 253 a ver speakers from acp pure tol Google Microsoft IBM and Souza they will bring their perspective on you know will cloud foundry and kubernetes blend and how does it blend really and if those questions if your questions do not get answered there if you still have more questions feel absolutely free to stop by CP booth on the show floor or our booth number easy to remember to to to so with that thank you so much any questions that I can tackle in the last couple minutes yep that's a separate one so you would use gardener to deploy a Cuban Aires cluster on Amazon and that cluster will be managed through Gardner good question hmm those are just the worker nodes exactly you yes the applications themselves communicating with each other is if you're quash yes right so Gardiner will manage clusters on these different public cloud infrastructures there will be a seed cluster poor provider per region that will take care of the chute clusters that run the actual workloads per region and gardener will manage it centrally homogeneously securely that's the idea all right maybe last question because I think we might be running out of time yep right so I didn't talk too much about the given ideas cloud native computing Federation on in this or here but SCP is a Platinum Member and major player in that area and you won't be surprised if you are talking about the same project and if there are others obviously we'll be working with them in ciencia over there we are part of CN CF or platinum or whatever top-level member we come up with some different names for the membership but we are pretty active over there so I'm kind of giving a variation of this talk at cubic on in Copenhagen a couple weeks from now so we are deeply involved in CN CF as well all right thank you so much for being here and listening to this talk thank you
Info
Channel: Cloud Foundry
Views: 11,214
Rating: undefined out of 5
Keywords:
Id: 0jy3hMt1Zc8
Channel Id: undefined
Length: 32min 58sec (1978 seconds)
Published: Tue May 01 2018
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.