table of contents - gallery.technet.microsoft.com · management tools. • part 2: principles of...

14

Upload: others

Post on 20-May-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: TABLE OF CONTENTS - gallery.technet.microsoft.com · management tools. • Part 2: Principles of DevOps One of the commonly cited DevOps principle is òInfrastructure as a code ó
Page 2: TABLE OF CONTENTS - gallery.technet.microsoft.com · management tools. • Part 2: Principles of DevOps One of the commonly cited DevOps principle is òInfrastructure as a code ó

2

TABLE OF CONTENTS

ABOUT THE AUTHOR ....................................................................................................... 3

Preface ................................................................................................................................... 4

Introduction to DevOps ................................................................................................... 6

Introduction ................................................................................................................................. 6

Part 1: What is DevOps ............................................................................................................. 6

Part 2: Principles of DevOps ................................................................................................... 7

Part 3: Why DevOps Exist ........................................................................................................ 7

Conclusion ..................................................................................................................................... 8

Interaction between people, process and product ................................................ 9

Introduction ................................................................................................................................. 9

The Three Stage Conversation – People, Process, Products .................................... 10

People: ................................................................................................................................................... 10

Process: ................................................................................................................................................. 10

Products: ............................................................................................................................................... 11

Conclusion .................................................................................................................................. 11

Structure of DevOps ........................................................................................................12

Introduction .............................................................................................................................. 12

Part 1: DevOps Frame ............................................................................................................ 12

Part 2: DevOps Practices ....................................................................................................... 13

Conclusion .................................................................................................................................. 14

Page 3: TABLE OF CONTENTS - gallery.technet.microsoft.com · management tools. • Part 2: Principles of DevOps One of the commonly cited DevOps principle is òInfrastructure as a code ó

3

ABOUT THE AUTHOR

Mohamed Radwan is a Visual Studio ALM MVP and DevOps practice lead;

he focuses on providing solutions for the various roles involved in

software development and delivery through Agile Methodologies and

utilization of Microsoft Visual Studio ALM/DevOps Tools & Technologies.

Mohamed excels in software practices and automation with 15+ years of

professional experience spanning the different stages and phases of

Software Development Lifecycle. He has helped various customers across

the world in the UK, Denmark, USA, Egypt, Oman, KSA, Kuwait, and Libya,

amongst others.

Mohamed specialized in Agile Methodologies, and is a frequent speaker at

many national and regional technology events and user groups for various

countries, such as: Campus Days in Denmark, Copenhagen user group,

Open Days in Egypt, KSA, Kuwait, and Oman. He has authored several

frameworks and extensions including DevMagicFake and TestingConf

Utilities, as well as many technical articles & guides. He is the founder of

the TFSEG and co-founder of the MEAALM Community.

Mohamed also holds a number of Microsoft certifications including MCT,

MCPD, MCITP in EPM, MCTS (7), MCSD, MCAD, and CIW.

Page 4: TABLE OF CONTENTS - gallery.technet.microsoft.com · management tools. • Part 2: Principles of DevOps One of the commonly cited DevOps principle is òInfrastructure as a code ó

4

PREFACE

This guide will help you to understand the fundamentals of DevOps, which

is grouping different older and newer concepts into a movement that is

aiming to have a strong automation of all development steps and to deliver

high quality products in shorter development cycles, with frequent

deployment and closely aligned with business objectives.

DevOps is a firm connection between Development and IT Operations,

bringing the teams on the same page in order to achieve better

collaboration, faster releases, higher trust and better management of

unexpected work.

This guide will explain in later chapters the importance of high

collaboration between the teams and cross functionality. This close

collaboration between development and operations is enabling teams to

build, test and release software faster, with rapid delivery circles and with

higher reliability and stability. Of course, this doesn’t mean that developers

need to transform themselves into being the best operations staff, which is

common misconception of the DevOps. It means that the development is

pairing with the operations in the whole development lifecycle, in order to

have full insight in every aspect of the development cycle and to be able to

respond on issues quickly. In this way, the development team will be

participating also in running their product which will help them to solve

any issues better and quicker. And it’s not only about solving the issues or

the bugs, it’s also about continuous improvement. Besides this key factor,

the close collaboration between the teams is building higher trust and

mutual respect.

First chapter of this guide will explain more in depth about basic principles

of DevOps and why DevOps actually exists. In the second chapter the guide

will explain more about interaction between people, process and the

product which is the heart of the DevOps methodology, as DevOps isn’t a

job or responsibility of one person, it’s about sharing the responsivity and

understanding that everyone is responsible for delivering high quality

product to the customer or end user.

Next or the third chapter of this guide will focus more on the practices,

which helps the organizations to deliver faster and more reliable products

Page 5: TABLE OF CONTENTS - gallery.technet.microsoft.com · management tools. • Part 2: Principles of DevOps One of the commonly cited DevOps principle is òInfrastructure as a code ó

5

to their customers. Practices such as Continuous Integration and Delivery

are based on high automation in order to improve the quality, to reduce the

validation time of releases and to find bugs in quicker time.

Other practices, such as usage of Micro services and Infrastructure as a code

are reducing the dependencies and increasing the possibilities for quicker

deployments.

Page 6: TABLE OF CONTENTS - gallery.technet.microsoft.com · management tools. • Part 2: Principles of DevOps One of the commonly cited DevOps principle is òInfrastructure as a code ó

6

INTRODUCTION TO DEVOPS

Introduction

DevOps is about improving the collaboration between the traditionally

soiled development and operations functions. DevOps is all about trust,

communication and merging of two different disciplines inside IT. On one

side, we have developers and on the other side we have operations. DevOps

is an extension of Agile software development principles – allowing us to

build, deploy and change our software with accelerated delivery cycle

times.

Part 1: What is DevOps

Traditional Development and Operations teams worked in a way that

Development team created a solution for production and when it was

finished they handed over to Operations team. Operations team then

started with preparation to implement the project in the production

environment and manually changed the configuration files and other data

in order to comply for deployment. This caused a lot of duplication and

issues which were very hard to resolve due to different files and

environments.

Page 7: TABLE OF CONTENTS - gallery.technet.microsoft.com · management tools. • Part 2: Principles of DevOps One of the commonly cited DevOps principle is òInfrastructure as a code ó

7

DevOps is a software development method that stresses communication,

collaboration and integration between software developers and

information technology (IT) professionals thereby:

• Enable rapid evolution of products and services

• Lower the risk, enhance quality across portfolio, and reduce costs

DevOps integration targets product delivery, quality testing, feature

development and maintenance releases in order to improve reliability and

security and faster development and deployment cycles. The adoption of

DevOps is being motivated by following factors:

• Use of Agile and other development operations;

• Requirement for an expanded rate of production releases from

application and business stakeholders.

• Extensive possibility of visualized and cloud infrastructure from

internal and external providers.

• Enlarged usage of data center automation and configuration

management tools.

Part 2: Principles of DevOps

One of the commonly cited DevOps principle is “Infrastructure as a code”.

Another major principle is also to get the fast feedback throughout every

phase of the software lifecycle. Feedback helps to achieve the higher quality

of code and to reduce as much as possible bugs in the production. Moreover,

the DevOps practices helps to gather data to identify, diagnose, and resolve

issues quickly.

• Develop and test in an environment similar to production

• Frequent Build deployment

• Continuous validation of operation quality

• Strengthen feedback loops

Part 3: Why DevOps Exist

There is a gap between Developers and Operations team. With the

implementation of DevOps:

Page 8: TABLE OF CONTENTS - gallery.technet.microsoft.com · management tools. • Part 2: Principles of DevOps One of the commonly cited DevOps principle is òInfrastructure as a code ó

8

• Close collaboration between Developers and Operations to

Developers work with to understand the impact of code changes.

• Developers work is done in environment which is very close to

production environment.

• Developers are focused on metrics required by Ops team.

• More transparency for Operations on infrastructure needs.

• Higher level of automation on deployment.

• The pipeline of Dev – Test – Prod is closely monitored for each

deployment with immediate feedback.

• Better collaboration and communication.

Conclusion

DevOps is helping businesses in a tremendous way. Its bridging the gap

between Developer’s ‘need for change’ and Operations ‘resist to change’

and thus create a smooth path for continuous development and continuous

integration. You might also be interested in taking DevOps Self-Assessment.

You can visit Microsoft’s website and gauge your readiness in the 7 key

DevOps practice areas.

Page 9: TABLE OF CONTENTS - gallery.technet.microsoft.com · management tools. • Part 2: Principles of DevOps One of the commonly cited DevOps principle is òInfrastructure as a code ó

9

INTERACTION BETWEEN PEOPLE, PROCESS AND PRODUCT

Introduction

Just to summarize once again, DevOps is a methodology interacting

between Development and Operations. It is all about improving the joint

effort between functions of Development and Operations. The DevOps

methodology in a software world is often also referred as a methodology

that overcomes the gap between Agile software development and

operations, as it enables a fluent process for Continuous Development and

Continuous Integration.

It’s also very important to highlight that usage of DevOps methodology

reduces the stress in communication, helps to improve the communication

between teams, collaboration between all participants and integration

between developers and operations teams.

In delivering valuable software to customers, too often development and

operations are in conflict with each other. When Development implement

the changes, such as new features, bugs or fixes, they want to quickly roll

out this changes to production. But once when software is already

delivered, the operations departments wants to avoid to make the changes

on the software. Here is where DevOps help to overcome the gap between

both teams.

Page 10: TABLE OF CONTENTS - gallery.technet.microsoft.com · management tools. • Part 2: Principles of DevOps One of the commonly cited DevOps principle is òInfrastructure as a code ó

10

Initially, there was ‘Agile Development’, when agility aspect was applied to

operations it became ‘Agile Administration’, thus DevOps was formed. Here

is a must-read article by Visual Studio Magazine – Taking DevOps to the

next level: It’s all about continuous delivery.

In this section, I’m going to describe a bit deeper view about Three

important stages of Conversation, which are People, Process and Products.

The Three Stage Conversation – People, Process, Products

