Latest / The Data Flowcast: Mastering Apache Airflow ® for Data Engineering and AI / Airflow Breeze
Transcript
- 0:01SPEAKER_01: Hi there, and welcome to this week's episode of the Airflow Podcast, brought to you by Astronomer.
- 0:07SPEAKER_01: We're excited to bring you our first in-person interview in this new episode.
- 0:11SPEAKER_01: This time, we met up with Yark Podyuk in New York City to discuss his recent commitment to the project, Airflow Breeze.
- 0:18SPEAKER_01: As you'll hear, Breeze is an awesome contribution that helps lower the barrier to entry for Airflow contributors and helps improve developer productivity by a massive margin.
- 0:28SPEAKER_01: It was a pleasure hearing Yarik's perspective on what led to its creation, and we were lucky enough to sit down with him for this conversation just minutes after Breeze had been merged into the core project.
- 0:38SPEAKER_01: Without further ado, let's dive into this week's interview with Yarick.
- 0:53SPEAKER_01: This is the first Airflow podcast episode we've done in person, so we're excited to get the conversation going here.
- 0:59SPEAKER_01: It sounds like we should like to be a bit more.
- 1:01SPEAKER_04: Yeah, I'm also excited.
- 1:02SPEAKER_04: That's the first postcast podcast ever I take part in.
- 1:06SPEAKER_01: No, this is gonna be awesome.
- 1:08SPEAKER_01: Big things all around.
- 1:09SPEAKER_01: Yeah.
- 1:09SPEAKER_01: Yeah, seriously.
- 1:10SPEAKER_01: And we're kind of doing this um in the wake of the merge of Breeze.
- 1:14SPEAKER_01: So we wanted to talk to Yarek about um his project, uh Breeze.
- 1:18SPEAKER_01: It's a breeze to develop on Airflow, great slogan.
- 1:21SPEAKER_01: Um so we're excited to dive in there.
- 1:22SPEAKER_01: It was merged you said 15 minutes ago or so.
- 1:24SPEAKER_04: Yes, yes, I just clicked merge literally 15 minutes, minutes ago.
- 1:29SPEAKER_04: I still have to cherry the hit to like 1.10 branch.
- 1:32SPEAKER_04: It's on the progress, on pro in progress, but it's uh yeah, on the way.
- 1:36SPEAKER_01: Awesome, awesome, cool, cool.
- 1:37SPEAKER_01: So we can dive in.
- 1:38SPEAKER_01: Um I know you gave the talk at at the Airflow meetup in New York last night about breeze to a bunch of us, and and a lot of it was really valuable to me personally.
- 1:47SPEAKER_01: Um kind of in the initial stages of learning how to develop on Airflow, right?
- 1:51SPEAKER_01: Like make changes and you know, uh I think it will be a really big thing for the community generally as well to kind of evangelize airflow development, right?
- 2:00SPEAKER_01: Like make it more accessible to developers and less off-putting or intimidating, maybe is a better word.
- 2:07SPEAKER_04: Yes, yes.
- 2:08SPEAKER_04: That's uh the thee came out of a frustration we had when we joined the project a year ago uh like how difficult it is to learn the ropes and start working uh on airflow.
- 2:19SPEAKER_04: Uh and uh we figured out uh good ways and how to improve our productivity, and we thought it's great to share this with uh with the community uh because we understood how difficult it is for a casual developer who just wants to fix something, uh, one line of code and to start running the tests to make the environment that is really useful.
- 2:41SPEAKER_04: That was really difficult and frustrating and intimidating, as you said.
- 2:45SPEAKER_03: Yeah.
- 2:45SPEAKER_00: Yeah.
- 2:46SPEAKER_00: Before we kind of dive too deeply into breeze, um, for everyone who is on the mailing list, uh, do you want to just kind of introduce yourself and kind of uh the company you work at and uh what you do?
- 2:56SPEAKER_00: Absolutely.
- 2:57SPEAKER_04: So my name is Jarek, Jarek Potyuk.
- 2:59SPEAKER_04: Uh I am a principal software engineer uh at Polydia, which is a software house in Warsaw, in Poland.
- 3:08SPEAKER_04: Uh we are working on many different things, uh, starting from hardware, firmware, embedded through mobile applications.
- 3:15SPEAKER_04: And fairly recently, like two years, uh we work on cloud tools, and Airflow is one of our uh beloved projects that we work on.
- 3:26SPEAKER_04: We have a team of right now five people working on Airflow.
- 3:29SPEAKER_04: Uh and uh and we have two Apache committers.
- 3:33SPEAKER_04: I'm one of the Apache commuters uh in our team.
- 3:37SPEAKER_04: Uh and uh and we love to work on Apache Airflow to see the to work with the community uh which is there, and we would like to help growing to grow to grow the community.
- 3:47SPEAKER_04: Yeah, that's that was the one of the reasons why why we wanted to merge grease as well.
- 3:52SPEAKER_00: Yeah.
- 3:53SPEAKER_00: Um so can you tell us a little more about your background?
- 3:56SPEAKER_00: Seems like you've kind of been, if you're doing everything from firmware design all the way up to airflow stuff in the cloud, like I imagine you've kind of been around the block a few times.
- 4:05SPEAKER_04: Yeah, like the so like personally, I'm an engineer with like quite a long experience.
- 4:11SPEAKER_04: Uh my career started in the 90s, so it's a long time ago.
- 4:16SPEAKER_04: Uh uh and I worked in telecommunication environment, uh like back-end development for telecommunication projects.
- 4:24SPEAKER_04: Uh I've worked with uh with Google.
- 4:27SPEAKER_04: I was a tech lead manager at Google working on different things, starting from Android through like some mapping solutions uh internally for uh for Google.
- 4:38SPEAKER_04: Uh then I started uh to work on mobile payment applications um uh in a startup in Poland.
- 4:45SPEAKER_04: And finally, uh I started uh together with my friend uh uh Olivia, uh Software House in Poland, and we work on like a bunch of different things, starting initially from mobile application development.
- 4:59SPEAKER_04: That was our main focus at the 10 years ago when we started, um, but now expanded into the embedded uh world and into into cloud tools.
- 5:10SPEAKER_04: So we have like a full stack from embedded development up to the the cloud, and we can develop everything uh in the game.
- 5:17SPEAKER_03: How many engineers do you have working at Polydia?
- 5:20SPEAKER_04: We have 70 people, 50, 60 of them, between 50 and 60 of them are engineers, um, and all of them working in one place in Polydia in in Warsaw, in Poland.
- 5:32SPEAKER_03: Oh great, that's super cool.
- 5:34SPEAKER_03: Yeah, awesome.
- 5:35SPEAKER_00: Um yeah, so kind of uh you want to kind of start with what got you interested in Airflow and what kind of made you start developing on the project?
- 5:44SPEAKER_04: Okay, there are a few things.
- 5:46SPEAKER_04: We started to work on cloud projects more or less two years ago, uh, and uh we started to uh see the potential for our company to work on on cloud, which was picking up this team at that time, and we realized how big potential it has.
- 6:02SPEAKER_04: Uh so we thought like we have to enter this environment, and we started working on on some projects together with uh with uh our friends at Google, uh, like Dataproc, Apache Beam.
- 6:16SPEAKER_04: We work on these projects.
- 6:17SPEAKER_04: And then and then we started uh, and after some time when we built a relationship and we built a team of engineers who which is uh uh fairly experienced now in in Google Cloud Platform and in cloud general, cloud in general.
- 6:33SPEAKER_04: Uh we saw Airflow as a next uh big thing in workflow processing.
- 6:40SPEAKER_04: Uh that's uh we we I we saw like Google Google going to uh Composer, so uh creating a service out of Airflow.
- 6:51SPEAKER_04: They also had some uh like we helped Google to build uh integration with uh of Airflow with Google Cloud Platform to make it to make Composer much more accessible for uh with uh for developers who using it, uh who wants to communicate with other Google Cloud Platform services.
- 7:11SPEAKER_04: And that's how it started.
- 7:12SPEAKER_04: We joined uh we started to work on uh on Airflow.
- 7:18SPEAKER_04: Uh we saw how many things can be improved, and this is like my uh beloved thing to do, like to see what we can improve when we work uh uh as developers.
- 7:29SPEAKER_04: We would like to be more efficient and more productive in what we do.
- 7:32SPEAKER_04: And we saw how many things we can improve, and we started doing that pretty much independently of any other work that we've done for Airflow.
- 7:40SPEAKER_04: Uh, and I was so insistent and resistant that uh finally I became a committer and uh uh and yeah, my my uh my focus on this part on development environment, continuous integration, that's something that I'm I'm primarily focusing on right now.
- 7:56SPEAKER_01: Sure, yeah.
- 7:57SPEAKER_01: From your talk last night and just from kind of getting to know you a little bit, it seems that developer productivity is very important to you.
- 8:04SPEAKER_01: Um can you talk a little bit about the glaring issues that you saw with the Airflow commitment process when you first kind of started working on it that kind of led you to breeze?
- 8:13SPEAKER_04: Yes, so the first thing when you are you when you were new developer up to up till like a month ago, uh your first experience when you wanted to run tests was like you wanted to set up the environment, and from the description from the uh steps that you would follow, it took quite a long time to set up, sometimes even a few days, depending on your initial environment.
- 8:39SPEAKER_04: Um, because things weren't easily installable, it wasn't working super fast, and like the environment was uh was difficult to understand how it works because it has so many different parts.
- 8:51SPEAKER_04: Uh, and then uh running tests, especially on the environment, uh, were painfully long if you just followed the standard instructions.
- 9:01SPEAKER_04: Uh, you need to understand a lot of like wizardry and sorcery inside of the of Airflow before you could actually make your work efficient, and for example, uh repeat running the test several times without the additional overhead and time needed to set up the database.
- 9:18SPEAKER_04: So we saw that when our team started, that it really takes us days to become uh productive and being able to efficiently work or weeks, weeks even to efficiently work with it and and work out some kind of way of working iteratively with the code.
- 9:34SPEAKER_04: Uh and we saw like that's that's not really necessary, it's too complex.
- 9:38SPEAKER_04: So let's simplify it.
- 9:40SPEAKER_04: Well, actually, let's make it more complex internally so that it's super simple for the actual user, uh developer being the user of that.
- 9:48SPEAKER_04: And and that's that was that was really the thing.
- 9:51SPEAKER_04: Uh, it was very closely connected to the continuous integration environment that we had, which has its own problems, and we are also working on fixing that uh together with uh with other uh airflow committers.
- 10:04SPEAKER_04: Uh but the the the kind of first experience for first-time user, that was uh the first-time developer, that was something that was really intimidating.
- 10:14SPEAKER_04: Uh it was it was very difficult for us, and then we thought, yeah, let's make it really easy.
- 10:19SPEAKER_01: Sure.
- 10:20SPEAKER_01: Yeah.
- 10:20SPEAKER_01: I definitely want to go back, touch back on the CI part of it a little bit later in the conversation once we get there, because I thought that was really interesting what you brought up last night about um kind of how airflow and passion projects generally handle CI and then kind of the direction that it's moving in.
- 10:35SPEAKER_00: Um but yeah, do you want to Yeah?
- 10:38SPEAKER_00: So I guess uh it's hard to talk about this, right?
- 10:41SPEAKER_00: Because it's uh secret tosses in the code, right?
- 10:43SPEAKER_00: But what what makes Breeze kind of uh as easy a as as good of an experience as it is, you know?
- 10:49SPEAKER_00: Like what are what is the kind of fundamentals of what you've built on and how is that different from what you used to have to do?
- 10:55SPEAKER_04: Um okay, so first uh first thing we have a uh a maintainable and updatable Docker image, which is an incremental build.
- 11:05SPEAKER_04: So we don't you don't have to repeat the whole process of building the Docker file, which usually takes a lot of time, especially in Airflow case, it's uh it's a long process to build the whole Docker file.
- 11:14SPEAKER_04: Uh so with every change of the code, pretty much you had to rebuild the whole image before.
- 11:19SPEAKER_04: So I had to make uh changes uh to the Docker file and the way how we are building it.
- 11:25SPEAKER_04: Uh and uh that was the main uh main point initially.
- 11:29SPEAKER_04: Um, and that was kind of a prerequisite for all the other changes.
- 11:33SPEAKER_04: And secondly, what was uh really difficult is like running tests inside uh in the way that uh uh there is no overhead connected with like database reset at the very beginning, uh, without uh with understanding which tests could be run, running the test selectively, because all the CI environment and Docker file were created in the way that they were good for running the whole suite of tests rather than individual tests.
- 11:59SPEAKER_04: And that's that didn't really correspond well with uh the way how you normally work as a developer.
- 12:04SPEAKER_04: You want to run a subset of tests or one test repetitively when you fix the code and try to see if if what is what you solve solves the problem and if all the tests are fixed.
- 12:15SPEAKER_04: Um, and then this kind of repetitive cycle was not really built in the environment uh that we had before.
- 12:22SPEAKER_04: That wasn't really uh like there was a lot of things that you had to do again and again every time you tried to run the test.
- 12:29SPEAKER_04: And and all this uh this part is now like fully automated, so you don't have to mess around with the scripts, modify them on the fly before you run something in order to get this uh quick repetitive cycle on tests.
- 12:43SPEAKER_00: Yeah.
- 12:44SPEAKER_00: So I want to circle back to something you said a little bit ago where as a developer it's not intimidating to kind of tackle this uh giant gorilla now.
- 12:52SPEAKER_00: Um I remember when I first started using Airflow, I found it really intuitive to write hooks and operators, you know.
- 12:58SPEAKER_00: But uh I've stayed far away and still have from like the core of things, right?
- 13:01SPEAKER_00: Fixing the scheduler and stuff.
- 13:02SPEAKER_00: Um do you think Breeze will kind of encourage more people to start making commits to kind of core airflow as well as some of the ancillary components or the connectors?
- 13:12SPEAKER_04: Uh I I truly hope so, yes, because uh operators and hooks are only like that.
- 13:17SPEAKER_04: There are like this is the big strength of Airflow that you have so many hooks and operators, and it's it's fantastic that people can contribute their own uh hooks and operators.
- 13:27SPEAKER_04: That's one thing, and I I was very much into that.
- 13:29SPEAKER_04: Like that Breeze was really if you have some operators and hooks that you wrote, you can bring them in more easily right now because you it's it's easier to test them.
- 13:38SPEAKER_04: But the core parts are also important, and we have so so many uh so many small problems that are not solved, and people just can't just saying, yeah, that that's a problem and posting a Jira issue, where they could, in theory, fix that if they are developers.
- 13:56SPEAKER_04: Uh but right now it was fairly difficult to understand like even what kind of which tests you should run and how they're named.
- 14:04SPEAKER_04: And with things like you know, like autocomplete for running the environment, autocomplete for running the tests, it's it's much more easier and intuitive and less intimidating to really start.
- 14:14SPEAKER_04: And then you don't really have to know all the ins and outs, uh, how how this works, it just it just works.
- 14:20SPEAKER_04: That's the idea.
- 14:21SPEAKER_04: Still, I'm sure there will be some teething problems right now after I merged today.
- 14:25SPEAKER_04: So, like I expect uh that's uh maybe not fully coincidence, but we have the workshop today uh at New York Times uh with uh airflow developers where we will try breeze with more people.
- 14:39SPEAKER_04: Um, so I'm hoping to learn a lot from that.
- 14:42SPEAKER_04: So expect some fixes coming in the next few days, most likely, uh, because things will not work exactly as I wanted because it's tested in a smaller environment.
- 14:51SPEAKER_04: But but I still think it's uh it's uh it will be much, much easier right now for those uh contributors, new contributors to contribute the code, even to the core of it.
- 15:03SPEAKER_04: And uh I actually at the meetup yesterday here at the New York uh uh city uh I've learned that a lot of people have their own code that they would like to contribute and they have their own errors they didn't report.
- 15:16SPEAKER_04: Uh and they have they they are solving them on their own.
- 15:20SPEAKER_04: If they can solve it for everyone, that would be a great win for uh for the whole community.
- 15:24SPEAKER_01: Sure, definitely.
- 15:26SPEAKER_01: So so maybe let's dive into some of the some of the very impressive numbers.
- 15:31SPEAKER_01: Um, how long did the test take to run before?
- 15:35SPEAKER_04: Yeah, well, uh it all of course it depends, but there was an an overhead for us just starting the environment, which was like seven minutes, even after you had all the images and everything installed locally.
- 15:46SPEAKER_04: Then you have to when you started it, uh that was really intimidating because when you started the environment, all the requirements have to be reinstalled every time you started it, which is uh like a pain.
- 15:58SPEAKER_04: Uh and especially it now, we have more and more requirements, it takes more and more time.
- 16:03SPEAKER_04: Uh so initially it was even like the seven minutes which I mentioned yesterday, that was even after some corrections, uh, which I've done.
- 16:12SPEAKER_04: But it was more than that, it was like 20 minutes, really, because if you wanted to install like Cassandra driver, which was optimized for speed, it took like 10 minutes just to run this, just to install this.
- 16:24SPEAKER_04: So that's that was really something that you would have to understand all the ins and outs to cut down if you wanted to optimize this experience and not have to reinstall everything from the scratch.
- 16:35SPEAKER_04: It was possible, but you had to know how to do that.
- 16:38SPEAKER_04: And even if you describe it, like I think most of the people don't read documentation.
- 16:43SPEAKER_04: We have a very good documentation for Breeze, but I understand that people will not be reading the documentation.
- 16:49SPEAKER_04: That's the usual thing that happens.
- 16:51SPEAKER_04: So you really read anything.
- 16:53SPEAKER_04: Yeah, just assume that so that the first experience you want to have as as good as possible when you just start the environment in a way like one script you're starting and you expect it it should work and it should be optimized for your iteration speed.
- 17:07SPEAKER_04: And that's that's what uh that's the goal that I want to achieve.
- 17:10SPEAKER_04: And uh I think we are really very close to that.
- 17:12SPEAKER_01: Definitely, definitely.
- 17:13SPEAKER_01: And then you can Breeze allows you to run those individual tests as well, right?
- 17:17SPEAKER_01: Like in a much, much quicker way.
- 17:19SPEAKER_01: Yes.
- 17:19SPEAKER_01: Um than before.
- 17:20SPEAKER_01: I know like some of our internal airflow developers like are constantly dealing with like waiting for tests to run when they want to merge like changes to terror phone and things like that.
- 17:29SPEAKER_01: You know, that takes like two plus hours sometimes.
- 17:32SPEAKER_04: Yes, yes, but that's more related to the continuous integration environment.
- 17:36SPEAKER_04: Uh the and waiting for that, yes, that's that's long, and but that's another story.
- 17:41SPEAKER_04: We can just go to that story uh later about the CI.
- 17:45SPEAKER_04: Uh so it doesn't the change which I've done doesn't improve much at the time of I needed to run the whole suite on the back end, not yet, but it's kind of builds a foundation.
- 17:57SPEAKER_04: Uh, when we switch to another CI system, we will be able to run those tests in uh much faster for various reasons.
- 18:03SPEAKER_04: Uh so we will uh uh like the the change I have done was also meant to improve the CI.
- 18:09SPEAKER_04: It's not there yet, it does improve uh in a bit, like maybe you know, like 10-15%.
- 18:16SPEAKER_03: But but we're going to have much more much faster builds uh fairly soon, I hope.
- 18:21SPEAKER_03: Well, yeah.
- 18:22unknown: Yeah.
- 18:23SPEAKER_00: So let's uh jump into the CI bit right now, right?
- 18:27SPEAKER_00: Like uh I think it leads really nicely into like uh now that the foundation is there for Breeze, right?
- 18:31SPEAKER_00: Like what do you want to build on top of?
- 18:33SPEAKER_00: You know, like how what is uh what is the next version of Breeze look like?
- 18:37SPEAKER_00: You know, like what are you excited to kind of make it even easier for?
- 18:40SPEAKER_03: Yeah, yeah, yeah.
- 18:41SPEAKER_04: The Breeze itself, I think it's fairly uh complete in in a number of ways.
- 18:46SPEAKER_04: Like I'm I expect rather fixes and and uh some uh solving some problems that uh a group of people would have which we didn't experience so far.
- 18:56SPEAKER_04: Uh adding new stuff is not really needed, it's just handles all the basics.
- 19:01SPEAKER_04: That's uh that that's that's cool.
- 19:03SPEAKER_04: But now like I would definitely switch the focus to the CI bit, uh, which is not necessarily related to Breeze, it's more related to this new Docker environment that I built, which is a foundation for both Breeze and the CI changes.
- 19:18SPEAKER_04: So uh the first thing that we need to solve uh quickly, I think, uh, is to make the builds run faster in general.
- 19:29SPEAKER_04: Uh the problem we have right now is that the builds are being uh are queuing.
- 19:34SPEAKER_04: So we have uh uh we run our tests on Travis CI infrastructure, which is provided by Apache Foundation, and this infrastructure is shared with many other projects, and we don't really um have a lot of uh goodwill from Travis CI to increase that, and uh Apache infrastructure is not really willing spending time on on improving that part.
- 20:01SPEAKER_04: They are rather uh they are rather relying on the projects themselves to improve their infrastructure, which is fair.
- 20:08SPEAKER_04: I mean the uh we are I think we're fourth fourth biggest biggest project in Apache Software Foundation for number of CPU uh or CPU amount of CPU used for for CIs on CI on Travis, and we need to uh really think if it's necessary, that's the first thing, whether we can improve that, and secondly, whether we can find and found uh and fund our own uh CPU time, uh which is not shared with others, but something that is exclusively for Airflow.
- 20:41SPEAKER_04: Because right now the problem is the builds are queued because we have not enough jobs to run in parallel, because otherwise we would be starving other projects for Apache Software Foundation.
- 20:50SPEAKER_04: So right now we it's limited, and sometimes when you have five or six people uh committing their changes and making pull requests, all the builds queue, and you can have like five or six hours waiting until the build is finished on Travis because it was waiting for five other builds in the meantime.
- 21:11SPEAKER_04: And that's and that's not acceptable long term, especially uh we are going to 2.0 right now, and there will be a lot more changes coming, I'm um I presume, or different new features from different people.
- 21:22SPEAKER_04: Maybe we'll get more contributors because of because of Breeze, that will increase the number of pull requests.
- 21:27SPEAKER_04: So we really have to cope with that.
- 21:29SPEAKER_04: Yeah, uh, and we have some plans for that.
- 21:31SPEAKER_01: Sure, yeah.
- 21:32SPEAKER_01: Um, yeah, no, that's great.
- 21:34SPEAKER_01: I mean, do you I don't know, do you want to talk about those plans to the start from the course?
- 21:42SPEAKER_04: Yeah, so the uh uh one the work that is in progress is uh first of all, these changes about changing the Docker images, they actually made it possible to easily migrate to another uh CI system because everything is now Docker, fully Docker composed based.
- 22:00SPEAKER_04: Uh fairly independent from the actual machines that are running it, so we don't require Travis per se.
- 22:06SPEAKER_04: You can run it on any system right now.
- 22:10SPEAKER_04: And this is already done.
- 22:12SPEAKER_04: And we are I'm trying right now to uh two possibilities.
- 22:17SPEAKER_04: Uh first possibility will be to run uh GitLab CI environment, to run our testing GitLab CI environment, uh not in the GitLab CI because GitLab CI provides uh I think 50,000 uh minutes uh per project per month for open source projects through of their own workers, but that wouldn't be enough for us.
- 22:41SPEAKER_04: Uh but we also have uh uh uh credits donated by uh by Google.
- 22:49SPEAKER_04: So Google with their composer, uh they are so kind that they provided us uh, first of all, once-off uh uh bunch of credits that we can use to run things on Google Cloud Platform.
- 23:03SPEAKER_04: And once we make it work, and what we see once we see how much it is, they also promise to work on kind of recurring credits that they can donate to Apache uh to Airflow.
- 23:16SPEAKER_04: Um and uh we will run a combined GitLab CI running tests on Kubernetes cluster run in uh a Google environment, which is kind of very nice environment, which after discussion in dev list everyone is in favor of.
- 23:33SPEAKER_04: Uh or uh quite recently, like maybe a week ago, uh GitHub uh added uh possibility of running CI on GitHub Actions, and that's something also that we want to explore.
- 23:46SPEAKER_04: We and I don't think this would be like the the capacity of GitHub Actions will be uh will be enough for us, but we will try it nevertheless to see to see how it works and whether we can achieve something.
- 23:58SPEAKER_04: By going to GitLab CI and uh and Kubernetes cluster, we can achieve several things.
- 24:04SPEAKER_04: We can achieve uh running more builds in parallel because this is the all the cool stuff about the new types of environments that we have for running.
- 24:12SPEAKER_04: Kubernetes allows us outscaling, so we can have a fairly cheap environment which will only be uh the machines will only be started when needed when the builds are actually running or waiting in the queue and then they can run in parallel.
- 24:25SPEAKER_04: So that's the one thing.
- 24:26SPEAKER_04: And secondly, we can also build it on uh use bigger machines to build because we have full control on what kind of cluster nodes we are using, uh, so we can run it on bigger machines with bigger CPU, bigger RAM, and optimize the experience so that uh the builds itself will take much less time.
- 24:44SPEAKER_04: Uh I have some quite some experience in similar, similar uh working for similar thing for for commercial projects that we worked on.
- 24:53SPEAKER_04: We like from the past, the experience we we sped up for just to give you an example of speed up that you can achieve.
- 25:00SPEAKER_04: Uh we worked on a custom Android OS build, uh, and we uh developed the whole CI environment as from Polydia.
- 25:10SPEAKER_04: We developed the the whole CI environment for a big company that was um uh doing this custom uh OS development for Android.
- 25:19SPEAKER_04: It was for financial, for tablet, for like payment tablet.
- 25:23SPEAKER_04: And from typical uh, let's say an hour, 40 minutes built for Android OS, uh, we cut it down to 20 minutes.
- 25:32SPEAKER_04: Wow.
- 25:32SPEAKER_04: That was a huge improvement.
- 25:34SPEAKER_04: That that actually enabled us to uh to um to run it for every pull request.
- 25:41SPEAKER_04: That was like I think that's the only environment at that time, maybe in the world, that you actually run all the tests for Android, everything, uh, and build uh in for every pull request.
- 25:52SPEAKER_04: And we that was necessary for the security reasons, uh, and and we've done that.
- 25:58SPEAKER_04: Uh with some with some like that that costed a lot of money to run it, uh but uh but it was possible because we have this custom environment that we work on rather than uh CI, Travis CI, which provides only two CPU machines with seven.
- 26:14SPEAKER_04: Yeah, yeah.
- 26:15SPEAKER_04: Yeah, everything in the cloud just makes it easier.
- 26:18SPEAKER_04: Yes, and then Kubernetes, especially for for managing the kind of workload scaling up and down.
- 26:24SPEAKER_04: That's uh that's just just works.
- 26:25SPEAKER_04: And especially with GitLab, which has uh like uh almost native integration with with the with Kubernetes, it just takes a few clicks and you got it up and running.
- 26:35SPEAKER_01: Yeah, yeah.
- 26:36SPEAKER_01: So it seems like you're really, I mean, with all this stuff coming together, right?
- 26:39SPEAKER_01: Like free is just easier, easier development environment.
- 26:42SPEAKER_01: Um maybe the CI changes that are coming up soon, um building Airflow, or like at least the progress at which or the pace at which we can build Airflow will accelerate, right?
- 26:52SPEAKER_01: Like the pace at which you can get new code merged, get new code code committed, and maybe um onboard new committers will will just be much encrouped with it, right?
- 27:01SPEAKER_01: Yes, yes.
- 27:02SPEAKER_01: Um that in mind, what what do you see happening to Airflow over the next year?
- 27:06SPEAKER_01: Um, I know you guys are working on some stuff that's that that's coming down the pipe that I would love to hear a little bit more about with the hooks and operators.
- 27:12SPEAKER_01: Um what in your in your vision, what's Airflow 2 look like?
- 27:18SPEAKER_01: Airflow three.
- 27:22SPEAKER_04: Just just one thing before before we go back to that.
- 27:25SPEAKER_04: Uh there is also one more improvement uh that actually was implemented already, uh, and and we are finishing uh some last steps of that.
- 27:34SPEAKER_04: Uh also related to development speed, which is the pre-commit framework.
- 27:39SPEAKER_04: So something that the pre-commit framework allows you to run all the static code checks before you commit it.
- 27:46SPEAKER_04: And that's also another thing to make it much faster iterations because you don't have to wait for Travis CI to run all those tests.
- 27:54SPEAKER_04: You can very easily enable it and have it run only on a small part of what you are doing.
- 27:59SPEAKER_04: So that's that's another small improvement that would that that we implemented.
- 28:04SPEAKER_01: And that's part of that's part of Breeze, right?
- 28:06SPEAKER_01: Yes.
- 28:06SPEAKER_04: Uh well it's it's it's uh let's say it's also based on the same uh Docker file foundation that was implemented first.
- 28:13SPEAKER_04: But that's another kind of improvement, which is is just very much parallel.
- 28:17SPEAKER_04: And Breeze is also integrated with that, so you can use Breeze to easily run those the same per commit checks as well.
- 28:24SPEAKER_01: I think that's what I was thinking before when I was asking about test speed improvement, like you can run the tests except mobile, basically.
- 28:30SPEAKER_04: Yeah, yeah, yeah.
- 28:31SPEAKER_04: But yeah, but those are the kind of static tests, not really the automated tests that we're talking about.
- 28:37SPEAKER_04: So like both automated tests and the static code checks now can be very easily run locally, and that's super cool.
- 28:44SPEAKER_04: Uh going back to Airflow to zero, it's really up to the community to decide what's in the app in to zero.
- 28:51SPEAKER_04: Uh I have my own ideas, but I'm just one of the committers and mostly focused on uh on the CI, on the development environment, and Google Cloud Platform.
- 29:01SPEAKER_04: This is our main area of focus, uh, and and kind of integration with Composer as well.
- 29:08SPEAKER_04: Uh and there are a number of, but from our point of view, there are a number of things that even in the last episode of the podcast, of the Airflow podcast, James Malone was talking about.
- 29:21SPEAKER_04: So there are things that uh are totally in line with like what community requires, what tool requires for Composer, what everybody wants to get done.
- 29:31SPEAKER_04: And these are there are a few things that uh I know a number of people, uh a number of commuters are working on.
- 29:38SPEAKER_04: And first of all, the the biggest win for uh for Airflow, or the biggest thing that can improve lives of the users, not developers this time, but the users, is persistency of DACs.
- 29:51SPEAKER_04: Uh, because right now this is the like the biggest pain point that the DAX are being parsed all the time by all the components.
- 30:00SPEAKER_04: Uh and just saving uh parsed status and the structure of the DAC into the database, it's something that will be really useful for many different uh usages.
- 30:12SPEAKER_04: One likes to make the whole setup much less fragile.
- 30:16SPEAKER_04: It is now fragile because you have several points of synchronization, like the database and the and the file system, and they never synchronize at the same time, and you don't keep the history, and that's that's real pain.
- 30:28SPEAKER_04: So persistency will solve all of that, but it also has surprising uh improvements for like the UI, which can use the database directly.
- 30:38SPEAKER_04: So then, as a next step from that, uh and that's something that everyone wants as well, this will open up the possibility of uh of implementing the multi-tenant approach so that parts of the same installation of Airflow can be accessed by different people in a secure way, so that right now there is airback for UI, but it's only on it only works on the UI level.
- 31:03SPEAKER_04: If you have access to DAX and modify DAX, you can basically access the whole system.
- 31:08SPEAKER_04: There is no way to prevent that.
- 31:10SPEAKER_04: And when you when we like separate or put the parsing into the resistant uh database and then make sure that the code is only executed uh in isolated uh areas, that opens it up the possibility of splitting that uh several tenants and have them really separated.
- 31:30SPEAKER_04: And that's something that pretty much everyone in the community wants.
- 31:34SPEAKER_04: Uh every like that there are a lot of stakeholders who would like to get this uh implemented, and and and there are people working on that from different directions, and even some there are some like maybe not competing, but some different implementations.
- 31:49SPEAKER_04: Uh, like there is a Google effort right now to contribute uh what they have done uh to persistency in Composer as a kind of interim solution, uh for which can be even uh retrofitted to like 1.10 line, and there is a work ongoing on that, and uh lots of people are reviewing and uh this this this particular pull request.
- 32:10SPEAKER_04: I hope that's gonna be that well for sure that's gonna be part of 1.5, 1.10.5 release, which is going to be there sometime later.
- 32:19SPEAKER_04: Uh and uh and uh we but there is also the effort run by mostly astronomer guys here that so thanks for doing that.
- 32:29SPEAKER_04: Uh so there is Ash uh and a few other people, uh Kakil uh is also involved in that.
- 32:38SPEAKER_04: So they are working on making a long-term solution for upcomes.
- 32:47SPEAKER_04: The simpler solution for 1.10 with the same kind of uh goals.
- 32:53SPEAKER_04: Uh and that's that's something really important that should be implemented as soon as possible.
- 32:59SPEAKER_00: Yeah, I think it'll set stage for uh makes it easier down the line, like a full Airflow API, you know, kind of uh giving that part of the developer experience as well.
- 33:09SPEAKER_00: Um that's that's the change that I'm really looking forward to as well, because I think that'll open up a whole slew of doors for people like writing DAGs without necessarily ever interacting with Airflow directly, you know?
- 33:19SPEAKER_00: Yes, yes, yes, API as well.
- 33:21SPEAKER_04: And API is also like there are many companies that we hear that they build a UI on top of uh the Android, the Airflow UI because Airflow UI is really like for somebody who understands all the details, but you want to write a simple version of that, uh, usually for different teams managing different parts of your DAX, for example.
- 33:41SPEAKER_04: And lots of companies are doing that.
- 33:43SPEAKER_04: An API which will allow to interact with the whole um database and with all the features of Android might be super useful for the for that for that purpose.
- 33:54SPEAKER_01: Well, really, yeah, I'm really pumped for that too.
- 33:55SPEAKER_01: Because it will just it will open up a whole round of possibilities of what you can do, right?
- 33:59SPEAKER_01: Like in terms of usability, customizability, all that stuff, right?
- 34:02SPEAKER_01: Yeah, both custom UIs, you know, interface and API, how read like um all that good stuff.
- 34:07SPEAKER_01: Yeah, so that would be super exciting.
- 34:09SPEAKER_01: Um I think we'll have to, yeah, we're uh going back to what you were mentioning about the DAX serialization stuff that Cashwell's working on, we'll have to get him on to discuss that a little bit more until maybe next week.
- 34:19SPEAKER_01: Absolutely, absolutely.
- 34:20SPEAKER_04: That would be fantastic to hear.
- 34:22SPEAKER_04: I don't see a lot going on right now with that.
- 34:24SPEAKER_01: It seems like an interesting project that's way over my head.
- 34:27SPEAKER_01: So we need to learn a little bit more about it.
- 34:29SPEAKER_04: Yeah, yeah, there are lots of discussions and lots of comments of people, and uh yeah, the the difficult part there is really that you have to handle uh small environment and big ones, and then if somebody has thousands of DACs, you have it has to work well.
- 34:43SPEAKER_04: And and yeah, that's yeah, and they have the database communication that you have to like the database users will increase dramatically uh with that.
- 34:52SPEAKER_04: And there are a number of number of uh issues to be solved.
- 34:56SPEAKER_04: Uh yeah, yeah, especially that we also want to adversioning and how to do that, how to my well, yeah.
- 35:03SPEAKER_04: This rabbit hole gets deeper and deeper.
- 35:04SPEAKER_04: Yeah, never never ends.
- 35:06SPEAKER_04: Yeah, no, it will end, hopefully.
- 35:09SPEAKER_04: That's that's the hope.
- 35:11SPEAKER_04: It will end and we'll get uh very like the version that is right now being implemented for from from like ported from from what Google did for Proposer is uh very simple and solving the kind of like biggest pain points, but it's not uh the final uh solution that that we will come up with.
- 35:28SPEAKER_04: But but it will definitely help uh for somebody who doesn't want to wait for 2.0, which would be sometime I wouldn't know when exactly, but that will take some time to develop 2.0.
- 35:39SPEAKER_04: That would be good if it uh gets to 1.10.5.
- 35:43SPEAKER_04: Sure.
- 35:43SPEAKER_04: So that it can easily migrate there.
- 35:45SPEAKER_01: Definitely.
- 35:47SPEAKER_01: Well, before we wrap, do you want to talk a little bit about kind of some of the more immediate stuff that you're working on with hooks and operator kind of code generation?
- 35:54SPEAKER_01: I know you're talking about you know generating pre-built templates and things like that, or is that uh it's it's a bit of well, it's not a secret.
- 36:02SPEAKER_04: It's not no we can cut, we can cut it if we need to.
- 36:04SPEAKER_04: No, no, no, absolutely.
- 36:06SPEAKER_04: It's it's just uh uh let's say this is part of the developer productivity that I was that I was talking about before.
- 36:13SPEAKER_04: This is something that is very deeply in my DNA, in DNA of Polydia of the company I'm I'm from.
- 36:20SPEAKER_04: And we when we start any kind of project, we really think how we can improve our productivity, improve our output.
- 36:28SPEAKER_04: So, like my rule of thumb is really like when I start the project uh and finish it, I want to be 10 times productive when I finish it when I start it, because I've learned something, because I've built some tools, I made it much more uh uh much easier to uh to work with the code, or even in this case, we generate some of the code.
- 36:50SPEAKER_04: So our task, uh what we've done so far, we've developed in Polydia like more than 80, maybe even 90 now, operators for Google Cloud platform mainly.
- 37:02SPEAKER_04: Uh and that's uh a pretty, let's say, boring job.
- 37:07SPEAKER_04: Um, if you implemented 10 of them, like 10 next operators, using very similar APIs, using very similar um similar services that you interact with.
- 37:18SPEAKER_04: Uh it's it's it's a bit boring.
- 37:20SPEAKER_04: Uh well, testing is not because you have to make sure that it works, you learn something, you learn how the new services work, so it's really interesting.
- 37:27SPEAKER_04: But writing the initial code uh uh where you have to make sure that you put all the parameters in when you have to document them, when you have to create a structure, hooks and operators communicating with each other, remember about all the small details, passing additional labels and stuff like that.
- 37:45SPEAKER_04: That's boring.
- 37:46SPEAKER_04: So we figured yeah, well, we can generate it automatically.
- 37:50SPEAKER_04: And uh and yes, like we did some spike to see if it's possible.
- 37:55SPEAKER_04: And it turned out that Google has uh the Google APIs uh are already using uh Python code, which is generated automatically in some ways.
- 38:04SPEAKER_04: So the structure of all the APIs is basically the same, and we could figure out and read the metadata from the Python generated uh APIs by Google and put that metadata into our code, generating the scaffolding, as we named it, automatically for all the operators.
- 38:22SPEAKER_04: So, right now, what we do basically when we want to implement new service, we just run the tool and we have everything, like pretty much everything, including uh including the tests and including the system tests that use the service.
- 38:37SPEAKER_04: So we generate all the steps right now.
- 38:39SPEAKER_04: I think like there are a few things missing, but we are adding them uh right now as we speak.
- 38:44SPEAKER_04: Uh and and then we just really review that, run it, run the tests, uh fix some maybe small problems that we found, and we have new operators.
- 38:56SPEAKER_04: So that's something that we uh we right now uh test on a few more operator sets that we are adding, and we are adding new new capabilities.
- 39:06SPEAKER_04: And we this project is uh uh is uh from the beginning if it's an open source.
- 39:11SPEAKER_04: So also the idea is that anyone would be able to do the same if they need an operator for Google uh cloud platform, they can just go if it's missing, generate it, add it, and maybe using Breeze contribute it, run all the tests because this all will be integrated, so we'll be able to easily run integration tests and system tests uh and uh and contribute to Airflow.
- 39:35SPEAKER_04: And we don't have to do it.
- 39:36SPEAKER_04: We can just now the idea is that since it's a little bit boring, we would like to start some new projects and do some new stuff, like yeah, like I cannot tell.
- 39:48SPEAKER_04: Well, the new stuff uh but uh but that that frees our capacity uh for doing more interesting stuff.
- 39:55SPEAKER_04: Definitely, yeah.
- 39:56SPEAKER_04: Yeah, and and this work actually this work came from from another piece of software that we developed, uh, which is uh Uzi to Airflow converter.
- 40:06SPEAKER_04: So we also helped Google to build an open source uh an Uzi to Airflow converter.
- 40:12SPEAKER_04: Uzi is a Hubble ecosystem workflow engine that uh is not like much worse than uh Airflow, I would say.
- 40:22SPEAKER_04: People don't necessarily love it as they love Airflow.
- 40:26SPEAKER_04: Um and uh but a lot of people are still using that from legacy uh purpose for legacy purpose for legacy uh reasons.
- 40:36SPEAKER_04: And they are uh we've developed an automated converter from uh from Uzi XML workflows to uh to Airflow DAX.
- 40:47SPEAKER_04: Uh so we generate Python code, it turned out to be fairly efficient, and the Python code generated uh is is great and it's like it's user-readable.
- 40:59SPEAKER_04: It's actually us.
- 41:00SPEAKER_04: We uh we focused on making sure that this uh code looks like it was written by human.
- 41:06SPEAKER_04: So it's not like a typical generated code which is like unreadable, it's just really like if somebody wrote it manually, that was our focus.
- 41:14SPEAKER_04: Uh and then we took that experience into the scaffolding part, generating the operators and books automatically.
- 41:20SPEAKER_04: And again, we have also the same focus that the generated scaffolding is just as if human wrote it, like like not something very uh very artificial.
- 41:31SPEAKER_03: Yeah, definitely cool.
- 41:33SPEAKER_01: Well, yeah, and it's funny that that's that it's it's great that that ties back into the whole narrative narrative of productivity with breeze as well, right?
- 41:39SPEAKER_04: Yes, yes, yes.
- 41:40SPEAKER_04: This is all like this this is recurring them.
- 41:44SPEAKER_04: Yeah, this is recurring them that comes from my my past, like all the like more than 20 years of of career in IT.
- 41:52SPEAKER_04: I I always worked in something like that, uh either fully as a project or as a side project, or but but it it was always the same, like we started the project, and my first thought, like what can we improve to make make it more interesting, less boring, faster, and better for our customers as well.
- 42:11SPEAKER_04: Because because because as a software agency, we work for the for our customers.
- 42:16SPEAKER_04: And and our goal is really to make our customers happy, and making them happy means uh sometimes uh like doing more for less.
- 42:24SPEAKER_04: But you can't do it if you don't have tools to help you do that.
- 42:28SPEAKER_04: Okay.
- 42:29SPEAKER_04: So that's uh that's yeah, that's the whole uh idea and DNA of Polydia and myself.
- 42:35SPEAKER_01: Yeah, well that's great.
- 42:36SPEAKER_01: That's great.
- 42:37SPEAKER_01: Yeah, tons of cool stuff coming to the pipe.
- 42:38SPEAKER_01: It's exciting to hear.
- 42:39SPEAKER_01: Yeah.
- 42:40SPEAKER_01: Excited to see how this affects kind of speed of development, you know.
- 42:44SPEAKER_04: Do some good stuff for the community.
- 42:45SPEAKER_04: I hope so.
- 42:46SPEAKER_04: And I really hope like because this is not GCP specific in any way.
- 42:51SPEAKER_04: Like it does use the metadata from cloud platform, but then if we do that and then we open source, we hope also somebody can take this code and write their own scaffolding for different kinds of operators as well.
- 43:02SPEAKER_04: Why not?
- 43:03SPEAKER_04: I mean, yeah, I mean it's just through the way, like just from where you get the data, and then the generation engine of the operators in group can remain the same.
- 43:11SPEAKER_01: Hey, Raj, we're saying that you want to start contributing to open source more than we're gonna number one.
- 43:17SPEAKER_04: Yeah, yeah, yeah.
- 43:18SPEAKER_04: Yeah, we are invited.
- 43:19SPEAKER_04: So we we we shouldn't like we have to like re-how exactly, like it is already available on GitHub, so if you look hard, you will find it.
- 43:27SPEAKER_04: Um but but we have to think more of like how to uh whether how to market it or how to you know present it to the community, uh and it's like it's ready for our internal use, but still requires a little bit more time for to be to be generally usable.
- 43:44SPEAKER_04: Unlike the UZ2 Airflow, Uzi2 Airflow is really uh now uh released in the in a in a way that can be used by anyone.
- 43:51SPEAKER_04: Uh it works for a number of cases, there are still open issues, and also there if you if somebody wants to use uh UZ2 Airflow, it's very easy to contribute.
- 44:00SPEAKER_04: There are open issues, uh, and I mean like they are all prepared in uh in the way that you can very easily start the project, pretty much using the same uh idea that when you check out the project, you just run it, you have all the environment working, you have all the pre-commit tests, everything is there, and you can start contributing to that, and we can review your code and then commit it.
- 44:21SPEAKER_04: We just don't work very actively on it because we reached the state that we wanted to reach.
- 44:25SPEAKER_04: If somebody has more requirements, they can contribute their own code or ask us to do that as well.
- 44:30SPEAKER_01: I mean, we do that if if somebody wants they wants it.
- 44:34SPEAKER_01: Definitely.
- 44:34SPEAKER_01: Well, we'll definitely link to that.
- 44:36SPEAKER_01: Use the airflow converter in the podcast episode description.
- 44:39SPEAKER_01: Absolutely.
- 44:40SPEAKER_01: Just so people can access it easily if they want to dive in there and check out some of the open issues.
- 44:43SPEAKER_01: Uh, yeah, absolutely.
- 44:44SPEAKER_01: Absolutely.
- 44:45SPEAKER_04: Yes, yes, yes, yes.
- 44:46SPEAKER_04: And we're we are happy to you know like uh discuss about like adding new features or implementing missing features in in it if needed.
- 44:54SPEAKER_04: That's that's definitely something that we can uh we can do.
- 44:57SPEAKER_01: Yeah.
- 44:58SPEAKER_01: Well great.
- 44:58SPEAKER_01: Oh, I don't have anything else for you unless there's something you want to plug.
- 45:00SPEAKER_01: Um Varaj, I don't know if you have anything.
- 45:02SPEAKER_00: No, this is great.
- 45:03SPEAKER_00: It's uh so it's so interesting hearing your perspective and kind of the way that you're approaching some of the problems.
- 45:08SPEAKER_00: Yeah.
- 45:08SPEAKER_04: Yeah, well, no, that's that's it for me.
- 45:11SPEAKER_04: Like I'm super happy that I could come to New York uh and be at the meetup yesterday and uh do the workshop today and meet you guys uh here.
- 45:20SPEAKER_04: Uh that's uh that's really interesting experience to meet uh those people that you interact with on the dev list daily.
- 45:28SPEAKER_04: I've met a few of them yesterday.
- 45:30SPEAKER_04: Uh was uh great to hear good feedback uh from those people.
- 45:34SPEAKER_04: Uh great to see in person.
- 45:36SPEAKER_04: And today we are gonna we're going to uh um uh to um to be together to spend a little bit more time while doing the workshop hands-on uh and to to learn about each other's needs, and that's that's super cool that that we have real airful users uh coming and telling us about the problems they have, but also that we can enable them.
- 45:58SPEAKER_04: Yesterday we had this discussion, like we have a ton of operators written internally.
- 46:06SPEAKER_04: Uh is it worth to to uh to contribute it?
- 46:10SPEAKER_04: Uh the answer from me was like yes, that's right, you can do it now, it's easy.
- 46:16SPEAKER_04: And so that's the that was the idea when we developed Brees, and I hope more of those conversations happen today.
- 46:22SPEAKER_01: Right.
- 46:23SPEAKER_01: Yeah, yeah.
- 46:23SPEAKER_01: Hi, Eric.
- 46:24SPEAKER_01: Well, thanks so much for coming on.
- 46:25SPEAKER_01: It's been great.
- 46:25SPEAKER_01: It's been great chatting with you.
- 46:27SPEAKER_01: Um, excited to get this episode out to everyone.
- 46:29SPEAKER_04: Thanks for inviting me to that.
- 46:30SPEAKER_04: Uh I'm really happy to be here.
- 46:33SPEAKER_01: Awesome.
- 46:38SPEAKER_01: Thanks to Yark for coming on the show this week and for hanging out with us on a strip to New York.
- 46:43SPEAKER_01: It was a true pleasure spending time with him and hearing his perspective on the state and future potential of Airflow.
- 46:48SPEAKER_01: Next time, we'll chat with Ashra Lynn Taylor about the Airflow 2.0 roadmap and some of the features you can expect coming down the line.
- 46:55SPEAKER_01: See you then.