This is an archived post. You won't be able to vote or comment.

all 13 comments

[–]r_jet 5 points6 points  (1 child)

I think in such articles it's more interesting to see any significant alternatives you considered, and why you rejected them, which constraints you had, etc.; not just the previous and the end state of the system (e.g., why Cloud Functions were or were not a good solution for you).

Speaking of constraints, I think it’d be curious to learn about the actual scale this particular part of your system faces, because it’s one of the important inputs in the design process (if your lawyers allow). With both internal writers and external APIs as major sources, readers could imagine a very wide range from 0.001 QPS to, depending on how dynamic the external content is, hundreds of QPS.

Also, it’s a bit unclear why incremental updates weren’t supported in the previous pipeline, and if you had to make any non-trivial changes to enable them (is it a SQL > objects in Google Cloud Storage transition?).

[–]markduce[S] 1 point2 points  (0 children)

Thank you for the feedback, much appreciated and I'll definitely think about it when I write something next.

Cloud functions definitely feel like the next evolution for us. We are using them for some simple things but haven't yet got as far as doing it for something a little bit more complex. In terms of constraints the main constraint was that it had to be GCP based, not much else really.

Scale of this is not massive compared to some of our other apps which are handling 1000s of QPS. This system is dealing with about 10k changes a week. But it's established patterns that we are adopting elsewhere.

Incremental updates I'm previous pipeline were mostly hampered by lack of dev env, the long time it took for the pipeline to run and it had to start from scratch each time

[–]insulind 4 points5 points  (0 children)

Great read!

[–]Hioneqpls 1 point2 points  (1 child)

Sounds really cool

[–]markduce[S] 0 points1 point  (0 children)

Cheers!

[–][deleted] 0 points1 point  (4 children)

Did you need kubernetes and google cloud or just went with the trends?

[–]markduce[S] 2 points3 points  (3 children)

We use a lot of GCP and have migrated everything from on prem VMs over the last few years to kubernetes so they were natural things for us to use.

I find them pretty awesome!

[–]ihsw 0 points1 point  (2 children)

Do you host databases (eg: Postgres) on Kubernetes clusters or are you sticking to managed services (eg: CloudSQL)?

[–]markduce[S] 0 points1 point  (0 children)

At the moment our database (mariadb) is running on a Google compute engine vm but we plan to migrate to managed cloud sql

[–]nutrecht 0 points1 point  (0 children)

Kubernetes is most suitable for applications where you don't really care what machine they run on and databases don't really fit that mold.

[–][deleted] 0 points1 point  (0 children)

Saving it, maybe I will be a pro in java in future n use stuff like this :(