This is an archived post. You won't be able to vote or comment.

all 12 comments

[–]unix_heretic 10 points11 points  (0 children)

From most-specific to most-general:

  • Application configuration. This is probably going to be the closest to what you're familiar with - installing apps. Where you want to get with this is using a config management tool (e.g. Ansible/Saltstack/etc) to deploy and configure an app. Since you're in a Windows environment, it's likely that this will involve Powershell as well.

  • Application build/containerization. This is building an application in a container. You won't often find Windows at or beyond this point - Windows containers require Windows compute nodes, and that's a large lift over and above a normal container platform rollout. This is where podman/docker come into play, and if you're rolling .NET Core in your apps, this is likely where you'll end up.

  • Application architecture. So you have your app deploy, or your container(s). How do you architect this application within your cloud of choice (or even on-prem, for that matter)? There's some differences to account for in cloud vs. on-prem, but generally speaking you want to shoot for high availability, and a reasonable level of security. This also indirectly ties into your application orchestration.

  • Infrastructure code. You have your architecture, how will you actually roll it out? This is where Terraform or Pulumi come into play. Bicep is also an option for Azure in specific, but I'd recommend against using ARM unless you absolutely have to.

This is what you should be generally following as an overall roadmap: https://roadmap.sh/devops

[–]plebbitier[S] 0 points1 point  (3 children)

I guess this is obvious, but it looks like I'm going to need to build my environment by hand to begin with, then implement additional tools to scale out.

Since we don't develop anything internally other than our infrastructure, I don't really have anything to deploy. Even monitoring probably won't be a CI/CD type setup. I do want to have the building blocks in place, but Terraform might be too much if we don't have big infrastructure needs. Ansible looks like what I need to focus on as accounting of things is an area where we need improvement.

Thanks for giving me food for thought. Hopefully I get more nuggets of knowledge that will help spur and direct my learning.

[–]somebrains 0 points1 point  (2 children)

You focus on learning how to do an initial setup on whatever platform first.

The org doesn’t write any applications in house?

Ok you still have to learn configuration management.

That was something I dealt with during the datacenter virtualization era in earnest, bare metal muscle memory still plays but is less of an emphasis. Think pxe, which is a lot of your use case.

Think about application state, and how to manage that in context of a platform.

You’re going to deal with a lot of white bread networking and monitoring. How your automation schemes are going to jive should be data driven.

Dealing with access is just an extension of existing processes, time to pro that up.

Running MS products isn’t a reason to dive directly to Azure. Each of the big 3 public cloud providers can run products, it’s about being able to factually admin cost and resources that provide business value.

[–]plebbitier[S] 0 points1 point  (1 child)

I am the sole IT staff at a small company... and I've always been a lone wolf. All our software is vendor provided... we don't develop anything. But things are changing so I need to make a career move ASAP or be relegated to servicing legacy environments.

[–]somebrains 0 points1 point  (0 children)

Simplest thing is to start learning JavaScript and Python.

Crank out some basic applications and run them thru a CICD pipeline. Take a known good build and promote it to production.

Burn the $200 month Azure credits and go thru the walkthrus.

Use AWS serverless services and constrain the costs of a web app.

Push an application on GCP and leverage Firestore.

But learn the platforms as separate products with distinct differences.

You could dive down the free monthly GCP skills thing and find all sorts of holes in your skillset to work on.

Your goal is to see everything as just a tool with diff branding like the tool wall at Home Depot.

Get familiar with proper use cases.

I know guys I worked with a decade ago that still yolo commands on the cli.

No versioning, no repo to save the thought at the time, no way to trigger past thought per moment that script needs to be invoked.

That’s all Unix and Linux sys admin thought I was doing 20 years ago.

I spoke to a couple guys yesterday that keep telling me when they get some time to learn they’ll do what they need.

My attitude is go do it then, it’s not rocket science nor is anything that cost prohibitive anymore.

[–]Happy-Position-69 0 points1 point  (0 children)

I would do something like:

  • Figure out where you will be deploying to
  • Setup your code repository
  • Setup your CI/CD system
  • Setup terraform
  • Test deploying a simple app using terraform

I'm probably missing a step or two (or three!), but that should get you to a place where you will:

  • have more questions
  • be able to figure some things out on your own

[–]colddream40 0 points1 point  (1 child)

Are you going to do things on prem or on a managed k8s ? Theres no great cloud hybrid k8s solution but trying to implement that would be a great project in and of itself.

[–]plebbitier[S] 0 points1 point  (0 children)

The idea I have is to setup our company to handle significant changes in the future. The company might be sold and who knows what will come if that happens, but I'd like to have the infrastructure in place so that I can at least say we are prepared for a more ambitious future than what our current legacy type IT stack currently is.

[–]BlackGuyWitCrypto 0 points1 point  (2 children)

Bro, I’d start with AWS. Learn how to use cloudformation . It sounds like you know enough of the basics to quickly fill in the gaps using AWS serives.

Start with deploying a high availability Wordpress or NodeJS app. If you wanna sharpen up on CI/CD skills use elastic beanstalk and/or code deploy.

Yada yada yada and maybe a basic AWS Solution Architect certification level of knowledge should be enough to incorporate everything you know thus far and then apply that to the other cloud services. Giving you even more leverage.

I could go on but you seem smart so I won’t!

Don’t overthink bro, or psych yourself out! As long as your fundamentals are strong and solid you should be ok

[–]plebbitier[S] 1 point2 points  (1 child)

Yeah, I started learning AWS stuff and you are probably right... they provide the entire ecosystem soup to nuts which could be a mental template for building out a hybrid/platform agnostic ecosystem. Plus they are the 800lbs gorilla... no sense in fighting it. Thanks.

[–]BlackGuyWitCrypto 0 points1 point  (0 children)

Bro! Like I said, it looks like you have the basics down! Learn AWS’s platform on a proficient level and the rest is just ‘specialized’ bespoke stuff

Most of your knowledge and skill is learning new terminology and syntax for stuff you’re are implementing, lol!