Today we decided to take a look at the situation with a Java and Python developer who was thinking about “immersing” DevOps at the moment when he began to move away from his usual tools in favor of working with Oracle Weblogic and shell scripts. He decided to combine his development experience with new experience in working with processes.
We looked at the basic advice of experts in the field of DevOps on Quora and completed the story with examples from the experience of the 1cloud team. ')
Jonathan Fenochchi (DevOps developer at Bazaarvoice): I really enjoy working in the field of cloud technology and working on the DevOps theme. Often, this term is used to describe system programmers (sometimes also referred to as infrastructure developers, system developers, process (operation) developers, or, in the most inappropriate way, system administrators).
DevOps doesn’t mean it at all, but in the context of career growth, these definitions reflect an understanding of what a "modern" system programmer does.
So, you are a developer and you want to go to work with processes. Here you will find a surprise. The whole point is not to install Arch Linux and start learning Perl. There is a certain place for this kind of things (very small and dark in the most distant corner of our universe), but first let's decide what DevOps is and what it is not.
What does the work in the field of DevOps mean?
- Software development;
- Tool development;
- Infrastructure design;
- Regular problem solving;
- Scaling because it is necessary;
- * Nix;
- Monitorong;
- Virtualization;
- To be in touch when disconnecting electricity at 2 am;
- Maintenance (for example, solving a problem with a virtual host memory leak);
- Flexible development methodology;
- Software release cycles and control;
- Automation, automation and automation again;
- Metrics / reporting (go along with monitoring);
- Development of a plan for using branches and releases of a product for specific WMS (SCM) (git, Mercurial, svn, etc);
- IB;
- Cloud technologies;
- Optimization / fine tuning;
- Testing and measuring the level of load / performance;
- Configuration management (Puppet, Chef, Ansible, etc.);
- Authentication services;
- Package management systems;
- Ability to work with the command line (awk);
- Load balancing / proxying (services, systems, components and processes);
- CI / CIT / CD - continuous integration, integration testing and deployment of new versions (deploy);
- Databases (SQL, NoSQL, no difference);
- Confident knowledge of systems (network stack, hard drives / file systems / system memory / processor).
What NOT means by working in the DevOps area:
- Simplicity (compared to software development);
- No need to program;
- Installing Linux and parting with your favorite OS;
- Much "more interesting" than a software developer;
- Brand new area of work.
You need to do a few things to start positioning yourself as a DevOps developer.
Get an interview at a company that needs DevOps. If you are recruited, you will quickly learn how to work with processes. Very fast. Otherwise, you will be fired. If you are not fired, then you will understand what you lack to reach the level of a full-fledged DevOps developer.
Get work experience using your software development skills to build tools, not software. Explore OpenStack. It is important to understand the difference of components and their importance.
Participate in all processes related to operations: deployment, scaling, and so on. If your team does not do this (for example, they send all to the department working with operations), you need to contact the guys who are involved in the operations and look at the process of several deployments.
Do you need significant experience? I asked this question myself many times. I started with development, and in less than a year working with operations I became a DevOps developer. I did not have any significant algorithmic abilities, but I had a decent development experience. A good developer is good in everything: in writing software, and in its development. It is necessary to understand the complexity of systems and an intuitive understanding of how they all influence each other.
Yaroslav Vorozhko (DevOps developer in Delivery Hero): By and large, DevOps involves a very wide range of knowledge, which is difficult and fun to work with.
This is what my usual work week looks like:
- Deployment (software release and software deployment automation on Fabric and Python);
- Incident management (dealing with emerging issues, writing recovery procedures and monitoring);
- Monitoring in-use software (Icinga, Newrelic, Munin, log management, for example, using Splunk);
- Configuration management (Saltstack, Chef, Puppet and Ansible, the whole stack of services that are necessary for the application to work);
- Writing various scripts (with bash and python, working with awk, sed, grep, sort, uniq, cat, cut, echo, fmt, tr, nl, egrep, fgrep, wc).
We decided to give a couple of examples from the practice of the 1cloud team.So, the back-end developer’s technology stack is: .NET, C #, ASP.NET MVC, Visual Studio, Team Foundation Server.
In terms of API, SDK: Vcloud SDK .NET, vSphere SDK .NET, NetApp Manageability SDK C #.
Incident management is performed using ServiceNow, Zabbix is used for monitoring. Bash, PowerShell is used to work with various scripts. In the future we plan to switch to configuration management using Puppet.
Let's see what the experts on related tasks.
Here is the list of daily tasks of the Microsoft systems administrator:
- Solving user incidents;
- Execution of user requests;
- Work on current projects (setting up servers based on Windows Server to provide clients with services: terminal services, MS SQL and others);
- Change planning (making plans before working on servers - ServiceNow);
- Communication with vendors on problems in working with software;
- Writing scripts to automate the work performed (PowerShell);
- Analysis of events from the monitoring system (SCOM).
Basic responsibilities of an information security manager:
- Monitoring of information security events in the Security System and Event Management System (SIEM) AV USM, in TrendMicro Deep Security, PaloAlto 2050, WAF ModSecurity;
- Management of information security vulnerabilities, internal and external scanning (OpenVAS based on AV USM and Qualys);
- Obtaining FSTEC license for TZKI and FSB "for cryptography" (certification of premises and AWPs, collection and preparation of documents);
- Conducting training of employees on information security issues;
- Incident management (dealing with emerging issues, writing recovery procedures and monitoring).
PS A couple of additional materials about working on our cloud service in Habré: