In today’s world, understanding the ecosystem beyond coding can be the difference between a junior and a senior software engineer. One part of that ecosystem is cloud computing infrastructure like Amazon Web Services (AWS). Schno Mozingo, Head of Curriculum at Codesmith, walks us through the basics of AWS, how companies and developers are using it, and why understanding AWS can help bootcampers land higher-level engineering positions. Listen to the podcast or read the article!
The Origin Story
In the old days, if a company wanted to have a presence in the technology space, they needed a data center, a place to host computers, and an IT team to run everything. You had to hook up redundant power, backups, and temperature control (machines run hot). A lot of resources, time, and effort went into the equipment and the software to give you a foothold in the technology space. That presents a barrier to entry for companies, entrepreneurs, and innovators who don’t have the resources to build all of this infrastructure.
Back in the early 90s, Amazon was one of the early players in e-commerce and AWS grew out of their need to build that infrastructure for themselves. CEO Jeff Bezos required every department of Amazon to act like its own mini company – if they needed data or resources from another department, they had to build an enterprise-grade interface to retrieve the data. They took this mindset (along with a lot of money and resources) to build data centers that had all of the hardware, redundant power, and IT teams managing them, and made them available to other companies.
Now, instead of building the infrastructure themselves, companies can essentially rent the infrastructure from AWS, lowering the barrier to entry for innovators and entrepreneurs. Companies don’t have to have an on-site data center, they can rely on AWS, its redundancies, high availability, and all the things that make that infrastructure valuable. These data centers are spread throughout the world, providing disaster recovery – if a center fails in one location, it can roll over into another region.
What is AWS for?
AWS provides dozens of services, ranging from standard servers that host websites to databases storing persistent data, all the way to robotics, game development, and Augmented Reality. As a company, you identify which AWS services you need, and as web developers, we only need a small subset of those. We need to host our website, route URLs, and have a way to store data and files like videos and images.
How developers use AWS
There’s a bit of a learning curve, but it’s relatively easy to set up all of these services in AWS and get your website hosted with a full API. Companies will employ continuous integration and deployment through third-party vendors like Jenkins or Travis CI. Once it’s configured, the web developer is mostly done with AWS. Developers work with their code repository to push up the code and merge it into the base, and then the continuous integration and deployment pieces take over, run tests on the code, and send it up to AWS for deployment. The impact is very minimal on the web developer writing code and making changes. It’s pretty awesome to realize that all of the manual changes needed to deploy that code are now automated.
What jobs require AWS knowledge?
Larger companies have DevOps engineers who are responsible for setting up and maintaining various AWS services such as EC2, S3, RDS, Route 53, etc. However, in smaller companies and startups, you end up wearing a lot of hats. Some Codesmith alumni have gone to companies with as few as four people and in that situation, so you may find yourself being a database administrator and be in charge of DevOps. At Codesmith, we really emphasize not getting tied to any one type of framework or language. You’re building the skills of an engineer. You’re learning how to research, parse, and implement – that ability is what qualifies you to be an engineer, not your understanding of React or Angular. It’s the underlying ability to dig in, research, and understand. DevOps is just another arena of technology to strengthen, broaden, and deepen your knowledge.
Companies that use AWS
The US government and CIA are just a couple of examples! Amazon represents a large part of internet traffic. Other big players include:
Can a company use AWS regardless of their technology stack?
There are a lot of technology stacks that AWS accommodates. One of the basic elements of AWS is an AMI – Amazon Machine Image - and people can create custom AMIs out of whatever tech stack they want to use. It is available and adaptable to any other tech stack a company wants to use.
What are some cloud alternatives to AWS?
There are other competitors to AWS in the cloud space:
None of these cloud providers comes close to the footprint that AWS has in the space. AWS has about 30% of the market share and Azure might be second to them at around 15%.
AWS was the pioneer and set the bar. Google, Microsoft, and Oracle all came to the game a bit later. Amazon had the vision and foresight to say “this is how we’re going to build our company internally with this focus on networking best practices, on extensibility, adaptability, and scalability” as a mandate – I think that’s really paid off.
Should beginners learn AWS?
As a beginner, you should be aware of AWS, but you don’t need to focus on it. As a beginner, you’re crawling – AWS is walking. When you’re starting out as a beginner coder, you want to get the fundamentals of logic flow and get an understanding of algorithms and data structures. But it’s important to know that there is a broader ecosystem beyond connecting the dots as an engineer, and it supports, maintains, and makes the code available for people. Broadening your scope outside of those programming fundamentals and understanding AWS, the broader ecosystem, and other cloud systems is vital in our current technology world.
Is AWS difficult to learn?
It’s a steep learning curve and you’ll need to understand some technology fundamentals before undertaking AWS training:
These aren’t beginner concepts; they’re topics that will arise as you broaden your scope and understand the ecosystem around web development.
Why does Codesmith teach AWS as part of the DevOps unit?
At Codesmith, we take a holistic approach to building well-rounded engineers who are autonomous problem solvers. We see a lot of developers wearing many hats at startups these days. The broader and deeper your understanding of the ecosystem surrounding web development, the more prepared you will be to get a mid- or senior-level engineering job.
We teach the parts of DevOps that support web development:
How can beginners get started learning AWS?
Fortunately, we live an age where everything is available through a couple of clicks:
How Nic Broke Into Software Engineering After Nucamp
Plus 5 tech jobs that depend on Ruby on Rails!
Everything you need to know about data science now