You are on page 1of 5

1. What is Devops?

How would you promote devops in you workplace, company or working


environment? State a couple of real life examples to illustrate the importance of devops.

Intro to Devops

In simple terms, Devops means Development and Operations, which is not again limited to these
parts. In traditional working management, a developer would develop certain software, and after
the complete development was sent further to the testing team. The team would then test it and
send further to another team for quality check, release and so on. So, the software had to be passed
to various teams for approval and then finally the product was released in the market. These all
created havoc at management processes as it was time taking and so the devops came in picture
where, the same software was developed using tools that increased an organization’s ability to
deliver applications and services at high velocity: evolving and improving products at a faster pace.
This enabled organizations to better serve their customers and compete more effectively in the
market.

Importance of Devops

So there were times where we used the traditional way of completing the required work. We used
the agile method of working on the use cases and then passing onto the next level for further
production platform and finally rolling out to the client’s system. I will illustrate this with an
example: I am working on chatbot development particularly with various tools of PLM where we
automate the entire PLM tool on a chatbot platform. In short…instead of performing the operations
by going inside the tool, we automate it through a bot, where the inputs are passed to the bot in
the form of chat session, the processing is done at backend and the output displayed on the chat UI.
So we develop the code , functionalities and pass to a set of team who test it out, check the entire
bugs, everything and finally rolls out. But, from past one year, the same development team develops
and carries out the operations, testing to find out the results and is sent directly for the production.
In this operation we have a tool which works as a testing platform to find out how the operation will
take place if we release it to production. So its not an external devops tool found in the market but
tool developed by us. The tool simply takes all the inputs require to run a particular use case and
process the output giving the details of time taken, type of inputs supplied, formatting, error etc. So
whatever use case we develop first we test that on this tool and if succeeded, we conclude that the
same will work on the UI. After all this is done, If there is any rework or changes to be done to
existing rolled out software, the same code is changed according to requirement, processed out and
sent to production. So basically it is not only the tool which saves our time in completing the work,
but the team where both development and operations team are merged together and work
simultaneously in sync to complete the required work. So, by doing this we are able to complete our
work before the scheduled time with maximum efficiency.

Apart from this, the work what we do does not only consist of writing the code, testing on tool and
rolling for production. But, there is certain organizational policy such as IQMS where the quality of
work, code design and different technical functionalities need to be determined. This is completely
different and is carried by the manager of the project where they give a final evaluation on what we
have done. By analysing the importance of bot development and operation teams merging their
work together reduced the time to complete the work which initially was passed through a number
of phases. This certainly shows the importance of devops reduces our work level, makes it easy.

2. What are the different facets of Devops? Which part is the most important in Devops? Also
state your view on how each facets of Devops link with the development cycle of an application?

→ I think the facets which are applicable to agile are also applicable to Devops. Those are:

1. Values and Principles –values and principles are the core aspects to any Agile methods and
practices; these are equally applicable to DevOps. It extends these values and principles from
development to encompass systems and operations as well. That is why DevOps can be thought of
the extension to Lean and Agile (rather should be considered the next generation of Agile), which
fills the gap that couldn’t be addressed by any Agile methods or frameworks. Requirement phase of
any application starts from here. The base to which we start our work is somewhere connected to
the values and principles that are set.

2. Culture and Mindset – DevOps also needs to expand cultural and mindset changes among the
systems and operations teams. The DevOps cultural movement is rooted in people. Organizations
cannot effectively utilize even the most efficient processes and tools without people's collaboration
and support. The operations team needs to become part of the development team from the
beginning of the project and similarly, developers and testers need to collaborate to with,
production, deployment, and support. Operational silos and management barriers across
departments and functions need to be broken. For the successful adoption and transition to DevOps,
organizations need to create a favorable culture in order to change people’s thinking and allow them
to move out of their comfort zones, so as to accept the changes. So the devops not only merges the
development and operation team but the mindset of both the team should be in the same direction.

3. Methods and Practices –DevOps need continuation and expansion of Agile methods and practices
being followed to the systems and operations teams in order to achieve infrastructure provisioning
and automation, continuous monitoring, and support applications in production environment.
DevOps extends the organization’s entire release chain through continuous delivery, with
collaboration and communication among Dev, QA, and Ops for continuous development, continuous
integration, continuous testing, continuous release, and continuous deployment. Even continuous
monitoring helps to determine service or application availability and failure causes in order to
proactively anticipate and apply learning through continuous improvement. One of the important
facet of devops where the methods that we are using in the application leads to the goal and
completion.

4. Tools and Technologies Devops practices can be performed with effective use of tools and
technologies for Continuous Integration, Build, Continuous Release and Deployment, and continuous
testing through effective automation. DevOps also needs effective application and investment in
tools and technologies for automated environment provisioning, continuous monitoring, fault
remediation etc. Organizations can easily build and support multiple business-critical applications
maintaining quality and scaling up-time and abilities with the effective use of technologies without
dependencies to people originally involved. Tools and technologies enable people to focus on high-
value creative work while delegating routine, repeatable, and predictable tasks to automation. Tools
and technologies highly play an important role in shaping the application. So half of the application’s
life is determined by this facet.

3. Explain various well known tools used for devops and it's purpose with relevant examples?

→ Some of the widely used tools in devops are: Jenkin, Docker, Github, ElasticSearch etc.

a) Elastic Search is the widely used tool to analyse the logs. It collects logs from all services,
applications, networks, tools, servers, and more in an environment into a single, centralized location
for processing and analysis. We use it for analytical purposes (e.g., to troubleshoot problems,
monitor services, and reduce the time it takes to solve operational issues). Another use for this tool
is for security and auditing (e.g., to monitor changes in security groups and changes in permissions).
After receiving alerts on these issues, it is easy to act on unauthorized users and activities.

