Setup PostgreSQL DB In The Dev Environment - Feat. Helm And Crossplane (You Choose!, Ch. 1, Ep. 5)

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hello hi hello everyone hi everyone who's here welcome to yet another YouTubes uh this is a show a Choose Your Own Adventure style show where we're navigating our way through the entire cncf landscape so we're in chapter one episode five already time flies out of how many 150 approximately well we're and and I'm only thinking thinking of that because if I think about all of it all over right now um one thing we're talking about pre-show is um celebrities that like you know how everyone has like a celebrity look-alike or people have a celebrity look like you told me who people told you they remind you of and it made me fall over from laughing the old guys on a balcony in Muppet Show all they do is complain about what others are doing and it's extremely satisfying right but I do go to someone's some talks in conferences I'm that guy in the first row kind of and then I'm not even paying attention to to what the presenter is saying kind of like okay so how can I mess up with him kind of like okay what will make him really freak out on the stage or her or her or her I I know you've been to a couple of my talks I'm glad I'm glad you were kind to me that I dodged now yeah now we're gonna present together at kubecon so maybe I won't get heckled if we're on stage together or maybe it'll be twice as bad I'm not Oh you mean that excuses you from the process it's fine I'm not afraid I ain't afraid of you okay so we're in chapter one as we said we're in episode five I'm gonna very briefly recap what we've been through so far Victor stay with me here so episode one build container image y'all chose Cloud native build packs episode two push that image to a registry y'all chose Harbor for that episode three Define your application with um and y'all chose Carvel ytt for that um last episode was use https and what were our choices there they choose you actually didn't choose anything because you didn't have a choice it was you don't choose last week because cert manager is is the the cncf offering for managing certificates with kubernetes um do Let we should probably what did you learn last week about cert manager Victor I learned nothing in general ever how do you know anything I don't I'm just really good at pretending you know it's same thing long time ago when I worked in an office right everybody watches football I'm the only one not watching but I still engage in the conversation as the Arbiter was obviously favoring the other team that was obviously happening and that there was a penalty yeah yeah oh no no oh yeah that was a clear violation he published first [Laughter] even if your team won and you don't know you're still outraged because we could do so much better so so the answer to pretending like you know everything is just to be angry at everything all the time exactly wrong I'm like taking the time to really learn stuff and trying to be nice it's it's it's a lot of extra work sticking up the rookie mistake um so serve manager is super awesome um you can define a certificate resource and kubernetes so you say hey I want a certificate you point out an issuer which is another uh resource that you can Define in kubernetes using cert manager and a resource ties um a start manager to an actual certificate Authority that exists in the world so you say hey I want a certificate I want it from this issuer so I went from this CA and then I wanted to live in this particular name space an insert manager magically behind the scenes makes that certificate puts it in a secret in your name space and then it will automatically renew that certificate as specified by the issuer and and once you make that certificate or resource you just set it and forget it but there's a lot of amazing stuff happening behind the scenes to make that happen you don't care you just get sick it just works you might be a professional certificate nerd like Ashley who was on her show and that's okay yeah you can care there are certificates in Earth three in total problems one of those three is gonna retire going to retire soon so we're gonna actually will be 50 of them yeah that's amazing we I think we came up with a video game premise where one of the the trust door Cas uh one of the keys gets compromised the keys of power and you have to be a professional certificate nerd and go rescue the compromise key we're we're so much fun here ugh I say with rolling eyes um I hear myself talking anyway so we uh so that's what we did last week and now I think it's maybe time for you to show us how to implement that certificate resource that we were just talking about what do you think that's what I'm going to do right now can you put my screen screen on yes there we are okay so since we are using ytt that was one of the previous choices I implemented it in about a couple of resources here that weather first is ingress and you will see here if TLS is enabled which I'm going to do soon I'm selecting the Clutter issue should be called production I already set up a search manager in advance there is a cluster issue called called production already running in a cluster and now I'm instructing my Ingress to use that cluster issue right invited the format and another thing would be YT resources and certificate this is the certificate itself that we are requesting we are requesting it using cluster ratio production certificate and here we are specifying the host and the DNS which is same as the host for that certificate so essentially we're telling it what is the domain uh the host that it should get certificate for and finally uh uh you saw some violence values there so here is the schema of ytt doesn't matter doesn't matter what does matter is that TLS is by default disabled right so I'm going to enable TLS in my manifest there we go I change TLS to be true and I'm going to deploy generate manifest first ytt dash dash file uh ytt schema and another file which is ytt resources and another the values file for my development environment which is value step right and I'm going to Output that into PhD into ytt Dev why it doesn't work ytt what's the directory I forgot oh no not YT yaml Dev this is where I keep stuff up yamo and there we go right I got Ingress with the label required and I got the certificate now this is new this was not happening in the past so let me deploy Cube cattle namespace is Dev I want to apply whatever is defined in yamo Dev directory let's go there's the ah there we go uh the certificate was created the Ingress was modified or configured now to be on the safe side I'm going to Output uh issue certificate requests certificates orders and secrets because a certificate will be in a secret ultimately and not there yet it did not create yet what I need so we need to wait for a second let's try again still not there sometimes demos failed failed we'll see I have a question so you used an issuer a prod issuer is it common for for people to use https for a Dev environment or is that something I don't think it's that common but there is no good reason not to use it uh if it's uh because let's I'm using now search manager with let's encrypt gives gives you certificates for free so if it's free if it's no additional work required uh the better question would be what's the reason not to use it right and still not working I'm going to double check what's going on and if it doesn't work then I'm going to blame it on Whitney it is probably my fault or exactly there you go uh it's still not there I'm not sure why uh probably because before the show I was messing up with the cluster I shouldn't uh we'll get back to it later imagine that it worked and we would get the certificate and I could visit my application right now actually there it is it is yes there we go uh it came at the last second you know it's working because I know it's low resolution but you can see here information uh that connection is secure it's using https it's working it's there rejoice good to know and it's really easy uh you just specify um let me remove this you just specify the issue you want to use and that's about it yeah and the domain name you want to make your yeah exactly yeah domain name is kind of important otherwise not good now you can use search manager also for internal traffic for internal certificates we're not doing that today uh we know we're going to get there nobody knows when those 190 projects left and safely stay no one knows we have um we're not going to introduce our guests just yet we're going to talk about them a while first but we have uh Dan Mangum coming from crossplane and Andy block from Helm who uh Dan and Andy I'll collectively refer to them as Dandy yeah no okay uh and so I'm super excited they're each maintainers and they're going to teach us about this next step we want to do which is to set up postgres ql database in our development environment so exactly yeah what are we thinking about as we review these Technologies to use for this step like what um what are we evaluating when we're looking at them so essentially the choice is really ignoring now with which technology we're going to accomplish that the choice is really been speaking about development environment specifically uh whether to run postgres in our case locally and when I say locally I don't mean your laptop I mean the kubernetes cluster where the application is running or to use one of the cloud cloud vendors you know Google Cloud Azure AWS Alibaba I don't know what else is there so why would you what why would you choose to run through a cloud vendor as opposed to spinning one up in the same clusters your application so with Cloud it's generally speaking you're noting that this development environment I like the idea not my problem that's my life uh philosophy uh meaning hey it's running in AWS Azure Google they know what they're doing I hear my database I created when I need it I destroy when I don't now potential problem in development environments for that is that uh it might take time and when I say time depends on the vendors anything between one or two minutes to maybe 10 minutes to set it up if it's running locally then that should probably be reduced to seconds below a minute so to run it locally has a lower time cost and probably a lower actual physical money costs too yes uh again depends you know if it's something short-lived then you know you're going to run it while developing testing whatso not we're talking about our set that doesn't cost in either case right and we're talking about small instances and things like that I don't think that cost is a major you know when you have petabytes of data then that's an issue right that's the cost okay for a small database uh if somebody has initial I'll I'll see I'll I'll wire you three dollars and you have a you have a month of a small database or something like that uh I think that the bigger issue is really uh not the issue but patience right is 10 minutes too too long or too short and also some people for one reason or another do not want to or cannot use cloud right um and then running it in kubernetes cluster is definitely the option okay so is that the main thing we're thinking about when we're looking at the tech today or is there um other factors we should be considering that's the main thing how can we spin up a database in development environment whatever the development environment is whether it's a local cluster remote cluster some cluster all right is it is it time to bring on our guests just to say hello yes bring on dandy let's bring Dandy bendy to the screen all right we'll start with Dan Mangum welcome Dan introduce yourself please hey folks uh my name is is Dan uh I go by hash Dan on all the all the places um I'm a cross plane maintainer I work with Victor at a company called upbound uh and very honored to be here today um and I love this the setup of this show I especially love uh the logo I was gonna ask y'all did y'all get that made or where is that from uh I made it I drew that up I drew all those silly Graphics yeah thank you I am I was in my my degree is in Fine Art it's awesome but but that's yeah I switched yeah thanks for thanks for the compliment how do you make this about me this is about you Dan don't don't turn this around on me I can make it about then if you want to then increase the volume of your mic yes please do that Dan all right thank you is it better now yes better okay cool all right and now Andrew welcome again Andrew's back to teach us about home I didn't scare you all away did it be established a Time demand scaring people now are you becoming a competition there is room only for one scary person here hearing you about scaring things or being here Andy will you introduce yourself please yep so hey everyone my name is Andy block I'm a distinguished architect at Red Hat um uh I am also a maintainer on the helm project so I do a lot of work in the Upstream Community everything from Helm oci integration and just doing a lot of things all things kubernetes so we'll be happy to be back in the saddle again excellent so glad to have you okay Dan we're gonna hide you away and let Andrew do his five minute presentation so we'll see you shortly and I actually in very close to five minutes because Victor's gonna make sure this is very Victor loves this power bye Dan in the pre-call he Victor was very clear on five minutes so um Andy though your screen I don't see where your screen is shared it seems to be gone we use not I am not yeah I've not heard it yet I'm going to share it now excellent all right go all right cool so let me go ahead and let me start the recording and or start the timer in here we go so since I'm a maintainer on the helm project I'm going to talk about using Helm to set up these postgres SQL database in a Dev environment so for those of you who do not know Helm is a package manager for kubernetes it allows you to easily Define and package your applications in a simple way that is very common to thinking at least of how you typically Define applications in a non-kubernetes environment think of it similar to Yum dnf app get it has all the dependence all of the application manifests and all the resources that you need for your application it is a cncf project it's been a CNC project for oh my goodness seven years or joined in 2016 and graduated in 2020 it has a very high and active contribution base everything from 3 or 13 000 contributors 1700 companies and that number probably is not even close to being accurate these days 9500 code commits it is popular the primary components of Helm are first it is a CLI tool basically everything you do is through the helm CLI a Helm chart or Helen package basically is a chart which defines a set of kubernetes manifests inside this chart are two primary components templates which are basically Dynamic resources for kubernetes everything from your typical kubernetes deployments Services ingresses can be templatized and those templates are combined with properties called values so think of it as whatever we take from a value and a template becomes a kubernetes resource and then when you deploy those resources in a kubernetes environment they then become a revision it is basically a snapshot in time to a chart at a particular Point within a kubernetes environment in this next diagram really shows that combination of the helm chart combining with values using the helm CLI to then become a release within a kubernetes environment everything from deployments pause custom resource definitions Services all can be defined within a Helm chart we can deploy many different types of applications with Helms we can deploy simple microservices we can deploy traditional monoliths or or Legacy models pardon me or even databases everything from nosql to relational databases like postgres you can also do dependency management so you can have applications in charts depend on one another a good use case is for this use case we have here in the YouTube series and application so I may have a dependency on a database because I always want to have a database to be easily deployed with my application I can go ahead and Define a relationship between one or more applic one or more charts and you can even go into more full life cycling from Helm so a great use case of that is with the database you may have some scripts that you may need to run to maybe populate the database with some schema definitions or just data itself and Helm supports that fully by configuring the different manifests that you define as part of your Helm chart and then there are different points in the helm lifecycle of when you can create these hooks everything from before it's installed before it's deleted so if you can do some cleanup process and you need to do some upgrade to your chart you can then run an upgrade script and commands all easily configurable with Helm if you want to learn more about how to get up to speed getting up to speed is really easy with Helm first install the helm CLI if you want to go ahead and deploy a database for example let's just say postgres you can add a chart repository a chart where a chart may be defined in an upstream location you can then quickly install the chart and then you can also use it as a dependency and that's it let's talk about the three use cases we have here in the one minute we have left first case is I want to deploy a simple postgres database to my cluster I can run the helm upgrade give it a name which is simple postgres bitnami provides a great Helm chart for us to use we can just go ahead and quickly deploy that we make it bigger please you can make both bigger that it's going to quickly deploy that Helen cart give it a second Gotta Love this is taking a little slower than I would have hoped running okay perfect just like that we have a we have a postgres database running it's got storage I can then go ahead and deploy one without storage I know I'm running a little on time so I'm gonna go ahead and just quickly deploy one without storage oh it's now it's not gone off on my side give it a second all right let's go ahead and installed as you see here your screen's gone friends but it was I believe I'm so sure that it was gonna work is that a mic drop I love it [Laughter] and um we're gonna put you in the back but if you have any questions please do put them in the chat and we're going to do a q a section after this part of the show so if you have any questions for Andy please be uh please put them in the chat and here we are Dan teach us about cross clean please all right I'm hitting start in three two one I want to make sure I'm aligned here all right wait your your screen's not on the hold on I think y'all got it there we go okay all right so I'm not gonna try and do the live demo um but we'll talk through uh a variety of different ways we could do this with cross plane I will note kind of up front that we're cheating a little bit because we're also using Helm uh as part of our setup here so I'm going to go through a little bit of uh what cross plane is if I can get the slide to advance here uh in two minutes or less I'm already 30 seconds in so we really need to get run in here all right so the first thing that cross plane is uh is a way to interact with any API via kubernetes that includes apis outside of a cluster so cross plane provider packages which are one of the two types of current cross plane packages we'll install crds and their corresponding controllers into kubernetes clusters their opinionated oci images which have a format that specify this and make sure that only one controller is reconciling a given type Define by a crd you can see an example here of Provider AWS it has 872 crds they have lots of apis over there at AWS you install this you get access to all those apis as kubernetes objects in your cluster you can also build abstractions uh with crossplane through a model called composition and it Maps higher level apis that you may Define you can think of them as interfaces to one or more implementations so if we want to think of an example that's pertinent to the uh project we have here in this series is we might Define a database API that is implemented by maybe a postgres home chart uh maybe a cloud SQL instance on gcp and maybe an RDS instance on AWS and depending the context in which we create that database or provision it we'll select one of those options so you can also take these abstract apis package them up into the second type of cross-plane package which is called a configuration they take these higher level apis to find their dependencies kind of like Andrew was talking about there with Helm dependencies and when you install a configuration crossblane automatically resolves those dependencies and make sure that everything is good to go you can also use configuration packages as the foundation for future apis as well so composition is something that you can nest and build higher level apis on top of if you want a nice parallel of what we're trying to do here here as you're building a platform with cross plane is you can think about AWS lots of aws's managed Services run on AWS itself they're kind of built on these foundations of ec2 and S3 and some of these more primitive apis which allows them to implement higher level apis on top so we're doing a similar thing here so you have to make your choice right you have to define whether we're going to use Helm or we're going to use cross plane and like I said we're going to use a bit of both here but what you're getting from Cross plain is enabling tomorrow's Evolution right our platform is going to grow and evolve we want a Dev database now but we may want something else in the future and we want to do that without introducing complexity today right we want a quick experience for provisioning this database locally maybe not having to pay much even though Victor has volunteered to foot the bill here we still want to avoid paying for that cloud service maybe when we're just iterating locally so we have a few steps for what we're going to do first we're going to pick a database API so when you are developers within your organization are deciding uh what they need to configure on a database you want to expose just those fields for them and not expose any complexity that they don't need second you need to pick an initial implementation we could use the bitnami postgres home chart here which is offered by providerhelm and just say hey when someone creates my concept of a database this higher level API we're actually just going to deploy that postgres home chart in the same cluster where they're deploying their application so really simple implementation here then we can bundle that up into a configuration package which can Define that dependency on provider home which means that you just have to install one thing and cross plane will make sure to do the rest so last thing you do provision that database author that very simple manifest we'll call it mycool DB here crosswind is going to say hey I know when a database gets created the only implementation we have here is this bit Nami Helm chart so I'm going to create a Helm release in the same cluster great our local Dev experience is going well but your use case is inevitably going to evolve over time maybe in Chapter 2 of this series you want a production ready uh application that you're deploying and crossbones going to allow you to do that seamlessly by adding another implementation here we're using provider gcp to offer Cloud SQL and we can just add that and provision via the same exact API so from a developer experience perspective nothing changes for you except for where your provisioning gets scheduled to and with that I'm done 15 seconds early and Victor does not get to shake the phone at me [Laughter] and he figured out how to punish Victor I don't get to enjoy this at all oh rude my job at upbound is actually just to make Victor's life harder you're doing you're doing great work um that was uh still a stellar presentation even though I didn't get to tell you an interrupting fashion uh thank you so much for sharing your expertise with us I'm going to bring Andy back so we have uh the full Dandy experience and we're gonna get at your questions um also I'm seeing in the chat I'm sitting at that in yeah give us your questions too that um someone suggested that you buy a Gong Victor and get a shepherd's crook so you could really be like the Muppet guys and then you said that you really did buy a Gong is that true well then was speaking I went to Amazon uh Prime delivery it comes tomorrow it will be available for next episode with the gong show I mean that's what this that's what movie was because I had forgotten but also uh I could just see you Victor now with every with every like internal meeting you go to when you go talk to potential clients you're just gonna be armed at that gong if anyone goes on too long about anything it's uh okay great suggestion uh everybody in my building is going to hate you mark [Laughter] all right so um we have a question that is just about as Cloud native PG do you mean postgres when you say PG part of the cncf landscape not that I know so uh postgres in any format is not part of cncf and many choices that we have here is not 100 sincere but there is a cncf component here right so uh we can run that postgres with the helm which is in CF orbit cross plane which is cncf it could be in Cloud which is not cncf but still cross plane or Helm so uh short answer short answer not since you have postgres itself we have very loose boundaries around these parts so uh although we will rule out some things because they're not cncf because we have to draw lines somewhere but um and then like this episode's actually a perfect example they're they're not mutually exclusive Technologies like if we Implement cross-plane there's a good chance we'll be also using Helm versus if we Implement vanilla helm actually if we choose cross plane it's the other way around as well uh if you choose cross plane then it then crosswind claims will be packaged together with your applications in hell right so yeah I have both definitely seen the uh taking that database API putting that as part of your application Helm chart there and then that actually flows through and sometimes right if it's local Dev right it will create another Helm release for the postgres database there and then if it's more production scenario it will create you know something on gcp or AWS so we're gonna have to be really explicit about what we're voting for exactly when we have these choices I mean the key thing here is we're talking development right something like Helm boom boom boom done um versus I have to go ahead and install an operator have that available to find additional capabilities we're talking just on the development side I can know that very few developers want to deal with all that just to get something running however I still say you know you know cross plane great if we're actually rolling this out to higher level environments but we're just talking development it's a lot to put on the developer well the nice thing is if you have this packaged up and we have some configuration packages you can check out in the upon Marketplace don't come for me for the self-promotion there but if you want to install that we're going to get those operators installed automatically for you you won't even know the difference um install the operator say it again who says you have access to install the operator or the crds well they're just oci images so shouldn't be an issue cross planning sells the crds on your behalf do you have permission to install it absolutely do you have permission to install the helm chart yes you're talking about different things about the tenant model you only have access to your namespace during a cluster resources how can you install the crds if you have access to install cross-plane packages then you'll have to install crds so you could give access to your developers but typically it's going to be an operator if you have a local cluster that you're running I assume that you're able to install things at the cluster scope that would be some some uh artificial constraining yourself but perhaps maybe I have um I'm gonna get to a question from the chat does Andy recommend Helm even for our own application packaging or just continue to use old school deployment yaml files always recommend some type of packaging solution whatsoever whether it be you know we talked about in episode three Helm ytt you name it always give yourself some type of packaging solution and more importantly make sure they're all managed to get Ops excellent which we'll get two in chapter two um we have another question is there some example document for cross plane to deploy postgres with cross plane even though it's a Helm chart okay uh so it's for me yes I use uh I use a I have a configuration that I use often in demos and talks and stuff like that that contains postgres running locally in the same cluster or in any cloud like five six seven evaluations of that if you go to marketplace.bound.io and search for DOT like short for toolkit we'll find my configurations and SQL is one of them we have a question from Mason and a lot of response from others in the chat how are we dealing with persistent database storage when deploying to an on-prem cluster that's easy because it depends on the type of storage that you're you're close to provides it can be you know if you're like in a VMware environment you can do typical vmdk based storage if you want to use object storage in certain cases you can use that there are plenty of different options out there it just depends on what's available in your cluster I mean typically by the time you get to that point to deploy the database there will be at least one storage class potentially more you just need to cruise which storage classes are available right we just Define the story classes that are available in your environment and you can be local local volumes if you have access to those as well it's up to you and we have a comment from ziegel fingers Rook yes also works as well Rook is a great cncf project that allows you to provision storage okay we have another question um a good question cross-plane can also be used for on-prem bare metal kubernetes clusters absolutely so if you want to do something in cluster right that Helm chart case we were talking about or you could use provider kubernetes Target kubernetes directly or you know if you want to reach out from your on-prem bare metal cluster uh to a cloud provider or maybe to an internal database API that you have those can also be enabled as well cool that's a great question thank you for asking it so that's all the questions [Laughter] this is a good opportunity for either of y'all to plug some something about your technology that you didn't get to say in your demo if you have anything like that I'd love to just uh bring up us a new feature that came out in the latest cross plane release uh called composition functions so crossblane has a pretty simple um uh mapping language if you will all just defined in yaml it's basically just patches from the abstraction to the granular resources so if you say a database to an RDS instance right you're exposing a simplified API I'm going to take some of those values and map them onto configuration values for your RDS instance and maybe you know some Network primitive IM roles that sort of thing that is really nice we intentionally want to limit what you can do there right because we don't want an explosion of configuration language or a domain specific language there so sometimes though things get a little more complex or you may need to talk to an external system to decide how you actually resolve what gets created in response to that abstract API so composition functions are basically a way to take a containerized image and run it in response to the creation of the abstract API instance and do really whatever you want in there and so those are a new Alpha featuring crosswind they can be enabled with a flag and there's also a guide in our documentation really opens up a lot of new possibilities for folks who want to do a little more custom stuff in their uh their package building there super cool I'm getting I'm hearing some talk of developer experience and I see um with Andy's point that it can be difficult to install cross-plane into the cluster in the first place for a developer um but then it seems like Dan with you you're talking about taking complex resources and providing a really simplified developer in her space to make the developer experience good too so I I would love to hear maybe I don't know how well I summarized you or each of your arguments but of maybe like a quick synopsis from each of you about what an app teams experience is dealing with your technology someone who's not an Ops person yes so from my perspective I work a lot of Enterprise customers and they don't one kubernetes locally they're easy running a shot of shared environments so they are limited about what they can and can't do they have asked us to basically one or more namespaces so being able to operate in a mainspace level is basically their entire purview and then being able to leverage a tool like Helm you can also integrate that into a CI CD tool like you know techton Jenkins you know GitHub gitlab you take your pick there's very little that needs to be done from their their side they can either take an existing Helm chart that might be provided by their platform team inject that into their application and they're done yeah that's that's really interesting to hear the uh you know what I hear there is a Helm chart provided by their platform team so their platform team is kind of curating things offline what we say instead in the crossband world is that the API you interact with in your kubernetes namespace uh should be uh curated by your platform team so in Cross plain when you're putting these packages together and authoring these abstractions you're exposing to developers what they have the ability to create so it's almost like if you went to AWS and you only got the list of apis that you were able to interact with but instead they're your platform to find ones so when you set up that cluster if you install maybe um some things like Prometheus right or you install a service mesh or something like that just standard things which Define what a cluster means for your Enterprise organization then you're also defining your infrastructure apis and then your developers just take those and they put them in their application home charts um if they want to or if they're using a different technology once again it's back to just kubernetes manifest so anything you can do with kubernetes objects you can do with cross plane so if you want to stick them in that home chart or you want to put them in Argo CD where you want to deploy a home chart with orgocd those are all available to you cool that was really helpful thank you both um we have a question from earlier that I missed this seems to do with crossplane how to do a local get up CI CD with mini Cube and Argo CD to do a quick development workflow and refresh kubernetes deployments with the latest Docker image builds and can how does that work with I guess both Helm and cross plane so with Helm it's very easy it depends on if you tagged your images using Jaws or just regular tags you just update your values file or your you can do that dynamically as part of your pipeline and as soon as that gets rolled out changes detected by kubernetes and it will roll up the new image done yeah and uh same thing if you're you know deploying your application and consuming kubernetes or cross-plane uh defined apis in it you can you know once again just roll in that way if you're actually updating your platform apis right so there's two sides this right the operator where you're deciding what's exposed as an API and the app developer where you're consuming it if you're the operator once again we just use oci images as well um so you can just bump that version um and crossband will also make sure that any dependencies or anything like that are compatible as well and those will just roll forward those are defined as kubernetes objects as well the provider and configuration types in core crossplay I have a different opinion on on that subject Argo CD local and things like that and that opinion short version is don't it's going to be much more complex for you just keep it here just keep it simple especially in development and just run with it exactly I mean and I need to stress the word local over there right I there is a great value and Andrew I think you mentioned as well to use actually remote environments you have a cluster managed by somebody and you develop there and then Argo CD and all the other stuff makes a lot of sense right because it's already there but setting up those things doesn't matter whether it's sargo CD or it's cross-plane or its Argo workflows or service mesh you don't want to do that locally just bare minimum Cube cattle apply or Helm install or whatever you're using push information do not do githubs locally it's not the hardest part is in a lot of organizations I work with is actually getting resources that can run kubernetes locally that's the hardest part so you're basically just limited that I can only use remote instances I have a hard one on that one if that's the case you should change the company you can go ahead and start a new company that basically goes and changes the company's culture I think okay we can call it a Dandy Incorporated um uh we also are going to do our an episode two episodes from now I believe that's going to talk about developing in kubernetes and how to improve the the actual like inner development Loop when you're developing applications in kubernetes yeah it's coming it's coming um we have another question here apologize for so many questions don't apologize uh cross plane seems interesting how as a beginner can we learn about it like where's a good place to start learning all these cross-plane Concepts yeah well I'm sure Victor's uh videos are a great place to start I will just plug that we also um release a redesigned doc site for crossplay and as part of the latest release which has a lot of information in there some reorganization some nice search and that sort of thing so I definitely would encourage folks to jump in there um and then there's there's plenty of cubecon talks and then all Victor's content is also a good place to get started so this this Dev devops toolkit YouTube channel you're watching right now will have a lot of cosplaying information for you and um what are are there any caveats or limitations for cross plain oh and I'm called specifically I was about to throw it to Dan but now I so depends really what uh what you compare it with right uh there are quite a few advantages that there are of course some caveats uh or I cannot pronounce that word uh my English is horrible anyways uh probably biggest one would be and this is intentional by design that the Syntax for creating compositions is limited that's by Design but it could be limiting to some partly mitigated with the functions and also and uh somebody might throw stones at me right it's not necessarily for local development you want to go to a real cluster where things are set up right I would call those two I'm pretty local development I mean your laptop not cluster connector and then and then with cross plane you have to use kubernetes it's both of these are kubernetes only they're both groupies what tells I mean no world we can't create a new series about projects in mesos if somebody is still interested there will be solo hosting that one no if I ever see Mrs again I'm going to open a window and jump and I'm on the third floor it won't be pretty postgres running in your cluster versus postgres running in the cloud and which which might be preferable and why so the cloud obviously you're going to have additional costs versus running kubernetes that's the big one um the limitation of running postgres in you know is whether if you what kind of storage you need behind it in most of the cases you can run a cluster instance of postgres so each require you know single single right single read which is available in most Cloud providers the issue is if you are ever going to use shared storage in the cloud provider it's not as easy to get shared storage yeah that means that Dan is going to defend cloud sure not by choice I uh there's a uh everything that Andrew said there I I would um plus one uh as Victor said uh you know a lot of times um I'll actually use cloud even when I'm running things locally applications on my uh uh on a kind cluster or something like that locally uh just for the ease of setup um or if I want to leave it running well you know I I uh recycle a kind cluster or something like that um I'll just keep that that Dev database up there or something um so but same limitations apply as Andrew mentioned um and that's why at Crossfire we want to enable uh both of those use cases we have this not a question but an opinion and I think a good one um for learning new tools being able to try things out locally is far less expensive so not sold on always doing things remotely thumbs up I'm cheap I'm sorry [Laughter] um we have an off topic question but I think since we're running out of time I'm going to not um answer that but maybe Victor you can answer it later with your fingers yeah if you ping me I can I can give you my my two cents about that so to close the show I'm um each of y'all get a couple sentences to sum up your technology and why should it be picked but you know what in this case our choices that were being given are a little hairier because we have two technologies but then we also have the choice of deploying it on the cloud versus deploying it so before you picture what why vote for your technology I like Victor from you to to um really specify what our choices are when we're voting so the choices and actually it's already in Twitter go to farsik over there and there you go so the three choices right uh one is to run it locally in your kubernetes cluster using helm Choice number two local in your kubernetes cluster using crosslane and the third one is using one of the managed databases AWS Azure Google using cross plane now if you choose that there will be still there is still Helm there behind to package it with your application but that's coming later right so three choices local Helm local cross plane Cloud cross plane okay so with those three choices in mind um Andy you go first and and picture tech for us please sure no problem you're a developer you want to be able to get resources and get your application deployed quickly this is Helm makes it really easy to package up all the dependencies that you need easily deploy it to any environment in any namespace that you own no additional resources necessary simple a couple clicks couple commands integrate with other tools be productive be successful Big Bang Boom thank you so much Andy I we appreciate your time and expertise bye bye all right Dan some final words please yeah absolutely so in my mind as a developer myself um applications uh always the goal is to get them into a production environment and be able to have that flexibility then con to continue to iterate them on the development setting as well um so I want to design my application especially if there's no overhead in doing so to be able to run and development environment or in a production setting so why not go ahead and start with that model from the beginning and as you evolve and change over time the tools are going to work with you the same way excellent perfect thank you so much Dan see you at kubecon bye there it is we have three choices time to cast your votes make your voice heard let me get my vote vote right away do it now so right now the the voting poll is on Victor's Twitter hand Twitter handle which is on the screen right there so go go check Victor out on Twitter vote votes vote and we'll be announcing the not the winner but the chosen technology on next week's episode and we'll implement the chosen technology too so you're saying there is no winner in this in those episodes right there is no yes no winner just what you all choose that means everybody's loser it's a glass half full situation and so and join us next week thank you so much for the wonderful questions and feel free in the comments to put questions if you're watching the recorded version and we'll try to get to those and next week we'll be talking about database schema and how to manage that as part of our development environments and we'll have a couple choices there any last words Victor no just uh go vote see you next week and we'll figure out how to make that because running a database itself is useless right how can we create the scheme when everything else required in that database that's the next one next one now we need someone with a cane to pull us off and strike a Gong and there will be a Gong exactly so come for the gun I I bought the first one on the list I don't know whether I'm getting discharge or I'm getting full size I know nothing about it I hope you have to stand up to use it I I I did not check anything really not even the price I don't know maybe I was in according first result in Amazon excellent all right this has been Wicked fun I'm super excited to talk to you all next week goodbye
Info
Channel: DevOps Toolkit
Views: 2,137
Rating: undefined out of 5
Keywords: viktor farcic, whitney lee, db, database, postgresql, dev, development, development environment, helm, crossplane, azure, aws, gcp, google cloud, compositions, crossplane compositions, helm charts
Id: ITBPHJBbjPY
Channel Id: undefined
Length: 54min 14sec (3254 seconds)
Published: Wed Mar 08 2023
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.