Cloud Infrastructure Services: The Basics
Cloud Infrastructure Services: Do I need these?
Short answer: Absolutely! You cannot avoid them.
Cloud Infrastructure Services Defined
I’m sure you are aware of “the Cloud,” or you wouldn’t be reading this. But do you have a clear picture of what it means when someone says, “cloud infrastructure services?” Infrastructure is defined as:
“The basic, underlying framework or features of a system or organization.”
Cloud Infrastructure Services are the services that create a framework for your application to exist and function in the cloud.
A business with a mature cloud application usually doesn't have infrastructure on the forefront of their minds. That’s understandable.
Cloud Infrastructure Services as Plumbing
Think of cloud infrastructure as your household plumbing. Your app is the water, which is what you are producing. As long as water comes from the sink, you don’t typically think of the internal plumbing when you wash your hands. When all is working as it should be, you are only concerned with getting what you want from the product, in this case clean hands via water and soap. You aren’t concerned with whether the plumbing is working, because it is.
The Common Misconception that AWS Provides All You Need for Cloud Infrastructure Services
Now let's talk about AWS cloud infrastructure services. An unfortunate misconception (usually on the part of business decision makers, not the engineers) is that you can develop an application, or take your existing application, and throw it up in the cloud to let AWS handle all the infrastructure.
As a matter of fact, you can sometimes draw that conclusion by looking at some of the offerings on the AWS website. If these descriptions were true, you could just hire developers and not worry about those pesky infrastructure people, right?
I hate to burst your bubble, but this assumption is not actually, or even technically, correct. There is a missing layer between your application and what many assume AWS is providing.
Are there services that allow you to just throw your app up in the cloud? Yes, but they do not work with every application. There are many caveats, as well as business and technical considerations that must be factored into your decision-making process before you sign on the dotted line.
Designing for the Cloud vs. Time and Resources
If you wish to do it the right way, your application must adhere to development practices that ensure it is "cloud-enabled" or "cloud-native." This becomes more streamlined when you design your application from the ground up to be hosted in AWS.
For many businesses, that's the catch, isn't it? Designing it from the ground up. Only certain businesses have the luxury of doing this. It would be cost and time-prohibitive to entirely redesign established apps. For most businesses, this approach just isn’t possible.
How Serverless Fits In
If properly designed, you can go what AWS calls "serverless." The term "serverless" could be a bit misleading. It’s true, you aren't managing a server operating system to host your application using your own hands.
But there are still other factors besides a server operating system. What about all the other often unseen infrastructure services? Does using AWS really mean you don't have to manage infrastructure services? Let’s think about this:
- Do you want your application to be able to send email?
- Do you want your customers to be able to get to your app by name?
- Where will you store data that your application consumes or processes?
- Do you want it globally accessible?
- Do you want it redundant?
- Should it only be used at certain times or 24/7?
- What about security?
When You Can’t Go Serverless
These and numerous other requirements are all part of what is considered “Cloud Infrastructure.” Many customers we work with can't go serverless because their application cannot conform to the requirements needed to truly be serverless. Many still require the use of Amazon EC2 services to either fully run their application, or at least to supplement certain features, which requires even more knowledge of infrastructure services.
3 Basic Cloud Infrastructure Services (Almost) Everyone Needs
These 3 examples of cloud infrastructure services are extremely common, and the concepts are probably already familiar to you.
- DNS - This has been around since the beginning of the Internet and isn’t going anywhere in the foreseeable future. Without DNS, the Internet would be a very difficult place to navigate. Imagine everything being a number with no names. You wouldn't be able to get to https://www.bloomip.com, for example. AWS provides Route53 for DNS services. You can manage your own domain names and how your customers interact over the Internet with your application.
- Storage - It’s likely your app needs to store things, like pictures, PDFs and other kinds of information. Amazon S3 and Glacier can provide the majority of your object data storage needs, as well as provide website hosting.
- Networking - 99% of the time, businesses will need a network with IP addressing, routing rules, security groups, firewalling, etc. This is a very large topic, but to touch on this, the need to manage "networking" has not gone away with AWS. For our clients, I regularly engage in network engineering. AWS VPC is one of the main services that AWS provides for doing this. While it’s easy to get started, it’s complicated to get right. The ease of use of creating networks in AWS can actually hamstring your ability to grow. Typically, developers aren't aware of, or are still getting used to, understanding networking. In "the olden days" (I was there, I know) your corporate developer didn't have to concern themselves much with understanding how all the networking devices worked or were set up. Honestly, I think they still shouldn't need to, but times are changing (controversial statement, don't hate). Network Engineers handled the networking. If you were to go "Full AWS," would you need network engineers? It is difficult to answer that question without an assessment, but I can tell you from experience, someone with network engineering knowledge being involved in at least the design of your environment, and any subsequent changes to it, is a must. You will be neglecting an entire facet of wisdom otherwise.
These are just 3 examples of what are considered "infrastructure" services within AWS. There are dozens more to consider when putting your applications in AWS.
Do You Know What Cloud Infrastructure Services You Need?
To be frank, if you’re trying to enter the AWS cloud with just your business staff and a team of developers, you are already going into it at a disadvantage. Infrastructure is a critical, separate layer that must be managed somehow. Someone must be able to effectively design and manage these cloud infrastructure services.
Bloomip is the AWS Consulting Partner you can have confidence in. Read about our Bloomip Way process that guides you from confusion about the cloud to certainty in your future.
Our team of devoted experts are ready to answer your questions and help you be aware of crucial considerations, so you can make wiser business decisions. Contact us to start a conversation about clearing the fog from the cloud.