Monday, April 2, 2018

DevOps Transformation strategy approach- Devops Automation Framework

DevOps 2018
Automation Framework
DevOps automation framework is a blueprint that allows all of the team to collaboratively, from product owners to QA, service delivery and more, to successfully deliver software, obtain feedback and respond quickly instance process.

Refer previous articles before continue to read


DevOps consists of key pillars Plan and Measure, Develop and Test, Release and Deploy, and Monitor and Optimize, in order to drive the Devops Automation Framework, its majorly consisted with SCM integration, Continuous integration, Continuous deployment and Continuous monitoring processes

This framework will lead the process in stage by stage to easily travel in entire SDLC process.

This DevOps automation framework is a blueprint that allows all of the team to collaboratively, from product owners to QA, service delivery and more, to successfully deliver software, obtain feedback and respond quickly instance process.

Developer: Application owner has check-In their changes in source repository for every release. 

Source Code Management(SCM): SCM has maintain the source code versioning control for all the releases. Once the latest code has merged in to release branch at Source code repository, automatic trigger will intimate to CI tool for initiating the automated build process.

Continuous Integration (CI) : is the process of automating the build and testing of code every time a team member commits changes to version control. 
CI encourages developers to share their code and unit tests by merging their changes into a shared version control repository after every small task completion. 
Committing code triggers an automated build system to grab the latest code from the shared repository and to build, test, and validate the full master branch.

CI tool has itegrating with below sequence order that managing the automated processes as follows

Code compilation: Code compilation will verify the syntax error whether occurred in release code branch. After the successful compilation its moving to initiate the unit test. 

Unit Test: Automated Unit test will be initiated in early stage to verify the minimum functional test. After the successful ran over the unit test cases, it will initiating for code coverage.

Code Coverage: Automated code coverage will be initiated on the release code, that to verifying a measurement of how many lines/blocks/arcs of the code are executed while the automated tests are running. After its initiating to Static Code Analysis.

Static Code Analysis: Automated Static analysis will be initiated (also known as static code analysis, source code analysis, static program analysis) for verification activity in which source code is analyzed for quality, safety, and security. 
This analysis enables software developers and testers to identify and diagnose various types of bugs/errors such as overflows, divide by zero, memory and pointer errors, run-time errors, and other issues.
Metrics produced by static code analysis provide a means by which software quality can be measured and improved. In contrast to other verification techniques, static analysis is automated, and can therefore be done without executing the program or developing test cases.

Build Packaging: Automatic build process will be initiated, and ready to deploying for various stage. 

After the above process has successed, it will initiating the deployment process, incase any failure happened any of the above mentioned stage, build process will be stoped and automated notification send to application owners.

Confluence Entry: Artifacts version, date and time, size of the build will be maintained in confluence entry for maintain the release details. 

Artifact Repository: Artifacts physical versions has archived managed in Repository.

Publish to Deployment Tool : Once got the proper approval from authorized team, Deployment tool will publish the artifacts for release.

Continuous delivery (CD) is a software engineering approach in which teams produce software in short cycles, ensuring that the software can be reliably released at any time. It aims at building, testing, and releasing software faster and more frequently.
Automated Deployment process has integrating with following environments Development, System Integration Test(SIT), Business Acceptance Test (BAT),  Production. 
Based on the prior approval from the management team, automated deployment process will be initiated to respective environments. 

Mail notification will be send to management team for both success and failure case.

Continuous Monitoring (CM) : Automated monitoring process will be included with Continuous integration tool for analyzing the event logs for incident management process.



Jenkins FAQ
DevOps-Continuous Integration- Jenkins Basics for Beginners
Why we need Jenkins?
Manage Jenkins
Jenkins build job-Build a free-style software project-testing on multiple environment
Notification set-up-email-sms in Jenkins
Source Code Management section-build jobs in Jenkins
Artifact archive-Status Ball indication of Jenkins dashboard
Trend Graph-Javadocs-Jenkins reporting
Code coverage metrics-build server for Jenkins
Slave machine-multiple build machines

No comments:

Post a Comment