We have adopted best-in-class DevOps practices and processes to enable an Agile team to move faster, produce better quality code, coordinate between different stakeholders, and deliver value to our clients.

In software development what matters most today is quick feedback cycles and flawless deliveries, meeting the customer's requirements. Releasing working software early on to the customer often reduces the gap between understanding the customers' value and how developers interpret it.

By enabling faster feedback in testing and integrating code, developers can find problems sooner and can react quicker. This enables them to correct any errors in their code while they still have it in recent memory, increasing their productivity. Less context switching between development tasks is needed as feedback gets faster.

For us, adopting DevOps has helped increase quality, productivity, and customer satisfaction, and these processes are part of our standard operating procedure for all our engagements.

Devops Top Diagram

Continuous Integration (CI) and Continuous Delivery (CD)

Our CI/CD processes enable developers to frequently integrate their code with codes of other team members. This gives them multiple advantages:

  • Revision Control

    With a constantly updated code base, breakages are caught early and awareness of overall project development leads to better quality and faster development. Our CI/CD pipelines are configured to integrate and work seamlessly with SVN, Git and TFS.

  • Build Automation

    Build automation allows teams to build software from source code automatically. Our CI/CD pipelines build for all our technology stacks including C#, Python, PHP, Java, Scala, Swift, and Objective C. Jenkins, at the core of our CI/CD, enables us to trigger builds at check-in and nightly modes.

  • Deployment Automation

    With technologies like Docker containerization, teams can clone any environment within minutes. Our primary tool for automated deployments is Ansible, which is a great agentless tool. For MS stack we have configured the TFS CI/CD system to deploy to Azure.

Continuous Testing (CT)

  • With automation of tests with our Continuous Testing (CT) DevOps process, the monotony of running regression suites is negated, and overnight testing serves results fresh in morning.

  • We follow IFSQ (Institute for Software Quality) Level 3 and SonarQube under our DevOps process. This covers most of the items while any remaining ones are addressed manually during unit testing. We use Selenium for web/API testing & Selenium with Appium for mobile testing. Jenkins orchestrates the execution and even gives screenshots of failed test cases.

  • Notify Developers Diagram
    • Whenever a developer checks-in the code, the CI server fetches the latest codebase and subjects it to static code analysis. There are generic rules applicable to all projects of a particular technology. Additional rules are configured, depending on the project requirements.
    • Next, the CI server invokes automated test cases after every build. These are written for an automated testing framework developed within Net Solutions atop Selenium framework.
    • The CI server also invokes security scanning for all web projects. We use Zed Attack Proxy (ZAP) within Docker containers, to scan for all vulnerabilities according to OWASP guidelines.
    • The results of static code analysis, automated testing and ZAP scanning, are available on a dashboard for the teams. The summary of all tests is emailed to the CTO, individual scrum masters and heads of technology owners for review and further action.
    • In addition Net Solutions has an exhaustive manual project audit checklist which is initiated regularly, and no project is ever released without the audit and resolution of all findings.

Continuous Monitoring (CM)

  • Our DevOps processes round up with our certified DevOps team bringing their expertise of logging, monitoring, and maintaining the infrastructure running your application with world class best practices and workflows.

  • Net Solutions Continuous Monitoring processes follow a 5-step iterative process.

  • Continuous Monitoring diagram
  • Define Risks

    ‚ÄčThe DevOps team works with technical leads and quality assurance leads of individual projects to understand and identify potential fail points and attack vectors for an application.

  • Identify Controls

    Based on the risk assessment, the team identifies various controls that would allow immediate indications of any failure or breach of either systems or security.

  • Implement Monitoring

    Each of the controls identified to act as the beacon for an alert is configured to provide necessary alerts and metrics for monitoring the health and status of the application and its infrastructure.

  • Collect & Report

    The reports and alerts generated from active monitoring are collected, collated, and reports generated. Based on business requirements, these are reported further.

  • Automated Remediation

    Active continuous monitoring and alerts are configured to trigger automated steps to remediate critical failures and security issues, from standard automated provisioning to security lockdowns.

Inward Monitoring

  • The application infrastructure focused continuous monitoring is based on the same systems, frameworks, and controls used for our inward monitoring of our entire DevOps pipeline including CI/CD/CT tooling. Our certified DevOps team is alerted of any anomalies in real-time and these are worked on immediately to provide an industry-leading monitoring services uptime.

We had a great experience with Net Solutions and would readily recommend it to our friends and colleagues who are building start-ups. The team was resilient and worked effectively with our agile/parallel sprints methodology. The programmers were very good, project management was very efficient and QC team was thorough. Our experience with designing was also great.

Bernd Strenitz
Bernd Strenitz Founders, at Cheetah LLC