Please contact your support team if you have a question or need assistance for any Rackspace products, services, or articles.
Abstract: Cloud computing allows companies to take advantage enterprise-level IT resources. But to really get the benefit, you have to architect it correctly, or you run the risk of downtime. Take the guesswork out of architecting your cloud infrastructure with this webinar. Rackspace Cloud Expert Bill Hertzing explains how to use a three-tier architecture for improved performance and reliability. For more information, visit https://www.rackspace.com/cloud.
Questions from the webinar:
Can a three tier architecture work for a hybrid environment?
Yes. Hybrid means a combination of cloud and physical devices. Rackspace uses a technology called RackConnect to connect cloud and physical devices.
Perhaps there is a situation where you need high-performance for transaction purposes. You might put your database on a dedicated server but keep your web tier on cloud servers for scalability.
I was told that Cloud Load balancers were not available in Rack Connect 3 setups is that still correct?
RackConnect 2 does but not RackConnect 3. According the on-boarding manager who works with RackConnect on my team this is still correct. They report it is in early-access and available in our Northern Virgina (IAD) datacenter at the time of this writing.
What do you do if the load balancer goes down?
High availability is built inside the cloud load balancer. For added peace of mind and avoiding a single point of failure, it would advisable to create a stand-by cloud load balancer with an identical configuration. This device might even be in a separate datacenter giving you the ability to route around any issues that might be happening.
Hosting your DNS at Rackspace is also key for several reasons. First the time-to-live for DNS can be as low as 5 minutes. Another reason is there is 24/7 support who can help should you need to make a switch.
How can Rackspace help me build a 3-tier architecture if I do not have someone in house to do this?
We can assist using the Managed Operations support tier. It’s a support tier where you have 24/7 access to world-class admins who can login to your systems and setup infrastructure on your behalf. Using their expertise servers, databases and other infrastructure pieces can be deployed in a very short amount of time.
I’m good with public - my interests are with private/hybrid mostly - maybe you have other resources more relevant for me to view?
Yes. There is a good deal of basic RackConnect architecture at https://support.rackspace.com/how-to/rackspace-open-cloud-reference-architecture
The page starts off with the basics and then builds up from there.
I have a large, data-intensive workload. What it the best way to build a 3-tier architecture to support it?
One option would be to use the On-Metal solution in the Rackspace cloud. It is an on-demand physical server that is available via API or control panel. It removes that hyper-visor layer as the operating system is running on a physical server. Because of this, it allows for very intensive workload to take place.
MSSQL database backups - how is the backups stored locally is it a standard .bak file or is it another format and how easy is it to restore a local database backup?
Yes. The first thing to do is setup a maintenance plan to run on a schedule of your choosing. This will be a standard .bak file. This can be nightly or hourly. It just depends on your level of tolerance for downtime. There will also need to be a clean-up task that will remove files older than a pre-defined time. This could be 7 days or 14 days. It’s important that the files do not fill up the local disk on the server.
Restore is easy. But, first you have to back it up. It’s important to make sure it is being backed up using Cloud Backup. Cloud Backup will store your data in Cloud Files for a measure of time like 30, 60 days or indefinitely. To restore, you simply need to build a restore job to run and return that file to a location somewhere on the server.
When should we look at Rackspace CloudSites vs. 3 tier?
When you are at the point you need to control the environment yourself is a good point in thinking about building a three tier architecture. If an update happens in Cloud Sites and breaks your application would be one example.
The most use case for Cloud Sites vs. Cloud Server comes down to the level of customization that you want. There are some templates, for example, that will not work on Cloud Sites due to the type of applications we put on that base.
Is there any difference in replication from a private cloud environment (Hybrid environment) to another data center for a DR solution?
If you are running a .net web application on a windows server, how do I share the load between two servers? Where do you deploy the web application files? Do you use a seperate NFS server to host the IIS files?
It depends on the read/write constraints of the application. You could have it so all the writes go to one server and the read go to/come from multiple servers. If the application save a bunch of files and needs to be read from each server, then modifying the same file can be challenging.
You will want to mitigate a scenario where you have file locking issues. Because as one server is writing to a file, the other servers are unable to access it. There are some ways to solve for the issue.
Websever 1 would host all files (writes). Webserver 2 will write to Web1 via a UNC share from Web1. That UNC share would need to be set in the application. For reading, WebDeploy would be used to replicate content from Web1 to Web2.
The second solution would be to use DFS. It is possible to use a cloud server as a fileserver running DFS or as a storage tier. DFS can handle the write locking issue. However, this introduces another constraint of a domain controller. Proper setup requires the use of a primary and secondary controller. This adds more complexity and cost to the configuration.
So, when a user hits your site, the LB points them to a web server, will it always direct the same user through the LB to the SAME server, or will it bounce to different web servers for the same user. (question is on any session variables)
The load balancer will distribute traffic in that manner if session persistence is not enabled. When session persistence is enabled, the load balancer redirects subsequent requests to the same node.
Another way to solve for this is to use Memcache. Memcache will track sessions so if the user hits refresh in their browser, they are not logged out or the contents of their shopping cart are gone.
How do you deal with security and the cloud?
There is a good deal to consider from an Infrastructure perspective. Each server Windows or Linux comes with its own firewall installed. Out-of-the box the attack surface is reduced very low with only access ports like Port 22 (Linux) or Port 3309 (Windows) open. After that the typical ports that are opened are Port 80 and 443
Additionally we can lock down users to specific functionality. For example: A user can SFTP into a server but can not SSH.
What is the technical difference between "Cloud Database" and "Database on Cloud"?
The Cloud Database is a collection of resources available in the datacenter to run MySQL. There is no operating system to maintain. Whereas database on a cloud server can run on a variety of different operating systems. MySQL can perform well on both Linux and Windows, for example.
Database on Cloud servers can be configured to run and replicate in different datacenters. If you need ‘root’ access running database on a cloud server is going to be the best option.
My app provides users from anywhere in the world to access one physical database...Is the data completely consistent on all of the multiple databases in the N-TIER architecture? How fast is the data populated across all databases?
Database replication happens very quickly. I personally can't think of a case where it was an issue. One thing you will want to do is make sure to setup a replication monitoring alert. Should it break, there would be a notification and it can be repaired.
If you are replicating across data centers using database on cloud servers, the traffic will go across the Internet. Therefore, it will be subject to the speed fluctuations of traversing the wide area networks.
Do you have a solution for application data cache(not session) between cloud servers? i.e. .net application cache data
More details would be needed to fully answer this question. However, when applications are processing data, a bit of caching is required by IIS. Output caching in IIS doesn’t go across multiple servers. It goes into RAM which means it is local.
If it’s going to be shared it would need to be done so using a tool like Redis which is a key/value nosql database. The application wound need to be designed to keep the state in Redis.
Another option might be to save the values in the database itself.
Is there any real benefit to features of the load balancer if you are starting with only a single application server for a small web app?
Yes. The load balancer will hold the static IP address for your site. If you need to replace that server, you will not have to make changes to your DNS. Additionally, getting into the habit of testing through the load balancer is good too. It happens too often when customer develop their application testing directly to the server then put a load balancer in place right before launch. It's only then do they discover that their application has difficulty communicating through a cloud load balancer or expect traffic to come from another source.