DevOps as a Service

In today’s highly competitive market, businesses aim to launch new products faster and with better quality. Product development teams aspire to continuously deploy new features and fix operational issues quickly to keep systems running 24/7. To answer to call and to help enterprises improve software release quality, We leverage leading innovations in software engineering via our DevOps practice.

DevOps facilitates rapid deployment so that releases are in sync with the velocity of customer requirements. As a result, DevOps practices and tools allow the enterprise to spend less time on the mechanics of testing, deploying and releasing software, and focusing instead on building and updating software deliveries and new functionality.

DevOps Lifecycle

Increased cooperation and communication between development teams and operations lead to a shorter lifecycle with strong feedback loop.

DevOps Practice

Analysis

This phase is focused of understanding the value of implementing DevOps within the specific enterprise environment:
  • Identify system waste - the main points of failure and waste
  • Identify business value from DevOps
  • Build and agree on the operating strategy
  • Secure management commitment

Fast application delivery

Continuous delivery
The a capability to deliver changes to production at any time:
  • Automate application deployment/delivery using configuration management frameworks
  • Prepare different environments (development, test, quality assurance, production)
Measure DevOps success
In this stage, Bell Integrator works with the enterprise to define and measure the value of DevOps.. Measurement of current processes if often a first step in considering the following:
  • Deployment frequency
  • Change fail rates
  • Mean time to recover (MTTR)
  • Lead time for changes
  • Time to Market

Automation

Infrastructure automation
Automate almost every routine administrative task, use scripting, configuration and system management tools:
  • Deploy configuration management tool(s)
  • Write automation scripts and templates under version control for deployment
  • Automate infrastructure deployment (OS, infrastructure services)
Agile development
This phase enacts quick delivery of applications. It is assumed that SCRUM on Kanban methodologies are implemented:
  • Implement a version control system
  • Deploy a suitable project management environment
  • Implement short release cycles
  • Kanban/Scrum
Continuous involvement of Ops
DevOps assumes increasing collaboration between Developer and the Operations teams. For instance, Operations providse feedback to Developers on software functionality to address aspects like infrastructure scalability, performance, or adapt resource requirements. To do so, the DevOps process involves:
  • Sharing project details among teams
  • Implement feedback capabilitiesEnsure that Operations is made part of the Development team and process
Test/Build automation
This is the test automation phase and focuses on building continuous integration and testing processes. The scope of this phase involves examining the automation potential of every current, manual application test that is conducted by the enterprise:
  • Unit, integration and compliance test automation
  • Build automation (different environments)
  • UI test automation
  • Performance test automation
  • Implement code review system

Transformation

Application transformation
New applications should provide high availability and scalability to work well within cloud environments. Bell Integrator recommends:
  • Scaling-Out applications instead of Scaling them up
  • Service oriented application (micro-services)
  • HA on application layer (not on infrastructure)
Cloud adaption
This involves whether to build a private cloud or leverage an existing public cloud provider, and to migrate infrastructure and/or applications to cloud. The cloud allows the enterprise to use orchestration systems and centralized management of infrastructure/applications:
  • Migration to cloud
  • Implementation of Cloud management systems
  • Application catalogs
  • Self-service portal
  • Using cloud resources to build infrastructure and applications
Continuous deployment
  • Automation of infrastructure deployment
  • Automation of application deployment

DevOps Tools

Here are the tools that we either use or recommend:

Operating Systems

  • Linux (RHEL, CentOS,Ubuntu, Debian)
  • Unix (Solaris, AIX,HP/UX, etc.)
  • Windows
  • Mac OS X
  • FreeBSD

Infrastructure as a Service

  • Amazon Web Services
  • Rackspace
  • Azure
  • OpenStack

Platform as a Service

  • OpenShift
  • Cloud Foundry
  • Apcera

Virtualization Platforms

  • VMware
  • KVM
  • Xen
  • VirtualBox
  • Vagrant
  • Hyper-V

Containerization Tools

  • LXC
  • Solaris Containers
  • Docker