DevOps is the correlation of people, process, and products to enable

continuous delivery of value to end users. The outcomes are tightly

connected to ability for frequent releases and at the same time to keep the

same level of quality.

People:

Thinking of DevOps at a really high level, it’s first all about people. DevOps

business, everybody that is involved, that needs to deliver value to the

business is working very tightly together on a common goal of adding value

to the customer. The latest study by Gartner, which involved 367 IT and

leading companies, from which 113 companies were using DevOps, showed

that people issue is the biggest concern in the share of interviewed

participants. This study also revealed that the share of process and IT issues

is on less lower level, than people issue. So we can think that having highly

motivated people with good collaboration between teams is very

important.

Process:

Next – DevOps is about process because even if you have those people that

are good working together but then you have got business process in a way

that is really blocking innovation, for instance long chain advisory boards

before they can do something or they are restricted to doing things in a

certain way that really impedes that kind of innovation. The process of

designing, building and testing software should be well presented to each

individual team member, to make every team member aware of all parts of

the development process. The implementation of DevOps process into

company is a hard work, as it completely changes the company’s structure

as a whole.

Page 11: TABLE OF CONTENTS - gallery.technet.microsoft.com · management tools. • Part 2: Principles of DevOps One of the commonly cited DevOps principle is òInfrastructure as a code ó

11

That’s part of a bigger picture of DevOps. Enabling efficient flow of people

working together and not having processes get in the way but having

processes and practices that help enable that value deliver to your

customers.

Products:

DevOps is not a tool or product. You can’t buy the DevOps, as DevOps is not

a software, tool, process, company or person, it’s a methodology used

especially by IT professionals. But there are products, tools and services

that really help enable different DevOps practices and different teams can

use to make things easier. From very high level those tools are Microsoft

Azure, which is offering a lot of different products and services, such as

Microsoft Azure Stack and Microsoft Azure. Besides Microsoft Azure there

are also other products related to DevOps practices, such as Visual Studio

Team Services (VSTS) and Team Foundation Server (TFS).

Conclusion

So, DevOps is working like a mediator between Development and

Operations and is helping businesses in a tremendous way that need

continuous change to thrive in the competitive market. DevOps is not a

software, tool, person or process, it’s way much more than that. It is a

philosophy, which is changing the work practices in IT in the way which

requires tight collaboration between everyone involved to enable

continuous delivery to the end users.

Page 12: TABLE OF CONTENTS - gallery.technet.microsoft.com · management tools. • Part 2: Principles of DevOps One of the commonly cited DevOps principle is òInfrastructure as a code ó

12

STRUCTURE OF DEVOPS

Introduction

DevOps is a methodology that refers to anything that settles the interaction

between development and operations. Development needs as much

changes as possible to grow and to meet the needs of the changing time

while for Operations change is the enemy. Operations require stability and

strongly resist change that is a need for Development.

Part 1: DevOps Frame

DevOps is a strategy intended to bring perfection in software delivery

lifecycle by aligning development and Operations teams around the

business goals. As per Microsoft’s standard level definitions DevOps Level

100 is introductory and overview material. It covers topic concepts,

functions, features, and benefits. DevOps Level 200 is intermediate

material. Assumes 100-level knowledge and provides specific details about

the topic. DevOps Level 300 is advanced material. Assumes 200-level

knowledge, in-depth understanding of features in a real-world

environment, and strong coding skills. Provides a detailed technical

overview of a subset of product/technology features, covering architecture,

performance, migration, deployment, and development.

Page 13: TABLE OF CONTENTS - gallery.technet.microsoft.com · management tools. • Part 2: Principles of DevOps One of the commonly cited DevOps principle is òInfrastructure as a code ó

13

Part 2: DevOps Practices

There are many fundamental DevOps practices. Few of them are listed

below:

Infrastructure as Code (IaC) is the practice in which the techniques,

processes, and tool sets used in software development are leveraged to

manage the deployment and configuration of systems, applications, and

middleware. Most of the testing and deployment defects occur when

developer’s environments differ from testing and production

environments. Putting these environments under version control yields

immediate benefits in consistency, time savings, error rates, and

auditability.

Under Continuous Integration (CI) practice, the working copies of all the

developers code are combined with a shared mainline.

Automated Testing – is the practice where various tests such as load,

functional, integration, and unit tests happen automatically either after you

check in code (i.e. attached to CI) or some other means to fire off one or

more tests automatically against a specific build or app.

Release management is a practice intended to oversee the development,

testing, deployment and support of software releases.

Configuration Management is the practice for establishing and maintaining

consistency of a product’s performance with its requirements, design and

operational information throughout its life.

Page 14: TABLE OF CONTENTS - gallery.technet.microsoft.com · management tools. • Part 2: Principles of DevOps One of the commonly cited DevOps principle is òInfrastructure as a code ó

14

Conclusion

DevOps is all about better delivery practices, automation, removing

bottlenecks and is Agile at Organization level. DevOps is not a tool. It cannot

be built or achieved in a day or a month. It is a path – a roadmap that needs

to be followed.