Whether your a hiring manager, head of HR or recruiter, you are probably looking for a devops expert. These days good ones are not easy to find. The spectrum of tools & technologies is broad. To manage today’s cloud you need a generalist.
Join 33,000 others and follow Sean Hull on twitter @hullsean.
If you’re a devops expert and looking for a job, these are also some essential questions you should have in your pocket. Be able to elaborate on these high level concepts as they’re crucial in todays agile startups.
Check out: 8 questions to ask an aws ec2 expert
1. How do you automate deployments?
A. Get your code in version control (git)
Believe it or not there are small 1 person teams that haven’t done this. But even with those, there’s real benefit. Get on it!
B. Evolve to one script push-button deploy (script)
If deploying new code involves a lot of manual steps, move file here, set config there, set variable, setup S3 bucket, etc, then start scripting. That midnight deploy process should be one master script which includes all the logic.
It’s a process to get there, but keep the goal in sight.
C. Build confidence over many iterations (team process & agile)
As you continue to deploy manually with a master script, you’ll iron out more details, contingencies, and problems. Over time You’ll gain confidence that the script does the job.
D. Employ continuous integration Tools to formalize process (CircleCI, Jenkins)
Now that you’ve formalized your deploy in code, putting these CI tools to use becomes easier. Because they’re custom built for you at this stage!
E. 10 deploys per day (long term goal)
Your longer term goal is 10 deploys a day. After you’ve automated tests, team confidence will grow around developers being able to deploy to production. On smaller teams of 1-5 people this may still be only 10 deploys per week, but still a useful benchmark.
2. What is microservices?
Microservices is about two-pizza teams. Small enough that there’s little beaurocracy. Able to be agile, focus on one business function. Iterate quickly without logjams with other business teams & functions.
Microservices interact with each other through APIs, deploy their own components, and use their own isolated data stores.
Function as a service, Amazon Lambda, or serverless computing enables microservices in a huge way.
3. What is serverless computing?
Serverless computing is a model where servers & infrastructure do not need to be formalized. Only the code is deployed, and the platform, AWS Lambda for example, takes care of instant provisioning of containers & VMs when the code gets called.
Events within the cloud environment, such a file added to S3 bucket, trigger the serverless functions. API Gateway endpoints can also trigger the functions to run.
4. What is containerization?
Containers are like faster deploying VMs. They have all the advantages of an image or snapshot of a server. Why is this useful? Because you can containerize your microservices, so each one does one thing. One has a webserver, with specific version of xyz.
Containers can also help with legacy applications, as you isolate older versions & dependencies that those applications still rely on.
Containers enable developers to setup environments quickly, and be more agile.
5. What is CloudFormation?
CloudFormation, formalizes all of your cloud infrastructure into json files. Want to add an IAM user, S3 bucket, rds database, or EC2 server? Want to configure a VPC, subnet or access control list? All these things can be formalized into cloudformation files.
Once you’ve started down this road, you can checkin your infrastructure definitions into version control, and manage them just like you manage all your other code. Want to do unit tests? Have at it. Now you can test & deploy with more confidence.
Terraform is an extension of CloudFormation with even more power built in.