Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Finster Dexter
Oct 20, 2014

Beyond is Finster's mad vision of Earth transformed.

Blinkz0rz posted:

well constructed golden images were the pinnacle of server management and i'll fight anyone who disagrees

kubernetes has largely just turned that concept into a herd of pets managing cattle containers while the ops team tears their hair out making sure that all of k8s's inscrutable internals are working correctly so the fleet of 10,000 containers serving a fart app can continue to run

I blame microservices (and I'm not sure if that's good or bad, tbh)



Good Sphere posted:

no, what are the benefits?

the benefits of react native are that you can smear javascript all over your mobile app like a shunted turd

Adbot
ADBOT LOVES YOU

Soricidus
Oct 21, 2010
freedom-hating statist shill

Finster Dexter posted:

I blame microservices (and I'm not sure if that's good or bad, tbh)

pah, microservices are old news. we're migrating all our code to macroservices, which is where you run excel in k8s

Shaggar
Apr 26, 2006
I think you mean run k8s in excel

gonadic io
Feb 16, 2011

>>=

Good Sphere posted:

Dear Journal: today, i was a horrible horrible programmer. i did not get anything accomplished. just total frustration trying to get UIViews to animate correctly

i would argue that this is at worst neutral programming. no bad code was put into the world.

TheFluff
Dec 13, 2006

FRIENDS, LISTEN TO ME
I AM A SEAGULL
OF WEALTH AND TASTE
i'm so sick of orm's and their lovely rear end query builders, i want to write my own sqlalchemy in something typesafe

Shaggar
Apr 26, 2006
don't use a orm!

TheFluff
Dec 13, 2006

FRIENDS, LISTEN TO ME
I AM A SEAGULL
OF WEALTH AND TASTE
sql loving owns but why does everyone hate it and want you to write in their own imbecile knockoff variant in which you can't actually do anything useful? i don't want to write raw sql either, i just want a metaprogramming language for sql

DELETE CASCADE
Oct 25, 2017

i haven't washed my penis since i jerked it to a phtotograph of george w. bush in 2003
if you're working in java check out jooq, it has what you want (and also other orm-ish stuff you don't have to use)

Doom Mathematic
Sep 2, 2008

Finster Dexter posted:

Honestly, this probably accounts for a lot of its popularity.

It boggles my mind how people continue to underestimate the critical importance of documentation, examples and good error messages. Especially for early adoption.

TheFluff
Dec 13, 2006

FRIENDS, LISTEN TO ME
I AM A SEAGULL
OF WEALTH AND TASTE
i have never java'd in my life but i've been thinking it's probably time to learn a new language

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS

Ploft-shell crab posted:

yes, that’s exactly the point. instead of ops managing several different kinds of pets, it manages just one kind of pet.

and no, you absolutely don’t need 10000 instance or application clusters to make k8s a worthwhile endeavor. you’d much rather manage a single cluster of k8s rather than every component that each of your dev teams need. K8s doco and code is rough, I agree, but it’s way better than anything you’re getting from your application teams. being able to scale to 10000 nodes “easily” is just a very nice plus.

so in the interest of consistent environments (which we already have because chef/ansible/salt are a thing) ops is now on the hook for making sure that a set of beautiful pet k8s masters and nodes can never ever go down.

tell me again how that's better than golden images with sensible autoscaling and instance termination on app failure?

Shaggar posted:

y do you even have servers. just deploy to azure paas.

lmao, hush shaggar, the adults are talking

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS

Finster Dexter posted:

I blame microservices (and I'm not sure if that's good or bad, tbh)

i blame everyone wishing really hard that they were google or netflix, cargo culting like crazy, and forcing sensible people into chasing buzzwords to enable idiots to keep going fast and breaking things

FlapYoJacks
Feb 12, 2009
I would much MUCH instead use Docker and K8s and manage microservices than have a vast monolithic application that has a million lines of code that nobody can handle adequately.

Yeah, there are growing pains, but in the end, quality goes up, and that fart app doesn't eat an extra gig of memory a day because somebody tried to add a wet-fart function and hosed up a function ten inheritance levels deep.


Blinkz0rz posted:

I blame everyone wishing hard that they were Google or Netflix, cargo culting like crazy, and forcing sensible people into chasing buzzwords to enable idiots to keep going fast and breaking things

I agree with this sentiment. Starting with a monolithic application (and keeping the idea of turning it into microservices later on in the back of your head), and then breaking it up when the time is right is the way to go IMHO. If you start with microservices, you are in for a world of hurt.


