DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones AWS Cloud
by AWS Developer Relations
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones
AWS Cloud
by AWS Developer Relations
11 Monitoring and Observability Tools for 2023
Learn more
  1. DZone
  2. Testing, Deployment, and Maintenance
  3. DevOps and CI/CD
  4. Hot Shot 007 – Decent DevOps Defined [Podcast]

Hot Shot 007 – Decent DevOps Defined [Podcast]

One platform engineer shares his definition of good DevOps: a combination of certain software development and system administration skills.

Peter Pilgrim user avatar by
Peter Pilgrim
CORE ·
Jul. 23, 18 · Opinion
Like (1)
Save
Tweet
Share
4.64K Views

Join the DZone community and get the full member experience.

Join For Free

Hello there, once again, and welcome to another hot shot. My name is Peter Pilgrim, Platform engineer and DevOps specialist, and Java Champion.

What is a definition of decent DevOps? Here is a simple explanation. It is a combination of software development skills with that of a system administrator.

If you know how to program and very well, then you are similar to me, then your approach to DevOps is closer to that of a tactical and top flight software engineer.

You most likely have been programming application software almost all of your life. You can write decent quality and productive programs, impressive ones to boot. You possess creative skills, you already know plenty of programming languages from experiences. You might be efficient in high-level programming on the JVM such as the mother of them all, Java. You already might have an alternative language under your belt, such as Groovy, Scala and even Clojure. If it is not the JVM, then you have experience of native programming such as C / C++ from way back in the day. In the modern terms, you might have developed using GO or RUST. If you have no JVM experience, then you might have come into this from the Microsoft community with C#, Dot Net and if you are truly hipster, you might have Ruby experience.

(These notes are a little bit more off the cuff than usual — my apologies)

System administration is to ensure that all related computer systems and services keep working, available for use by the business (a system can be a website, it can be a persistent store, LDAP and a suite of core applications).

A system administrator, or sysadmin, is a person responsible to maintain and operate a computer system or network for a business. The role of a system administrator can vary a lot from one organization to another. For example, inside one organization, such as a forward-looking financial institution, you might be looking about AWS and PaaS solution. In another organization, such as a utility energy business, you may only have to deal with a traditional RDBMS and Java application servers.

In the old school way of thinking, classic System administrators are usually charged with installing, supporting, and maintaining servers or other computer systems, and planning for and responding to service outages and other problems. In the new school of thinking, especially with the cloud computing, system admins are heavily involved in automation features, monitoring and eventually site reliability.

System administrators share programming duties with their classic software engineering folk. Practically, every system administrator knows how to program. They know how to test code (whether test-driven or not). Other duties may include scripting or light programming, project management for systems-related projects, supervising or training computer operators, and being the equivalent of a handyman for computer problems beyond the knowledge of technical support staff.

I didn't have an operational background, but throughout my career, I had to dig under the hood of the computer, to install databases, install and understand operating systems, such as Linux, various distributions such as SuSE, Red Hat and Ubuntu. I even stuck the CD ROM into machines into install Solaris. I learned the first thing about continuous integration by configuring Jenkins, web server management, application servers, database management, bug trackers, setting up fundamental security for users and learning to program using scripting languages. (*Skipped* ad-libbed at the beginning).

So modern DevOps encompasses both software engineering and system administration ideas. These are reasons why people and businesses are into DevOps:

  • Reduce the communication gap between engineering and administration.
  • Avoid Unicorn businesses with silos
  • Become proactive rather than reactive (especially if one adds Security to DevOps)
  • Improve code quality
  • Generate production code with very little downtime
  • Share knowledge and competency between individual

Notice that I say very little about productivity in the above bullet items. This is because, DevOps if organized and executed with the correct procedure, attitude and organizational freedom ought to provide better visibility, transparency, enhanced feedback and human teamwork. The road to DevOps can be mudded severely through corporate misunderstanding, cultural organization, and other economic factors. DevOps is easier to "install" in a new young company, division, or department. It is far harder to provide the function is organizations with legacy technology dependencies and waterfall software development process and methodology.

From the business point of view, they are already might understand two concepts: SLO and SLI.

SLO - service level objective - this specifies the SMART goals that define business application reliability. These objective define the minimum requirement for business operations to function in order to do the productive work. It might be building the next fleet of cars in a manufacturing or it could be how many foreign exchange payments will be processed in the month of May, next year. These are achievable goals and not vague and so the idea that I want my website up and running for 24/7/365 is simply not good enough for an SLI.

SLI - service level indicator - this specifies the ways technical, business related to how we can measure through metrics that we are reaching the SLO. These are definite, clear and concise, periodic and reliability measurements that demonstrate how the business application is hitting its set goals. So this means that we have indicators from various analytical tools, prefer dynamic over static, that humans can digest in real time. I am glossing a bit over automatic scaling of cloud runtime instances, but there is no point is having auto-scaling if you can understand the measurement data that you are reading. If you cannot intercept, don't do it.

This is, for me, the high-level view of what is Developer Operations. It is about building application build pipelines, providing and securely manage in-house and third-party artifact or assembly dependencies, managing persistence datastores, short term and long term (like data laike), it is about providing functionality to monitor applications, analyse the data going in and out of the applications, lifecycle and payload and of course the best is saved for last, the biggest and important one, security protecting user's data GPDR, and commmercial data.

DevOps and platform engineering are essentially about building an automated pipeline that allows implementation of business logic and ideas to be coded and then deployed to production. Some people will want to throw the C word "continuous" in that last sentence, however, I recommend strongly that you crawl before you walk, you walk before you run.

I think that I will stop here. Bye for now.

DevOps Software development application Continuous Integration/Deployment

Published at DZone with permission of Peter Pilgrim, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • DeveloperWeek 2023: The Enterprise Community Sharing Security Best Practices
  • UUID: Coordination-Free Unique Keys
  • What Is APIOps? How to Be Successful at It
  • How to Engineer Your Technical Debt Response

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: