AWS access keys — 5 Tips To Safely Use Them.

AWS Access Keys are how you can programatically access the AWS cloud. AWS Access Keys can be used to provision, update — or even delete cloud resources. When it comes to your cloud account, personal or work you don’t want your account to be compromised — it could cost you at a minimum thousands of pounds. So keeping your AWS Access Keys safe is paramount.

Managing your AWS Access keys isn’t as scary as it first seems. With a little knowledge you can experiment and build software in the cloud, all whilst staying safe.

By the end of this article you should know what AWS keys are, why they’re important and five tips you can use to make sure you’re safe when using your access keys.

Learn The 6 Fundamentals Of Terraform — In Less Than 20 Minutes

Terraform is a fundamental tool for Cloud Native software engineers to learn. In my opinion Terraform should (and will) be as ubiquitous for infrastructure provisioning as tools like git are for version control.

Today we’re going to talk about the 6 key fundamentals topics you need to know in order to get working with Terraform quickly. We won’t be covering the concepts in great depth (a good thing!) but we’ll just enough so that you’re aware of what the concept is and how it works before you go diving deep.

By the end of this article you’ll be aware of the 6 key concepts of Terraform. Everything from the language structure to file format. 

The Big List Of Cloud Native Engineering Resources

I spend a lot of time researching Cloud Native technologies. Also whilst editing the Cloud Native Software Engineering Newsletter I’m always looking for the best sources of knowledege and high quality content. Everything on the list is things I read, people I follow or books I’ve read. I’m not recommending anything I haven’t used.

By the end of this article you’ll know about the best Cloud Native resources that I’ve found to-date. Make sure to come back as I’ll be constantly updating this page! 

AWS networking fundamentals: A simple guide for software engineers.

Have you ever been into the AWS console and been completely baffled about all the concepts and jargon? You’ve got: Security Groups, Inbound rules, VPC’s, Subnets, Internet Gateways, NAT, ENI’s and all of them are related to networking somehow. Put simply: there’s a lot to AWS networking. So if you’re going to break into it somehow you need to know what to focus on: the fundamentals.

Today we’re going to be going through the main networking components you should be familiar with in AWS. We’ll talk you through why you’d need the component, what it is and how you’d use it. Throughout the article we’ll be building up an example of running a web server in a public subnet as part of our own VPC.

By the end of this article you’ll understand the main networking concepts: Private IP’s, Virtual Private Cloud (VPC), Classless Inter Domain Routing (CIDR), Subnets, Internet Gateways and Security Groups and use these to implement a basic network design. 

3 Terraform features to help you refactor your infrastructure effortlessly

Ever created an app, like a website? You create the app and get everything working. But when you go to make a change the thought scares you to death.

Does this sound like you? I’ve been in that very same position, too. Writing code that’s flexible and malleable to change isn’t easy. When it comes to writing infrastructure that’s flexible that’s where a tool like Terraform can help us out.

If you’re not already familiar with Terraform, don’t worry, you’re in safe hands! Terraform is an Infrastructure as Code  tool with some awesome features that allow us to write infrastructure code that’s flexible to change.

By the end of this article, you’ll understand what Terraform is, why it’s a great first infrastructure-as-code tool to learn and how the main features help you to write infrastructure that’s easy to refactor. 

4 signs you should break your app into Microservices

Microservices have been talked about a lot in the last few years. And it’s commonly accepted practice that applications should start as monolithic applications before being broken down into Microservices. In fact that’s exactly how we made Splitoo.

Earlier in 2019 I made a commitment to improve some technical aspects of Splitoo. One of which aspect you could call Microservices. At Splitoo since we’re a small team, we made some fairly intuitive decisions to break down the application into Microservices based on some tell-tale signs that it needed it.

What we realised is that our decisions to break down the app came from getting more intuitive about the tell-tale signs that an application is getting too big, and could benefit from being broken down into microservices. And that’s what we’ll be talking about today.

By the end of this article you should know four tell-tale signs that an application could benefit from being architected with a Microservice approach.

Your personal AWS setup (and how to not get hacked)

Avoid huge bills and getting locked out of your account

In 2016 hackers compromised my personal AWS setup. Within a matter of hours I received an AWS bill for $3000 dollars 😱😱.😱.😱.

When you’re a Cloud Native Engineer one of the best ways we can learn is through experimenting directly on cloud platforms, like AWS. But, doing so can be fraught with difficulties if you’re not careful when you setup and use your cloud account. An incorrectly setup account is vulnerable to hackers and you could even end up with a massive bill!

By the end of this article you’ll know all the steps to take before accessing your AWS cloud account so that you can experiment and learn about AWS. 

The 6 concepts you need to know before trying Serverless

What you need to know before building serverless applications with confidence.

So you’ve been hearing a lot about Serverless? Maybe you’ve started to see some tell-tale signs your app could be broken down into microservices?

Serverless is a really awesome technology in the realms of Cloud Native Software Engineering. But, it can be a bit of a hard concept to get your ahead around if you’re not already familiar with many concepts of serverless.

Serverless computing as a principle is fairly easy to understand. But in order to effectively work with Serverless there are some other concepts that you should know about before you get going. And today we’re going to cover some of these unknown unknowns for working with serverless.

Today we’re going to discuss the following 6 concepts you need to know in order to get going with Serverless: Cloud Provider Knowledge, Microservices, Distributed Systems, Deployments, Monitoring & Observability and Infrastructure as Code.

By the end of this article you should know the main concepts related to serverless and you should be confident in developing your own Serverless application!

Infrastructure as Code: A quick and simple explanation.

And why ALL infrastructure should be in code

One of the most essential topics when you’re a Cloud Native Software Engineer is a concept called Infrastructure as Code. And it’s becoming an even more essential topic with the growth in Cloud Native technology like Serverless as Infrastructure as Code is a key Serverless concept.

Yesterday as I started writing the second part to the series on monolith to Microservice series I realised I couldn’t start the post until I had addressed the essential topic of Infrastructure As Code.

Just like many concepts in technology, infrastructure as code sounds scary. But in reality it’s a simple concept that any software engineer (or would be software engineer) can easily understand. I promise. Once you get over the first few hurdles you’ll wonder why you didn’t explore it sooner.

By the end of this article you will understand what Infrastructure as Code is, why you need it and why you should ALWAYS create infrastructure in code and not manually. 

What is a Cloud Native Software Engineer?

And what it means for a Software Engineers Career.

Knowing just the basics of Software Engineering isn’t enough to thrive in today’s market. Many Software Engineers need to have drastically more knowledge of cloud platforms than they currently do.

Why? That’s today’s question. We’re going to be discussing what a Cloud Native Software Engineer is, why they exist, what their skills are and ultimately what that means for you as a Software Engineer.

By the end of this article you should know exactly what a Cloud Native Software Engineer is and why that matters for your career in Software Engineering.