In today’s dynamic marketplace, a key survival tip for any organization is to be able to deliver software solutions faster and more reliably while maintaining quality. A well-implemented DevOps toolchain does help tip the scales to your favor. Your competitors and their competitors are already using one, but they are making a big mistake. One you will not if you follow through.
Most businesses do not realize that it is not enough to just implement a few DevOps practices. DevOps is a whole system in which different processes are supported by tools working in a connected chain to deliver projects on time and at a lower cost. This is what will make the difference between your successful business and average performance.
This post will share our experience in implementing fully-enabled DevOps toolchains that support clients to achieve and surpass business objectives. In case you already believe that your organization needs a DevOps toolchain but are not sure where to start, you can fast-forward. Our DevOps engineers are available to discuss the next steps with you.
WHAT IS A DEVOPS TOOLCHAIN?
Before diving in the deep, we need to clarify what exactly is a DevOps toolchain and how it does its magic. In short, it is a series of various tools that are used to solve a particular business challenge. Each tool fulfills a specific task or function. They are connected in a chain to ensure a productive cycle between front-end, back-end, quality testers, and clients. The end goal is to automate the development and deployment processes. This will ensure rapid, reliable, and budget-friendly delivery of innovative solutions. Building an effective DevOps toolchain is not an easy task and takes experimentation and continuous refinement to ensure that critical processes are effectively automated.
WHY DO YOU NEED A DEVOPS TOOLCHAIN?
Nothing explains it better than this quote from IBM: “The collective power of a toolchain is greater than the sum of its individual tool integrations.” A fully-enabled DevOps toolchain will automate the technical element, get the different teams on the same page, and let you focus on the business strategy to drive your organization into the future. We have five more good reasons which can help you convince the decision-makers to implement DevOps toolchains:
1. Faster and more efficient product deployments
The DevOps tools automate most of the software development process. This results in agile delivery of innovative products and solutions that leave the business far ahead of the competition.
2. Budget and time optimization
Automating previously manual tasks also ensures that your organization saves time and resources. Once there are no additional costs incurred due to natural human errors or less than optimal time management, the budget will also be optimized.
3. Efficient development
DevOps toolchain makes the development process more efficient by removing the unnecessary delay between the different aspects of development work. The work of front-end, back-end, and quality testers is synchronized and no one in the team waits for the other to deliver so they can take over.
4. Higher quality with faster deployment
DevOps toolchain guarantees that defects are resolved quickly and skillfully to assure the best quality with a faster deployment process. How? It enables the generation of targeted alerts that notify your team of major incidents. This allows you to proactively stop potential problems from escalating and damaging your customer service.
5. Timely Incident management
A DevOps toolchain will help you further refine your incident management record. It does that by identifying IT incidents and escalating them specifically towards the right team members and following through till the issues are resolved. This will mean that messages are received loud and clear and acted upon quicker, than if they were sent to all teams.
How did we implement DevOps toolchains for our clients?
Our team is not new to everything DevOps related. We have long supported leading enterprises and disruptive companies from around the world prepare for the digital future with the right mix of agile methodologies and process automation.
What we have come to believe is that DevOps is a must for every future proof organization, and the various available tools are the essentials that support its proper implementation. In our experience, with the increase of application complexity, the need for automation increases. That is 100% valid for our enterprise clients where updates need to be made two to three times per day. Manual deployment of them would mean more time and human resources, less efficiency, higher costs, and missed business opportunities.
DevOps toolchain changes the whole game. It helps speed up the application development process through testing, build, and deployment, and alongside assures that innovations are released faster. When helping a client implement DevOps processes and toolchains, we also work closely to assure the smooth transition of systems and to avoid process interruptions. Curious to know more? Below we share a few projects with clients ranging from big enterprises to SMEs:
AWS DevOps Deployment
The client is the leading entertainment company in South Africa that offers television and online video services to a customer base of 14 million people across 50 countries.
The team was involved with the maintenance and optimization of its AWS account. Some of the services in the different account environments such as development, user acceptance testing (UAT), quality assurance (QA), etc. run 24/7, though they were not used all the time.
This made the whole account management quite inefficient and causes additional costs. The client initiated a survey to pinpoint the exact timeframes during which certain applications were used by staff in the different countries where it operates. Alongside that, the team implemented an in-depth technical audit of the whole AWS account. It produced a comprehensive report with monthly and yearly cost comparisons, and predictions of future expenses in case of reorganization and optimization of the account. Based on the findings Accedia developed a plan for efficient structuring of the resources according to usage and cost.
A major part of it included the automatic start and stop of resources which were not used at certain times. If performed manually, this would have increased the costs of the client, instead of decreasing them. Thus, the team created an automation document and used DevOps toolchain to implement it. As the client had already been using AWS services, it was highly recommended to also use the enterprise’s DevOps tools. This way project costs were kept at a minimum, deployment was faster and business processes could run without interruptions.
The project was guided by AWS Systems Manager document (SSM document) and Maintenance Windows that specify which resources need to be shut down and during what time frames. In source/version control DevOps phase, every time a change was made to the documents, it got uploaded to CDK build specifications file through AWS CodeCommit.
Then in continuous integration, the team used AWS CodePipeline to run tests on every new commit to the repository (new start/stop time or a new application, and new account in which the application to be deployed). Once tests were run successfully, AWS CodeBuild started the delivery and deployment phases. In the end, AWS CloudFormation stack is updated with the newest changes to build specifications.
How did the implementation of a DevOps toolchain support the client in achieving objectives? The automation of previously manual tasks concerning the AWS account, saved time for strategic actions that won the client new business opportunities. Through optimization of the account usage, Accedia also helped the client reduce incurred costs by an average of 15,000 dollars per month.
Accedia still works with them on optimizing their usage of cloud services by other vendors.
DevOps enabled through Jenkins
The project mentioned above used AWS DevOps tools. To dissolve the impression that DevOps has to be performed only with enterprise tools, we share with you a project that involved Jenkins and other popular frameworks.
The client supports the digital transformation of the international Finance industry with innovative tailored solutions. The project included the development of a mobile factoring solution that links all participants in a transaction –Seller, Buyer, and their Bank/Factor. The client wanted to make the whole experience more user-friendly by dynamically responding to user feedback and reducing the downtime to a minimum. Thus, Accedia proposed to automate the app maintenance and deployment of new features. This was where DevOps played a part.
First, the team wrote automated tests that identified immediately any changes to the initial version of the application (source control/version control DevOps phase). Once the new version was ready, the code got committed to Gitlab and automatically started Jenkins Build.
In continuous integration, the new code version was tested with Chai and Mocha to check whether it operated correctly. In case the tests were passed successfully, the continuous delivery phase started automatically and created a ready to use Docker image in Nexus. Then, in the continuous development phase, the new version of the application was downloaded from Nexus and deployed to a live environment – Docker containers. In short, each time someone made a new commit in the repository, the app package got automatically updated and delivered to clients.
How did this automation process support the client’s goals? It guaranteed less user hassle and decreased manual input. The system also had proficient incident-control that ensured rapid deployment, but not at the expense of quality. It was quite dynamic in responding to user feedback, meaning that new functions, as well as updates of old ones, were released at half the time, while the downtime was reduced to the minimum.
All in ALL…
A fully-enabled and properly implemented DevOps toolchain can propel your innovation initiatives from start to end and assure their prompt deployment. It will take off the burden of the technical details and lets you focus on strategy to take your business to the next level. Learn how we can help you maintain quality, save on time, and shave thousands off software delivery automation costs!
Note: This piece is written in collaboration with Vladimir Vladimirov, Senior Software Consultant at Accedia with extensive experience in CI/CD, DevOps processes, and automating software delivery in Amazon Web Services.