GitOps at the edge of the envelope: Radical app deployment at the edge with Porter | THR3171
Hi. Everybody in, theory it's 2:30 I haven't actually looked so I don't know. But. Somebody told me I'm supposed to be here so I'm here, my. Name is Ross Kawachi I'm. Gonna talk to you about Porter, and C, NAB. Now. These are kind of jargony. Words, real. Truth is in, the world we're in we've got a problem, that. Problem is a problem of our own making it's an opportunity. There. Are some difficult, things we got to do and Porter. And see, Knapp is gonna help you do it so that's what we're gonna talk about here today. Porter. Now. I want, to do. A few things here. Most. Importantly, I want. To just start a demo, that. Is. Going, to. Take. A long time to do, and. That's. This one if, we do Porter explained, although. We've got big font here so you can see everything you can see that we actually get, a. Description. Of, the application we're going to install, now. You'll notice it's got a whole bunch of complex things here as parameters, and so forth if we. Scroll down a bit. It's. Gonna say we. Run the spring music, service on kubernetes, and digitalocean, plus course equal now we are here at a Microsoft, conference, right. And you wouldn't expect the digitalocean demo but you're gonna get one and the. Reason you're gonna get one is because cloud native does not mean one cloud it does not mean one runtime it does not mean one place cloud, native means, one, set. Of the, ability, to use an API to deploy, what you need to deploy that. Could be infrastructure, that. Could be services. Or it could be individual, binaries, or scripts whatever. You have now. In the world we're building, right now we. Talked about cross cloud we talk about hybrid, on-prem. Things, like this cloud. Need it brings us to reality, and the reality is that I'm, going to create in this application. Right. Here. And. I've got credits, already I've got excuse-me. Credentials, already you'll see down here I've, got a credential, set we'll talk about that in a second, and I'm, gonna go ahead and create. This. Installation now what I'm doing here, is. Creating. With, this binary a custom, binary from digitalocean I'm creating, a. S3. Bucket a storage, bucket and, then. Look what happened anybody recognize what this is. You. Might recognize it it's terraform, a very. Useful wonderful. Tool from Hoshi Corp right. Terraform. Is out wait a minute I just used a binary and now, I'm in terraform, but I didn't issue terraform, do I know terraform, I actually don't, my, developer Jeremy, knows terraform, and he's. Busy creating a database. A pro's course a sequel, database using terraform, and digitalocean do, I care, do. I even know no you. Might have built this application for example okay. But when you give it to me now, you've got to write a readme that's 9 miles long, for, me to learn how to understand, the entire entity, the. S3, database, the Postgres equal database right, I also, am going to run a website, on top of the AKS, in Azure that points, to digitalocean, right.
So, Even, though this is not a super complex, app structurally. It is a widely distributed, app but, I'm installing with multiple. Systems, here, multiple. Deployment, stacks I don't have to know how. Is that possible. Let's. Talk about it's possible, with Porter. What. Are you gonna learn you. Are now building distributed. Apps and they are complex, beasts, right, containers. However, are still magic. And Porter. Is your magic, container tool yeah. I know that sounds like a whole bunch of marketing stuff but watch what, this can do right. Watch. What this can do you, can put an entire, distributed, application. Into. One container, and push and pull it deploy, it export. It move it from one repo to another including. Sign-in including, offline, and you can use Porter from everywhere, and we'll show you a little bit about that do you remember docker. Does. Everybody remember docker, it was. Beautiful. Right. Let. Me show you while that's going we don't need the desktop type while. That's going let me show you something, do you remember this. Do. You remember this I don't, know how to do this. Like. I don't know how to run this program but, I do know, how to find a container that does. Right. That's, magic. I didn't. Write that I just pulled it and it's. Going and you know the best thing about this, the. Best thing about that one is I love the matrix, do, I know how to run the matrix no I don't. But. I bet somebody, does. Right. Containers. Are magic, and they're not just single services, this is kind of not useful, it's entertaining. Right. But, it's not useful, oh whoops. We. Popped out of our shell. We. Can also do things that actually are useful. Right. See. X term there we. Just opened up a shell, we've. Got a container. One, container, I'm gonna pop out of this and we. Go to localhost, 3000. And what do we get we. Have a functioning. Terminal, does. This look familiar but. One container. Do. I know how to write that terminal, no, I don't but. I can use it and. I can do things like this I can, say hey HTTP. Shell dot, dot. A sure comm right, that doesn't work we don't know it but I can jump from there, to. The real world. Right. Now, I'm gonna have to choose a directory I'm going to choose the corporate directory because I don't pay for it which is the most important, part of cloud, usage. Is that you don't pay for it right and, look, what's happening, anybody. Use this. This. Is the same container, do you realize, that we went from the magic, of one container to, industrial-strength. Utility. This, is the Azure cloud shell it is the same, code, it is, the same container, even. One container, can be extremely, powerful. Right. There. I am. Now. The, real problem however is, that.
When You get two million containers. It's. For a single app but, if you get to a lot you got to store your data somewhere, the, VMS, got a run, right. Then you needed an Orchestrator, as docker swarm, wrote some sort of mezzos or castration, system service fabric, right, or now, you got this beautiful, thing that everybody, insists, you have how many people have been told they must use kubernetes. You. Were the only honest person in this audience everybody else is lying ok to honest, people everybody. Else is telling a falsehood and I know it because I've been there right. But, did anybody else tell you that that, necessarily. It. Right. Do. You remember that the orchestrator didn't do everything you need in. Fact some things it doesn't do really well look at all this stuff and most importantly, is this one the, pizza, you're gonna have to buy in, order, to teach, everybody. Who. Wants to use your complex, application. How to install it. Right. You. Heard about the azure arc announcement, earlier this week ok. The azure arc announcement. Have, you seen the installation, readme for that no you haven't because it's private internal we haven't released a private preview yet guess who has eyes I I read, it it took me two hours. Ok. That, doesn't mean it's not amazing it, is and we'll show you about it what, it really means is you can now build really, complex, things this is a graph of network. Policies, form on so the bank was tweeted a couple of days ago he then the. Same same, gentleman jack retweeted. A new. Colorized. Network, graph if you haven't seen it go look at it you, can really build complex, things you may not be able to building, this yet, but. You will how, do you deal that with that nobody. Wants to do this. And. Even, if you put a container, and you get rid of one portion, of the app you, still got 15 stall. You don't want, to, write a readme have, you ever written a readme like this and then it depended, on your Python. Virtual environment, did. You have PIP 2 or PIP 3 are your all virtual, environments, and coordinated. Properly, according to the the readme, which sort of assumes you don't have any virtual, environments, yet because there's really only one you want which is what it's in the readme. Your. Brain, needs to be shipped for, a distributed, application to install correctly, right. What. You're now doing is extremely complex, and you. Were amazingly. Talented people, I'm not lying you really, are, but. Your users, might, not be the experts, you are and there's certainly, not experts in your application. So. Let's talk about this, what. We really, want to do is ship your brain. The. Real value, here, is this, readme. Right. Your. Users, whether its internal, or whether. It's external, whether it's a paying customer or, whether you're building a SAS right. Your, users, need your brain to install that application and, you don't scale. So. What you need is something that can take a snapshot, of, your work no. Matter what it is and, give, it to somebody's a package, does, this smell a little bit like an MSI. It. Might if you're familiar with my or an RPM, or, a Deb or, something. Else if you're a Mac person a dmg. The. Brain is what we want because we want to turn these complex, cloud. Native applications, into a docker image that's what we want and if. A docker image, makes you sit there and go do I have to master docker the answer is no you really don't, because. We've got tooling, to help you do that and that's Porter, right. Porter, is your magic container tool right. What Porter does is it. Uses a specification, a public, specification. That's in the Linux Foundation called. The cloud native application, bundle specification. To, create a compliant. Runtime that can be shared docker, app. Implements. The scene app specification. Which means that bundles, built with a docker app can be executed by Porter or bundles. Built with Porter can be executed by docker app it. Porter, is your magic container tool and what, this means is you can push and pull the docker hub or Azure container registry and entire, distributed, app and. Its. Deployment stack and, your. Users, only pull, the image with. Porter that's. All they do you. Can also use it in connected, and disconnected environments. Right. I can pull an entire distributed, application, off line. And, move. It to a disconnected. Or, air-gapped, environment, and install, exactly.
The Same application, why because. It's a container it's a mutable. Infrastructure. That captures, that, application. Even distributed. Every. Time it could be signed. Not, only as a logical, entity in and of itself but, we can sign, and validate the software, supply chain that created it which, for certain kind of automation. In. Sensitive, areas for example is an amazing, feature you. Could use it from a standalone we have a you know a graphical. Installer but, it can be radically extended, for custom needs how, is this possible, it's the C NAB application, bundle specification. Right, we introduced it last year, we collaborated, mainly, with docker but also with bitNami Hashi, Corp, Red. Hat then Red Hat right, not I IBM. As well to, start the the. The. Specification. And we finally landed. As a foundation. Docker remains, a critical, contributor. Along, with Intel pivotal, data dog Microsoft, and pivotal. In fact even now as VMware is, still a contributing. A powerful. Member of this. Community, it is a publicly, governed, specification, and if, you're. A real geek. Which. Is a challenge because we're all geeks if, you're a real geek you can join the foundation, you can join the project with, no membership piece right. Normally. The foundations, charge something to participate, because they got to cover costs, in, this case you, conjoint see nab as an, individual, or as a company without membership, fees we. Are shaping the future of these applications, they have to be portable, manageable. Findable, flexible, verifiable, and that's, what they are you, can use your own ops tooling, no one else needs to be the expert, right like, if I don't I don't know terraform, and you saw that and now that we mentioned, the terraform, what's. Going on over here, ok. That's still connected, we. Don't need that let's, close that out look. At this and, we. Actually have, this finally distributed. Now. I didn't, know anything, particularly. About that application. But. I can actually see, if it's running and, there it is now. This application I, didn't, know anything about I don't, know how to run terraform, I'm a terraform, idiot rate maybe you're not if you build a bundle you can put terraform, you can put digitalocean, you could put Azure in it you could put bash scripts will show you that it doesn't, matter because. The end result is a container, it will run the same way every. Single, time. Now. That's an easy, demo. It's a little bit complex, because it gets going really fast. Right. They're. Secure their, container, native their edge friendly, and, we. Need to show you a few, more features right so. How many people know about the OEM. We. Released an open-source thing called rudder and OEM dev the open application model. As. Anybody, heard about this at all the rudder thing okay six, people, I'll pay you all later for. Saying yes you can lie and I'll be happy how. Many people are heard about gapper. All. Right okay maybe, I should install dapper, then let's. Install dapper, right. If. We're going to install dapper. I'm. Gonna go back here we're. Gonna clear to raise it to the top and we're gonna do Porter explained. Because. We want to know what we're installing here, first, you. Can see that I'm doing a hello word, let's try dapper. What. Now, I don't know actually in fact I'm gonna go backwards I'm gonna do I'm gonna do rudder. Because. I, don't. Know what the dapper URL, is right off the top of my head but I've got it and I'd be glad to show you afterwards again, I can already learn what. I'm going to name deploy. Now, I need to have credentials for this so, I'm gonna do a porter explain. Except. For I'm not going to do that I still, I'm only pointing at the application, I am and downloaded, I'm gonna do creds. Generate. And, all. Of a sudden I get prompted. To create the credentials, that I need I can use either, a specific value like, an absolute, value I can use an environment. Variable to, read in the value or in. This case I can use a file path to specify, my cube config I've already got this. Right. And I'll keep bringing this up to the top if. I do creds, list. You'll. Notice that I've already got a rudder. Install, credential. So I'm gonna use that. So. To do a porter. Explain. And. Instead. Of explain I'm gonna do an install and. You'll.
Notice I've got my credential, set and, I'm gonna go ahead and do that now why I do that it. Says I don't have it now, I'll. Do a watch cube, get PO. I'm. Already, creating, you can see I've got the spring music down here and I'm, creating the rudder credential, I've also created, the the. Custom resource. Custom. Resources, that we have necessary. To run rudder do, you know about how to install rudder have you seen the readme there. Are four installation. Mechanisms, for rudder including. Build from source, that's. Really great but you need to try rudder and figure out how it works you don't need to build it right. That. It poses a problem you may stumble, and get frustrated and if it's a big application. There. It is now we got rudder. Right. If we. Go over here. That's. The installation. We. Can go ahead. Uninstall. Actually. You know what let's upgrade it. Right. So. Here we're referencing the. Installation, we already got I can, upgrade this. If. I want to upgrade it's great no. Problem, same command same credentials, it'll, go ahead and upgrade up. Here, at the top if. I was still doing my watch right. Notice. I've created another one and it's already running and the other one will go ahead and terminate now this is basic, stuff and I'm using kubernetes, an example, but it doesn't matter remember we use digitalocean storage. We. Did use all kinds of things don't think this isn't kubernetes, specific, it's, not Windows specific, it's completely, open-source it works for anything, let's. Go ahead and uninstall this, because I want you to see. The. Whole experience. Right. Alright, and we're gonna go ahead and uninstall it, now. This is all nice you notice we go ahead we went ahead and torched a whole bunch of CR, DS that were installed, you. Don't need to know that do you need to know what a CRT is no you just want to use rudder, so. If we go back here we can do even more demo, fee we gets let's get funkier, how. Many people. Let's. Copy this. And. We're gonna go ahead and put it in here. Right. We're terminating this. Yep. Right. Now, this is pretty complex. As. Your, data service, this is azure arc, now. What I said to you before is, that you haven't seen the readme for this yet because, I hope, we're gonna clean it up before it gets to you, right. That's. Because it's hard work, this is a complex. Distribution. What. I want to do however. Let's. Go ahead and do this I. Want. To go ahead, and. Invoke. An. Action. I actually. Want to create this. One's going to delete I want to create a, this. Has a custom. Operation. I'm. Gonna create an. Instance. Called ignite live. Right. Now. I have to have a special. Permissions. To run this because. I begged, the. Team to let me have special permissions, you. Will if you join the preview you will get a chance to run this as well, okay. And you. Can see that I've already got the control plane installed in this cluster and it's creating, an instance, over. In the West part of the United States, right. This could be on Prem it could be anywhere, but because as your arc is managing, it its connectable. Now. As soon as this goes through. We're. Gonna end up with. A. Resource. Right. There. It is now. What. We have to do is do. Kay get. Po. And. Then we're gonna do this that's. The entire system. And. We, got to see whether there's a pending. In. Let's. Do this we're. Gonna do this. Where's. My. Test. Environment. Right. We, should have a test environment. Service. Where. Is it I'm angry. No. I'm really angry now now I'm really angry. All. Right. And. We created it but it didn't appear. Dang. I'm. Upset. So. I'm gonna go ahead and do that afterward. What's. That I. Can't. Hear a word you're saying but I still like you. I'll. Come back to it but I want you also to see this so. For example. If. I decide. Right. I'm gonna go ahead and type clear we're gonna get to the top if, I decide to I. Can. Actually copy that entire application. From. One repo, to another. You. Don't normally think about this with docker containers, but you can you. Can pull them and serialize, them but this is an entire, application plus. Its installation, stack, right. I, can. Also copy. The whole thing and, pull. It offline you can see the bottom one I can. Copy it I can. Archive, it to. A tarball or which is essentially a zip file and I can move it to an offline, repo, it's more magic, and now. I can, do things like this. Right.
We're, Gonna do this we'll go here, we. Had we, did the spring music, and a, sure sign me out we're gonna do cloud shell we're, gonna do shell a sure. Right. We're gonna do pick. Mine go ahead I do this. Take, mine a sign in page if it makes me do 2fa I'm gonna be upset, it's gonna make me do two FS, fortunately. I've. Got my handy phone here, I get a signing with my phone and device because note I'm on Linux this time, I could be on any operating system. Right. And I just get buzzed to approve my sign in. No. Problem, we've done that and. The, only reason I'm not sweating more than I am it's because I've done this a million times actually, works, right. Don't. Show this again because I'm going to do another demo. Now. We're in cloud, shell now the reason, we're doing this in cloud shell and Porter is because, I want you to understand, what's coming what's coming, is your ability to use Porter. From, cloud shell and from. There how many people use the arm template, quickstarts repository. At some. Point in the past right to, learn how templates, work and things like this you're, going to have a scene AB quickstarts, repository. Within the next couple of months where. You get to click the button and deploy all kinds, of applications straight, from, cloud, shell from a CI if we, want to do this we, go history. Let's. Try dapper. Grep. Dapper. And. We. Get install. Let's try that, Purdy Azure for. What, 438. Right. Now. This is gonna be more slower. Right. But, you can see now I'm in cloud shell and I'm doing the same thing do I know how to install dapper, no. Do. I want to use reliable collections. And kubernetes yes, I that would be great service, fabric had this for years why, would I not want to right, why. Would I not want to. Do. I want to use pub/sub easily, service, fabric had that ability why don't I want to use that now that's, what dapper is for right. But. I don't know want to know how to uninstall install. It and more importantly I want to do it in the cloud why. Do I want to concern consume. My machines, to. Do that right. This. Is a preview, it's, not installable, yet, we actually have the instructions, but I guarantee, you you'll break it because I get regular. It's. Creating, an ACI instance. In order to run Porter inside, it that, takes a little bit of work so, this is a very slow preview, and I'm gonna keep talking. While I quietly, look at the screen hoping, that it's gonna kick in which, it will eventually. It will but. The critical, thing here is that Porter will be everywhere there, it goes, okay. So. If I actually go, over here. Again. And I. Do watch. Right. And I want to do a watch for everything. Look. At that right. Up there. I've. Got dapper installed in my system did I need to do the readme no can, i bundle a dapper, plus, an application. Yes, I can, have an application, that depends. Upon the, dapper bundle. So. I can create not only bundles. For infrastructure, but. In bundles, for applications, that depend, upon infrastructure. All. Of this is push a ball pull ball all of this is sign about all of this runs anywhere, right.
If. We get over here now it's busy cleaning up I can. Go ahead and uninstall that, but. I want to keep going we. Can get even funkier. We, can contain in any app. At. This point it's. Six. Minutes after I was supposed to stop I actually. Didn't, tell him Mike over, here where's Mike Mike is not here he's in the back I didn't, tell Mike that I was gonna run at least, six minutes long but, I always plan to write. Okay. If you, want to build an app right this, is an app I built I can show you the dapper app I can show you how we do the Azure data services, to the, azure our cap I can show you how to build this in Porter with ya mol not code I can. Show you that the yeah mo gives you intellisense, so you don't have to remember the schema I can. Show, you that unlike, any other platform. You, can f5, and, get a live. Workflow. Debugging, feature. That. You don't get in Jenkins or, average as your dev ops or, github actions, or any the other pipeline, in llamó you, can actually step. Through, your. Workflow, for the installation, which means instead of doing printf. Debugging, with your pipeline, you, can actually go through once and catch that darker, secret, that you put a comma in accidentally. That. Held you up for like nine years. You. Can do it one one iteration, you can mouse over and see the problem. That's. Porter vs. Code, contain. Your. Brain, so, that other people can use it, let. People move around your brain take it offline secure, it sign, your brain and sell it, right. It. Works everywhere on, any. Platform it's, completely. Open-source it, will be part of the Microsoft infrastructure. So that you can use it in, order. To do all the best work you can possibly do if I, thank, you very much for your attention I got, tons more to show you and somebody will get mad so, if you have any questions yell, now arms. Up. You. People. Are too tired. Anyway. Thank you very much I appreciate it.