In order to deliver robust solutions to clients; code must be robust, reliable, scalable, maintainable, and secure. This level of quality only be achieved through building a solid software development process throughout the Software Development Life Cycle (SDLC).
The Benefits of DevOps Methodology
DevOps is the combination of cultural philosophies, practices, and tools that increases an organization’s ability to deliver applications and services at high velocity.
Atlantic BT adopted DevOps methodology because we saw the following benefits, both tangible and intangible, to our ability to deliver quality solutions to our clients:
- Shorter development cycle
- Increased release velocity
- Improved defect detection
- Reduced deployment failures and rollbacks
- Reduced time to recover upon failure
- Increased communication and collaboration
- Improved ability to research and innovate
- Promotion of a performance-oriented culture
How will working with a DevOps partner benefit me?
You can benefit from partnering with a company that follows DevOps practices in the following ways:
- Faster delivery of features
- More stable operating environments
- More time available to add value (rather than fix/maintain existing features)
DevOps Process Chain
Because DevOps is a cultural shift and collaboration between development, operations, and testing; DevOps focuses on process and approach.
Atlantic BT takes the following steps in our DevOps process for software development and delivery:
- Code – Conduct code development and review, version control tools, and code merging
- Build – Implement continuous integration tools and build status
- Test – Test results to measure performance
- Package – Create artifact repository and application pre-deployment staging
- Release (Deploy) – Set up change management, release approvals and release automation
- Configure – Implement infrastructure configuration and management, as well as Infrastructure as Code tools
- Telemetry – Implement application performance monitoring and end user experience measurements
Elements of Atlantic BT’s DevOps Process
Automation with Jenkins
Because automation is an important part of DevOps, your tool set is essential. Atlantic BT’s primary Continuous Integration (CI) tool is Jenkins automation server. Jenkins is an extensible, cross-platform, continuous integration and delivery automation server for open source projects.
Jenkins supports version control systems like Git, making it easier for developers to integrate changes to the project and for users to obtain a fresh build. It also allows us to define build pipelines and integrate with other testing and deployment technologies.
We have a dedicated QA department and include QA time as part of the development plan as a best practice. As a minimum baseline, we evaluate the platform using unit and functional testing.
Our Continuous Integration tools perform the following key test elements:
- Unit Test validation
- Integration Test validation
- Code analysis
- Functional Tests
Once sections of an application have been QA’d through unit and functional tests, automated tests can be developed for ongoing quality assurance.
ABT optimizes cloud architecture for maximum reliability and scalability while maintaining security. We take an infrastructure-as-code approach, scripting all instance builds so they can be automated—and thus reliably replicated—in the production process.
The ability to reliably configure and stand up server instances is critical, as most complex projects require many servers of different configurations at different stages of the project to accommodate development, testing, migration, and production needs. This approach also facilitates Disaster Recovery planning and implementation.
Monitoring, Metrics, and Alerting
Understanding the importance of metrics, we maintain a fully-staffed NOC that monitors key performance parameters and alerts 24/7/365. We take responsibility for monitoring application and infrastructure health, including:
- Application availability and response time
- CPU, Memory and Disk
- Http response codes
- DB Connections
Metrics for applications hosted on Amazon are collected in AWS Cloudwatch; others are determined as appropriate by hosting method.
DevOps and AWS
Atlantic BT’s AWS partnership enables us to fully tap into their set of flexible services, which are designed to empower companies to deliver products using DevOps practices. These services simplify provisioning and managing infrastructure, deploying application code, automating software release processes, and monitoring application and infrastructure performance.
AWS Command Line Interface
As part of using the AWS console, advanced website developers can manage their websites via command line management tools like the AWS Command Line Interface (CLI). CLI is a unified tool to manage AWS services. With just one tool to download and configure, you can control multiple AWS services from the command line and automate them through scripts.
The AWS CLI has over 140 simple file commands for making efficient calls to AWS services.
CI/CD Pipeline on AWS
CI/CD Pipeline on AWS allows you to automate your software delivery process, such as initiating automatic builds and deploying to Amazon EC2 instances. AWS CodePipeline will build, test, and deploy your code every time there is a code change. Use this tool to orchestrate each step in your release process.
Other Amazon Tools
Other Amazon tools we use include:
- Amazon API Gateway: a fully managed service that makes it easy for developers to create, publish, maintain, monitor, and secure APIs at any scale.
- AWS CloudTrail: a web service that records AWS API calls for your account and delivers log files to you.
- AWS CodePipeline: a service that builds, tests, and deploys your code every time there is a code change, based on the release process models you define.
- AWS Identity Access Management: manages access, where you can specify which user can perform which action on a pipeline
- Amazon CloudFront Reports and Analytics: offers a variety of solutions including detailed cache statistics reports, monitoring your CloudFront usage, getting a list of popular objects, and setting near real-time alarms on operational metrics.
Start Implementing DevOps Today
Ultimately, implementing DevOps evolves products faster than organizations using traditional software development and infrastructure management processes. This speed enables organizations to better serve their customers and compete more effectively in the market.
If you’re interested in getting help implementing DevOps or looking for a software development partner that follows best practices, contact us to learn more.