What is DevOps? (what is this buzzword really?)

What DevOps is not

it is not a team or role

It is not about having an internal third party setup where you ask a “DevOps” team for systems administration stuff because your project team does not know how.

What are signs that DevOps is not implemented?

you “handover” a lot of tasks (it’s much more evident if you actually use the word “handover” during task transactions, and NO changing the term to a synonym still won’t hide the fact that you are not practicing DevOps

What DevOps is

it is a discipline, a mindset, a way of working.
It is a paradigm you can use to view how you define workflows/roles/responsibilities within your software development teams

DevOps is about equipping your self-organizing project team with the skills and tools to fulfill their role of delivering value to the customer from product conceptualization, development, deployment, and continuously ensuring that the customer is getting the value all the time.

What about tooling?

Of course there is a baseline of skills/tooling that is required for a team to be able to work the “DevOps” way.
The team needs to have

  • mastery on Cloud Service Providers (AWS, GCP, Azure)
  • mastery on Linux Operating Systems
  • mastery on the Application Tech Stack e.g. php+mysql+nginx, javascript+react+node, react+python+flask
  • mastery on automation tools e.g. Automation using scripts like bash or python, Configuration Management tools like Ansible, Cloud Resource Provisioning tool like Terraform or Cloudformation
  • mastery on Automated Testing, understanding and implementation of linters,unit tests tools, UI test tools, Performance monitoring tools for the application tech stack.
  • mastery on Systems Design like Microservices, Autoscaling and Loadbalancing etc.

These skills/tools need not to be on a single person (and it should not).
Having these masteries singled-out to a single person is a sure fire way to achieve a very low BUS FACTOR

What can I do to achieve DevOps within my project team?

  • either find people who has the right DevOps mindset or find open-minded people within your team to study the discipline.
    • be sure to avoid dogmatic people at this phase, some people pretend they know it but act otherwise.
    • this role could be the DevOps evangelist within the team, much like the role of a Scrum Master in a team following the Scrum Framework of Agile Methodology
    • the DevOps Evangelist shall then train the other members of the project team to grow their Server Administration skills.
  • find people with high mastery on tools/skills listed above or grow multiple people within your team.

The right Mindset is crucial before you slap on the technical skills,

Here’s what a sample Self Organizing Development Team could look like

  • Developer (90% programming, 10% systems administration)
  • Developer (50% programming, 50% systems administration)
  • Developer (30% programming, 70% systems administration)
  • Product Designer(s)
  • UI|UX Designer(s)
  • Quality Assurance (Automated)
  • Quality Assurance (Manual, for Exploratory testing)

Notice that there is no “DevOps” role, just a bunch of programmers who know their shit up to production.
Programmers like these won’t be the types that tell you “But It works on my machine!” or “It aint my problem” or just get blocked whenever they see an error in production.
They have higher skills since they know how the application behaves in production and thus, are able to create better applications.

Other References

DevOps as defined by atlassian

This very popular DevOps skillset roadmap from github (kamranahmedse/developer-roadmap)

DevOps as explained by an Openshift Evangelist

$100 Free DigitalOcean Credits (Start your Systems Administration Journey Here)

the cheapest server available at $5/month has the ff: specifications

  • 1 CPU
  • 1 GB RAM
  • 25 GB SSD

this is more than enough to host a simple web application!
and with $100? you can host that server for free for 20months!

Digital Ocean is one of the most popular Infrastructure-as-a-Service (Iaas) Provider out there.

Yes Amazon Web Services is still bigger but Digital Ocean’s beauty is in its simplicity.
For someone who is just starting on hosting web servers on the cloud, Digital Ocean’s Intuitive Dashboard makes it easy to discover the tools and services you didn’t think you need.
I myself started dabbling with cloud webservers using Digital Ocean so I really recommend it!

Register a new Account here to get $100 FREE Credits

What can $100 get you at digital ocean?

the cheapest server available at $5/month has the ff: specifications

  • 1 CPU
  • 1 GB RAM
  • 25 GB SSD

this is more than enough to host a simple web application!
and with $100? you can host that server for free for 20months!

Learning Resources

DigitalOcean also provides very good tutorials for common services you might need to setup/install.
Whenever I need a guide for ubuntu or something, this is still my go-to place to look for easy to follow tutorials.

https://www.digitalocean.com/community/tutorials

One-click Apps!

single click buttons to deploy a server with preinstalled software!

I hope this post has show how easy it can be to start your Server Administration Career with Digital Ocean.

Register your account now and start playing with it today and good luck!