Magic DevOps
Many tools, many deployment platforms, many deployment models. Standardise, train, learn, understand, deploy, fail, remediate, improve, keep trying, become proficient, be happy.
DevOps Engineer: Will work on all of the tools (choice of tools may vary from environment to environment) as part of day to day job duties.
IaaS-PaaS: Amazon Web Services (AWS), Open-Stack , OpenShift, VMware, Microsoft Azure , Google Cloud, Digital Ocean are the most popular Infrastructure providers/technologies used across most of the organization in cloud and on-premise.
Configuration/Deployment Management Tools: Ansible, Chef, Puppet, Salt-Stack, u-Deploy are the more popular automation tools used to maintain the configuration management and to deploy the code to different environments which should have similar environments (Dev, QA, Pre-Prod, Prod).
Continuous Integration Servers: Jenkins, Hudson, Bamboo, Circle, Travis CI are the commonly used CI tools to automate application code test, build, deploy as well as extended to automate the Infrastructure provision and destroying integrated with Server Provisioning Technologies and configuration management Tools.
Artifactory management Tools: In any enterprise/local environment the executable file should be inventoried in the form of named artifacts with a central repo, in order to enable reuse and control. Nexus and Artifactory are widely used artifactory management tools to store the executable artifacts across the organization.
Source Code Version Management Tools: GitHub, Git Lab, Subversion, Perforce, CVS, SVN and Bit Bucket are the most popular tools in this segment. The code developed by developers/engineers needs to be shared and saved within a single repository for daily and future developments activities and also it is very important to maintain the versioning of the code for easy maintenance/ reference purpose. Standardise on one repo.
Build Tools: Maven, NetBeans, Ant, Gulp, Gradle are tools to build the source code that will be understandable by JVM for Java projects. Source code needs to be created and compiled so that it is understandable to a machine language form.