Achieve Continuous Delivery with DevOps
New feature delivery is highly valued in times when some SaaS applications get upgraded on a frequent basis. This paradigm shift towards the Continuous Delivery (CD) DevOps engine requires a greater emphasis on orchestration, using automation processes for the delivery of software updates. Continuous Delivery has evolved the DevOps practice into a sophisticated art form – merging several IT disciplines including networking, compute, storage, virtualization, data, security, monitoring, configuration, upgrades and high-availability. Zymr’s DevOps Orchestration service starts by mapping out the desired cloud environment. Next, we help companies build out a Jenkins-based Continuous Integration (CI) environment. We excel at automated testing, and help qualify builds coming out of the CI environment, after which the qualified software is packaged for validation in staging environments using tools like Docker, Kubernetes or virtual machine binaries. The relevant packages are then pushed into the cloud environment using cloud DevOps orchestration tools like Python, Chef, Puppet, Boto3, etc. Zymr has deep experience in public clouds like Amazon AWS, Google GCE and Microsoft Azure. We have also built and supported private cloud deployment using OpenStack, VMware, etc. We are an active member of the Docker Partner program, and use container technologies for both development and production environments.
Our Continuous Delivery Practice
Continuous Delivery Planning
Companies that leverage the Continuous Delivery pipeline strategy for their cloud applications can expect to increase stability, reduce complexity, and increase the agility of their software development processes. A Continuous Delivery (CD) DevOps engine can be built using Continuous Integration (CI) strategy that leverages automated build processes, using tools like Jenkins, and cleansing them through automated test environments, using tools like Robot, PyTest, Selenium, Appium, Protractor, Karma, etc. While CI automation is prefered, it is not a prerequisite for CD automation. Continuous Delivery planning starts with mapping the goals of the cloud application, especially scalability, data security, performance, availability and costs. Use of public, private or hybrid cloud deployments can be planned based on many of these criteria. The result from this phase is a solid Continuous Delivery DevOps orchestration plan, and spikes to choose the right toolchain and processes.
Continuous Delivery Orchestration
Once a plan is in place, great emphasis should be placed on Continuous Delivery Orchestration. Decisions should be made early to figure out if containers, like Docker, should be used. If so, it is wise to start using Docker as early as possible, in dev and test environments, and developing automated processes for software builds and software unit/system testing. Jenkins has become the de facto standard for CI automation. The automated CI environment can now be extended for CD Orchestration. Once specific builds have passed automated tests, they are qualified to be pushed to QA, Staging or Production environments. Docker based containers make it easy to manage the lifecycle of micro-changes to production environments with greater agility and flexibility.
Continuous Delivery Monitoring
Once the CI/CD processes are automated, the focus shifts to ensuring that the production environment is continuously monitored. By design, we instrument your code as early as possible. Instrumentation for system logs, security logs, usability logs, etc. can be helpful in production environments. Logs can be collected using tools like ElasticSearch-LogStash-Kibana (ELK) stack or commercial log services like Splunk. We monitor services deployed in public clouds using Amazon, Google or Microsoft cloud monitoring services, along with using third-party cloud services like ServiceNow, NewRelic and others, to monitor continuous service delivery.