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
Jose Valasquez
Apr 8, 2005

Virigoth posted:

That is why you make your culture and pipeline robust enough that your devs ARE the team on-call for their individual services and if they want to deploy over Christmas they can but they are responding to the pages. Our UI team decided to not deploy over the holidays but I saw a couple deploys going to Prod on Friday in our system. Code freeze is a relic from waterfall that needs to die.

As the dev oncall over Christmas I'm really glad we have a company wide holiday freeze because I'm not the only dev on the team and I don't want to spend Christmas debugging someone else's gently caress up and also because our service has dependencies on other teams and I don't want to get paged over their gently caress ups either

Adbot
ADBOT LOVES YOU

Carbon dioxide
Oct 9, 2012

It still weirds me out to look at the Scala Center meeting minutes. Scala Center is the organisation behind the Scala programming language and they make Scala Center Proposals (SCPs), and they are numbered like SCP-001, SCP-019 and so on.

https://scala.epfl.ch/minutes/2018/12/05/december-5-2018.html

Keeps reminding me of the other SCPs.

ChickenWing
Jul 22, 2010

:v:

scala's kinda like an SCP so that makes sense

Vulture Culture
Jul 14, 2003

I was never enjoying it. I only eat it for the nutrients.

Gildiss posted:

I'm not sure there is a process that can fix most of the tech department being on vacation for the better part of a month this time of year.
I can come up with a very simple and highly unpopular one without thinking very hard about it

Boiled Water posted:

This doesn't help if the person in charge of managing what you spend time on is a piece of poo poo.

Does lead to the second point.
There are a lot of people who, for one reason or another, need the specific job they're in so badly that they can't jeopardize it by rocking the boat. I feel for you all, and I understand. I think that if you are not one of these people, and you have enough of a safety net to land on your feet somewhere else, you owe it to your coworkers to take that privilege and flip some tables to make stuff better. If you're an engineer who's good at what you do, there's a good chance you're more important to the company than your boss is. Start fights over whatever you've got to do to move the company ahead. Nothing gets better without lighting a fire under a bad boss's rear end to get their poo poo together or get out of the organization.

Vulture Culture fucked around with this message at 16:09 on Dec 24, 2018

Vanadium
Jan 8, 2005

Vulture Culture posted:

I can come up with a very simple and highly unpopular one without thinking very hard about it
Do you want your tech department out of the office for the rest of the year, or do you want your tech department out of your office indefinitely next year?

Vulture Culture
Jul 14, 2003

I was never enjoying it. I only eat it for the nutrients.

Vanadium posted:

Do you want your tech department out of the office for the rest of the year, or do you want your tech department out of your office indefinitely next year?
It depends on whether the tech department being out of the office for a month is a real problem or an imaginary problem.

Blinkz0rz
May 27, 2001

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

Vulture Culture posted:

If you're an engineer who's good at what you do, there's a good chance you're more important to the company than your boss is. Start fights over whatever you've got to do to move the company ahead. Nothing gets better without lighting a fire under a bad boss's rear end to get their poo poo together or get out of the organization.

I wouldn't go so far as to say you should start fights but 2 way communication is important for organizations. Managers aren't mind readers and they only know as much as you tell them. If something is truly bad and you have the leeway to speak up and try to do something about it, talk to the PM/PO/whoever and help them to understand what is bad and the compromises that will have to be made to make it better.

Vulture Culture
Jul 14, 2003

I was never enjoying it. I only eat it for the nutrients.

Blinkz0rz posted:

I wouldn't go so far as to say you should start fights but 2 way communication is important for organizations. Managers aren't mind readers and they only know as much as you tell them. If something is truly bad and you have the leeway to speak up and try to do something about it, talk to the PM/PO/whoever and help them to understand what is bad and the compromises that will have to be made to make it better.
If you have a boss that actually listens and makes an earnest effort to act on your concerns, whether it's getting balls rolling or unambiguously communicating why you can never have what you're asking for, they're probably a good boss. They might still be an ineffective good boss, but they're a good boss, they're acting in good faith, and they deserve your good faith, and the dignity of being treated well, in return.

