Advice for any kind of technology.

What is architecture? "conceptual structure and logical organization of a computer or a computer-based system" from the dictionary. Architecture encompasses: space, power, cooling (and more, like legal requirement); hardware and network stuff (servers, switches, routers, firewalls...); finally dynamic applications. The architect is focus on the application to build, because it does not exist.

Not all people do all things. We are not aware of everything, it is hard to do many things. isolated decisions can create massive problems. Those things can leads to unreasonable requirements, can make stupid decisions and catastrophic failures.

Running Operations is a serious stuff and require 4 things: knowledge (what you learn or have learn); tools (what you use); experience; discipline.

Knowledge is created by reading, studying, training, user groups and participate to one or more community.

Tools is find by collaborating (with colleagues or community), by trying new tools, write new one and finally by practicing during the good and the bad time (should be effortless during the last one). You must survive with simple tools (like duct tape) and after correct with better tools. tools help to maintain discipline.

Experience come from mistakes and risks taken. Those risks should be taken carefully.  People who did not learn are not useful. Make mistakes to learn from them and not repeat them. You need a way to create error safely without impacting the production.

Discipline is important in any job and come from training, study and practice. People wants fame and glory, their are cowboys, it is a missing ingredient in our field. A job is not an art. Through practice, you should achieve excellence.

All information (configuration, documentation, schema...) must be stored in version control. We can easily deal with textual file, not so easy with binary and running software. It doesn't matter which tool is it.

You must know your systems, use monitoring, collect data from system and process as much as possible, looks your systems and use diagnostic tools when things are healthy. You need historic information to compare information.

Management (configuration and provisioning) is managed by tools the craftsman make or prefer. We don't care about the version, it must do the job.

Static content can be stored on Akamai ( or another competitor ( Another method can be to create our own service based on our own service and optimization but there is no real value to create another competitor to existing providers.

Availability, two methods, "White paper" approach, users access HA/LB and HA/LB forward request to multiple available web services, this method is costly. Another way to do things is to create a peer-based HA, Users access the data web server, and HA is made in the back for the data.

An example stack: web server to store static content; create a reverse proxy-cache (Varnish, Apache, Nginx...);  create redundancy on IP (VRRP, CARP, wackamole); must be simple, easy and scalable. setup same thing in multiple datacenters.

How to get the content closer to the user? put a DNS at each location behind the same uplink, with the same IP address, announce the network from all data centers by using BGP.