Cell-Based Architecture
github.com
github.com
Not about the PowerPC / Sony PlayStation Cell architecture.
I recently left a role at a company with ~4,000 AWS accounts and they will likely have ~20,000 within a couple of years. It's extremely helpful to see a nicely abstracted architecture that you can cherry pick from when building your platform.
1. Compartmentalization (security incidents and manual mistakes are isolated per account). On the extreme side even some sensitive [micro]services may run in separate AWS a/c.
2. One AWS a/c per environment (i.e. dev, staging, prod).
3. One AWS a/c per large enterprise tenant (in case of the multi-tenancy).
4. Every team/division inside the organization have their own sets of AWS accounts usually with separate billing.
Once you get the processes and pipelines built to manage account lifecycle, they provide a lot of valuable compartmentalization properties.
no thaaaaaaaaaaaaaaank you.
If so, then it's worth taking a look at the proposal and assessing it based on its own merits. I, personally, would rather swallow my pride and admit that a particular architecture, while coached in buzzwords, is actually a good idea and will prevent me from pulling my hair out, then eschew all outside advice and have my workdays be filled with stress.
I remember it was "APIs" everywhere. Before that it was "mobile first" everywhere. Before that it was "everything through XML". Plenty of opportunities! Don't miss the hype train!
It is so ironic to see microservices being hyped, when back in the Solaris golden days we had "The network is the computer" mantra.
Now we get people to rediscover CORBA and DCOM via gRPC.
Or being told how cool Web IDEs are, when again 30 years ago, we were sharing development servers via telnet and X Windows.
Or "pick your example"…
For reference see:
"AWS re:Invent 2018: How AWS Minimizes the Blast Radius of Failures" https://youtu.be/swQbA4zub20
(I work at AWS.)
http://highscalability.com/blog/2012/2/13/tumblr-architectur...
Instead of sharding within a given DB, sharding all the things necessary to deliver a given user:
Cells - A cell is a self-contained installation that has all the data for a range of users. All the data necessary to render a user’s Dashboard is in the cell. Users are mapped into cells. Many cells exist per data center.
An implementation of the Cell-Based Architecture.
I don't think that's what this is about. It's more like your whole kube environment is one cell, your VMware environment is another cell, etc. It's a semi-principled way to incrementally migrate/modernize an app without having to do a big rewrite onto a single platform.
sad beekeeper noises
Nice having a name for that, though.