There are bad bosses, though, ones who want authority for its own sake and do nothing for the good of either their company or their directs. Those are the people who you, if you care about the organization, should shoulder-check until one of you is out of the organization. In most organizations, PMs/POs are powerless and often live outside any org structure that matters to you existentially, often belonging to PMOs or marketing departments. Play the Game of Thrones. Make friends with your boss's peers, ingratiate yourself, get owed favors. Do you know how hard it is to fire someone when there are half a dozen people with your boss's boss's ear saying "definitely don't fire this person because I need them"? It's a bad look.

Keetron
Sep 26, 2008

Check out my enormous testicles in my TFLC log!

I just want to write some loving code, go take your poo poo politics elsewhere.

Yes, I have had many jobs and employers, why do you ask?

Bongo Bill
Jan 17, 2012

Making software is a collaborative activity.

champagne posting
Apr 5, 2006

YOU ARE A BRAIN
IN A BUNKER

Bongo Bill posted:

Making software is a collaborative activity.

Collaboration shouldn’t have to involve mandatory office politics

Captain Cappy
Aug 7, 2008

Office politics at my current workplace involves the two teams bickering over how to accomplish something, a bunch of do-nothing upper-management types interjecting themselves into the bickering process, then no decision ever being made because "we don't want to pick favorites, can't you guys just figure it out?" At this point I just do whatever will lead to the least amount of code being rewritten when they inevitably come up with a terrible compromise decision no one wants a few weeks from the deadline.

Vulture Culture
Jul 14, 2003

I was never enjoying it. I only eat it for the nutrients.
Politics is when people are doing things that are in their own best interest at the expense of the company's interests. Sometimes that's a manager taking credit for their team's work, or a director usurping a key project from a peer, or someone micromanaging because it makes them feel in control or feel superior. Sometimes it's someone keeping their mouth shut because it's so much safer or more comfortable than speaking up and doing the right thing.

People should be striving to reduce politics. But there's a point where shutting up and doing what you're told so you can produce value for an rear end in a top hat boss is the same thing as buying beer for an alcoholic.

Vulture Culture fucked around with this message at 03:35 on Dec 26, 2018

ultrafilter
Aug 23, 2007

It's okay if you have any questions.


Politics is what happens whenever there are multiple people involved in something and their interests don't exactly align. What's in the company's interest is a bit of red herring, because people always act to benefit themselves (the famous principal-agent problem).

LLSix
Jan 20, 2010

The real power behind countless overlords

ultrafilter posted:

Politics is what happens whenever there are multiple people involved in something and their interests don't exactly align. What's in the company's interest is a bit of red herring, because people always act to benefit themselves (the famous principal-agent problem).

People don't always act in their own interest. If people always act in their own interest, where do fat goons come from? I guess you could say that people will always act on their desires, but even then I can think of a couple of examples from this forum where people seem to be actively trying to ruin an activity that they presumably enjoy (because they're participating in it).

To tie this back to development, when I see a change that would make for a better user experience I'll argue for it even if it means more work for me. I think all good developers would.

Good companies/bosses have systems that encourage employee feedback. Great ones actually act on that feedback to reduce pain points and improve productivity. Bad ones have no systems. Terrible ones have systems that solicit feedback but then act in the opposite direction and/or move to punish people who give negative feedback.

It took working at a bad company to give me the perspective to recognize how good some of the other places I've worked were.

smackfu
Jun 7, 2004

I guess Instagram doesn’t have a holiday freeze because they accidentally deployed a new UI to all their users yesterday, by screwing up the feature flag.

Keetron
Sep 26, 2008

Check out my enormous testicles in my TFLC log!

smackfu posted:

I guess Instagram doesn’t have a holiday freeze because they accidentally deployed a new UI to all their users yesterday, by screwing up the feature flag.

Indians don't celebrate Christmas. Why India? Because it caused a fuckup.

Bruegels Fuckbooks
Sep 14, 2004

Now, listen - I know the two of you are very different from each other in a lot of ways, but you have to understand that as far as Grandpa's concerned, you're both pieces of shit! Yeah. I can prove it mathematically.

Keetron posted:

Indians don't celebrate Christmas. Why India? Because it caused a fuckup.

if I had a nickel for every time offshore was like "yeah, we're taking friday off" because of some random indian holiday, I'd get an additional buck a year. they also take our holidays off as well at my company and i think stuff like this is probably why.

Murrah
Mar 22, 2015

I thought this was an incredibly refreshing blog to read, Dan Abramov, engineer for React talking about gaps in his knowledge though lots of people presumes he knows this kind of stuff: https://overreacted.io/things-i-dont-know-as-of-2018

they still managed to find some people who want to give him flak for it on hacker news ofc

Carbon dioxide
Oct 9, 2012

Murrah posted:

I thought this was an incredibly refreshing blog to read, Dan Abramov, engineer for React talking about gaps in his knowledge though lots of people presumes he knows this kind of stuff: https://overreacted.io/things-i-dont-know-as-of-2018

they still managed to find some people who want to give him flak for it on hacker news ofc

Heh I reposted this elsewhere and someone immediately started saying about how this explains why React is bad.

Pile Of Garbage
May 28, 2007



Murrah posted:

I thought this was an incredibly refreshing blog to read, Dan Abramov, engineer for React talking about gaps in his knowledge though lots of people presumes he knows this kind of stuff: https://overreacted.io/things-i-dont-know-as-of-2018

they still managed to find some people who want to give him flak for it on hacker news ofc

quote:

Unix commands and Bash. I can ls and cd but I look up everything else. I get the concept of piping but I’ve only used it in simple cases. I don’t know how to use xargs to create complex chains, or how to compose and redirect different output streams. I also never properly learned Bash so I can only write very simple (and often buggy) shell scripts.

:same:

Also gently caress HN.

hailthefish
Oct 24, 2010

Pile Of Garbage posted:


Also gently caress HN.

:agreed:

Volmarias
Dec 31, 2002

EMAIL... THE INTERNET... SEARCH ENGINES...

Murrah posted:

I thought this was an incredibly refreshing blog to read, Dan Abramov, engineer for React talking about gaps in his knowledge though lots of people presumes he knows this kind of stuff: https://overreacted.io/things-i-dont-know-as-of-2018

they still managed to find some people who want to give him flak for it on hacker news ofc

I'm a little shocked that the guy writing web frameworks doesn't really know about networking stuff, but I guess if you don't have to work below the level of browser and JavaScript API contracts it's not that crazy.

Pile Of Garbage
May 28, 2007



Volmarias posted:

I'm a little shocked that the guy writing web frameworks doesn't really know about networking stuff, but I guess if you don't have to work below the level of browser and JavaScript API contracts it's not that crazy.

I'm currently doing infra-as-code stuff, cloud orchestration and the like, and the lack of network understanding beyond IP subnetting and simple IP routing amongst my colleagues is staggering. I guess they don't really need to understand it as the platform abstracts the majority of it away but poo poo if you're creating a security group in AWS you should at least understand the difference between TCP and UDP...

Pile Of Garbage fucked around with this message at 15:01 on Dec 30, 2018

necrobobsledder
Mar 21, 2005
Lay down your soul to the gods rock 'n roll
Nap Ghost

Pile Of Garbage posted:

I'm currently doing infra-as-code stuff, cloud orchestration and the like, and the lack of network understanding beyond IP subnetting and simple IP routing amongst my colleagues is staggering. I guess they don't really need to understand it as the platform abstracts the majority of it away but poo poo if you're creating a security group in AWS you should at least understand the difference between TCP and UDP...
It gets worse when those that do know networking constructs from physical network design don’t learn how their cloud provider works with networking and designs stuff that’s way over complicated or paints you into a hole. At my last gig a coworker went with the approach of creating as small of subnets as necessary for each microservice and wound up with over 450 subnets in a VPC with half the IP space used by broadcast, gateway, and DNS IPs and actual services utilizing maybe 14%. You can mess around with security groups. Recreating entire VPCs and re-IPing them along with a production migration involving some downtime is now a constant theme of my job and it’s beyond frustrating to do networking 101 at my jobs again and again.

Murrah
Mar 22, 2015

I just think about having the specialized experience significantly creating something like React would bring. its like COBOL level of job security, there will be payers wanting to maintain React apps for a really, really long time. You could be incredibly discriminating with what work you do to the point that you may never need to learn a bunch of that stuff on that list. To me that is like the ideal position to be in. Makes me a little jealous so I can see why there would be some haters.

E: but I also understand frustration with coworkers tasked with networking work they aren't skilled at, etc.that affects the rest of the team.

Murrah fucked around with this message at 20:22 on Dec 30, 2018

Che Delilas
Nov 23, 2009
FREE TIBET WEED
Feels like with microservices getting really popular, Networking is starting to compete with SQL as the biggest "developers-know-just-enough-to-do-damage" technology area.

Keetron
Sep 26, 2008

Check out my enormous testicles in my TFLC log!

Che Delilas posted:

Feels like with microservices getting really popular, Networking is starting to compete with SQL as the biggest "developers-know-just-enough-to-do-damage" technology area.

Well, we used to talk to our connecting systems by composing calls but now we moved to automated clients based on OpenApi2 specs, so networking is a thing of the past. I really don't worry about it anymore, it is great. Another example is a bunch of AWS services we use, it comes with a library so I have no worries about the calls whatsoever and can focus on not loving up the bounded context of whatever it is I am building.

What we see and have seen a bunch already are tightly coupled services that are essentially forming a distributed monolith. Getting microservices right is stupid hard.

necrobobsledder
Mar 21, 2005
Lay down your soul to the gods rock 'n roll
Nap Ghost
A common pattern that causes people to create distributed monoliths is they try to think of microservices like they're OOP classes and objects. You may have services for customers, accounts, and other business objects - this falls apart really fast when everyone needs to access the customer service repeatedly. If everyone needs something to be up forever to do anything, then you need to think hard about whether it should be decoupled.

Che Delilas posted:

Feels like with microservices getting really popular, Networking is starting to compete with SQL as the biggest "developers-know-just-enough-to-do-damage" technology area.
I have spent half my career fixing the mistakes of developers that thought they did "good enough" to grow a software system and am convinced I can make a killing just going to every SaaS company out there and sitting people down for an hour or two laying out a multi-account / VPC layout that isn't complete idiocy that will result in you needing to tear it all down to grow your software footprint in less than two years. I am convinced that most application developers really shouldn't be getting in the business of doing their own datacenter sysadmin tasks any more than you should be writing your own crypto algorithms. While SDN has made bad IP subnets and NACLs lower risk than 15 years ago, usually if your engineers are screwing this basic level of stuff up, you're probably doing so many other things wrong / inappropriately that your software deployment process is no better than things 20 years ago.

Vulture Culture
Jul 14, 2003

I was never enjoying it. I only eat it for the nutrients.

necrobobsledder posted:

It gets worse when those that do know networking constructs from physical network design don’t learn how their cloud provider works with networking and designs stuff that’s way over complicated or paints you into a hole. At my last gig a coworker went with the approach of creating as small of subnets as necessary for each microservice and wound up with over 450 subnets in a VPC with half the IP space used by broadcast, gateway, and DNS IPs and actual services utilizing maybe 14%. You can mess around with security groups. Recreating entire VPCs and re-IPing them along with a production migration involving some downtime is now a constant theme of my job and it’s beyond frustrating to do networking 101 at my jobs again and again.
I'm bad at both. Is there a compelling reason to carve out subnets besides to use them to make egress routing decisions?

necrobobsledder posted:

