💻 What Launched Today - Tuesday, May 16
Presented by: Tanushree Sharma, Brendan Irvine-Broque, Matt Silverlock, Leroy Lasenburg
Originally aired on July 26, 2023 @ 5:30 AM - 6:00 AM EDT
Welcome to Cloudflare Developer Week 2023!
Cloudflare Developer Week May 15-19, our week-long series of new product announcements and events dedicated to enhancing the developer experience to fuel productivity!
Tune in all week for more news, announcements, and thought-provoking discussions!
Read the blog post:
- Announcing database integrations: a few clicks to connect to Neon, PlanetScale and Supabase on Workers
- Smart Placement speeds up applications by moving code close to your backend — no config needed
- Announcing connect() — a new API for creating TCP sockets from Cloudflare Workers
- Goodbye, section 2.8 and hello to Cloudflare’s new terms of service
Visit the Developer Week Hub for every announcement and CFTV episode — check back all week for more!
English
Developer Week
Transcript (Beta)
Hello, hello, hello and welcome everyone to day two. That's right, day two of Developer Week 2023.
Today I have an esteemed panel of amazing people from our product management team with Matt, Director of Product Management, Brendan and Tanushree, our product managers for Developer Week.
Say hello guys. Hey everybody.
All right. Now today we have some amazing announcements, some product announcements to share with you guys.
I'm going to share everything that we're launching today.
And with that, we'll start with Tanushree. Tanushree, can you share what we started, what we launched today?
Yeah. Hi everyone. My name is Tanushree.
As Leroy mentioned, I'm a product manager at Cloudflare. So one of the big things, really exciting announcements today that I want to share with you all is database integrations.
So as PMs at Cloudflare, and I'm sure Leroy you get this too all the time, developers often ask, what can you build with Cloudflare Workers?
And truly possibilities are endless. And so it's hard to get that elevator pitch down.
But what we really want to build out with integrations is a spot for you as a developer to see what tools you can connect to Cloudflare with, and then also make it really, really easy to do so.
So to start, we're starting off with database integrations.
Data is super duper important when building full stack applications, applications that have state that are able to be responsive.
And we also have announcements coming out later today about making that fast too.
So really what database integrations is, is a spot where you can see which integrations, which databases Cloudflare supports connections with, how you can get started with them.
We have tutorials that we've published as well, since we know that every runtime has their own specific work.
So we want to make that really, really easy to get started with.
And then also a spot so that you as a developer never have to copy and paste your database credentials.
We have an OAuth flow that's been designed to make that really easy to do straight from the Cloudflare dashboard.
So that's one of the announcements for today.
The other one kind of goes hand in hand with this theme of data that we're really pushing today is smart placement for Cloudflare Workers and pages functions.
So when you think about how workers works, traditionally, your user, you send a request to a worker and then that worker gets invoked in the data center that's closest to the user.
And this works really, really well for some use cases, like if you're trying to render frontends very fast, serve assets globally, but in cases where your worker is talking to backend services, like databases, like APIs that are centrally located, you can see your worker pay penalties in terms of latency because of that round trip time.
And so with smart placement, what we do is we're able to analyze requests from your workers and make it and sort of, we have a placement solver algorithm that runs and is able to analyze where your users are located, where your worker is and where it's making backends to, and then find the optimal placement for your worker in order to minimize total application latency.
And all of this is behind the scenes from a user's perspective.
It's a click of a button, it's a config in your regular toml, and then we handle all of the complexity beside you, behind the scenes for you.
And part of the reason is we really believe that developers should never have to think about things like regions, never have to worry about infrastructure, it should all be handled by the network.
We have a very unique vantage point.
We have lots of data that we collect about that and we're able to aggregate that and make the best decisions for users applications.
So those are the two announcements in a nutshell.
Well, Felicia, could you talk more, or you all can talk more about the database integrations, like which databases can you connect to now and how does it work for the developers and how does it help enhance the developer experience?
Yeah, great question. So, we have launched with three databases to start off with, Neon, PlanetScale, and Superbase, and these all have connections already over HTTP.
So, in the past you were able to get started using the library for Neon, for example, on workers.
But we wanted to make that really easy to do and build seamless integration directly from the dashboard, which is what database integrations provides you as a developer.
So, you'll see if you log into the Cloudflare dashboard and use this experience, you're able to kind of select your database, give us credentials so that we can add secrets to your toml file.
It takes you through the OAuth flow for Neon, for example, so you're able to select which project, select the databases that have different things like branches, or different permissions like rules that you can select, so give Cloudflare access to that.
Whether you want us to just be able to read from your database or both read and write or admin, you kind of have flexibility to pick there as a developer, depending on what your application is doing.
And then from there, what the integration does is we automatically add secrets to your worker.
So then you can go ahead and start using the driver that these database providers have right off the bat.
And then you also notice we have specific documentation that's been added to our dev docs so that you can get started with either a brief example or if you just want to see what it looks like to connect, there's examples on there as well.
So it truly is, in some cases, as small as like four clicks in order to get from not having anything to having your Neon credentials added.
It's really cool. It's very fast. No need to kind of switch tabs back and forth between multiple places.
It's all in one experience in one seamless dashboard.
Can developers get started with database integrations right away to start building?
Yeah, so this is in an open beta. You can get started today.
It's available to all of the workers plan types. And stay tuned because we have many more integrations coming soon.
If you have specific requests, feel free to fill out the form in our documentation that's been uploaded.
So I'll be able to take specific requests from there.
And then also Brendan and Matt have some exciting announcements coming out.
And off of that, we're able to unlock even more integration types.
So space is going to continue evolving. We're going to ship fast.
But it's in open beta available to everyone to use today. Great. Thank you.
Thank you. And could you tell us a little bit more about the smart placement announcement?
Is it available for developers to use? How do they get started?
Yeah, please. Yeah, so smart placement is available for developers to use both pages developers and if using pages functions and workers as well.
We were in a sort of closed beta phase to the last few months testing, refining, making sure things worked as expected.
I'm sure there's going to be cases where a host that you're connecting to doesn't work with smart placement.
And we'd love to hear about that and be able to tease out some of those specific use cases that you have.
So if you have feedback and you've tried smart placement out, we'd love to hear about it.
Best way to get feedback is through the developer discord. And just like integrations with smart placement, we've put emphasis on making it super easy to set up.
So it's one click on the dashboard. It's a config in your tomo file and we handle the rest for you.
The other cool thing about it is I would check out our demo that we have for smart placement.
It's linked in the blog post that was announced today.
You want to get a better sense. It's a new thing for lots of developers, having your compute move around to different locations.
So just getting a better sense of visually how that looks and being able to kind of interpret the different smart placement mode on versus off.
What does that look like?
So we would definitely recommend going to that, playing around with it. The other part of smart placement that I was really excited to work on is analytics.
So once you turn it on, how is it improving your request duration?
How is it making it faster?
The analytics that we have as well. Some ideas down the line coming for more visibility into, hey, where's my worker actually?
How has it moved in the past little while?
I think that's important to deliver to developers. So those are some ideas we've been fleshing out for future releases as well.
But today you'd be able to see analytics in a dash as well as a placement status that helps you identify, hey, I turned it on, nothing's happening.
What might be the case?
So we've added some things around that too, because I do acknowledge that sometimes it can be a little bit of a black box where you turn it on and you have no idea why it's not working.
So being around you as a developer, the confidence in smart placement is a big part of that feature as well.
I totally encourage everyone to play around with it.
I've actually sort of end-to-end tried the two together.
You build an integration and then turn smart placement on for your worker as well.
So they fit in really well together. And yeah, we'd love to hear your feedback as developers play around.
Now we get this question a lot from the developer community.
Is there any pricing impact or implications of the database integrations and smart placement?
Nope, no pricing. This is included in our workers. If you're a worker, free user, paid tier, it's all included.
I don't think anything we've announced today actually has pricing implications.
The real focus for us is we want you to get started.
We want you to build fast, ship fast. And we want to enable that with the features that we're developing.
So no additional cost. Thank you, Tamishree.
And we again, check out the blog on our Cloudflare.com backslash developer dash week to get all of the details for smart placement as well as database integration.
Now, Matt and Brendan, we also announced a new API for creating TCP sockets from Cloudflare workers.
You mind talking more about that and how developers can get started?
Yeah, definitely. Thanks for your work. So kind of building off of what Tamishree was talking about with database integrations, we're excited to announce that we have a new API in Cloudflare Workers that lets you create direct TCP sockets in workers.
Now, a lot of databases, or there's some databases out there that speak HTTP, some of the kind of newer platforms that are out there.
But many databases, especially the ones that are running on most cloud providers, require TCP sockets in order to work.
They don't speak HTTP natively. And so we needed to build an API here kind of in order to close that gap and be able to make database drivers work on workers.
But it's not just databases that need this. There's all kinds of protocols out there that are TCP based.
And we're really excited about this as one of many steps that we're working on towards being able to support protocols beyond HTTP on workers to let you build all kinds of things on workers beyond what's been possible to date.
So there's lots of details in the blog post about kind of what this API is and how it works, kind of the underlying details.
But one thing that we wanted to highlight is that we've been working with people out in the community, people who work on database drivers and other open source libraries, both to get their feedback about how this API should be designed, what are the ergonomics, how is it going to kind of support everybody's use cases, but also working with the maintainers of the Node Postgres project, which is a database driver that is really the most popular driver in the JavaScript ecosystem for Postgres.
And so we're excited to say that that actually works right now out of the box.
Matt can share a couple more details about kind of what we've done there and how that works.
But definitely go take a moment to check that out.
Yeah, I think Brendan, you actually covered so much, but you left me very little, which is good.
But, you know, I think one of the important things for us was when we were building this sort of TCP socket API, right?
And we looked at, you know, how do we support existing APIs?
People are familiar with the Node.js APIs, right?
And I think what's particularly interesting is a lot of what is happening in the browsers with their move to support what is called sort of a direct socket API, a TCP socket API.
And newer sort of serverless environments are sort of like the folks at Deno are doing.
And then Node .js itself is like moving to this sort of simpler API, right?
The old sort of Node .js net.socket. It's big and it's heavy and it's complex.
You know, it's been around for, what, more than a decade. And so we obviously have this new API, this Connect API.
It's way simpler, it's much easier to use.
The flip side is like a lot of the existing database drivers, you know, sort of any other sort of connection -oriented library, right?
So say RabbitMQ, which is sort of an IoT or messaging protocol, also builds on TCP.
Lean on those old APIs.
And so sort of as you said, Brandon, but what we've been doing is engaging with open source maintainers, right?
Actively actually working to contribute back upstream.
Changes that allow, you know, their drivers to work in a native Node.js environment on these sort of legacy socket APIs.
And then working in sort of environments like workers so that developers can just import, if I'm importing PG, which is probably one of the most dominant Postgres libraries that folks use in sort of the JavaScript world.
I just want to keep using that, right? I want to use that, I want to use the ORMs that import that, right?
I don't want it to go and say, hey, here's this whole new set of APIs.
And, you know, we don't want to have to be building these like bespoke libraries that basically tell folks if you want to use Cloudflare, you've got to use these custom libraries.
That doesn't really work either, right?
People want to use the libraries, the query builders, things like that they're already using.
And so patching those back upstream. Postgres is the first one, so NodePostgres is the first one that we tackled.
And so folks today can literally import that into a worker, follow the documentation in the workers docs link from the blog, and it just works, right?
It just works as if you were building a Node.js application five years ago, except it's on workers and it's distributed, and there's a lot more to come there.
The sort of databases and other drivers we're looking at working on, so obviously things like MySQL, obviously really important.
A lot of folks are relying on that. There's sort of adjacent Postgres drivers as well that some of the ORMs use.
And so again, working on those, we'll be focusing on some of those.
And obviously any sort of developers that are watching right now or sort of reading the announcements, right?
More than welcome to obviously sort of help kick off some of those contributions.
If at any point you want to get some advice or talk about that or sort of collaborate on that work, you should just ping myself or Brandon and we're sort of happy to get involved and sort of help steer that as well.
The approach we took for the Node Postgres implementation I think ended up being in a pretty good place, right?
We're trying to make sure that we're not throwing a bunch of code over the fence onto these libraries or these open source maintainers as well.
Making sure it's flexible, just making sure I can still call a new client on a connection string and it just works.
And then I think the other things related to this, and so I think particularly on the database side, and before Leroy asks, there's no additional cost for creating sockets.
There's no sort of impact there, right? It's freely available. Sockets are sockets.
And we've been kicking those around for a while. The database use case, we are calling that a beta.
It works particularly for providers that have existing connection pooling on their side.
Obviously, one of the great things about workers is the ability for us to scale out globally.
But some legacy database providers obviously don't handle that kind of scale well.
And so you'll see some announcements from us over the next couple of, next handful of months as we sort of work to close some of those gaps and handle things like connection pooling and ways of speeding up connecting to databases on the client side as well.
That's great.
Okay. And how overall did the announcements impact the, in your words, of course, impact the, both productivity, but also just the developer experiences and using these new features for these products?
What are your guys' thoughts?
Yeah, I think, I'll keep it brief on my side. I don't know if Brendan and Tushrin have more to add here, but I think, you know, we've been here for a long time that folks want to connect back to services.
Again, I'll say databases, but it doesn't have to be just that, right?
But databases they have elsewhere. Right.
You know, we're building a lot in that space as well, but you do not just migrate your database overnight, right?
You, maybe your company's been building on AWS for a while and you want sort of a, you want to start moving to Cloudflare.
You want to start sort of building out on us, right?
Because it's becoming too expensive or it's too complex or it's sort of not fast enough, right?
But you're not just going to pick up and move your entire database on day one.
But if you can't bring your data with you or query it, then you're kind of stuck.
And so a really important thing for us is like, how do we make it easy for you to connect back to stuff you already have and take that decision or that like blocking decision out of the way?
And ideally you can move that later or, you know, again, we can speed it up.
So that sort of aligns with the Sockus work that Brendan was just talking about and then the database driver work that we're doing.
And then sort of that second part is, you know, it says to initially walk through is stuff like smart placement.
It's like, well, great. We've got this amazing distributed compute that runs on our network, but it's connecting back to a centralized database.
How do we reduce that latency?
So if you're making, you know, even just a small number of queries, right?
How do we keep that down as possible? So it kind of feels a little more distributed.
It feels a little bit faster. You keep that latency down. So a lot of those things are really, really important.
But again, it's like, how do we, in an overused term, but how do we sort of meet developers where they are so they can kind of build stuff on cutting edge and do stuff like workers, but still bring other parts of their infrastructure and their stack along for the ride?
So a lot of these new software projects change incrementally.
They don't all change at once.
You don't have a giant rewrite of something. And really, you know, if you take these announcements as a whole, you can use them together to start to take, you know, say a sliver of an application and really move it to Cloudflare to kind of this newer serverless way of working and run it in the ideal location, but also be able to connect back to the, you know, what you already have without having to, as Matt kind of spoke to earlier, move the data along with it.
You can kind of go piece by piece. There's a thing that I've been thinking a little bit about, like, you know, being able to rewrite apps from the outside in, and we really want to let you, give you the tools to be able to do that no matter what your stack is.
Like, a lot of the time when technology is getting introduced, it kind of feels like it's an all or nothing proposition.
You kind of have to go all in on one framework or all in on one cloud or all in on one technology.
And this is really about us being able to show you the path forward for an app that you started last week or that you started 15 years ago.
I think another thing to add to that is we talk to a lot of customers and maybe they've already transitioned over to the cloud.
They're using some of the big cloud providers for their compute and data products.
And then it's like kind of picking out the pieces and now they're like, we want to be closer to users.
We don't want to be located in US East 1.
Lots of our traffic comes from Europe. How do we become closer to users?
And part of the first step there is enabling connection back to the services you already have running on AWS or GCP, for example.
So this really unlocks lots of those stepping stones that developers or even bigger organizations can take to start thinking about, how do we shift our strategy and become closer to users, become more responsive with our applications?
I think we're going to start seeing some of that shift and some of these new possibilities becoming unlocked and delivering different experiences to our customers.
And all the while, we're continuing to build up our own data products.
We have R2 and D1 and enabling more of those data out close to users.
I think it's something that's a little early. It's very new, but starting to think about that shift of bringing everything, making it more distributed, making applications faster.
Compute is the first chunk, that first piece that you can really take a bite of.
And this enables more of that. So that's another big thing, is slowly changing the way that you as a company, as developers, are thinking about things.
And this enables a lot of those types of new cases that we can save.
All right.
And an abstract question, we've announced and delivered a number of products over the past two days for Developer Week.
Just a personal opinion from you guys, what have you been most excited about over the past two days?
What's your announcements?
Well, I mean, I think we're all biased in that we've worked on the things that we're talking about today.
But, you know, we worked really closely with the team that built Constellation AI.
And I think we're really excited about that.
It actually pushes our own platform in some interesting ways around just how the types of models that can run inside of workers and durable objects and so, you know, it was really cool to see, we always love at Cloudflare, doing a fair amount of dogfooding of our products and to see a team, you know, work through that.
You know, AI is happening so fast and I was watching that product get built week over week and the progress is really cool.
So it's great to see that out in the wild and I'm starting to opt in customers to it.
What about you, Tanisha? Yeah, the other one that I'll add here too, that I have a soft spot for our Launchpad program.
I think it's super duper awesome and we've seen lots of great success in the first cohort that we had over the past.
I think it was like half a month or so.
I think a lot of us got to even meet with some of these companies that are building entirely on Cloudflare.
So that was really awesome to see. And then the announcement around AI and how a few or a startup building AI product on Cloudflare, you get access to the Launchpad program, just making it all the more accessible to start building quick.
We understand that some of these teams are one to three, maybe a few more people.
You're building very lean and we want you to get started on us.
So I thought that was awesome. That was something I hadn't been following at all.
So I was reading the blog post from an outside perspective, like, oh, this is so awesome.
I want to call that one out. And you, Matt? I promise I'm saying this not just because Tanushree's here, but I was really excited for the smart placement stuff.
I think that is the stuff that if I wasn't at Cloudflare and I'm looking at what makes Cloudflare a little bit different?
Why are these things really powerful?
That to me is just impressive. The fact that I get this distributed, I can have distributed compute, I can run this compute globally.
And I don't have to have this upfront decision.
I've built a lot of stuff on cloud providers over the years.
And I hate getting asked upfront, what region do I want to put something in?
Because how do I know? Do I put it on the west coast of the US?
Because maybe that's where I'm close to when I was living in San Francisco. Or maybe I put it on the east coast of the US because I've got a bunch of European users or I want to start growing into Europe.
That's kind of hard. And so stuff like smart placement makes that so much better.
And I think there's a lot more coming in the future in this space.
But I want that choice to be backed by data. I want that to reduce latency.
I don't want to be building any kind of intelligence and logic that goes and replicates or move things around.
That's generally a pretty hard problem.
And so it's cool to see that land for that to work, to think back. I actually don't know how much we talked about this publicly, but to think back about the network data we have from building Argo all those years ago, if anyone remembers that, playing into this and giving us that intelligence.
We know the fast path to a huge amount of the endpoints that our users are calling.
When they make an API call to a database, they make 10 API calls to the database in series.
We know the latency to that. We know the best place to locate this performance data that we've been using to optimize other things for our customers up until now as well.
That's been super exciting. I was really excited to see that land.
I also kind of love the demo. I love a good demo, so it was definitely one of my favorites.
That was one of the first beta testers for smart placement, so shout out to you.
When is Matt not the first beta tester for a thing? I try to be. All right.
Well, thank you guys so much, Tanisha, Matt, Brendan. Truly appreciate you guys today sharing your announcements for Developer Week 2003 Day 2.
Again, be on the lookout for all of the announcements throughout the week.
Again, thank you guys for your time.
Be sure to check out the blogs and our announcements on Cloudflare.com backslash developer -week.
And also join our Discord community for any Q&A and also sharing what you've built with the products that we've announced today.
Again, thank you guys so much for the time, and we'll talk again soon.
Thanks, Leroy.