What To Learn DevOps ?
DevOps tools are needed to streamline and optimize the software delivery process so that teams can deliver high quality products consistently. Though the vision is more or less same for most of the teams, the tools adoption may vary.
DevOps suggest the practices such as: Continuous Integration, Continuous Testing, Continuous Delivery and Continuous Deployment. The tools used to practice these can vary from team to team. The adoption of tools vary depending on the technical stack and the business needs.
Since DevOps is about streamlining and optimizing the software delivery, for someone looking at learning tools for adopting DevOps, I would suggest to follow the software delivery process to learn the tools:
Commit: This is the first stage of the software delivery process. People use Version control to save their changes and version them. The most used ones are: Git, Perforce, SVN and Mercury. Teams use tools such as Nexus and artifactory for artifactory management.
Build: In order to build the code changes committed, build scripts are used. In order to automate the build process, teams use Build tools such as: Maven, Ant and Shell scripts. Teams using Continuous Integration use Jenkins, Bamboo and TFS.
Testing: Teams use Cucumber for BDD. FitNesse for automated testing and tools such as JMeter for load testing, SonarQube for Static Analysis
Provision: Provisioning involves automated way of provisioning the environment. Tools such as Anisble, Terraform. These tools are also referred to as Configuration Management tools. Tools such as VirtualBox and VMWare are used for virtualization. Tools such as Vagrant are used to automate the provisioning of the virtual machines.
Deploy: Tools such as Containers: Dockers, Kubernetes, AWS CodeDeploy and JuJu
Monitor: For teams to measure progress, they need to continuous monitor. Tools such as Nagios, WireShark, Splunk, New Relic and Zabbix are examples.
Apart from the tools mentioned above, there are cloud service providers which offers most of the tools as part of their suite. Amazon AWS, Microsoft Azure, Sales Force, Heroku and DigitalOcean are such examples.
The tools which you pick depends on the technical stack and the business needs. For example, if you are into SaaS based product delivery, then you would use the Amazon AWS and its various services for your complete software delivery cycle. If you are into system applications, then probably you will choose Linux , shell scripts, Jenkins, Containers and other tools which will help you in streamlining and optimizing your software delivery.
DevOps is not a single tool, it is a practice followed in conjunction with other tools & technologies.
There are various certifications involved in DevOps processes. I encourage people to write certification exams so that they will master and enhance their knowledge in the certification areas.
To start with, my picks would be one from each of the following areas:
- Operating System: Linux, Windows
- IaaS Providers: Amazon Web Services, Microsoft Azure, Google Cloud
- PaaS Providers: CloudFoundry, Pivotal Cloud Foundry(PCF), Heroku,Amazon Web Services, Microsoft Azure
- Virtualization Tools: VMWare, Oracle VirtualBox, Hashi stack
- Configuration Management & Provisioning Tools: Ansible , Terraform
- Continuous Integration/ Build Tools: Jenkins, Bamboo CI, Travis CI, Concourse CI, Harness, Spinnaker, GoCD
- Version Control Tools: GIT(GitHub, GitLab, BitBucket), SVN
- Containerization Tools: Docker, rkt
- Container Orchestration Tools: Kubernetes, OpenShift,Nomad,MiniKube, Marathon,Cloudify,Rancher,Containership
- Application Performance Monitoring(APM): AppDynamics, NewRelic, SignalFx, DataDog, Dynatrace
- Log Analysis & Monitoring: ElasticSearch, Logstash, Kibana(ELK), Splunk
On top of these tools, knowledge of the following is essential.
- SQL/No-SQL databases
- application/web servers
- programming language knowledge(Java/C#)
- scripting language knowledge(Bash Scripting/Python/Ruby)
NOTE: You will be interviewed on only one of the programming language/scripting language and databases. Usually it depends upon the software stack used by a particular organization.
Open for a new opportunity, Immediate joiner
2 年Thanking you for continuous sharing great resources to understand Devops tools in free of cost.