A common pattern that causes people to create distributed monoliths is they try to think of microservices like they're OOP classes and objects. You may have services for customers, accounts, and other business objects - this falls apart really fast when everyone needs to access the customer service repeatedly. If everyone needs something to be up forever to do anything, then you need to think hard about whether it should be decoupled.
The main reason to deploy multiple services at all is that different areas of the code sometimes have different operational requirements. They may have different SLOs, different teams responsible for them, fall along API versioning boundaries, use different underlying technologies, etc. I don't think treating business objects as microservices is wrong necessarily, but in a microservice context, people need to pay sincere attention to concerns like batching and pipelining transactions which may be costly to develop in a networked API but provided for free in, say, a database driver.

This gets down to the root of microservices—they're expensive to run and deceptively expensive to develop, so you'd better be solving an even more expensive business problem by introducing them.

I don't think microservices even touch on the issue of coupling. You can write loosely-coupled monoliths just like you can write tightly-coupled microservices. In the end you've got call graphs, data formats, and transports. In either case you need to treat API stability like a serious business concern, and design for it.

Vulture Culture fucked around with this message at 05:33 on Dec 31, 2018

necrobobsledder
Mar 21, 2005
Lay down your soul to the gods rock 'n roll
Nap Ghost

Vulture Culture posted:

I'm bad at both. Is there a compelling reason to carve out subnets besides to use them to make egress routing decisions?
Subnets serve as a method of indicating route tables in cloud providers because you can only tie one routing table to a subnet. Also, it's kind of nice to be able to filter through VPC flow logs by IP subnets when troubleshooting communications with a third party VPC. With complicated acquisitions and many awkward setups with tunneling and third parties involved with most F500s, most people working in a cloud provider natively don't need to care about subnets beyond making sure they don't overlap where their future neighbors may be and that they're sized large enough to accommodate growth and not too small where you need to keep tacking more on. Individual services should be separated by security groups primarily while entire business (and sometimes regulatory) boundaries are better off separated via VPCs or subnets depending upon level of autonomy / business coupling. At the very least, you can have way, way more security groups and rules than you can have subnets and NACLs before negative consequences happen which can dictate whether you should use some more subnets and IP groups or just stick with private/public and call it good.

Vulture Culture posted:

I don't think microservices even touch on the issue of coupling. You can write loosely-coupled monoliths just like you can write tightly-coupled microservices. In the end you've got call graphs, data formats, and transports. In either case you need to treat API stability like a serious business concern, and design for it.
Maybe I have a strange idea of a monolith but I've always thought that a monolith is by definition a tightly coupled set of code that must be deployed together to function, which is why the term "distributed monolith" makes sense to me (before Martin Fowler even said it) while "loosely coupled" monolith sounds like an oxymoron. Agreed that it's just a call graph and data formats and things mostly suck because we still commonly write software like every function call has a presumed SLAs of 100% uptime, 0 latency, and ABIs get taken care of by a language committee instead of being duked out between REST, XML-RPC, Thrift, gRPC, CORBA, or whatever the heck else you'll bikeshed.

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS
This feels like a No True Scottsman kind of thing. If loosely coupled, narrowly scoped, domain driven services that depend on other services aren't microservices, then what are?

Bongo Bill
Jan 17, 2012

The structures that make it possible for microservices to ever be economical can also be applied to monoliths to make their maintenance more tractable for longer.

return0
Apr 11, 2007
No they can’t; not beyond a certain scale.

Vulture Culture
Jul 14, 2003

I was never enjoying it. I only eat it for the nutrients.
Sure they can, provided you accept the presence of a middle ground between one singular giant service and hundreds/thousands of completely orthogonal services.

Microservice architectures are a forcing function that puts pressure on developers to modularize code and clearly define the boundaries, technically and organizationally, between different software functions. Nothing about them inherently improves the scalability, architecturally or operationally, of a software project of any size. All the same challenges exist, though microservices help engineering teams very effectively pretend that they don't.