b) Git is probably the most common source management tool available today. After running Git
internally for a short period of time, I realized that we were better suited with GitHub. In addition to
its great forking and pull request features, GitHub also has plugins that can connect with with my
program for testing purpose. One of my favourite and widely used tool in my project as it directly
connects the node modules in a nodejs program. So, it helps me in analysing and finding out the
important the modules required to run the code and also saves my time as I find the functions very
easy to configure and so continuously integrate with my remaining code.

c) Jenkin is optimized for easy customization. We have configured Jenkins to build code, create
Docker containers (see the next item), run tons of tests, and push to staging/production. It’s a great
tool, but there are some issues regarding scaling and performance which I don’t like sometimes.

d) Docker is used mostly in production for most services. It eases configuration management,
control issues, and scaling by allowing containers to be moved from one place to another. I have not
used docker but have heard of it a lot. I know that when Jenkin and docker together takes significant
time the amount of code to build.

On above these devops tools, I have been using github and elastic search provided by aws for most
of my projects. I use nodejs programming language in the project. So github helps me in analysing
the modules and dependencies required to run the module. It gives us modifications in the functions
so that code can be interfaced with. It helps me in saving time for code building session. Similary,
once the code is deployed, I am able to track the logs, services, monitor problems on AWS elastic
service which is again important tool in identify the statistic of tool. So the regular continuous
information about the tool is given by elastic search which gives immense information about the
future integration and changes to be done.
GCP(Google Cloud) is another platform similar to elastic search where the tracking of logs are easy to
handle as the same gets reflected on cloud once the code is deployed. So these are tools that are
very specific to what I use in my project.

4. What are your views on automation? What role it plays in an organization and how important is
it for a Devops engineer? What are the languages or tools you prefer to automate? State some
examples and experience of how you automated a task or problem, doesn't have to complicated,
can be simple.

Automation:

It is obvious that the way development of work is being done nowadays is quite different than what
we used to do it in traditional engineering. I absolutely agree that automation or automating any
part of work helps in making our life easier. In fact, Devops helps in automating many processes that
have traditionally been done manually, freeing up developers to do more valuable, strategic work.

Importance:

In TCS, Automation was thought to be one of the criterion while analysing the requirement phase
itself. Any developer should ensure that the tool/software should not have any human interference
and should work with the click of a button. The world is changing at a very rapid manner and even
people prefer automation in every single event. So, it is really important for an devops engineer to
first understand to reduce the human intervention in a particular tool that they are developing. If
the projects are more automated and are higher efficient of getting controlled by machine/code
itself , the client would also want to invest more for other project. This helps the organisation to
move forward. So this is all being done by devops engineer or tools which directly/indirectly are a
part of organization goals.

Tools/languages

1. The first language that comes in my mind is Javascript/Nodejs. The internet already runs on
JavaScript. (Well, JavaScript and HTML.) Many of the most popular frameworks and libraries are
written in JavaScript, from Angular to React and Node. Sever-side implementations aren’t the only
thing this language has to offer. After all, what would DevOps be without Node, npm, or Angular?. I
have been automating using nodejs for all my applications both on frontend and backend
development.

2. C/C++ is a basic portable assembly language. So this is another powerful tool which helps in
establishing communication with our machine(1 and 0). As mentioned, I work with different PLM
tools. So there is a tool called Teamcenter runs on entirely C/C++. So we have some exposed APIs
which we need to code in C/C++ to create an exe and thus finally interface with Nodejs language. So,
20 percent of my project involves this language.

3. Python is on the way up as an all-purpose language. Python easily reduces maintenance problems
with monitoring and deployment tools like GCP,AWS, Azure and IBM. Options like OpenStack give
developers the resources to create private and public cloud infrastructure. I know python at very low
level. But I was involved in a project where I had to use python to deploy my code on IBM Cloud
which made me the importance of the language for a devops engineer.

Examples:

I work with NLP(Natural Language Processing) in my chatbot. So NLP is provided by Google, IBM ,
Azure and AWS. We need to create intents on the respective clouds so that chat interaction is easy
to identify and simulate. Creating intents is a manual process and time taking where the intent
name, utterances and response needs to be provided. So in case one wants to create multiple
intents has to go through the whole process every time. It is time taking process. So we automated
this process of creating the multiple intents in single shot. All the intents to be created along with
Intent Name, Utterances and Response are written to the text file in a particular format. We wrote a
code which will take the text file as an input with the fields from text file and help in creating the
intent using the exposed APIs. So 1000 intents were able to create at one go. The manual process
would take a couple of days to do so.

5. Why do you want to be a Devops engineer? What do you expect from our company if you join
as a Devops engineer?

→ I think a person having developer background will have had deeper experience in the tools that
developers are using—and can leverage their knowledge to make things more efficient. In short,
every organization wants to follow the rule of bringing their product to the market at faster pace. If
we follow the traditional method, we may bring hiccups in completing the project. Devops is only
the replacement for agile method which can enhance our project in less time. It is sure that the
future is full of automation in every field and there is definite requirement of developers who
understand both the development work along with operation background. I think I understand the
working of devops and the importance of a devop engineers. Moreover my learning through the
current project gives me enough exposure about the devops language and tools which makes me
beneficial as a devops engineer.

If I join the company, I would expect upgrading my skills or technologies, tools with the new ones
which I may not have worked on. My objective would be to add digital technologies in every
field/project as required. I think digital technologies are one of the frameworks in automating a
product. The company would give me enough opportunities to showcase my skills to what I have
done till now.

You might also like