Modern business all find themselves in cloud – one way or another.
Most often, cloud management is part of the deliverable. So, we discuss cloud management as a service when your business already has a functional application, and it needs to cloud deployment.
In simple cases, we can lease cloud space to run small services like WordPress blogs and mail servers. In complex cases, we can deploy scalable and fault-resistant cloud infrastructures to drive custom web applications, high-throughput API’s, and digital stores. In every case, we use the most advanced tools available to ensure your digital assets perform safely and efficiently.
Update: Ask Us about our new scalable WordPress launcher for AWS. Supports 50,000 users/day per instance at $300/yr per instance.
Shared hosting is usually the cheapest hosting option. It is used commonly for applications that require low networking and computer power, like blogs and small business websites. This website is running on one right now. A few years ago, we leased a few dedicated servers with Amazon Web Services, and they continue to run small application for us, like websites and mail servers.
Companies running services on shared servers get the benefit of its careful management by the hosting provider (Conlan Scientific, in this case). For example, a recent automatic update of the Ubuntu kernel caused a few of our shared services to fail on reboot. One of engineers that was very familiar with that cluster was able to revert the update and recover all of the files without resorting to a backup.
- He was able to do some impressive block storage acrobatics to resolve this because he was extremely familiar with the system.
- He was familiar with the system because he frequently launches and maintains microservices on it.
- We launch microservices on shared servers to prepare us for this time of issue.
The “Many Small Servers for Many Small Services” is popular among cloud administrators at the moment, but we promote the “One Big Server for Many Similar Services” approach for cases specifically like this one. If we had many small servers, the fatal Ubuntu update would have affected all of them. Fortunately, we had one big server that we knew really well. We prefer headaches to nightmares.
The Golden Image
The next step up is to use the Golden Image approach. Our developers craft a machine image that can be deployed on any server hardware, then repeatedly deploy it to scale out the application. A machine image coupled with a blank server creates a fully configured server. The Golden Image is simply the most up-to-date version of this machine image.
We use this approach when the application justifies use of one or more dedicated servers. This is how we typically approach applications that are too large for shared hosting, but not sensitive enough to justify replicated file storage.
Massively Decouple Infrastructure
When we get into compute-heavy, secure, sensitive applications, we want to pull out all the stops to make minimize the risk of failure. The differentiating factor here is replicated servers for important data. In this configuration, the compute clusters will do all of the work, but they will draw data purely from replicated fileservers.
When we replicate fileservers, we typically do so across different data centers in real-time. The idea is, if one of these servers spontaneously combusts, you won’t notice. In other words, the network knows that it can rely equally on both servers, and the failure of a single server does not result in any data or performance loss.
In addition to fault tolerance, decoupling these components offers ample opportunity to back up files and databases. In this configuration, all files and databases can be backed up every 12 hours without any noticeable hit to performance.
The Best of Each
In reality, we implement core principles from each of these configurations into all of our cloud services. For example, while this website runs on a shared server, we have decoupled and replicated the database server so that it backs up every 12 hours. In addition, we have set the block storage component of the shared server to backup weekly. So, if our shared server spontaneously combusts, we may lose some charts, but we won’t lost any text.
Ultimately, we will balance costs and benefits to determine an optimal configuration for you application. Read on for an explanation of what tools we use for cloud management, and why.
Tools of Choice
We are big advocates of Amazon Web Services and Red Hat Linux.
Red Hat Linux
Red Hat is a great American company based out of North Carolina that consistently leads in operating system security. This is one of big reasons we use (Red Hat Enterprise Linuex) RHEL, among others.
Their security team is almost always first to find critical vulnerabilities in both its flagship operating system, and many other popular software and networking technology we all use. For example, Red Hat recently played a big part in locating and eradicating the OpenSSL Heartbleed exploit. In addition, it recently discovered a major (10+ year old) code injection vulnerability in DNS. While we love the open-source community, it feels good to have these guys on your side.
RHEL is not the most popular operating system among developers. One of those reasons is that the default security layer is very strict. This fancy security layer called SELinux does a really good job of placing checks on developers that, while writing groundbreaking software, aren’t always keeping security top-of-mind.
For example, by default, Apache is allowed to serve web requests, but not make web requests. This will certainly frustrate a new user that is trying to set up a WordPress site, but it is a welcome feature to anyone trying to program a secure API. In many cases, this feature can stop an API server from being hijacked to do other misdeeds. So, once you know it, you’re thankful for it, so we make our developers get learn it.
Minimizing dependencies is critical in development of new technologies, and RHEL’s dependency curation meets or exceeds most of our needs. For example, you can deploy a multi-site or parallel site WordPress server using only the default repositories in RHEL. Aside from minimizing dependencies, all of RHEL’s software is vetted by their development team to meet the security standards we doted on in the last paragraph. For example, when we download PHP 5, we get the latest version of PHP 5 that was cleared for security by RHEL (even if it is only PHP 5.2.9).
Amazon Web Services
Every cloud computing professional is aware of how Amazon Web Services (AWS) has been dominating the cloud computing market for the past 10 years. There are a few key reasons we use AWS.
AWS has dozens of services for all sorts of cloud computing needs, meaning it is easy to decouple your file server, web server, compute cluster, databases, load balancers, and DNS while staying under the same umbrella of AWS. Decoupling enables fault-tolerance by making sure failures are as independent from one another as possible. While none of services offered by AWS are proprietary or exclusive to it, we find it is really easy to secure and scale large systems when all these services are under the same metaphorical hood.
Partnership with Red Hat
AWS has a strong partnership with Red Hat. This was the biggest differentiating factor for us when approaching cloud vendors for the first time. Basically, when we work in Red Hat, then deploy our services to the cloud, we take Red Hat’s excellent support with us. This has saved us more a few times.
Partnership with Equinix
Equinix is a massive server warehousing company that works tirelessly in the background to keep the World Wide Web alive. Tons of tech companies, including AWS, are hosting their web servers entirely in Equinix.
I consider this partnership a massive plus because of a story I heard while touring their New Jersey warehouse. During the famous North East Derecho of 2012, Equinix hauled in 6 super-sized oil tankers, and placed them on a tall hill near the warehouse. When the storm came and the power cut out, the oil tankers were sitting on a nearby hill, feeding oil to their backup generators. The warehouse withstood the flood waters, and they never had a system outage. Incredibly, American, European, and Asian companies running out of AWS-East during the 2012 Derecho saw no server outages.
Language and Environment Support
AWS, due to its popularity, has gained a lot of API support for its services across popular languages. While the AWS team publishes API’s for popular languages like PHP, Ruby, and Python, open-source developers have made integration suites for more specific environments like WordPress and Django. So, while we may use AWS SES to manage automatic emails for task management in our organization, we can hook our WordPress sites into that same SES endpoint to send contact forms and receipts.