You might be new to the tech industry – or maybe you’ve been working in data centers for a while – but you decided it’s finally time to start you cloud career. What now?
Should you get certified?
There is a long debate in our forum about whether or not you should pursue certification as part of your cloud career roadmap. Some think that, in one hand, holding a certification doesn’t show content knowledge in itself, but in the other, it shows eagerness to learn. It’s true that certifications are no substitute to hands-on experience, but the goal of achieving one might be a great way to motivate yourself to learn a new skill.
Keep in mind, that a certification may not make your resume shine brighter than others, but it might be a requirement for the role. Watch out, though. Having too many certifications publicly, in an email signature or LinkedIn, might come off as bragging!
Once you decide to pursue a certification, you’ll have countless hours of study ahead of you. The question now is, should you do training in person or online? With some parts of the world slowly going back to business as usual (as much as possible), in person learning is now, once again, a possibility. Which one works best for you? This topic, also previously discussed by Skycrafters, is a really hot one! Let’s go over the pros and cons of each.
- Being able to playback content faster or slower depending on familiarity with the topic
- Easier, since it can be done from anywhere
- Sometimes, free
- Easy to have your mind wandering to something else (after all, your Slack and phone are right there!)
- The loneliness of not having someone to discuss the coursework with on a daily basis
- Closeness to other people to exchange ideas and thoughts
- A live instructor to consult with in real time
- Harder to deal with boring topics/classes
- Usually more expensive
So, which one is the best? This is a totally personal choice based on how you value each of the bullet points above. I’d personally pick in person training anytime, because I get easily distrac… Sorry, I was checking my phone. Where were we again?
Vendor lock-in in the Cloud
Cloud computing is great, there is no denying that. As someone that is learning a new technology, especially if you are aiming at a particular certification, it’s easy to get 100% focused on just one Cloud Service Provider for a while, like AWS for instance. If you ever need to switch and learn more about Azure, it’s not that hard to pivot from one to the other. After all, the overall concepts are so similar that even Azure itself provides a really nice guide on how their services compare to AWS’.
The dream of cloud-agnostic
However, the story isn’t as simple as providers like to paint. Vendor lock-in is a true challenge that the Skycrafters community has been discussing, and many consider a pipe dream. A dream because, a truly cloud-agnostic environment, would be able to run on any vendor environment, or even local. That allows the organization to pursue lower costs, whenever that is available from a competing vendor, but also a “get out of jail card” in case your current vendor becomes a competitor with a brand new service release. It’s a dream, however, because it can be expensive – in different ways – to run such a workload. If you try to escape using Amazon SQS, for instance, you might want to leverage open-source solutions like RabbitMQ. But now, you need to deploy and maintain a new stack of infra service that isn’t directly delivering value to your customers. Cloud computing is all about taking the most of the Shared Responsibility Model, and running your own infrastructure services isn’t the way to maximize it.
Kubernetes to the rescue?
Kubernetes is viewed as a way to minimize vendor lock in through its open architecture. It can take servers, no matter if running on AWS, Azure, GCP, on premises, etc., and transform them in computing capacity for this big cluster running spread across all of them. But it isn’t a bed of roses either, according to those that have experience on it. Running it yourself can be really painful, and exactly why most providers also offer their own flavor of Kubernetes-as-a-Service. But wouldn’t using it make you go back to the lock in stage? Don’t use it just because it’s a hot topic, as many do. If you ever learn and use it, make sure it makes sense to your challenge.
The goal here is to make clear you understand you shouldn’t create a vendor–lock-in situation for yourself. Make sure you don’t just understand how to use your provider of choice services, but also the reasoning behind it and its concepts.
Infrastructure as Code
Now that you dominated all the cloud knowledge you were seeking and learned all the cool stuff that your cloud provider of choice has to offer, you also need to learn that you rarely are going to use its dashboard to build anything for real. The dashboard is great for labs, tests, demos or to learn something new, but not for production environment. Production environment requires predictability, agility, consistency, minimization of risk and reproducibility. If you try a thousand times to create a simple S3 bucket in AWS via its dashboard, it’s almost guaranteed that you are going to make a mistake at least once and, even if you nailed it, it would take you a lot of time. Hence, Infrastructure as Code(IaC).
IaC is a way to describe your infrastructure as, you guessed it, code. As much as software is defined in lines of code, so is the infrastructure. You can write code that can define a thousand different S3 buckets and, as you execute it, you would reliable and quickly have a thousand buckets. No mistakes made.
To give you an better idea on what an IaC would look like, here’s a quick example:
Resources: S3Bucket: Type: 'AWS::S3::Bucket' Properties: BucketName: MY-REALLY-COOL-BUCKET
As our members previously discussed, there are a lot of different IaC flavors, some native, some open-source, some multi-cloud. To name a few that you might want to check out, we have:
- CloudFormation – AWS Native and YAML/JSON based
- Azure Resource Manager(ARM) – Azure native and it has its own DSL (Domain-Specific Language)
- Terraform – Open-source, multi-cloud and it uses its own DSL
- CDK – Newer AWS native offering that is open-source and you can code using your favorite programming language
- Bicep– Newer Azure native offering that is open-source and has its own DSL
- Pulumi – New open-source offering, that is multi-cloud and can code using your favorite programming language
And since IaC is easily replicable, you can take your time to build one really well crafted and documented template and reuse it across your projects, organization, and even publicly share with other members of the community! Which brings us to…
Best practices in the cloud
This is another great topic our members are discussing. Building confidently in the cloud can be challenging. Often, we use a technology and find out later that we could have been using it better. There are hundreds of different ways to build in the cloud using the providers’ services. And, despite the default configuration for many of them being “good enough”, “good enough” often times doesn’t cut it.
That’s exactly why many providers offer their set of best practices, usually called Well Architected Framework, or WAF for short. Taking AWS as example here, their WAF is divided in five pillars: Cost Optimization, Operational Excellence, Security, Performance and Reliability. Each pillar has their own set of white papers that explain thoroughly how to achieve the state-of-the-art usage of their services, while understanding the balance between the five pillars.
As it can take a while to build well-architected architectures for your projects, the combination of WAF with IaC is really powerful. Whenever you write your own IaC templates that build well-architected architectures, you can reuse them across your applications, saving time and bringing your environment to the forefront of what the cloud providers can offer.
Hybrid cloud is a really hot topic right next to multi-cloud that our community is debating. First, let’s take NIST’s definition for it:
The cloud infrastructure is a composition of two or more distinct cloud infrastructures (private, community, or public) that remain unique entities, but are bound together by standardized or proprietary technology that enables data and application portability (e.g., cloud bursting for load balancing between clouds).
Although NIST’s cloud computing definition is taken as the de facto way to describe it, the hybrid cloud approach is mostly used when there is a combination of one or more public providers and a private cloud to support an organization IT needs.
This is particularly interesting for organizations that have restrictions on how they process certain types of data, like banks. This allows them to leverage the public cloud to easily and cheaply scale as needed while maintaining the costumer’s data local to their data center.
It’s important to note, however, that being able to pull this kind of scenario off is really challenging, since it can be particularly hard to separate the data access through Identity Access Management across clouds. Also, dedicated links between the provider data center and your organization can be necessary because of the latency introduced by internet access, and they can be quite expensive.
Complement your studies with Podcasts
You probably can’t spend the entire day studying. At some point you are going to find yourself doing something manual and boring that doesn’t take much of your brain energy. Riding the subway or driving a car to the office (remember those?) is a good example, but it might also be cleaning your place or mowing your lawn. This is the perfect time to expand your cloud skills by listening to a good podcast. Our members have compiled a good set of podcasts that I’m happy to share with you here:
- Screaming in the Cloud, by Corey Quinn
- The Idealcast with Gene Kim
- Talking Serverless, by Ryan Jones
- The New Stack Makers, by The New Stack
- Mik + One, by Dr. Mik Kersten
- Girls In Tech podcast
- Cloud Security Podcast
Keep in mind that not all of them are necessarily cloud related, but they might help you develop other skills and ares of expertise to help you in your cloud career. After all, technical ins’t binary and the cloud space isn’t just for those in the far–right spectrum of it.
Cloud computing can get challenging really quickly, but it can also be exciting and fun. Especially, when you have a number of peers to work and innovate with. It doesn’t matter if you are a seasoned cloud practitioner, or if you are just starting out, Skycrafters can be a place for you to network, find answers quickly and bounce ideas off other members while learning in the process.
Skycrafters is home of great curated content, amazing open-source code to use or contribute to, and a safe place where I hope you can grow your cloud career and skills.
What are you waiting for? Skycrafters is 100% free, no gimmicks, and joining it can be a stepping stone for your cloud career and those around you.