return0
Apr 11, 2007
I disagree. There are clear operational wins to be had at scale by breaking a monolith apart in any circumstance where different logical parts of the monolith have different functional characteristics. For example, a user identity service component which is called very frequently contrasted with some rarely called leaf system; a highly compute intensive component contrasted with an I/O intensive component; a subsystem with a data model best suited to a relational DB contrasted with another using a document store, etc. Isolation has benefits here.

Vulture Culture
Jul 14, 2003

I was never enjoying it. I only eat it for the nutrients.

return0 posted:

I disagree. There are clear operational wins to be had at scale by breaking a monolith apart in any circumstance where different logical parts of the monolith have different functional characteristics. For example, a user identity service component which is called very frequently contrasted with some rarely called leaf system; a highly compute intensive component contrasted with an I/O intensive component; a subsystem with a data model best suited to a relational DB contrasted with another using a document store, etc. Isolation has benefits here.
I'm not arguing that there are no benefits to using a microservice architecture, especially operationally—running production services is hard and there's lots of compromises required to deliver a great user experience on the backend. I'm arguing against your assertion about non-microservice development models being inherently more of a maintenance burden when a) it hasn't been established whether or how these actually improve modularization in practice and b) nobody even understands how gracefully a 150-microservice business service will transition into a legacy operating mode 15 years down the line.

bob dobbs is dead
Oct 8, 2017

I love peeps
Nap Ghost

return0 posted:

I disagree. There are clear operational wins to be had at scale by breaking a monolith apart in any circumstance where different logical parts of the monolith have different functional characteristics. For example, a user identity service component which is called very frequently contrasted with some rarely called leaf system; a highly compute intensive component contrasted with an I/O intensive component; a subsystem with a data model best suited to a relational DB contrasted with another using a document store, etc. Isolation has benefits here.

clear operational losses to be had at scale by breaking a monolith apart, where you have to put in backpressure, where you have to log the poo poo outta everything to get worse logging than what you have with the monolith and then you gotta monitor the poo poo outta everything to get worse monitoring than what you had then you still have to go traipsing through the zoo of services to find wtf it is that's the root cause of breaking, etc etc

return0
Apr 11, 2007

Vulture Culture posted:

I'm not arguing that there are no benefits to using a microservice architecture, especially operationally—running production services is hard and there's lots of compromises required to deliver a great user experience on the backend. I'm arguing against your assertion about non-microservice development models being inherently more of a maintenance burden when a) it hasn't been established whether or how these actually improve modularization in practice and b) nobody even understands how gracefully a 150-microservice business service will transition into a legacy operating mode 15 years down the line.

My initial assertion was that the following is false:

Bongo Bill posted:

The structures that make it possible for microservices to ever be economical can also be applied to monoliths to make their maintenance more tractable for longer.

We've established one such 'structure' that can be applied to a microservice architecture that cannot meaningfully be applied to a monolithic architecture; significant divergence in operational requirements by different parts of the system necessitating different hardware or persistence layer implementations. These divergences in operational requirement manifest at large scale (because at small scale anything reasonable works).


bob dobbs is dead posted:

clear operational losses to be had at scale by breaking a monolith apart, where you have to put in backpressure, where you have to log the poo poo outta everything to get worse logging than what you have with the monolith and then you gotta monitor the poo poo outta everything to get worse monitoring than what you had then you still have to go traipsing through the zoo of services to find wtf it is that's the root cause of breaking, etc etc

I mean, don't do it for no reason, but don't pretend there is never a reason.

Adbot
ADBOT LOVES YOU

champagne posting
Apr 5, 2006

YOU ARE A BRAIN
IN A BUNKER

Vulture Culture posted:

I'm not arguing that there are no benefits to using a microservice architecture, especially operationally—running production services is hard and there's lots of compromises required to deliver a great user experience on the backend. I'm arguing against your assertion about non-microservice development models being inherently more of a maintenance burden when a) it hasn't been established whether or how these actually improve modularization in practice and b) nobody even understands how gracefully a 150-microservice business service will transition into a legacy operating mode 15 years down the line.

if you're using google cloud maybe you won't have to support legacy anything, because google drops projects like human beings drop loads

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