Linux OS Installation

  • Kickstart
  • Cobbler
  • AutoYAST
  • Spacewalk/Katello/Satellite
  • Fai

Configuration Management

  • Puppet / MCollective
  • Chef
  • Ansible
  • CFEngine
  • SaltStack
  • RANCID
  • Ubuntu Juju

Test and Build Systems

  • Solano
  • Jenkins
  • Maven
  • Ant
  • Gradle
  • TeamCity
  • Bamboo

Application Deployment

  • Capistrano

Application Servers

  • JBoss
  • Tomcat
  • Jetty
  • Glassfish
  • Websphere
  • Weblogic

Queues, Caches, etc.

  • ActiveMQ
  • RabbitMQ
  • Qpid
  • memcache
  • varnish
  • squid

Databases

  • Percona Server
  • MySQL
  • MariaDB
  • PostgreSQL
  • OpenLDAP
  • MongoDB
  • Cassandra
  • Redis
  • Oracle
  • MS SQL

Monitoring, Alerting, and Trending

  • Zabbix
  • New Relic
  • Nagios
  • Icinga
  • Graphite
  • Ganglia
  • Cacti
  • PagerDuty
  • Sensu

Logging

  • PaperTrail
  • Logstash
  • Loggly
  • Logentries
  • Splunk
  • SumoLogic

Process Supervisors

  • Monit
  • runit
  • Supervisor
  • god
  • Blue Pill
  • Upstart
  • systemd

Security

  • Snorby Threat Stack
  • Tripwire
  • Snort
  • SELinux

Miscellaneous Tools

  • Multihost SSH Wrapper
  • Code Climate
  • iPerf
  • lldpd

Web Servers

  • nginx
  • Apache
  • IIS

Key Features

  • Compliance Services
    DevOps tools and practices establish compliance through consistency. In addition, the automation capabilities of DevOps tools enable consistent, automated execution of compliant practices.
    • Automating - give insight on any “holes” from things that do not work (or work well).
    • Transparency - offering your entire enterprise visibility or “read only” access to your entire DevOps tooling suite has a profound impact on the transparency of change.
    • Аutomated build tool shows the number of attempts that finally resulted in this last version of the application. Also you could evaluate how many builds and deployments took place in development before traverse the remainder of the software development life cycle.
    • Аutomated deployment tool allows to trace the number of environments this version of the app was deployed into for testing and how long the overall process took to get something moved from development to production.
  • Deployment
    Focus around what normally would refer to as ALM is now more accurately described as Continuous Delivery. The change from ALM to Continuous Delivery includes three basic principles:
    • The software is always deployable which means you prioritize keeping the software deployable over adding new features.
    • A feedback loop of the build, test and deploy steps expose the readiness of the software allowing anyone from development, test or production to determine that an immediate release of the software to any environment can be approved.
    • Automation of the build, test and deploy process is critical in order for the process to be repeatable and to support a higher frequency of builds, deploys and test cycles.
      Continuous Delivery principles support keeping the software in a deployable state, with a visible feedback loop to determine the readiness of the software, software can be confidently moved into any environment at any time.
  • Configuration Management
    Configuration management helps you in describing your infrastructure with code, by bringing your servers and services to life. Since your infrastructure is controlled and managed with code, it can be automated, tested and reproduced with efficiency and ease.
    • Manage servers by writing recipes.
    • Integrate tightly with applications, databases and more.
    • Configure applications that require knowledge about your entire infrastructure
    • Create perfect clones of QA environments, pre-production environments, partner preview environments and more We automate the applications configuration, deployment and management throughout your network regardless of its size, even if you’re operating in the cloud, on-premises or on hybrid.

Benefits

  • Faster time to market: Companies that adapt DevOps practices deploy 30x more frequently than their competition
  • Reduced costs: Automated delivery reduces labor costs associated with testing, deploying and releasing
  • Improved quality: Rapid and frequent deployment makes it easier to detect and fix code defects
  • Higher agility: DevOps empowers businesses to quickly respond to market demand