DevOps at Onix is responsible for the infrastructure for web projects.
Most often, a DevOps engineer is part of the development team. In this case, it has the main tasks:
At the beginning of a new project, the client can form the following types of tasks:
At the beginning of the work, we determine the priorities of the client. What they can be.
Having identified priorities and tasks, depending on the time priorities, we plan the work.
On the existed project we start our work to collect the information.
In the next step, we prepare the plan for changes and optimizations on how to upgrade the infrastructure, fix the problems without downtime, and continue to develop the project.
There are several different types of secrets on the project.
We support the principle that everyone in the project has access to a minimum of access, which is enough to handle it.
All accesses are issued in person, everyone in the team is responsible for their access to resources.
All the access stored in a separate folder in Google Docs and shared with the client.
There are different secret variables for the different environments. For example database access, SMS gateway, s3 buckets, mailing list, access to third-party services API, and more.
In an environment for developers, all this data is available for rapid development.
In the production, most of the changes are not available to developers. Some of them generated automatically and stored only inside an environment, the other available only for the support team.
To have real-time information on how a project works we are using different monitoring systems. In base cases, we can use an AWS system like CloudWatch.
When we need more information and the ability to have a custom configuration we are using zabbix server, adding custom rules for notification and all responsible people in the project get notifications depends on rules. For example CPU loading, server or DB loading, the amount of traffic, and others.
Now we have the case that is suitable for most of our clients is NewRelic https://newrelic.com/. New Relic is a California-based technology company which develops cloud-based software to help website and application owners track the performances of their services. Thay have free plan for small companies https://newrelic.com/pricing.
Our DevOps team supports the movement Infrastructure as code. All our processes must be repetitive. To manage infrastructure we writing a code, store it in the repository (ansible, terraform). This provides us the ability to use scripts again and again and reduce manual operations.