Wednesday, October 5, 2016

What DevOps Skills are Organizations Looking for?


DevOps is a cultural, philosophical and organic approach toward automating workflow and getting products to market more efficiently and effectively.

DevOps engineers are in top demand right now. According to studies by Gartner, 25 percent of top global 2000 organizations will have adopted DevOps as a mainstream strategy by the end of 2016.

DevOps is both a cultural movement and a philosophy … which can make it difficult to define the specific skill set you need a DevOps team to possess in order to function successfully.

Of course, an excellent way to show fluency in DevOps is by earning a DevOps Institute certificate—for example, DevOps Foundation®.

That being said, there are some “mission-critical” DevOps skills that organizations are searching for pretty universally right now.

1. Experience with infrastructure automation tools and fluency in web languages

Experience with tools such as Ansible, SaltStack, Puppet, Docker, Chef and Windows PowerShell DSC as well as fluency in languages including Ruby, Python, Java and PHP are must-have skills for DevOps pros.

Organizations are searching for DevOps candidates who are highly proficient in many of these tools and languages and open to increasing their competencies further when given the opportunity to do so.

2. Expertise in “soft skills”

DevOps evolved as a way to enhance collaboration across project life cycles and connect front-end and back-end professionals on either side of the software development and operations spectrum.

When software developers and operations staff (system engineers, systems admins, DBAs, etc.) collaborate effectively, communicate honestly and work as a cohesive team, the software development life cycle (SDLC) is streamlined, risk factors are mitigated, and projects are completed and deployed with a minimum of bugs, quality defects and glitches.

In addition, it can be useful for organizations to have DevOps specialists on their team who are comfortable in the role of client consultant, able to interact effectively and build positive business relationships with customers while addressing their needs and wants.

Organizations look for DevOps candidates who are skilled in interpersonal communication, with an arsenal of listening, negotiation, problem-solving and team-building skills at the ready.

3. Familiarity with CI (continuous integration) tools

Continuous integration is a DevOps methodology that continually merges source code updates from all developers on a specific software build, notifying the team of any failures in the process.

This offers a real-time window into the developing software system, allowing immediate and constant engagement of all team members throughout the project lifecycle.

CI tools DevOps candidates should be familiar with include CruiseControl, CruiseControl.NET, Jenkins, Bamboo, Hudson, ThoughtWorks’ Go, Urbancode’s Anthill Pro, Microsoft’s Team Foundation Server and Jetbrains’ Team City.

4. Bonus Skills

Other skills hiring managers are on the lookout for in the DevOps space include:

  • Extensive knowledge of software build cycles
  • Experience deploying code
  • Experience in software architecture
  • Familiarity with application programming
  • Database management
  • System design

Useful experience and certifications include:

  • Project Management
  • Risk Management
  • Scrum Master

The good news is that the industry’s need for DevOps team members with diverse and evolving skill sets is in sync with what DevOps candidates want from their workplace. According to the 2014 State of DevOps Report from Puppet Labs, an atmosphere conducive to learning is a primary component of job satisfaction among DevOps engineers.

How-to Schedule a Build in Jenkins


The format of the ‘Schedule’ textbox is as follows:

MINUTE (0-59), HOUR (0-23), DAY (1-31), MONTH (1-12), DAY OF THE WEEK (0-7)

The letter H, representing the word Hash can be inserted instead of any of the values, it will calculate the parameter based on the hash code of your project name, this is so that if you are building several projects on your build machine at the same time, let’s say midnight each day, they do not all start there build execution at the same time, each project starts its execution at a different minute depending on its hash code. You can also specify the value to be between numbers, i.e. H(0,30) will return the hash code of the project where the possible hashes are 0-30

Examples:

start build daily at 08:30 in the morning, Monday – Fridays:

  • 30 08 * * 1-6

weekday daily build twice a day, at lunchtime 12:00 and midnight 00:00, Sunday to Thursday:

  • 00 0,12 * * 0-5

start build daily in the late afternoon between 4:00 p.m. – 4:59 p.m. or 16:00 -16:59 depending on the projects hash:

  • H 16 * * 1-5

start build at midnight, every Saturday:

  • @midnight

or:

  • 59 23 * * 6

every first of every month between 2:00 a.m. – 02:30 a.m. :

  • H(0,30) 02 01 * *

Friday, September 30, 2016

DevOps Interview Questions

Scripting

1.  What is your favorite scripting language ? Why ?
2.  What are design patterns ?
3.  Describe some scripts you have written/automation you have done/ programs you have written. Justify your choice of scripting language and design patterns.
4.  Can you port the same script to another language ? On another OS ?
5.  How long would it take you to learn another language ?

CI/CD
1.  How would you trace a binary deployment back to the source code ? How would you structure such a build ?
2.  How do you manage dependencies ?
3.  CI can only be used to find compile time errors quickly. True/False. Explain.
4.  How would you structure CD for an app that depends on 3 other apps ?
5.  How do you plan capacity for your CI/CD servers ?
6.  All your built binaries should be checked in to your git/svn for quick deployment and posteriority. True/False. Explain.


OS

1) What is the difference between Linux and Unix ?

2) What's a KVM ?

3) How would you make sure a service starts on an OS of your choice ?

4) Here's a terminal. What flavor of Linux is running ?

5) Write a command to delete all empty file under a directory.

6) Kill all the procs by a particular user without using pkill

7) What is Active Directory ? How do you make a server join a domain ?

Networking
1.  What is the difference between TCP and UDP ?
2.  What is ICMP ? Why should you block it ?
3.  What is IPv6 ? Why should we care ?
4.  In a corporate environment users from London can ping a particular server but users from New York cannot, what steps will you take to troubleshoot the problem ?
5.  What steps are needed to change the hostname on a Linux machine ?
6.  Where is the hostname file on a Windows server ?
7.  How is a hostname resolved on a Linux machine ?
8.  What's a SSL tunnel ?
9.  What's a SDN ?

That's all I can think of right now. I will keep updating these as I think of more questions and topics.


Here are some of them which can be useful - 

1.  What are some examples of how you might scale a write/read-heavy application? Why?
2. Tell me about the worst-run/best-run outage you’ve been a part of. What made it bad/well-run?
3. How would you assess how “deployable” a system is?
How do you know when a deployment is ready? How would you manage that deployment?
4. How would you prepare for a migration from one platform to another?8
5. What is the purpose of a post-mortem meeting?
Do you know how to learn from mistakes? How do you get the most value out of post-mortems?
6. How would you make key aspects of a software system traceable?
7. How do you handle interruptions?
8. How would you deploy software to 5000 systems?
9. What different types of testing need to be carried out on a software system, and what tools would you use to achieve this testing



DevOps Interview Questions
 2016-01-10  1 Comment  DevOps
In this blog post we are going to list potential questions that will be asked during a DevOps interview. The goal of this post is to prepare you for your next DevOps interview.

Software Delivery Questions
·         What is Continuous Integration?
·         What CI tools have you used? Example: Jenkins.
·         What is Continuous Delivery and why is it important?
·         What is Continuous Deployment?
·         Explain the importance of A/B testing and how it relates to software delivery
·         What are your favorite deployment techniques and why? Examples include: 0 downtime,Canary, or Blue/Green deployments.
·         Explain a time when a software release has gone poorly
Source Control Questions
·         What types of source control programs are you comfortable with?
·         What are the benefits of using source control?
·         Describe branching strategies you have used
·         Give an example of a good commit message
Testing Questions
·         Talk about different types of automated testing you have implemented
·         What is the importance of software testing?
·         What testing paradigms do you use, if any?
·         Explain the difference between unit and end to end testing
·         Have you used any testing frameworks? If so, which ones?
Architecture Questions
·         Explain what a RESTful architecture is
·         How would you scale a slow website?
·         Your application just got millions of users overnight, what do you do?
·         What are some ways to increase client-side performance?
·         Can you explain the significance of a primary/replica database architecture?
·         What are some caching strategies you can implement to increase performance?
·         What are the advantages and disadvantages of implementing a Microservices architecture?
·         What is the difference between vertical and horizontal scalability?
General Programming Questions
·         What languages are your most comfortable with?
·         Google is your friend
Database Questions
·         What is the difference between a relational and non-relational database?
·         When do we optimize the database?
·         Can you give some ways to optimize the performance of a database?
·         What does A.C.I.D mean?
·         How can you customize the query plan to increase throughput?
·         Explain how you would do Database Continuous Delivery


Linux Questions
·         How to view running processes in Linux?
·         How do you check server uptime?
·         How do you start/stop services?
·         How do you display the shell’s environment variables?
·         What adding #!/bin/bash at the top of a script do?
·         What does a & after a command do?
·         What does piping commands mean?
·         What distributions have you used on servers?
Security Questions
·         What is the importance of SSL?
·         What is a SQL injection?
·         What is cross-site scripting (XSS)?
·         Why shouldn’t you roll your own crypto?
·         How are passwords stored on databases?
·         What is a Man-in-the-middle attack?
·         How do you safely manage environment variables in a cloud environment?
Cloud Questions
·         Which cloud providers are you familiar with?
·         What are the benefits of using a cloud provider?
·         Have you managed production systems in the past?
Configuration Management Questions
·         Which Configuration Management tools are you most comfortable with? Examples include: Chef, Salt, Puppet, or Ansible.
Container Questions
·         How does Docker improve scalability, distributed computing, and efficiency vs. traditional cloud virtual machines?
·         List some Docker use cases
Fun Questions
·         What new technology would you like to learn?
·         Have you worked on any side projects?
·         Do you contribute to any open source projects?

DevOps Interview Questions

DevOps Interview Questions

1.         What is DevOps and how does it evolve?

2.         What DevOps can do for you?

3.         What is the advantage of DevOps over maven or ant tools?

4.         What are the different DevOps tools present in the market?

5.         Which DevOps tool will you prefer among these?

6.         What is chef, puppet and docker?

7.         What is the advantage of chef over puppet and docker?

8.         What is the advantage of puppet over chef and docker?

9.         What is the advantage of docker?

10.     How DevOps can help in building bridges between Development, QA and Operations teams?

11.     Which scripting language is most significant to learn to become a DevOps engineer?

12.     What all testing required for a successful DevOps project?

13.     What all risks that gets minimized with DevOps?

14.     Suppose there is a bug found in a software that has been already in production and it requires quick fix, will DevOps be helpful in getting it done faster? If yes, how?

15.     How do you access about how 'deployable' a system is?

16.     What is the difference between RAID 1 and RAID 5?

17.     What are the alternatives of init.d in linux?

18.     What roles do QA (Quality Assurance) should play in DevOps according to you?

19.     What long and short term goals a organisation should keep in mind before opting for DevOps?

20.     What testing is necessary to assure a new service is production ready or not?

 Java Guru  12:04 PM 



Docker Interview Questions

What is Docker

Docker is a platform to run each application isolated and securely. Internally it achieves it by using kernel containerization feature.

What is the advantage of Docker over hypervisors?

Docker is light weight and more efficient in terms of resource uses because it uses the host underlying kernel rather than creating its own hypervisor. 

What is Docker Image

Docker Image is the source of the docker container. In other words, docker images are used to create containers. It is possible create multiple isolated containers from a single image.

What is Docker Container

Docker Container is the instantiation of docker image. In other words, it is the run time instance of images. Images are set of files whereas containers is the one who run the image inside isolated.

Difference between Docker Image and container?

Docker container is the runtime instance of docker image.
Docker Image doesnot have a state and its state never changes as it is just set of files whereas docker container has its execution state.




DevOps Interview Questions

Originally published by me in another blog at DevOps Interview Questions and Answers and reproduced here for larger audience.

1.         What is DevOps and how does it evolve?

2.         What DevOps can do for you?

3.         What is the advantage of DevOps over maven or ant tools?

4.         What are the different DevOps tools present in the market?

5.         Which DevOps tool will you prefer among these?

6.         What is chef, puppet and docker?

7.         What is the advantage of chef over puppet and docker?

8.         What is the advantage of puppet over chef and docker?

9.         What is the advantage of docker?

10.     How DevOps can help in building bridges between Development, QA and Operations teams?

11.     Which scripting language is most significant to learn to become a DevOps engineer?

12.     What all testing required for a successful DevOps project?

13.     What all risks that gets minimized with DevOps?

14.     Suppose there is a bug found in a software that has been already in production and it requires quick fix, will DevOps be helpful in getting it done faster? If yes, how?

15.     How do you access about how 'deployable' a system is?

16.     What is the difference between RAID 1 and RAID 5?

17.     What are the alternatives of init.d in linux?

18.     What roles do QA (Quality Assurance) should play in DevOps according to you?

19.     What long and short term goals a organisation should keep in mind before opting for DevOps?

20.     What testing is necessary to assure a new service is production ready or not?




Vagrant Interview Questions

Originally published by me in another blog at Vagrant Interview Questions and reproduced here for larger audience.
1. What is Vagrant ?
2. How Vagrant helps making development environment easy?
3. Can you name some hypervisors on which Vagrant provides wrapper around?
4. Does Vagrant also provides wrapper of dev-ops tools?
5. Which all dev-ops tools does Vagrant provides wrapper over?
6. Does Vagrant supports Docker Containers also?
7. Which server environments Vagrant provides support?
8. What all steps required to configure Vagrant?
9. What are the commands for making Vagrant up and running?
10. What are the benefits of using Vagrant?


Puppet Interview Questions and Answers
1.          What is Puppet?
2.          What is puppet manifest?
3.          What is manifest ordering and its importance?
4.          What is puppet module?
5.          Why Puppet matters to Devops? (Advantage of Puppet over other devops tools)
6.          What is puppet catalog?
7.          Can you describe the puppet module layouts / structure?
8.          What are agent nodes?
9.          What is EPP templates?
10.      What is the use of Puppet DB?
11.      What is the use of filebucket in puppet?
12.      How do you perform dry run? (no-op / noop)
13.      What is virtual resource in puppet?
14.      How can you realize a virtual resource?
15.      Is puppet resource idempotent
16.      What is the purpose of Hiera tools?
17.      Which node is called masterless node?
18.      How can you manage nodes using Node Manager?

What DevOps is?
Ask them how they would communicate a change if no procedures existed?
Ask them which is more important to the success of any DevOps community:
·         How people communicate or the tools that you choose to deploy?
Order the following types of tools in the order they should be deployed when starting a DevOps Practice:
·         Monitoring(Nagios, Zenoss, Etc)
·         Configuration Mgmt(Puppet, Chef, SaltStack,Ansible)
·         Wiki and or a Bug Tracking tool(MediaWiki, Bugzilla,etc)
·         Continuous Integration/Deployment Tools(Jenkins, TravisCi,etc)

Hopefully that's enough to get your thought processes moving...