From: http://www.dbanotes.net/arch/heroku_architecture.html
These days I was deeply impressed by HeroKu, which provides Ruby Rapid Environment deployment and hosting capabilities. Their architecture is very beautiful, and a picture is better than a thousand words, if you are interested in the Web architecture, don't ask the architect. Look at HeroKu's architecture and you will understand it.
Overview
A good architecture diagram is drawn out. A good architecture may not be designed. The final architecture is good, but it depends on the continuous improvement capability.
"> HTTPReverse Proxy
With Nginx, this layer only performs "> HTTP-Level processing. Nginx is now the best choice.
"> HTTPCache
For static content, use Varnish for caching. If you select between Squid and Varnish, you have voted here.
Routing Mesh)
The architecture components implemented by Erlang and routing addressing are used to improve availability and scalability.
Dynamic Grid)
The Code deployed by the user runs here. It can be simply regarded as the application server cluster environment, but with a smaller granularity.
For further information about Dyno Grid:
The Server operating system is Debian; the Ruby VM is MRI, which is open source and written in C; the Thin used by App Server, which they say is more refined than Mongrel; Rack, application Server interface; Rack middleware, optional components; Framework, compatible with any Rack; client-hosted code.
Database
PostgreSQL can also use a remote database.
Memory Cache
Memcached is essential for home travel architecture.
Looking at these images, we have some perceptual knowledge about the Ruby environment. You can further view the documents provided by HeroKu, including some code implementation guidelines.
Deployment is based on Git. I wonder if you have noticed the outbreak of Git in the last year? Exceeding SVN may not be impossible.
If you are eager to develop "cloud computing" in China, learn from others. Instead of helping customers develop custom software all day long, it is better to provide customers with elastic application hosting environments. At least it looks reliable.
HeroKu, does not read Hero-Ku, reads Her-oh-koo as interesting