- What is DevOps ?
- Career in DevOps
- Migration to DevOps
What is DevOps ?
DevOps is not a simple thing. DevOps is a byproduct of the evolution that happened in the tech industry. And it’s getting famous now.
Understanding the challenges
Software becomes a consumer market. Earlier, IBM was the head in the software field. Then different companies came because the demand increased. And the market was competitive
Use and throw is the modern mentality of the consumer. And it’s now happening in the software field also. Major 2 fields in Software Field The people develop software – Developers team The people who support – Operations team
Developer evolution – source contribution and community
The challenges : Complex system – its getting big
Dynamic requirements changes
So there is a challenge because they need to bring it into the market as fast as possible. And also the dependencies, packages are also important and it’s increasing. So in order to overcome these challenges the developer found a methodology called Agile methodology. It solves the problems in waterfall management.
Operation Team They help the application to be running in a stable and reliable way. To achieve speed to market, their code needs to be changed and it’s a headache for the operations team. Earlier
we were having monolithic big servers,then we had distributed systems then came the cloud and finally mutable infrastructure. This was possible because of virtualisation. Still they are having challenges to keep the application stable and reliable. To overcome these challenges they put forward automation and the use of related tools for automation.
But still the collaboration is not happening between developers and the operation team. But if we make a team with a developer and ops team, we won’t get a devops. DevOps is not a product or tool. It’s a methodology. So there is a set of people who use different tools that are cost effective, in a fully automated way with continuous delivery. Then we can say we have a devops team.
For Automation each company has an indigenous script, but it can be used only inside that specific company and cannot be migrated or shared. DevOps core principles are Continuous deployment and Continuous integration. In which they use maximum tools to automate.
1. Continuous integration:
A product is providing particular roles, our requirement is feature request, Developers take 2 or 3 days to develop new features and add to product. But this should not damage or break the code of the product We should add new features to the product without breaking it’s features and enhance it further and make it a common repo. It relies on common code repo and it should not impact others code
Eg: git and GitHub
Once the code is pushed, it needs to build and integrate it to common repo which is called CI
2. Continuous deployment
Our product should be continuously deployed to the region smoothly without affecting the customer. There are deployment strategies to deploy code.
As per the requirement of your company you should choose the tool because we have varieties of tools. No need to use all the tools in the DevOps logo and it’s not DevOps CI/CD pipeline is the core of DevOps.
DevOps = CI/CD with Open source Tools + Automation + Community “Open source” and “Community” expose us to a large vulnerability “Automation” increase the Blast radius Add automated tools to check vulnerability check, fast feedback loop to notify the vulnerability and Threats. DevSecOps = DevOps + Automated vulnerability check and threat monitoring (Security) It’s a challenge that open source is created by some community and available in different tools for us and will not be having industrial standards, here comes DevSecOps
Roles: 1.Identify vulnerability 2.Code vulnerability 3.Integrating vulnerability If vulnerability comes due to migration it may spread to all the servers instead of a single server and the effect may double. It will increase blast radius Automatic vulnerability check – DevSecOps
How to migrate our company to DevOps?
In DevOps migration, complete company needs to be migrated to it instead of a specific Team 12 factors applied to microservice was proposed by martin fowler – which states that it should be in the existing working system in all companies. An assessment of below 12 factors should be checked and automated after conducting a discussion inside the company
I. Codebase One codebase tracked in revision control, many deploys
II. Dependencies Explicitly declare and isolate dependencies
III. Config Store config in the environment
IV. Backing services Treat backing services as attached resources
V. Build, release, run Strictly separate build and run stages
VI. Processes Execute the app as one or more stateless processes
VII. Port binding Export services via port binding
VIII. Concurrency Scale out via the process model
IX. Disposability Maximize robustness with fast startup and graceful shutdown
X. Dev/prod parity Keep development, staging, and production as similar as possible
XI. Logs Treat logs as event streams
XII. Admin processes Run admin/management tasks as one-off processes
Cycle of steps involved to become DevOps Engineer
Step 1 : Common Code Repo
Common code repo and visible to everyone inside company for all (eg : git,github)
Step 2 : Testing Automation
Test automation – test environment code works but in production sometimes it breaks So, using this while writing other code automatically run the previous code and feedback send to developer
Step 3 : Build Automation
Build automation – it should be in a build condition after test automation
Step 4 : Infrastructure as Code
Infrastructure as a code – or aws or azure helps to push the code to infra which was created by test automated build output Minor changes can be made here, deploying on staging environment and can be deploy to group of users, so it will not stop the business
Step 5 : Continuous deployment
Checking logs, which helps to get the clear picture (it will create dashboard and provide alert eg: Splunk tool) triggered alert creates an incident then reach to developer to fix the issue in next release
Then only we can say our company is in devops.
How to enter into a DevOps Engineer Role?
( Assuming, you are currently working as sys admins)
Step 1: Learn to use Git and Github ( DevOps is world of open source tools and expectation is DevOps engineer should know to view and involve in open source tools building ) Hands-on over Git and Github – create account and check all the documents inside it Check the gist page or read me page will have the vision of the creator. Move two-line code to github account even if it’s hello world code.
Step 2: Learn Python, (expectation is coding, all devops tools have api. As a devops engineer, expectation is to learn to consume these API and integrate to our system) python language necessary (go other tool), it has many components and can be used easily, should be having the capability to identify the code Create small python codes, there will be API call service and get response and meaningfully display it
Step 3: Pick up a Cloud ( AWS/ GCK/ Azure) Choose Particular Cloud Provider
Step 4: Practise IAAS implementation in Cloud ( Infrastructure As A Code ) Infrastructure as a code Cloud formation, Terraform, Ansible
Step 5: Build a CI/CD pipeline for small word press applications ( Learn tools according to your requirement, concentrate on pipeline and its integration. Choice of tool is strictly on the Application you are delivering) CI/CD pipeline, it requires different tools – select your tools
Step 6: Host the application Move this to github and host it
Is DevOps a threat to OPS?
There will be only good actor categories in the state award. No Hero/ Villian/ Comedian. There will be only application or module or service owners in the future. Nothing like that if u can add benefit to the team, it’s getting thinner
Future of DevOps
API driven systems, how to use, how to consumes
Even its development oriented but complex development will not be there only consuming will be in future.
Cortana, Siri, alexa systems will come and they will manage all the cloud infrastructure(they may help you to login future, it will ask login credential)
Conversation is stored in text format and stores it.