 All right, three o'clock, ready to go. All right, so hi, everyone. Thanks for coming to the Lightning Talks. My name is Joseph Lewis, and I'm from Google. I work on the GCP service broker and everything I'm going to show you today. You do not need a GCP account to do. You can do it on-prem or wherever else, because it's Terraform and it's open source. So you've probably seen the title slide. If you want to contact me afterwards, my email address will be in the bottom right of every slide, so you can take a picture whenever. I would love to chat with you. So quickly, we're going to go over the problem with service brokers today, a solution that I have proposed, and we're actually running right now, and then the implementation of that solution. And hopefully, in five minutes, you will have an ideological shift and be like, yes, this is the way to do things going forward. All right, so I know everybody's system looks like this. CF promises that all of your apps, you just need to push them. All your services are managed. Your developers don't need to think about anything else. But of course, that is not the reality that most of us face. So there's a lot of impediments to doing self-service and service brokers. So you've got the broker maintainers like me who get to decide what fields are available and which aren't. You have differences between clouds that you need to take into account if you're doing multi-cloud deployments or at least want to keep those options open. You have a lot of application inertia and other inertia from your on-prem platform and Cloud Foundry itself. And then you also have stakeholders who can decide like thumbs up or thumbs down whether or not you're going to use the service, which is honestly pretty terrible for me because I have all the stakeholders from every company like, no, we need this field or, no, this service doesn't work for us because you added this field. So everyone likes self-service, but it's really hard to do in practice. So what if we could make self-service, self-serve? And in comes the solution. With the GCP service broker, you can now bring your own services. So what we've done is we've embedded Terraform in the service broker, and you can actually side load these at runtime. So you can define services as Terraform files. And then your app developers can go in and the service broker will go and create an instance of this and run Terraform in the background, go and create your infrastructure, and then save the results in this database, and then pass back the credentials that are created. And I'm calling this technology Brokerpex. And there are self-contained service broker plugins that use Terraform to provision user-defined services. And so the workflow that I'm pitching is this. Your developers know what is best for your ecosystem, and everybody's ecosystem is going to be a little bit different. So what they can do is they can use Brokerpex and create services that they want to use. For example, let's say you have a RabbitMQ that's shared across the entire company and has HR data coming in. So that's a very special case tailored specifically to your company. They could create a service using the Terraform RabbitMQ provider and some YAML. And then they commit it to your Git repo. You use your CI to pull in all the services, all the custom services from there, and create a broker pack with it, which is stored in an artifact repository. And all it needs to be is like a GCS bucket or S3 or available over HTTP, so like Artifactory. And then the service broker, you just point it at that artifact. You reboot it, and then your services are available in the CF marketplace. And the broker pack itself is Terraform binaries, service definitions, which are YAML. And then all the fun legal stuff, which is the sources to rebuild the binary. So you can redistribute these just fine. And if you want to go and implement your own, you can run GCP service broker pack init. And it's kind of like Git init. It'll create an example service definition and manifest. You can run pack build to bundle all this together, grab the Terraform binaries and sources, and generate an artifact. And then you can upload that to your artifact manager and use it. And then we also have tools for running integration tests. So every service that your developers create will have examples that will show up in the docs. But they are also used as the integration test for that service. We can generate markdown documentation. You can copy into your Wiki. And then just some general information about the version and metadata about the pack. So thank you. Take a photo of that URL if you want to learn more. And the full specification is there.