DevOps GUIDE
ACCELERATE YOUR CAREER GEAR TO EXPERIENCE, EXPLORE AND EXCEL THE CUTTING EDGE TECHNOLOGIES OF DEV-OPS, CLOUD AND BIG-DATA INTELLIGENCE DIGITALIZED IMPLEMENTATION
Summary by Damian Ndunda © 2020
TABLE OF CONTENTS
DEVELOPERS AND OPERATIONS (DEVOPS) 16
DEVELOPER RELATIONS (DEVREL) 17
AWS OpsWorks for Puppet Enterprise. 18
AWS OpsWorks for Chef Automate. 18
DEVSECOPS, SHIFTING SECURITY LEFT. 20
SITE RELIABILITY ENGINEERING.. 20
Company culture is the foundation of DevOps. 21
You learn by observing your process and collecting data. 22
Persuasion is key to DevOps adoption. 22
Small, incremental changes are priceless. 22
Solving the problem of conflicting interests. 23
The goals and incentives are in opposition. 24
ONE SHOULD BE ABLE TO WORK ON: 25
DESIRABLE SKILLS & EXPERIENCE: 27
CHAPTER DEVOPS DESIGNED ORGANIZATION.. 28
1 ASSESSING YOUR CULTURE’S HEALTH.. 28
Observe interpersonal communication. 28
Take a hard look at leadership. 28
2 ESTABLISHING DEVOPS VALUES. 29
Communicate, communicate, communicate. 31
Automate processes (when appropriate) 31
3 MODELING COMPANY CULTURE. 32
4 AVOIDING THE WORST OF TECH CULTURE. 33
Ensure that employees go home at a reasonable hour. 33
Provide great insurance and other benefits. 33
Encourage alternative thought. 33
VISION STATEMENTS FROM FAMOUS BRANDS. 34
6 INCENTIVIZING YOUR VALUES. 35
1 SYSTEMS/SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC) 37
SYSTEMS DEVELOPMENT LIFE CYCLE (SDLC) 37
2 INVITING EVERYONE TO THE TABLE. 42
3 CHANGING PROCESSES: FROM A LINE TO A CIRCUIT. 42
DEVELOPMENT LIFE CYCLE STAGES. 42
4 SHIFTING OPS “LEFT”: THINKING ABOUT INFRASTRUCTURE. 47
Shifting deployments left, too. 47
Mimicking production through staging. 47
5 THE TYPICAL DEVOPS WORKFLOW... 48
CHAPTER IMPLEMENTING RAPID ITERATION.. 49
1 PRIORITIZING THE IMPORTANT. 49
CLEAN CODE IS EASIER TO MAINTAIN. 51
ENGINEERS WHO TRUST EACH OTHER ARE MORE EFFECTIVE. 51
CONTINUAL LEARNING IGNITES NEURONS. 52
PLANNING CREATES A ROAD MAP. 52
NEITHER IMPORTANT NOR URGENT. 53
It’s impossible to “size” work. 54
Team performance is more than speed. 54
DEVOPS RESEARCH AND ASSESSMENT (DORA) 55
MTTR (MEAN TIME TO RECOVER): 55
CHAPTER EMPOWERING ENGINEERS. 57
1 SCALING ENGINEERING TEAMS WITH DEVOPS. 57
LATE-STAGE STARTUP OR MID-SIZED COMPANY. 58
SOME KEY QUALITIES FROM WHICH TO GLEAN IMPORTANT LESSONS: 59
ROME DIVIDED THE MILITARY INTO THREE COMPONENTS: 60
KEY TAKEAWAYS FROM THE ROMAN ENTERPRISE: 60
AVOIDING RELIANCE ON EXTRINSIC REWARDS. 63
ALLOWING PEOPLE TO CHOOSE THEIR TEAMS. 64
CHAPTER PROS AND CONS OF DEVOPS. 66
Forgetting to Align Incentives. 69
Potential measurements include: 70
Monthly recurring revenue (MRR): 70
Mean time to recovery (MTTR): 70
Changing Too Much, Too Fast 71
CHAPTER DEVOPS AND THE CLOUD.. 73
1 AUTOMATING DEVOPS IN THE CLOUD.. 73
Taking your DevOps culture to the cloud. 73
DEVOPS PRACTICES AND ADOPTION.. 73
BENEFITTING FROM CLOUD SERVICES. 74
Building more resilient and scalable systems: 75
Infrastructure as a Service. 77
4 CHOOSING THE BEST CLOUD SERVICE PROVIDER. 78
Compliance and risk management: 79
Service Level Agreements (SLAs): 79
5 CLOUD SELECTION CHECKLIST. 79
6 CLOUD TOOLS AND SERVICES CATEGORIES. 80
COMMONLY USED CLOUD PROVIDERS AND SERVICES. 81
COMMONLY USED CLOUD PROVIDERS. 81
Google Cloud Platform (GCP) 81
COMMONLY USED CLOUD SERVICES. 81
Virtual machine (VM) management: 81
BENEFITS OF AWS FOR DEVOPS. 83
CONTINUOUS INTEGRATION AND CONTINUOUS DELIVERY IN AWS DEVOPS. 84
SOME COMPONENTS INVOLVED IN AMAZON WEB SERVICES. 84
SOME BEST PRACTICES FOR SECURITY IN AMAZON EC2. 84
AWS CODEBUILD IN AWS DEVOPS. 85
AMAZON ELASTIC CONTAINER SERVICE IN AWS DEVOPS. 85
TABLE SHOWING COMMON CLOUD SERVICES. 86
CHAPTER: POST-INCIDENT REVIEWS. 87
1 GOING BEYOND ROOT CAUSE ANALYSIS. 87
2 STEPPING THROUGH AN INCIDENT. 88
3 SUCCEEDING AT POST-INCIDENT REVIEWS. 89
Acknowledging hindsight bias. 92
Making a plan and follow up. 93
CHAPTER ADOPTING TECH TOOLS FOR DEVOPS TEAM... 94
1 INTEGRATING WITH OPEN SOURCE SOFTWARE. 94
Opening community innovation. 94
2 TRANSITIONING TO NEW LANGUAGES. 97
Compiling and interpreting languages. 97
Parallelizing and multithreading. 98
3 CHOOSING LANGUAGES WISELY. 100
1. What is the quality of the language community?. 100
Three Benefits of A Language Community. 100
2. How many developers know the language?. 101
3. What frameworks and libraries are available?. 101
4. What are the specific requirements of the project?. 101
5. What is the comfort and knowledge of your current team?. 101
CHAPTER CONFIGURING DEVOPS. 103
3 MAIN TRADE OFFS TO CONSIDER WHEN COMPARING TERRAFORM WITH OTHER INFRASTRUCTURE AS CODE TOOLS. 107
DEPLOY A SINGLE WEB SERVER. 112
DEPLOY A CLUSTER OF WEB SERVERS. 124
CHAPTER AWS CLOUDFORMATION.. 125
2 AWS CLOUDFORMATION CONCEPTS. 126
3 HOW DOES AWS CLOUDFORMATION WORK?. 131
UPDATING A STACK WITH CHANGE SETS. 132
Creating the VPC EndPoint for AWS CloudFormation. 134
4 AWS CLOUDFORMATION LIMITS. 136
AWS CLOUDFORMATION LIMITS TABLE. 136
5 GETTING STARTED WITH AWS CLOUDFORMATION.. 139
Step 2: Make sure you have prepared any required items for the stack. 143
Step 4: Monitor the progress of stack creation. 144
Step 5: Use your stack resources. 145
What is an AWS CloudFormation Template?. 146
Resource Properties and Using Resources Together. 147
Receiving User Input Using Input Parameters. 158
Specifying Conditional Values Using Mappings. 161
Constructed Values and Output Values. 165
WALKTHROUGH: UPDATING A STACK. 171
Modernize your Applications. 176
Cost for Running Lambda-Based Applications. 176
2 THE SHARED RESPONSIBILITY MODEL. 177
3 LAMBDA RUNTIME ENVIRONMENT. 179
Isolation Between Functions and Between MicroVMs. 181
• iptables and routing tables. 181
5 RUNTIME MAINTENANCE IN LAMBDA.. 184
6 MONITORING AND AUDITING LAMBDA FUNCTIONS. 184
7 ARCHITECTING AND OPERATING LAMBDA FUNCTIONS. 185
Operational Excellence Pillar. 185
Performance Efficiency Pillar. 185
CREATE A LAMBDA FUNCTION WITH THE CONSOLE. 186
Invoke the Lambda function. 187
To delete a Lambda function. 188
To delete the execution role. 189
CREATING FUNCTIONS USING THE AWS LAMBDA CONSOLE EDITOR. 189
Working with files and folders. 190
USING AWS LAMBDA WITH THE AWS COMMAND LINE INTERFACE. 193
Create the execution role. 193
FOREWORD
This booklet is intended to be a short and simple DevOps summary. I hope it will truly assist someone who yearns to learn. For further awareness read the books I used in the reference section. I’ve tried to use the original author’s words as much as possible.
DEVELOPERS AND OPERATIONS (DEVOPS)
DevOps – Developers and Operations teams interact. These include testers, security, infrastructure engineers, among others.
DevOps is an engineering culture of collaboration, ownership, and learning with the purpose of accelerating the software development life cycle from ideation to production. It can enable you to reduce interpersonal friction, eliminate bottlenecks, improve collaboration, increase job satisfaction through engineer empowerment, and accelerate team productivity. It builds a culture of trust, collaboration, and continuous improvement.
FIGURE: DevOps tool chain from Inceptez Technologies (2014).
CONTINUOUS DELIVERY
While continuous delivery is focused on automating the processes in software delivery, DevOps also focuses on the organizational change to support great collaboration between the many functions involved. Continuous delivery focuses on making sure the software is always in a releasable state throughout its lifecycle. This makes it cheaper and less risky to deliver the software.
Improved collaboration and communication both between and within organizational teams can help achieve faster time to market, with reduced risks
^ Chen, Lianping (2015). "Continuous Delivery
^ Chen, Lianping (2018). Microservices
DEVELOPER RELATIONS (DEVREL)
DevRel generally comprises a group of software engineers (or operations specialists, SREs, and others) who sit somewhere between marketing and engineering. It’s not a sales engineering role, and those of us in DevRel are never incentivized by sales. Instead, we sit above the sales funnel, gain goodwill for the company we work for within the community, and reflect the wishes of the community back to the product team, ensuring that our applications and tools are as close to what customers want as we can possibly get.
OPSWORKS
AWS OpsWorks is a configuration management service that helps you configure and operate applications in a cloud enterprise by using Puppet or Chef.
AWS OpsWorks Stacks and AWS OpsWorks for Chef Automate let you use Chef cookbooks and solutions for configuration management, while OpsWorks for Puppet Enterprise lets you configure a Puppet Enterprise master server in AWS. Puppet offers a set of tools for enforcing the desired state of your infrastructure, and automating on-demand tasks.
AWS OPSWORKS SERVICES
AWS OpsWorks for Puppet Enterprise
OpsWorks for Puppet Enterprise lets you create AWS-managed Puppet master servers. A Puppet master server manages nodes in your infrastructure, stores facts about those nodes, and serves as a central repository for your Puppet modules.
OpsWorks for Puppet Enterprise lets you use Puppet to automate how nodes are configured, deployed, and managed, whether they are Amazon EC2 instances or on-premises devices. An OpsWorks for Puppet Enterprise master provides full-stack automation by handling tasks such as software and operating system configurations, package installations, database setups, change management, policy enforcement, monitoring, and quality assurance.
AWS OpsWorks for Chef Automate
AWS OpsWorks for Chef Automate lets you create AWS-managed Chef servers that include Chef Automate premium features, and use the Chef DK and other Chef tooling to manage them. A Chef server manages nodes in your environment, stores information about those nodes, and serves as a central repository for your Chef cookbooks.
AWS OpsWorks Stacks
AWS OpsWorks Stacks, provides a simple and flexible way to create and manage stacks and applications. a stack is a group of instances such as application servers, database servers, load balancers, and other resources. AWS OpsWorks Stacks lets you deploy and monitor applications in your stacks. You can create stacks that help you manage cloud resources in specialized groups called layers. A layer represents a set of EC2 instances that serve a particular purpose, such as serving applications or hosting a database server.
Amazon Inc (2020)
WinOps
WinOps is the term used for DevOps practices for a Microsoft-centric view
Azure DevOps Server
(formerly Team Foundation Server (TFS) and Visual Studio Team System) is a Microsoft product that provides version control (either with Team Foundation Version Control (TFVC) or Git), reporting, requirements management, project management (for both agile software development and waterfall teams), automated builds, testing and release management capabilities. It covers the entire application lifecycle, and enables DevOps capabilities. Azure DevOps can be used as a back-end to numerous integrated development environments (IDEs) but is tailored for Microsoft Visual Studio and Eclipse on all platforms.
^ "Application Lifecycle Management with Visual Studio and Team Foundation Server". MSDN. Microsoft. 2013. Retrieved 2013-10-15.
^ "Adopting Team Explorer Everywhere". MSDN. Microsoft. Retrieved 26 May 2017.
ARCHOPS
ArchOps presents an extension for DevOps practice, starting from software architecture artifacts, instead of source code, for operation deployment.. ArchOps states that architectural models are first-class entities in software development, deployment, and operations.
Castellanos, Camilo; Correal, Dario (15 September 2018).
TESTOPS
TestOps is to hardware development what DevOps is to software development. The idea is a toolchain that links design and test operations together. In the case of hardware, design means EDA tools and the CAD department, and test means electronic measurement equipment like oscilloscopes and so on.
^ Keysight (19 March 2019). "The TestOps Manifesto: A Blueprint for Connected, Agile Design and Test" (PDF).
DATAOPS
The application of continuous delivery and DevOps to data analytics has been termed DataOps. DataOps seeks to integrate data engineering, data integration, data quality, data security, and data privacy with operations. It applies principles from DevOps, Agile Development and the statistical process control, used in lean manufacturing, to improve the cycle time of extracting value from data analytics.
^ "DevOps to DataOps, By Andy Palmer - Tamr Inc". Tamr Inc. 7 May 2015
^ DataKitchen (15 March 2017).
DEVSECOPS, SHIFTING SECURITY LEFT
DevSecOps is an augmentation of DevOps to allow for security practices to be integrated into the DevOps approach. The traditional centralised security team model must adopt a federated model allowing each delivery team the ability to factor in the correct security controls into their DevOps practices.
SITE RELIABILITY ENGINEERING
In 2003, Google developed site reliability engineering (SRE), an approach for releasing new features continuously into large-scale high-availability systems while maintaining high-quality end-user experience. While SRE predates the development of DevOps, they are generally viewed as being related to each other
^ Beyer, Betsy; Jones, Chris; Petoff, Jennifer; Murphy, Niall Richard (April 2016
^ "SRE vs. DevOps — a False Distinction? - DevOps.com". 18 May 2017.
CHAPTER ABOUT DEVOPS
1 DEVOPS INTRODUCTION
DevOps evolved from Agile
In 2001, 17 software engineers met and published the “Manifesto for Agile Software Development,” which spelled out the 12 principles of Agile project management. Working within Agile principles, engineers aren’t required to adhere to original requirements or follow a linear development workflow in which each team hands off work to the next. Instead, they’re capable of adapting to the ever-changing needs of the business or the market, and sometimes even the changing technology and tools.
DevOps Vs Agile
Agile is a set of values and principles about how to develop software in a systematic way. Where as DevOPs is a way to quickly, easily and repeatably move that software into production infrastructure, in a safe and simple way. Most important aspect of DevOps is to get the changes into production as quickly as possible while minimizing risks in software quality assurance and compliance. Agile can be viewed as addressing communication gaps between customers and developers, while DevOps addresses gaps between developers and IT operations / infrastructure. Also, DevOps has focus on the deployment of developed software, whether it is developed via Agile or other methodologies.
DevOps focuses on people
DevOps is a philosophy that focuses on engineers and how they can better work together to produce great software. It creates a collaborative work environment in which mutual respect, shared knowledge, and acknowledgement of hard work can thrive.
Company culture is the foundation of DevOps
With DevOps, you avoid blame, grow trust, and focus on the customer. You give your engineers autonomy and empower them to do what they do best: engineer solutions. As you begin to implement DevOps, you give your engineers the time and space to adjust to it, allowing them the opportunities to get to know each other better and build rapport with engineers with different specialties. Also, you measure progress and reward achievements. Never blame individuals for failures. Instead, the team should continuously improve together, and achievements should be celebrated and rewarded.
You learn by observing your process and collecting data
You determine what works, what doesn’t work, and what to try next time.
Persuasion is key to DevOps adoption
Persuading other folks on your team and within your company to adopt DevOps requires practicing good communication skills.
Small, incremental changes are priceless
The aspect of DevOps that emphasizes making changes in small, incremental ways has its roots in lean manufacturing, which embraces accelerated feedback, continuous improvement, and swifter time to market. Making incremental changes means, for example, that you find a problem and you fix that problem. Then you fix the next one.
2 BENEFITTING FROM DEVOPS
Beyond the human component, it enables faster delivery, improved functionality, and fearless innovation. Teams who work in a DevOps methodology find resolutions faster through better coordination, more open accessibility, shared learning, and better performance monitoring.
Engineering is not the only side of your organization that benefits from DevOps. The business side of your organization will see fewer customer complaints, faster delivery of new features, and improved reliability of existing services. DevOps enables you to do more with the resources you already have. It accepts the reality of constraints and shows you how to succeed within your unique environment.
CALMS
CALMS. It stands for culture, automation, lean, measurement, and sharing
Culture
Your culture needs to be collaborative and customer centered, which means your engineers understand that the purpose of technology is to make your customers’ lives easier. If customers don’t find value in the product, the product will fail. Listening is a major component of communication,
Automation
Engineers speak computer so that they can make computers do the jobs that people don’t want to do.
Lean
Lean teams eschew low-impact activity because it doesn’t provide value to the customer. Another aspect of lean is how it keeps to the goal of continuous improvement.
Measurement
You’re never done. No one is. Think of it as gauging your improvement. Celebrate the wins. That approach bolsters the entire team and keeps your engineers happy, motivated, and productive.
Sharing
Operations folks are typically measured on the reliability and availability of an application, whereas developers are, more often than not, incentivized to create new features for the application. Create an environment in which both teams teach each other and feel empowered — thus building a single team through which everyone contributes.
Solving the problem of conflicting interests
On traditional engineering teams, developers (those who write the code) and operations engineers (those who deploy systems and maintain infrastructure) are on opposing sides. The five 9s: 99.999 percent availability. The five 9s means that your site can be down for only five minutes per year. Five minutes … per year.
Deploys are the most common action that initiates service disruptions and site outages. Two problems come from this situation:
Responsibility is siloed.
Developers don’t know how to release or support their code, and they lack systems knowledge that enables them to understand infrastructure requirements. Most developers don’t know (or care) how their code actually runs. Their job is done.
The goals and incentives are in opposition.
Developers toss code over the operations team and expect them to deploy the code and ensure that it runs perfectly. Operations folks are incentivized by uptime, availability, and reliability. They often assume that the code is poorly written and they’ll be yelled at (or fired) for an incident that isn’t their fault
DevOps seeks to eliminate both the challenges created by siloed responsibility and opposing goals. By aligning incentives, sharing knowledge, removing barriers, and respecting different roles, DevOps can dramatically improve the interpersonal communication and cooperation on your team.
3 DEVOPS JOB
ONE SHOULD BE ABLE TO WORK ON:
•
Ownership of Continuous Integration & Continuous Delivery infrastructure
for the companies software stack
• Ensuring the stability of the software releases
• Working closely with operation and software engineering teams
• Scaling and automating companies data processing pipeline
• Managing and scaling SaaS
• Automation of our service and calibration processes
• Work on projects of varying size and complexity, ensuring commons standards
are implemented, enhanced and adhered to.
• Ensure Automated build, test and deployment tools and processes are in place
• Build and configure environments
• Deploy and configure solutions
• Define and implement reusable CI/CD (continuous integration/ continuous
delivery) components
• Perform script maintenance and update
• Create requirements and procedures for implementing routine maintenance
• Identify, agree and implement new ways of working to support changing project
needs and continuous improvement.
CORE COMPETENCIES:
•
At least 2 years of Cloud experience (AWS ,Azure, or GCP)
• Good experience of automation tools and infrastructure provisioning (Ansible,
Terraform)
• Previous experience with containers (Docker / LXC)
• Proficiency in using Linux and the command line
• Great track of experience with CI/CD (continuous integration/ continuous
delivery) tools e.g. teamcity, Bamboo, Jenkins or travisci
• Enjoys working with multiple platforms and stacks
• Collaborative, creative, and communicative
• Seeks to work with the experts in the field on cutting edge technology
• Experience with Shell scripting (Bash) or programming languages such as
Python
• Ability to liaise effectively with other teams
• Ability to work towards challenging deadlines, delivering high quality
• Strong problem solving and analytical skills
• Ability to work independently, but must enjoy collaborating as part of matrix
managed teams
• Ability to prioritise tasks from multiple sources whilst demonstrating a degree
of empathy
JOB RESPONSIBILITIES:
➢ Performing daily tasks and server operations in
linux.
➢ Managing network infrastructure & linux server.
➢ Experience in configuration of NFS, DNS, SAMBA, APACHE).
➢ Controlling and troubleshooting linux boot process.
➢ Command knowledge for interect with OS internal firewall.
➢ Troubleshooting Linux, user & Group management.
➢ Hands on configuration LVM, Partitioning, Crontab &
scheduling jobs.
➢ Configured bash scripts as per requirement.
➢ Managed administration of Mysql server.
➢ Good hands-on knowledge of Source Code Management (Version
Control System) tools Git.
➢ Configure GIT for deployment of code to stage branch and merging
to production.
➢ Launch apache webserver and Mysql DB server by using Ansible configuration
tools.
➢ Experience with automation/ integration tools like Jenkins.
➢ Hands on experience in docker container to deploy docker image to
docker hub also to
➢ launch web services through docker container.
➢ Hands-on knowledge of software containerization platforms like
Docker and container
➢ orchestration tools like Docker Swarm.
➢ Host docker on kubernete cluster.
➢ Worked on nagios monitoring tool.
➢ Knowledge of major cloud service providers, like AWS
➢ Configured & managed AWS instances with EC2, ELB & Auto
scalling.
➢ Managing cloudwatch and alarms for monitoring purpose.
➢ Hands on simple storage service (S3), IAM & Database
services.
➢ Configuring & troubleshooting VPC, Route 53.
Desai J.K,
ADDITIONAL SKILLS:
•
Experience in developing software in C++ and python
• Participated in the development of large software systems
• Experience in web technologies
• Worked in a development team using agile principles
• Worked with development tools such as Git, CMake and test frameworks
DESIRABLE SKILLS & EXPERIENCE:
•
Experience of building & deploying web services & applications
• Ability to understand & utilise new technology
• Behaviour Driven Development
CHAPTER DEVOPS DESIGNED ORGANIZATION
Company culture is best described as the unspoken expectations, behavior, and values of an organization. Culture is what tells your employees whether company leadership is open to new ideas. Develop a vision for your company culture, apply DevOps values to your engineering teams, and incentives and reward the values you prioritize.
1 ASSESSING YOUR CULTURE’S HEALTH
Company culture is best described as the unspoken expectations, behavior, and values of an organization. Culture is what tells your employees whether company leadership is open to new ideas. Develop a vision for your company culture, apply DevOps values to your engineering teams, and incentivize and reward the values you prioritize.
Ways to home in on the true state of your company’s culture:
Survey your employees.
A survey is perhaps the easiest way to evaluate the state of your company culture. You must ensure that the survey is anonymous so that employees feel free to be honest with you without fear of retaliation. Include only important questions that will reveal how your employees and colleagues actually feel. The best surveys ask questions about an employee’s satisfaction and happiness. These are questions like, “On a scale of 1–10, how likely would you be to leave for a 10 percent raise from another company?” and “On a scale of 1–10, how would you rate your direct supervisor’s job performance?
Observe interpersonal communication.
You can learn a lot from simply observing how a team communicates with itself. Are colleagues spoken to with respect? Do people assume positive intent? Does everyone seem engaged in meetings? Pay close attention to disagreements. If employees are quick to generalize, name call, or escalate the conflict to anger, these behaviors can hint at an inability for people to express their frustrations in a more professional way.
Take a hard look at leadership.
Company culture flows down from the top. The standards and priorities set by leadership have an enormous. Impact on the overall culture of the company. If your CEO behaves like a jerk, chances are you have a culture of fear on your hands
CATEGORIES
Company cultures often fall into four categories: apathetic, caring, exacting and integrative:
Apathetic:
Very little concern is shown for people or performance.
Caring:
People are top priority and cared for deeply while performance issues can fall by the wayside.
Exacting:
The reverse of caring, this culture prioritizes performance over everything else.
Integrative:
High concern is shown for both people and performance. This culture is ideal because both the employees and the product can thrive.
If a survey is anonymous, make it truly anonymous, because after trust is lost, regaining it is almost impossible.
Integrating DevOps
DevOps, above all else, is a cultural shift that empowers engineers to learn freely, share responsibility, and succeed — as well as occasionally fail — together. People begin to trust each other, and through trust, collaboration can become the norm. Only then can innovation take place. It encourages teamwork, collaboration, communication, and — above all else — trust in the people with whom you work.
2 ESTABLISHING DEVOPS VALUES
DevOps is centered around a few core principles.
Ø Encourage teamwork.
Ø Reduce silos.
Ø Practice systems thinking.
Ø Embrace failure.
Ø Communicate, communicate, communicate.
Ø Accept feedback.
Ø Automate processes (when appropriate).
Encourage teamwork
Empower your team members to make independent decisions based on their expertise. Ideally, teams will share responsibility so that everyone is accountable with regard to both celebrations and failures.
Reduce silos
Share information freely among colleagues, teams, and skill sets. Ideally, you should build cross-functional teams in which members have varying and complementary skill sets that, together, support a single product line or software service. The point is remove barriers and allow information and knowledge to be shared freely
Practice systems thinking
View everything your engineering team touches as part of a greater whole. This holistic view gives you a better understanding of how the team functions and where you can improve. Instead of viewing the whole as a grouping of individual elements, think of the team as an ecosystem.
Embrace failure
small failures hint at a culture that encourages risk — trying new things and innovating. Innovating and moving quickly is impossible without a few hiccups along the way. By embracing failure, you turn the societal pressure to avoid failure on its head. Empowered by this growth mindset, you can budget for error and integrate recovery into your feedback loop.
Communicate, communicate, communicate
Teamwork is crucial to DevOps, and teamwork goes hand in hand with communication. The best engineers are those who can convey technical concepts to others clearly. Communication struggles can have real impact on speed, quality, and profitability, these so-called “soft skills” are important for teams to consider and prioritize. The “soft” skills of communication, relationship-building, project management, and conflict resolution to be some of the hardest challenges you can take on
Build rapport, and establish trust. Meet your engineers where they are. Where do they prefer to meet? What methods of communication do they prefer to use? Utilize communication tools and techniques to adapt to the team’s preferred style.
Accept feedback
feedback is what enables you to realistically study and improve your software. You don’t build software to show off your coding skills. Your users care only about whether your product actually works. Listening to your customers is the best way to quickly identify what areas of your application need improvement.
What they like, what they hate, and what they want from you.
Automate processes (when appropriate)
Improved technical practices are the result of a DevOps transformation, not the journey itself. Automation is a tool used to practice the values of DevOps. With automation, you develop better software faster and maintain applications with better reliability. You build, deploy, and monitor your software with automation tools to improve accuracy and eliminate manual bottlenecks. Automation is the last step in a long process
3 MODELING COMPANY CULTURE
The following list presents four types of structures into which most companies fall.
Clan:
Think of this company culture as a family-like structure of people. This culture is most often found in early-stage startups. Colleagues are collaborative, and managers (if they exist) are dedicated to their employees. Engagement is high, but sometimes a desire for agreement and harmony may drown out dissenting opinions, making way for a homogeneous perspective to emerge.
Meritocracy:
In this culture, great ideas are prioritized — whether the idea comes from the CEO or the lowest-level junior engineer. This principle sounds amazing on paper, but the meritocracy isn’t all sunshine and rainbows. Meritocracies don’t acknowledge the natural human instinct toward hierarchy and authority bias (which means that an executive’s idea is bound to be overvalued). Because of power structures, both conscious and unconscious, not all ideas are perceived as equal.
Holacracy:
This type of culture is as simple as company culture gets. Employees manage their work independently, with full autonomy, and the company structure is completely flat. You have no bureaucracy and no micromanagement — because you have no managers. This style of organization has mixed reviews. Some companies claim to thrive in it. Others tend to use it in the early days and then integrate more hierarchy and management into the company as it grows.
Traditional hierarchy:
Many people argue that the hierarchical culture is outdated. Yet, most of our organizations reflect this structure (sometimes with bits and pieces of the other structures thrown in). Often in a hierarchy, communication flows down from managers to engineers. If employees haven’t been empowered by the managers, this downward flow can quickly cause employees to stop innovating and suggesting new ideas because the friction encountered is simply too high
4 AVOIDING THE WORST OF TECH CULTURE
The culture of engineering is casual and centered around intelligence. Traditional tech culture is known to be composed of engineers who are male, pale, and overworked. (Perhaps a little curmudgeon-y, too!) The tech landscape is changing, however, and DevOps is leading the way toward a more balanced and diverse engineering culture.
The following tips can help
Demand diversity.
Social diversity — differences of age, race, religion, sex, and sexual orientation — is vital to producing great products and ensuring a welcoming environment.
Ensure that employees go home at a reasonable hour.
It’s such a simple gesture. Make sure that your employees don’t work more than 40 hours a week. Engineering work is incredibly taxing, and breaks are absolutely required to avoid burnout. That means restful weekends, evenings free of texts and emails, and laptop-free vacations.
Provide great insurance and other benefits.
Engineers are disproportionately affected by anxiety and depression. Provide opportunities for employees to improve their mental health, such as through therapy, yoga, exercise, or anything else. Give them the time (and if you can manage it, the money) to pursue activities to keep themselves healthy — physically and mentally
Encourage alternative thought.
Creating a diverse and inclusive environment to work in requires that all ideas and perspectives are welcome.
5 CRAFTING YOUR VISION
A vision is inspirational and meant to unify people behind a single, focused idea. The mission statement then fills in the gaps with a more detailed strategy and idea.
Your vision is how you pull together a focused goal for your company culture. It is the most ambitious view of where you would like to see your company go — for customers, employees, and stakeholders. It should reflect the principles of the founders and evolve as the company grows.
Culture is what allows employee enthusiasm to thrive. Your vision statement will focus you and inform decisions for you and everyone who works for the company.
A vision statement should always include three components:
ü Who you are
ü What you do
ü Where you need to go
Having a vision ensures that your company will make decisions based on long-term goals, even at the cost of a short-term win — and staying on track for long-term goals is critical for any tech business.
“Who are we? What do we do? Where are we headed?” What do people think? How do the answers of the folks in sales differ from those of engineering?
The vision should be integrative — prioritizing people in the organization (and customers outside the company) as well as the technology and product itself.
VISION STATEMENTS FROM FAMOUS BRANDS
Microsoft:
“Our mission is to empower every person and every organization on the planet to achieve more.”
Google:
“Our mission is to organize the world’s information and make it universally accessible and useful.”
Amazon:
“Our vision is to be earth's most customer-centric company; to build a place where people can come to find and discover anything they might want to buy online.”
PayPal:
“To build the Web’s most convenient, secure, cost-effective payment solution.”
BBC:
“To enrich people’s lives with programmes and services that inform, educate, and entertain.”
Whole Foods Market:
“Our deepest purpose as an organization is helping support the health, well-being, and healing of both people -- customers, Team Members, and business organizations in general — and the planet.
6 INCENTIVIZING YOUR VALUES
Communicating your vision is a perfect opportunity to gather the entire team together and get everyone excited about the direction of the company. Your second priority is to ensure that the behavior you want to see from your team is rewarded.
Evaluations
Team Impact:
This concept refers to the greater impact of the team as a whole. You want to consider the outward impact, such as an increase in the number of users of a service or application, or the launch of a new feature that increased revenue by 10 percent year over year.
Individual Output:
The output of an individual contributor is the summary of their activities. This summary could include features developed, bugs fixed, infrastructure improved, uptime increased, and more. An engineer’s output is closely tied to their role within the greater team
Rewards
The more frequently you can highlight performance through a small reward, the happier your engineers will be in the long term.
Idea prizes:
Give engineers on both the development and operations sides the opportunity to propose new ideas. The company or team then votes for the best idea and, if the executives agree, gives the person who suggested the idea a small reward. The reward can be a gift card to their favorite coffee place or tickets to a baseball game. Honestly, the reward doesn’t even have to be worth anything monetarily
Hack time:
Listen, engineers love to do just that — engineer. You’ll earn their loyalty if you give them dedicated time to work on the side projects that excite them. When the team accomplishes something, give them a week or two to work exclusively on something of their choice. It could be an open source project, an idea for something to improve their everyday work, or something altogether unrelated to your business. If the hackathon produces something usable by the company, it’s a bonus. The purpose is to give your engineers paid time to work on passion projects.
Fun off-sites:
Sometimes the team needs to step away from the office and engage in a different activity to build rapport and trust. No, this isn’t your average foray into a ropes course or trust falls. Don’t try to design trust; it doesn’t work that way. Instead, give your team the opportunity to get to know each other in a more informal way. The activity needs to be inclusive so that everyone can participate, but beyond that, anything goes! I love bowling because it can be silly and I’m terrible at it. But you could volunteer, take dance lessons, go to a yoga class, or take a trip to the mountains. The specific activity means much less than the opportunity to have fun together away from the office.
Ensure
that you’re providing your employees with what they need to travel. At a basic
level, provide every employee their own hotel room, transportation, and food.
After you have the basic issues managed, consider the needs of each individual.
Single parents might need financial or logistical help to find childcare.
Breastfeeding mothers may need you to pay for shipping breast milk home on dry
ice.
CHAPTER DEVOPS LIFE CYCLE
The tech industry uses the term software development life cycle (SDLC) to describe the process from creating an idea for a new product, application or feature to actually deploying the new software to customers in a production environment. I actually prefer delivery over development because that word removes any implication that developers are the star player in the software life cycle
1 SYSTEMS/SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC)
The Systems Development Life Cycle (SDLC), or Software Development Life Cycle in systems engineering and software engineering, is the process of creating or altering systems, and the models and methodologies that people use to develop these systems.
A software development lifecycle gives a framework for planning and managing a software development project. It shows what should be done, when and by whom. Life cycle models help us to change software development from an ad-hoc craft into something that resembles an engineering discipline.
SYSTEMS DEVELOPMENT LIFE CYCLE (SDLC)
Systems Development Life Cycle (SDLC) is any logical process used by a systems analyst to develop an information system, including requirements, validation, training, and user ownership. Any SDLC product should result in a high quality system that meets or exceeds customer expectations, reaches completion within time and cost estimates, work effectively and efficiently in the current and planned Information Technology infrastructure, and is inexpensive to maintain and cost-effective to enhance. A number of system development life cycle (SDLC) models have been created: "waterfall," "fountain," "spiral," "build and fix," "rapid prototyping," "incremental," "synchronize and stabilize."
SDLC is a methodology choice appropriate to the type of computer-based system to be built.
Post, G., & Anderson, D., (2006). Management information systems: Solving business problems with information technology. (4th ed.). New York: McGraw-Hill Irwin.
REFERENCES
Amazon Inc (2020) Amazon OpsWorks: User Guide, AWS inc
Amazon Inc (2019) AWS CloudFormation: User Guide, Amazon Web Services, Inc.
Amazon Inc (2019) Security Overview of AWS Lambda, An In-Depth Look at Lambda Security
Brikman y. (2016) Terraform: Up and Running, 1ST Edition, O’Reilly Media, Sebastopol California USA
Desai J.K, Devops engineer Curriculum vitae
DevOps, Azure DevOps Server, DevOps toolchain. From Wikipedia, Date of Access: 26 August 2020
DevOps Interview Questions, codespaghetti.com/devops-interview-questions/
Devops Job Description
Freeman E. (2019) DevOps, John Wiley & Sons, Inc. Hoboken New Jersey USA
Gartner. 16 March 2016. (Report). Avoid Failure by Developing a Toolchain that Enables DevOps
Inceptez Technologies (2014) FULLSTACK DEVOPS &CLOUD ENGINEER
Job Description, Musketeers.group, Professional Security services
Kantor I. (2018) How To Become a DevOps Engineer In Six Months or Less, Part 2: Configure
NCC Education, (2008) Systems Analysis, 2nd Edition, Didsbury Manchester NCC Education Limited
Post, G., & Anderson, D., (2006). Management information systems: Solving business problems with information technology. 4th edition, New York, McGraw-Hill Irwin.
Castellanos, Camilo; Correal, Dario (15 September 2018). Executing Architectural Models for Big Data Analytics. Lecture Notes in Computer Science. 11048. pp. 364–371. doi:10.1007/978-3-030-00761-4_24. ISBN 978-3-030-00760-7.
Keysight (19 March 2019). "The TestOps Manifesto: A Blueprint for Connected, Agile Design and Test" (PDF). Retrieved 11 September 2019. "Companies that embrace DevOps workflows report 29% greater productivity from their engineers. TestOps – DevOps for design and test – promises similar benefits."
DevOps to DataOps, By Andy Palmer - Tamr Inc". Tamr Inc. 7 May 2015. Retrieved 23 August 2017.
DataKitchen (15 March 2017). "How to Become a Rising Star with Data Analytics". data-ops. Retrieved 23 August 2017.
Beyer, Betsy; Jones, Chris; Petoff, Jennifer; Murphy, Niall Richard (April 2016). Site Reliability Engineering. O'Reilly Media. ISBN 978-1-4919-2909-4.
SRE vs. DevOps — a False Distinction? - DevOps.com". 18 May 2017.
Chen, Lianping (2015). "Continuous Delivery: Huge Benefits, but Challenges Too". IEEE Software. 32 (2): 50–54. doi:10.1109/MS.2015.27.
Chen, Lianping (2018). Microservices: Architecting for Continuous Delivery and DevOps. The IEEE International Conference on Software Architecture (ICSA 2018). IEEE.
Application Lifecycle Management with Visual Studio and Team Foundation Server". MSDN. Microsoft. 2013. Retrieved 2013-10-15.
Adopting Team Explorer Everywhere". MSDN. Microsoft. Retrieved 26 May 2017.
Jabbari, Ramtin; Ali, Nauman bin; Petersen, Kai; Tanveer, Binish (November 2018). "Towards a benefits dependency network for DevOps based on a systematic literature review". Journal of Software: Evolution and Process. 30 (11): e1957. doi:10.1002/smr.1957.
"DevOps is Agile for the Rest of the Company". DevOps.com. 4 March 2015.
"Virtual Infrastructure products: features comparison". Welcome to IT 2.0: Next Generation IT infrastructures.
Ellard, Jennifer. "Bringing Order to Chaos through Data Center Automation". Information Management. SourceMedia. Archived from the original on 11 June 2010.
"Impact of DevOps on Testing". DevOps.com. 21 August 2015.
Home/ Info/ Products/ Price list/ PC Buyers Guide/ Technology Videos/ Venus Project/ Contact
Copyright BICT Solutions