Login with Patreon
NewsApr 18, 2019 12:57 pm CT

The Queue: Blizzard’s Shareholders, Twitter Community, and Blizzard Watch Tech

In today’s Queue I’m going to deep dive into three questions that I think are interesting and I have some unique perspectives on.

Mike Asked:
What’s the tech behind Blizzard Watch? I know you have been able to withstand BlizzCon traffic over the last couple of years, what did you do to hold up?

I’ve answered this once or twice in the past I think, but that’s the past and things change constantly, so I think it’s about time to answer it again. I’ll start from the bottom up because I’m responsible for the entire stack. In layperson terms, that means I do everything from setting up the server to making text bold and switching out images.

Servers

We run on a Digital Ocean Linux VM with a large amount of memory, disk space, and cores. Everything is pretty speedy and I am constantly in there applying patches and keeping things up to date. I want to avoid a security incident if at all possible, so I’m doing my level best to achieve that.

Right now we’re only running on one server with a couple of layers of caching involved (a page cache on the server, and Cloudflare — more on that later). When I anticipate that I’m going to need more power I have a round-robbin multiserver setup that I can turn on that will let me scale up as required. It takes me about 30-minutes to get this system up and running, and about 10-minutes to spin up another server to help distribute the load. I could do A LOT better here and have an autoscaling system in-place, however, I haven’t really found the time for that yet. When I have server techs working for me on projects I always do that, but directing the use and doing it yourself are two very different things. That said it’s on my list for a rainy day; and either way, the setup that I have right now allows me to withstand BlizzCon and patch days.

Last year I switched finally from Apache to NGINX. I’ve used apache for almost 20-years now, but NGINX is much faster with PHP and has a lighter load on the server, which means less of a need to spin up additional servers and spend more money. A real example of where switching technology saves dollars.

Besides that, I’d say the setup is pretty normal. There’s a host of backup and security things in place, and I have various monitors and alarms for events, etc… New Relic is awesome. For those wondering why I went with Digital Ocean, I picked them because their prices are in line with others, and they also have an incredibly active community of supporters and guides. That takes a lot of the guesswork out of implementing newer server technology, which for a production site is an absolute must.

The Backend

We use WordPress (with 2-factor authentication enabled, just like everyone does with their Blizzard accounts). I have been working professionally with WordPress, either as a developer or a Product Manager/Director for over 10-years now, and that’s given me the ability to basically implement an enterprise-grade CMS for our staff. There’s not a ton of difference between what the Blizzard Watch writers use and what major corporations running on WordPress VIP use. In fact, I think some of my stuff is better (that’s a total friendly dig at some folks, you know who you are).

The theme is custom built and has been upgraded over the last five years in the exact way you’d think: messy, embarrassing, and patchwork. I was looking at it recently and I just facepalm at some of the stuff I wrote a couple of years ago. What they say is really true — given time you’ll think your own code is just as bad as the code that belongs to that terrible developer you know.

I heavily rely on plugins to help me implement functionality that would otherwise take me months to code. There have been some plugins that I’ve retired and rewrote myself because I want something specific, but for the most part I’m okay with having 50+ plugins running. However, there’s a catch to that (pun intended).

Caching

Any website that gets significant traffic needs to have a caching layer on top of it. That means something like the non-dynamic components of the Queue are only retrieved once from the database, kept in memory, and then returned to all users who request the page. In other words, every time someone hits the website they are just getting a static page sent to them, and not something that has 30+ database calls made to render it. This speeds things up significantly for the users, writers, and costs me less money on servers.

The dynamic components on the page are limited to three things: ads, comments, and the Patreon login system. Ads are served through Google’s DFP, Comments through Disqus, and Patreon through JS and a series of server calls (although done in part with NodeJS so I’m not running WP every time I need to query data).

All of this means that I have a page level cache on the server, and use Amazon and CloudFlare for additional CDN and caching. In fact, the entire site is routed through CloudFlare except in a few very specific circumstances, which means given the right forethought and design pattern, I can do anything I want with the site — like make a super fast custom gallery system or improve our Google AMP pages drastically with no real effect on the server. There are a few cases where I’m specifically using forms of transient caching as well, mostly when I need to query from third party data sources.

Front End

The front end is entirely made on Boostrap 3 and jQuery. Yes, please let me know how there are newer versions and I need to switch to React… I’m already working on it. =) Although to be honest I may just turn that into a native app and use the 2019 framework that I’m developing now for the desktop/mobile side. That being said, I haven’t made up my mind yet and it’s something I’m seriously considering right now. I do like how I can take advantage of WordPress’ API and turn it into a headless CMS, but while I’ve got proof-of-concepts made for rendering sidebars and site-wide elements via the API, I’m still not sure if I’m comfortable with guaranteeing nothing critical will break on the front end if I switch over to React completely.

The problem here is that I still need to be able to take advantage of all the plugins and PHP functionally I’ve written over the years (that while old and refactored, is still incredibly valuable to us). If there’s some weird React interference with that and I can’t get around it, I could have to implement something from scratch — and that’s not a surprise I want to have happen at the 11th hour. So I’m researching and continuing to POC it out. The work won’t be for naught though, it’ll just depend if I use it for the entire site or a cross-platform mobile app.

To Wrap It Up…

That about covers the tech of Blizzard Watch. I probably should note that there’s a lot of other components and stuff that I play with on a weekly basis, AB tests, different forms of monitoring, analytics, etc… It’s all part of the game. And while the current codebase is five years old and shows it, hell, it’s working and making us money, so that’s a win in my book (and anyone’s book that’s actually keeping track of money, too).

 

IPScot tweeted:
Who is Blizzard more beholden to: shareholders or gamers?

This is a question that is central to a lot of things going on in the community right now and gets asked a lot. The Diablo Immortal announcement really brought this one out, and some of the … let’s just call them stranger … moves by the studio always raise it. And despite me saying that they’re ultimately answerable to the shareholders, it’s not that simple.

Activision-Blizzard is owned, every single part of it*, by the people who buy its stock. If you buy one share of Activision-Blizzard stock, you own a very very very very tiny piece of World of Warcraft. Or at least, you and the god-knows-how-many other people that own the stock in one way or another. A more precise definition is that you own a piece of the corporate entity (“corporations are people too” is a fact in our world for all intents and purposes) that owns the rights to Activision-Blizzard’s Intellectual Property: aka: Warcraft, Diablo, and Call of Duty. The company is there to make the people who own it money — that’s the purpose that our economy has been built on. As such, it’s easy to say that a company is only beholden to its shareholders because, at the end of the day, that’s the point. I know I’m oversimplifying it, but let’s move on.

The challenge that Blizzard has is there are two groups of people it needs to satisfy. One is a community of gamers who have, over the last decade or so, become incredibly vocal and entitled (please don’t make the comments about this phrase — we can debate it another time). In order for them to make money on their products and services (games) and please their shareholders, they need to create significant goodwill with the gamers. Here’s the big thing:

Shareholders of Activision-Blizzard and the gaming community do not inherently have mutually exclusive goals.

Yes, that’s right — the person that owns a million dollars of Activision-Blizzard very likely wants the same thing you want with WoW. They want the expansions to have a great story, be fun to play, and give everyone a reason to be engaged with it every day or so; and conversely, they don’t want an expansion that causes people to get angry and leave until the next one hits.

And that’s what I mean by the inherency in the system (if Jeff is reading this, I’m totally going for inherency and winning it at 2N with a come from behind swipe at the foundational argument — and if you know what this means and refers to, +1 Internets for you today). The two sides are not really opposite — there’s a false sense of mutual exclusivity built up. 99.99999% of the time the want the same thing. That’s why the statement “Blizzard is beholden to its shareholders and not the community” is a fallacy.

Now, there are always exceptions to the rules. Diablo Immortal, WoW Tokens, and other things that have set the community on fire at one point or another are places where the two differ in objectives. But when you step back and look at it as a whole, and I mean really step back and remove all emotions from it, those are the rare exceptions rather than the rule.

So to answer the question, Blizzard is beholden to both, because most of the time, they are not any different.

*except for any stock the company owns itself, but let’s leave that alone to not complicate things.

Anonymous asked:

Are guilds dead? It seems like more and more I find myself engaged with the community on Twitter and Discord, and not in a guild. Granted I don’t always get to run Heroic or Mythic content, but I feel almost the same amount of connection to . the people I talk with there as I did 10-years ago in my guild.

This is translated and paraphrased by me after I had a discussion with this person. They requested to be anonymous.

The guild is dead, long live the guild!

Do you know why the saying “The King is dead, long live The King!” is said? It’s because the second the sovereign passes, the next in the line of succession is automatically appointed to the crown. Granted there’s exceptions to this and various rules — but go back 500 years and this is how it went down. So the King has died, but there’s a new one now, so long live him/her.

The same could be said of guilds.

I would contend that the guild is more of a virtual home, a community of people that you interact with on a regular basis and feel a sense of belonging to. This belonging used to be more defined in the younger days of MMOs before social media took the world by storm, but all that has happened is the transition has moved towards a more external placement rather than an in-game placement. Does that make it any less of a group of people playing together and enjoying each other’s company? I don’t think so.

Of course, guilds still exist, and the relationships and social bonds that form in them can be stronger than passing acquaintances on Twitter or Discord, but that doesn’t negate that the center of “home” (if you will) has shifted outside its old sphere into a new external one. The private to public shift (again, Jeff if you’re reading this, apparently I’m just going for all the references today) isn’t one that needs to be frowned upon, it just has consequences in how relationships are viewed and how interactions take place. Neither is better or worse, just different.

So you’re not wrong, dear friend, in feeling that you’re getting the same amount of social goodness as you used to in your guild while running Onyxia for the millionth time. The feeling has just moved to a different sphere of influence and became more public.

 

I want to end on something that I was talking with Liz about the other day (or other month? timey-wimey-etc-etc). One of the reasons that I think the Queue is really fun is because all of its writers bring different perspectives and something unique to the table. Anne has an incredible amount of knowledge in WoW Lore and gameplay, Mitch is … trying to take over the world, Anna is incredibly intelligent and knows the games inside and out, I have experience on the corporate and tech side of things (and still play), Liz can take a question or issue and approach it in a way that no one else on staff can, and Matt has forgotten more than I’ll ever know. It’s kind of cool. Thanks for reading.

Blizzard Watch is made possible by people like you.
Please consider supporting our Patreon!

Join the Discussion

Blizzard Watch is a safe space for all readers. By leaving comments on this site you agree to follow our  commenting and community guidelines.

Toggle Dark Mode: