Infrastructure/Architecture

From FedoraProject

< Infrastructure(Difference between revisions)
Jump to: navigation, search
m (1 revision(s))
 
(13 intermediate revisions by 4 users not shown)
Line 1: Line 1:
<!-- Do not remove
 
-->
 
<!-- StartHeader
 
-->
 
<pre>#!html
 
<div style="height:66px; width:100%; background-color:#002867;">
 
<a href = "http://fedoraproject.org/wiki/Infrastructure"> <img style="float:right;padding-top:3px;" src="http://fedoraproject.org/wiki/Infrastructure?action=AttachFile&do=get&target=InfrastructureTeamN1.png" /></a>
 
</div>
 
  
<HR style="height:2px; background-color:#00578E;" />
+
{{header|infra}}
</pre>
+
<!-- EndHeader
+
-->
+
  
= Infrastructure Architecture =
+
= Global Presence =
  
This page is an overview of the network architecture.
+
Fedora Infrastructure Network spans multiple continents. Datacenters are present in North America, UK and Germany. List of Datacenters goes as follows:
 +
# phx2 - main Datacenter in Phoenix, AZ, USA
 +
# rdu - North Carolina, USA
 +
# tummy - Colorado, USA
 +
# serverbeach - San Antonio, TX, USA
 +
# telia - Germany
 +
# osuosl - Oregon, USA
 +
# bodhost - UK
 +
# ibiblio - North Carolina, USA
 +
# internetx - Germany
 +
# colocation america - LA, USA
  
 +
= Network Topology =
  
 +
This section shows how our severs are interconnected or connected to the outside world.
  
== Front End ==
+
[[Image:FINTopology.png|border|thumb|center|650px|alt=Infrastructure Network Topology|Infrastructure Network Topology]]
  
This is a view of our network from the outside up to the application layer.
+
= Network Architecture =
 +
 
 +
Following diagram shows overall network architecture. [https://fedoraproject.org/ fedoraproject.org] and [http://fedoraproject.org/wiki/Infrastructure/Services admin.fedoraproject.org] are round robin <code>DNS</code> entries. They are populated based on geoip information. For example, for North America they get a pool of servers in North America. Each of those servers in <code>DNS</code> is a proxy server. It accepts connections using <code>Apache</code>. <code>Apache</code> uses <code>HAProxy</code> as a backend, and in turn some(but not all) services use <code>varnish</code> for caching. Requests are replied to from cache if <code>varnish</code> has it cached, otherwise it sends into a backend application server. Many of these are in the main datacenter in phx2 and some are at other sites. The application server processes the request and sends it back.
 +
[[Image:FINArchitecture.png|border|thumb|center|650px|alt=Infrastructure Network Architecture|Infrastructure Network Architecture]]
  
[[Image:Infrastructure_Architecture_frontend.png, http://cvs.fedoraproject.org/viewcvs/architecture/?root=fedora] 
 
  
 
== Proxy View ==
 
== Proxy View ==
  
This shows whats going on in the proxies.
+
This shows whats going on in the proxies. Incoming <code>DNS</code> balanced user application requests hits <code>Apache httpd</code> in proxy server. Apache forwards request to <code>HAProxy</code>, which load balances requests over the app servers. Some of them reaches over <code>VPN</code>. An example of external source is [http://www.fedoraproject.org/people/ fedoraproject.org/people/] which is a proxy pass to [http://people.fedoraproject.org/ people.fedoraproject.org] hosted at Duke. In some cases there is also <code>varnish</code> between <code>HAProxy</code> and the app servers to help cache information. Local requests use standard alias in the <code>apache configs</code>.
 
+
[[Image:FINProxyLayer.png|border|thumb|center|650px|alt=Infrastructure Proxy Server Flow Chart|Infrastructure Proxy Server Flow Chart]]
[[Image:Infrastructure_Architecture_proxy.png, http://cvs.fedoraproject.org/viewcvs/architecture/?root=fedora]
+
  
 
== Application Layer ==
 
== Application Layer ==
  
This is a generic view of how our applications work. Each application may have its own design, but the premise is the same.
+
This is a generic view of how our applications work. Each application may have its own design, but the premise is the same. Incoming requests are load-balanced from proxy server and reaches to appropriate service box. All application servers in the clustered services area must be identical. If an exception is made it must get moved to solo services box. Most solo services will be one-offs or proof of concept(test) services. Most commonly our single point of failure lie in the data layer.
 
+
[[Image:FINApplicationLayer.png|border|thumb|center|650px|alt=Infrastructure Application Layer Diagram|Infrastructure Application Layer Diagram]]
[[Image:Infrastructure_Architecture_applicationLayer.png, http://cvs.fedoraproject.org/viewcvs/architecture/?root=fedora] 
+
 
+
== Global Network ==
+
 
+
This is the overall view of our global network
+
[[Image:Infrastructure_Architecture_GlobalNetwork.png, http://git.fedoraproject.org/git/fedora-infrastructure.git/architecture/]
+
 
+
== Helping Out ==
+
  
If you are interested in making additions or changes to the diagrams on this page, the sources are located on our cvs server.  You can check out the files from here
+
= Contributing =
  
http://cvs.fedoraproject.org/viewcvs/architecture/?root=fedora
+
One can contribute to Fedora Infrastructure in several ways. If you are looking to improve the quality of content in this page then have a look at [https://fedoraproject.org/wiki/Infrastructure/GettingStarted GettingStarted]. And if you are wondering why no server in a great country like yours and want to make donations of hardware please visit our [https://fedoraproject.org/wiki/Donations donations] and [http://fedoraproject.org/sponsors sponsors] page.
  
----
 
 
[[Category:Infrastructure]]
 
[[Category:Infrastructure]]

Latest revision as of 16:39, 3 October 2012

Infrastructure InfrastructureTeamN1.png


Contents

[edit] Global Presence

Fedora Infrastructure Network spans multiple continents. Datacenters are present in North America, UK and Germany. List of Datacenters goes as follows:

  1. phx2 - main Datacenter in Phoenix, AZ, USA
  2. rdu - North Carolina, USA
  3. tummy - Colorado, USA
  4. serverbeach - San Antonio, TX, USA
  5. telia - Germany
  6. osuosl - Oregon, USA
  7. bodhost - UK
  8. ibiblio - North Carolina, USA
  9. internetx - Germany
  10. colocation america - LA, USA

[edit] Network Topology

This section shows how our severs are interconnected or connected to the outside world.

Infrastructure Network Topology
Infrastructure Network Topology

[edit] Network Architecture

Following diagram shows overall network architecture. fedoraproject.org and admin.fedoraproject.org are round robin DNS entries. They are populated based on geoip information. For example, for North America they get a pool of servers in North America. Each of those servers in DNS is a proxy server. It accepts connections using Apache. Apache uses HAProxy as a backend, and in turn some(but not all) services use varnish for caching. Requests are replied to from cache if varnish has it cached, otherwise it sends into a backend application server. Many of these are in the main datacenter in phx2 and some are at other sites. The application server processes the request and sends it back.

Infrastructure Network Architecture
Infrastructure Network Architecture


[edit] Proxy View

This shows whats going on in the proxies. Incoming DNS balanced user application requests hits Apache httpd in proxy server. Apache forwards request to HAProxy, which load balances requests over the app servers. Some of them reaches over VPN. An example of external source is fedoraproject.org/people/ which is a proxy pass to people.fedoraproject.org hosted at Duke. In some cases there is also varnish between HAProxy and the app servers to help cache information. Local requests use standard alias in the apache configs.

Infrastructure Proxy Server Flow Chart
Infrastructure Proxy Server Flow Chart

[edit] Application Layer

This is a generic view of how our applications work. Each application may have its own design, but the premise is the same. Incoming requests are load-balanced from proxy server and reaches to appropriate service box. All application servers in the clustered services area must be identical. If an exception is made it must get moved to solo services box. Most solo services will be one-offs or proof of concept(test) services. Most commonly our single point of failure lie in the data layer.

Infrastructure Application Layer Diagram
Infrastructure Application Layer Diagram

[edit] Contributing

One can contribute to Fedora Infrastructure in several ways. If you are looking to improve the quality of content in this page then have a look at GettingStarted. And if you are wondering why no server in a great country like yours and want to make donations of hardware please visit our donations and sponsors page.