Skip to content

Commit

Permalink
adding titles back to introduction, what is, sections
Browse files Browse the repository at this point in the history
Signed-off-by: vsoch <vsoch@users.noreply.github.com>
  • Loading branch information
vsoch committed Sep 6, 2021
1 parent 3401820 commit 875c114
Show file tree
Hide file tree
Showing 8 changed files with 9 additions and 5 deletions.
1 change: 1 addition & 0 deletions _includes/paper/introduction.html
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
<h1 id="introduction">Introduction</h1>
<p>Successful development, deployment, and maintenance of research software is central to scientific discovery. In the last decade, the role of Research Software Engineer (RSE) {% cite rse-history %} has risen to awareness, and fostered a community of combined researchers and software developers that focus almost exclusively on this task.</p>
<p>While some RSEs work on research software separate from its application, others are embedded in labs and responsible for data processing, analysis, and otherwise running tasks at scale to produce research outputs. These RSEs, whether they be staff at national labs, academic institutions, or private research institutes, historically have used some form of high performance computing (HPC) to achieve this scale {% cite Wikipedia_contributors2021-kg xsede-history-of-hpc %}.</p>
<p>This traditional practice has slowly been changing with the availability of cloud computing {% cite Scality2020-of %}. As the technological gap between HPC and cloud computing is closing {% cite Guidi2020-ht %}, and the cloud can equally meet the needs of research groups {% cite noauthor_2020-mn %}, Research Software Engineers are presented with the task of working in both spaces. As they discover best practices and tools, there arises the need to write all of this knowledge down. Synthesizing what we know not only identifies what we know, but also what we don’t know and where there are gaps that require attention or work. Arguably, a mature community should have awareness of:</p>
Expand Down
1 change: 1 addition & 0 deletions _includes/paper/what-is-devops.html
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
<h2 id="what-is-devops">What is DevOps?</h2>
<p>A definition of Research Software Engineering Operations (RSE-ops) can best be derived by first explaining the philosophy behind DevOps {% cite aws %} is a term that refers to best practices to bridge development and operations. It was coined in 2008 {% cite devops-paper %}, and has grown out of a web services oriented model. The term has expanded to refer to other subsets of expertise in this area such as cloud security operations, which is called "DevSecOps," adding the "Sec" for "Security." In DevOps, best practices are generally defined around:</p>
<ol>
<li><p>continuous integration: automated integration of code changes into a repository</p></li>
Expand Down
1 change: 1 addition & 0 deletions _includes/paper/what-is-rseops.html
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
<h2 id="what-is-rse-ops">What is Rse-ops?</h2>
<p>The role of Research Software Engineer (RSE) has been emerging in the last decade, and due to the hybrid nature of working environments across cloud, and HPC, DevOps practices are logically being adopted. So if DevOps is the intersection of "Developer" and "Operations," then how does this concept map to this new space, where high performance computing, or more generally, Research Software Engineering is at the forefront?</p>
<p>Inspired by DevOps, we can define a similar term for the Research Software Engineering community to also inspire collaboration and champion best practices – RSE-ops. Research Software Engineers (RSEs) {% cite rse-history %} are those individuals that write code for scientific software, and more generally support researchers to use codes on high performance computing systems, cloud services, and lab computers. Akin to traditional Software Engineers at major tech companies, they are responsible not just for software development, but also for deployment of analysis pipelines and general services. It can be noted that we are not calling the new term RseDevOps (dropping "Dev"), and this is done intentionally as the term "Research Software Engineering" encompasses this "Development" portion. RSE-ops, then, appropriately refers to best practices for ensuring the same reliability, scale, collaboration, and software engineering for research codes. We may not always be running a scaled web service, but we might be running scaled jobs on a manager, profiling performance, or testing software in development.</p>
<p>Thus, RSE-ops is the intersection of Research Software Engineering and Operations, and generally refers to best practices for development and operations of scientific software. Arguably, the RSE community has just as much to gain by building community and putting structure around these practices. It’s important to note that while high performance computing (HPC) has traditionally been a large part of scientific computation, researchers have extended their tools to also use cloud services and other non-HPC tools, so HPC is only considered a subset of Research Software Engineering and thus RSE-ops. Many modern applications are web-based and extend beyond HPC, and so it is important to consider this set as part of the larger scientific or research software engineering universe. However, the dual need to run or deploy application across environments presents greater challenges for the community.</p>
Expand Down
2 changes: 2 additions & 0 deletions src/introduction.tex
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
\section{Introduction}

Successful development, deployment, and maintenance of research software is central to scientific discovery. In the last decade, the role of Research Software Engineer (RSE) \cite{rse-history} has risen to awareness, and fostered a community of combined researchers and software developers that focus almost exclusively on this task.

While some RSEs work on research software separate from its application, others are embedded in labs and responsible for data processing, analysis, and otherwise running tasks at scale to produce research outputs. These RSEs, whether they be staff at national labs, academic institutions, or private research institutes, historically have used some form of high performance computing (HPC) to achieve this scale \cite{Wikipedia_contributors2021-kg, xsede-history-of-hpc}.
Expand Down
5 changes: 0 additions & 5 deletions src/main.tex
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,8 @@

\section{Abstract}
\input{abstract}

\section{Introduction}
\input{introduction}

\subsection{What is DevOps?}
\input{what-is-devops}
\subsection{What is RSE-ops?}
\input{what-is-rseops}

\input{comparison}
Expand Down
Binary file modified src/rse-ops.pdf
Binary file not shown.
2 changes: 2 additions & 0 deletions src/what-is-devops.tex
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
\subsection{What is DevOps?}

A definition of Research Software Engineering Operations (RSE-ops) can best be derived by first explaining the philosophy behind DevOps \cite{aws} is a term that refers to best practices to bridge development and operations. It was coined in 2008 \cite{devops-paper}, and has grown out of a web services oriented model. The term has expanded to refer to other subsets of expertise in this area such as cloud security operations, which is called "DevSecOps," adding the "Sec" for "Security." In DevOps, best practices are generally defined around:

\begin{enumerate}
Expand Down
2 changes: 2 additions & 0 deletions src/what-is-rseops.tex
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
\subsection{What is Rse-ops?}

The role of Research Software Engineer (RSE) has been emerging in the last decade, and due to the hybrid nature of working environments across cloud, and HPC, DevOps practices are logically being adopted. So if DevOps is the intersection of "Developer" and "Operations," then how does this concept map to this new space, where high performance computing, or more generally, Research Software Engineering is at the forefront?

Inspired by DevOps, we can define a similar term for the Research Software Engineering community to also inspire collaboration and champion best practices -- RSE-ops. Research Software Engineers (RSEs) \cite{rse-history} are those individuals that write code for scientific software, and more generally support researchers to use codes on high performance computing systems, cloud services, and lab computers.
Expand Down

0 comments on commit 875c114

Please sign in to comment.