A dive into DevOps

Today, in a world where software and internet have radically transformed the society and its industries, the software has become a key concept of business and organizations. Most of the companies interact with customers through online services and applications and also use software for daily activities, as part of logistics, operations and communications.

To meet the new customer needs, most IT market organizations have changed their way of designing, developing, and deploying their software products.

So we have witnessed the birth of a new concept: the DevOps methodology.

But what exactly is DevOps, and what are its benefits?

Contrary to common sense, DevOps is not just about tools, frameworks, and automation.

It’s a combination of principles, practices, and tools that, if adopted within a company, improves its ability to manage and deploy applications and services for its customers.

Thanks to the DevOps model, development and operation teams are no longer separated, but instead collaborate and communicate from the early stages of the project to achieve common goals.

And which are these goals? To provide the customer what he wants; to be prepared to provide it whenever he needs, and to ensure fast updates, keeping high the quality of the delivered product.

DevOps breaks down the barrier which sees the development team only responsible for the writing of the code, and the operations team tied just to the deployment, after the testing phase.

The operations team gains an active role within the development phases themselves, influencing product planning and being aware of its features. Likewise, the development team is concerned about assisting the operations team in case of any problems.

To complete, they rely on automation and innovative tools, which not only help to carry out activities that normally require the intervention of other business units, but which improve the predictability of releases by reducing the manual interventions needed to bring the product into the release phase. The keywords become Continuous Integration (CI) and Continuous Delivery (CD).

By improving the speed the company moves to, you are able to serve customers more efficiently, better adapting to the market changes and compete more aggressively with them.

By increasing the frequency of releases, you can also improve products faster, quickly fix bugs, and release new features to respond promptly to customer needs.

By increasing the frequency of releases, you can also improve products faster, quickly fix bugs, and release new features to respond promptly to customer needs. All this can only lead to a positive feedback: the customer is satisfied and remains loyal to the organization.

How does Spindox fit into DevOps?

For infrastructure provisioning and configuration, we use Ansible; as a Continuous Integration (CI) and Continuous Delivery (CD) solution, we adopt Jenkins.

As regards the concept of microservices, Docker and Kubernetes provide the winning pair to create resilient, scalable and highly available services. The orchestration of these services in production is entrusted to Rancher, an open-source platform designed to manage containerized applications on any kind of cloud, both public and private.

As AWS partners, we implement continuous delivery through CodePipeline and CodeBuild services, integrating them with the SNS notification service. For the orchestration of Docker containers, we rely on Amazon ECS and ECR, and for a totally automated infrastructure management, we use AWS Lambda.