Edit*

Docker is cool and good for getting developers up and running quickly. Give them a Dockerfile and a docker-compose.yml and in a few minutes, they should have a development environment ready to go.

FlapYoJacks fucked around with this message at 00:18 on Dec 14, 2018

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS
there's a middle ground where you can build microservices and not use docker or kubernetes and still get consistent, reproducible builds of both the app and the environment

it does take a level of discipline that very few companies have though

FlapYoJacks
Feb 12, 2009

Blinkz0rz posted:

there's a middle ground where you can build microservices and not use docker or kubernetes and still get consistent, reproducible builds of both the app and the environment

it does take a level of discipline that very few companies have though

Docker is nice though because updating is easy as gently caress.

Step 1) Build
Step 2) Push image to a docker repo
Step 3) Pull new image

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS

ratbert90 posted:

Docker is nice though because updating is easy as gently caress.

Step 1) Build
Step 2) Push image to a docker repo
Step 3) Pull new image

golden image is nice because

step 1) build
step 2) push jar/war/whatever the gently caress to nexus/artifactory
step 3) have packer bake a new ami

it's the exact same poo poo

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed
react native’s killer feature is hot reload, which lets you modify your app while it’s running and have it update instantly

this is very important when using a framework that basically only supports programming by trial and error and loving around until things appear to work

Ciaphas
Nov 20, 2005

> BEWARE, COWARD :ovr:


i'll goog around of course, but while i'm at it, would anyone like to explain "microservices" to someone who's effective been out of the loop for ten years?

like, where's the micro-, what's the line, what does a single microservice, er, serve, what's so special about em?

Doom Mathematic
Sep 2, 2008

Ciaphas posted:

i'll goog around of course, but while i'm at it, would anyone like to explain "microservices" to someone who's effective been out of the loop for ten years?

like, where's the micro-, what's the line, what does a single microservice, er, serve, what's so special about em?

I believe canonical source on that whole thing is Martin Fowler.

gonadic io
Feb 16, 2011

>>=
the main goal is to not have seperate apis in the same app

i.e. in a non-micro service you'd have a ButtService and as IdiotService for your two different customer needs. but nothing actually links butts and idiots, there's no actual reason they need to be in the same codebase and deployment etc etc. in fact having them together increases the risk that they interfere with each other's code and db and poo poo. so you instead have ButtApp which handles only butts and IdiotApp which handles only idiots.

