April - Mobile Dev, k8s Clustering, etc.
Intro
Ok, one month later, and I’ve made some solid progress on mobile development, suprisingly wound up clustering my k8s service, and stood up a few new services: aptly for debian package serving, NFS to support my k8s cluster, an internal wiki. The past few days I’ve lost a lot of time thinking about networks for some reason, I guess it’s the IoT stuff causing this. I’m planning to a Ubiquity AP and isolate them all because those things are doing really weird things when I analyse the network traffic.
Free Lambda Bastion Continued
So the more I do things in the cloud, the more the grow into websocket systems. It’s wasteful, but for my own stuff, I really like that real-time communication thing. I don’t think there’s really a cheap way to do it without booting a VM. The cheapest AWS offers actually appears to be a Gravaton at around $4/mo. This doesn’t include the networking, storage and any other related expenses. It also offers just 512Gb of ram. As far as I can tell, that’s really a lot to work with. It looks like there’s an AL2023 Minimal AMI that’s at least promising, but I have a feeling it might be worth packing a custom ami based off of Alpine’s cloud images. I don’t have time to burn on that atm, but it would be really cool to bake a go-based NAT traversal image that only costs $4/mo (until scaling of course). I’d want to invest a little more research into that though, I’m sure aws has some native service burried away that can help without wasting money.
Mobile Dev
So I learned this month that unless I poney up and pay for a dev license from Apple, I can’t even use push notifications on their platform at all. It’s kind of unbelievable. I’m just going to do Android development as I build this out from here on. Worst case scenario, I release my app on android and it goes viral and then Apple users wind up with an underdeveloped user experience for a while. Meh.
It’s so hard to work fast on mobile dev because if your UI is complete garbage, you won’t really know what to build or enjoy working on it. I was having a hard time styling the page because I was resisting the need to slow down and envision. Finally I decided it was worth a day to just think about UX. I took a look at some reference apps, took out a sheet of paper, and drew some views, and then cranked out some React/ Material UI. It feels like after a day I have nothing new, and it looks really sleek, but it still feels like a tough sacrafice. I guess because I know that UIs are never finished, and even when they meet the trends and expectations of the current moment, in a few years it won’t and will need a re-write.
There’s still a big piece missing from the frontend, and that’s the graph. There’s some need for data-vis in this app. I’ve been seeing data-vis oportunities everywhere around me lately actually. I can’t remember the last data-vis thing I worked on, but I remember what’s likely the first data-vis I ever did. In college during my stats class (I was using VB6 at the time) I coded something together to plot a line using regressional analysis and pixels on a window handle. It was really fun having complete control of what would be renedered and how. I’m probably going to use D3.js and it’s probably going to feel like working with any other framewore. Sure it will get done fast, but it won’t look exactly how I want it until hours go by of trial and erroring ill-documented attributes in the docs page =/
Pfsense
Oh, I actually did stand up a Pfsense deployment, I expected it to be a lot more painful to configure but they suprizingly went with sensible defaults. I really like having multiple routers on one network. I really just want a simple way to clamp down on all my network traffic, but I also am really busy building so it’s going to be one of those things where I go a little bit with it and then let it fall off my radar a while.
K8s is clustered finally
There I was writing a backup process for a k8s deployment when I decided, “Ok, today is the day I just cluster these things”. I’m so glad, but yeah as you might imaging there’s a lot of stability issues that need to be hammered out before it’s done. I think I’ve got it pretty much where I want it. Most of my systems are fully immutable, but there’s so much state in applications that a k8s cluster is complicated to keep immutable. Atm, they launch from mostly-configured machine images, and then run some cluster-joining logic via cloud-init to make the cluster happen. Now that there’s 3, I think I can bounce each member individually without losing any state, or incurring any operational downtime. They seem to be wasting more resources though, I’ll need to profile them to see if it’s the new deployment, or if it’s something to do with their clustered behavior. I’ve heard good things about Velero for backing up the kubernete’s control plane. I was on the edge of giving that a shot but it’s not quite “due” yet.
Why did MINIO not get done too? I guess that brings me to upcoming tech…
Upcoming Technology Ambitions
- Data-vis
- More Mobile Development with Capacitor
- MINIO
- PVC-based artifact versioning
- Pfsense
- Velero
- Closely monitoring AWS bills for changes