you have monoliths (literally all the company's poo poo is in a single server process) at one and and full micro "literally only has one endpoint" services on, much like my posting, a spectrum.

people are rarely advocating for going fully one or the other but i hope this at least gives you an idea for what people mean when talking about microservices. basically just splitting up code bases.

Ciaphas
Nov 20, 2005

> BEWARE, COWARD :ovr:


as usual the answer is far simpler than all the gravitas that these buzzwords and marketing interest gave it made it seem

thanks for the summary, i'll read the fowler link tonight (but i get the feeling i already know some 75% of the story now and the rest is just a fancy label)

gonadic io
Feb 16, 2011

>>=
you can then do things like: even though butts and farts ARE related, you have two different apps that either 1) share a db (wouldn't recommend this) or more likely the butts app exists on its own and then the farts app calls the butt app. so instead of again two classes in the same app you are enforcing that they only touch in a small and well defined way.

the main downside with this stuff is that the more separation you enforce the more fiddly it becomes when you do want two different things to place nicely together. plus deploying 100 things vs 1 thing.

i mean if you go full micro (I've seen some people refer to this as nano) you can then have add butts be a different app to delete butts or whatever but I've not seen anybody actually do this and it kind of just feels like a strawman slippery-slope type argument.

docker (and similar stuff like vms) helps microservices because you can pretend to give each app its own filesystem so they can't interact there either. docker is much less overhead as discussed earlier since you're still sharing the host's kernel stuff you're more pretending you're isolated than actually being actually isolated

kubernetes (and other orchestrators) helps microservices because it makes deploying, updating them, scaling, etc less fiddly - none of this "ssh to the server, kill the pid (or running docker container), start the new version" poo poo

Shaggar
Apr 26, 2006

Blinkz0rz posted:

so in the interest of consistent environments (which we already have because chef/ansible/salt are a thing) ops is now on the hook for making sure that a set of beautiful pet k8s masters and nodes can never ever go down.

tell me again how that's better than golden images with sensible autoscaling and instance termination on app failure?


lmao, hush shaggar, the adults are talking

lol, take off the big boy pants and put away all your toy languages and then maybe you can come out and play.

Powerful Two-Hander
Mar 10, 2004

Mods please change my name to "Tooter Skeleton" TIA.


gonadic io posted:

the main goal is to not have seperate apis in the same app

i.e. in a non-micro service you'd have a ButtService and as IdiotService for your two different customer needs. but nothing actually links butts and idiots, there's no actual reason they need to be in the same codebase and deployment etc etc. in fact having them together increases the risk that they interfere with each other's code and db and poo poo. so you instead have ButtApp which handles only butts and IdiotApp which handles only idiots.

you have monoliths (literally all the company's poo poo is in a single server process) at one and and full micro "literally only has one endpoint" services on, much like my posting, a spectrum.

people are rarely advocating for going fully one or the other but i hope this at least gives you an idea for what people mean when talking about microservices. basically just splitting up code bases.

optional galaxy brain version as followed by our developers in the past: have separate components and services for specific functions but then compile a dll of a load of stuff you think you might need even though it's 90% irrelevant and then reference that in every single instance as a direct dependency. also just use whatever version you have at the time, don't bother recompiling it ever

gonadic io
Feb 16, 2011

>>=

Powerful Two-Hander posted:

optional galaxy brain version as followed by our developers in the past: have separate components and services for specific functions but then compile a dll of a load of stuff you think you might need even though it's 90% irrelevant and then reference that in every single instance as a direct dependency. also just use whatever version you have at the time, don't bother recompiling it ever

truly i had not considered a system with all the convenience of microservices and all the code separation of a monolith

floatman
Mar 17, 2009

ratbert90 posted:

I would much MUCH instead use Docker and K8s and manage microservices than have a vast monolithic application that has a million lines of code that nobody can handle adequately.


What if my vast monolithic application that has a million lines of code is managed in a docker compose with all kinds of poo poo containers such as an active directory container for the PHP application,
That is so loving complicated new developers have to set up various env values before they run docker-compose build if not it all fucks up,
But is ultimately NOT deployed on AWS with docker but instead some other poo poo ops decided to use so basically Dev Environment is not the same as staging Environment is not the same as production environment?

Nomnom Cookie
Aug 30, 2009



Blinkz0rz posted:

so in the interest of consistent environments (which we already have because chef/ansible/salt are a thing) ops is now on the hook for making sure that a set of beautiful pet k8s masters and nodes can never ever go down.

tell me again how that's better than golden images with sensible autoscaling and instance termination on app failure?


lmao, hush shaggar, the adults are talking

please explain how your k8s workers are anything more than disposable resource piles that you grind up on a whim

actually don't, i don't care, i just wanted to say disposable resource pile

my homie dhall
Dec 9, 2010

honey, oh please, it's just a machine

Blinkz0rz posted:

so in the interest of consistent environments (which we already have because chef/ansible/salt are a thing) ops is now on the hook for making sure that a set of beautiful pet k8s masters and nodes can never ever go down.

tell me again how that's better than golden images with sensible autoscaling and instance termination on app failure?

if you live in a world where you have stateless components and can easily scale up in an asg, then by all means go that route. I would argue that baking containers is preferable to baking images, but it doesn’t really matter that much

there are plenty of operational environments that are not cloud or are stateful where you can’t just let aws magic take care of everything. if you have to have pets, there’s no reason why those pets shouldn’t be k8s

Nomnom Cookie
Aug 30, 2009



Ciaphas posted:

i'll goog around of course, but while i'm at it, would anyone like to explain "microservices" to someone who's effective been out of the loop for ten years?

like, where's the micro-, what's the line, what does a single microservice, er, serve, what's so special about em?

well people were starting to figure out how to make a webshit backend. and they realized that there were problems sometimes, or that if they use the right tone of voice they can make things sound like problems at least

microservices solves this problem by getting everyone to do webshit backends in a different way that no one is good at so once again there is lots of low-hanging fruit to pick and blog posts to write

CRIP EATIN BREAD
Jun 24, 2002

Hey stop worrying bout my acting bitch, and worry about your WACK ass music. In the mean time... Eat a hot bowl of Dicks! Ice T



Soiled Meat

DELETE CASCADE posted:

if you're working in java check out jooq, it has what you want (and also other orm-ish stuff you don't have to use)

jooq owns and everything we've deployed in the last 8 years has jooq in it.

code generation is awesome.

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS

Ploft-shell crab posted:

if you live in a world where you have stateless components and can easily scale up in an asg, then by all means go that route. I would argue that baking containers is preferable to baking images, but it doesn’t really matter that much

there are plenty of operational environments that are not cloud or are stateful where you can’t just let aws magic take care of everything. if you have to have pets, there’s no reason why those pets shouldn’t be k8s

fair

Captain Foo
May 11, 2004

we vibin'
we slidin'
we breathin'
we dyin'

your pets should be cats imo

AggressivelyStupid
Jan 9, 2012

cats are good as hell

Nomnom Cookie
Aug 30, 2009



k8s falls down real bad with storage. its tolerable if you just need some EBS but i'm not going to try anything more complicated i.e. DBs in k8s. in practice it works fine anyway to maintain a base AMI and let DB instances take 10 minutes to enter service after launch, so just use terraform/CF and chef/puppet/ansible for DBs. dunno how ansible is supposed to work with ASG though

Achmed Jones
Oct 16, 2004



Captain Foo posted:

your pets should be cats imo

what an awful thing to say

Carthag Tuek
Oct 15, 2005

Tider skal komme,
tider skal henrulle,
slægt skal følge slægters gang



AggressivelyStupid posted:

cats are good as hell

prisoner of waffles
May 8, 2007

Ah! well a-day! what evil looks
Had I from old and young!
Instead of the cross, the fishmech
About my neck was hung.
catching up, here

PleasureKevin posted:

hey everyone, faked my death and moving to japan

in glorious Japan, convenience store food is good and Pleasure Kevin is, I hope, well

Jabor posted:

Implying someone works at the turd-shunting yard is a zero-cost insult, so it's not surprising that it just got optimized away in hackbunny's mental model

lol

Shaggar posted:

lol, take off the big boy pants and put away all your toy languages and then maybe you can come out and play

spotted: the rare horny shaggar

Kevin Mitnick P.E. posted:

microservices solves this problem by getting everyone to do webshit backends in a different way that no one is good at so once again there is lots of low-hanging fruit to pick and blog posts to write

a classic from kevin mitnick, posting engineer

Carthag Tuek
Oct 15, 2005

Tider skal komme,
tider skal henrulle,
slægt skal følge slægters gang



whew, think im finally starting to get the hang of tex scoping & expansion, a little

code:
	\ifcsdef{gtrDBbirthyear}{}{\ifcsdef{gtrDBbaptismyear}{}{%
		\edef\birthyear{}%
		\foreach \x in {census,enrolment} {%
			\gpr@if@defined{\x}{age}{%
				% not a fan of having to use stringx but im still not so clear on string manip
				\StrLeft{\gpr@subdb@value{\x}{date}}{4}[\eventyear]%
				\global\edef\birthyear{\expanded{\unexpanded{\the\numexpr} \eventyear - \gpr@subdb@value{\x}{age}}}%
			}{}%
		}%
		\ifdefempty{\birthyear}{}{%
			\gprEvents{birth- = {(caAD)\birthyear}}%
			\global\edef\birthyear{}%
		}%
	}}%

Carthag Tuek fucked around with this message at 06:51 on Dec 14, 2018

Finster Dexter
Oct 20, 2014

Beyond is Finster's mad vision of Earth transformed.

Kevin Mitnick P.E. posted:

k8s falls down real bad with storage. its tolerable if you just need some EBS but i'm not going to try anything more complicated i.e. DBs in k8s. in practice it works fine anyway to maintain a base AMI and let DB instances take 10 minutes to enter service after launch, so just use terraform/CF and chef/puppet/ansible for DBs. dunno how ansible is supposed to work with ASG though

The CTO here (who worships k8s and kelsey hightower) spent a week fiddling with getting a basic postgres db set up in k8s. After finally being blocked unless I had db in aws, I just spun up an RDS instance for each cluster because jfc you aren't kidding about storage being a garbage fire on k8s.

That's my k8s storage story I guess

Adbot
ADBOT LOVES YOU

prisoner of waffles
May 8, 2007

Ah! well a-day! what evil looks
Had I from old and young!
Instead of the cross, the fishmech
About my neck was hung.
in other news, I'm falling in love with MATLAB. The language is awful and really encourages making write-once monstrosities even though it provides better ways for organizing code, some of which pay off and make you look smart to the people who only ever write scripts. I like using their extremely robust standard library to reimplement a single function from a toolbox that costs $1000. I like chewing on physicsy data and doing stats or signal processing poo poo and I get paid for that now.

I am the idiot hellfucker.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply