Vous êtes sur la page 1sur 24

PROJECT

Implementing DevOps Technique Using Git and Jenkins

“EZ Hospital Management”

Name : 1. Joshua Prima Pramono

2. Muhammad Fadil Ardiansyah

Faculty : Dudy Fathan Ali, S.Kom

Semester :3

Quarter :2

Class : 3SC1

Continuing Education Center for Computing and Information

Technology Faculty of Engineering, University of Indonesia

2018
PREFACE

First of all, the writer wants to express his thanks to Allah SWT, because
of his bless and grace, this module titled “Implementing DevOps Technique Using
Git and Jenkins” can be finished on time.

The writer also delivers her gratitude to Mr. Dudy Fathan Ali, the lecturer
of CCIT Faculty of Engineering, University of Indonesia, for his guidance to
complete it. This module provides the reader about implementing devops
technique using git and jenkins. The writer realize that this module is far from
perfect in the arrangement or in the content. The writer hopes that the suggestion
from the reader can be support to make it better in the next project.

Finally, the writer expects that it can be a medium for the reader to know
about devops technique using git and jenkins.

2
TABLE OF CONTENTS

PREFACE .............................................................................................................. 2
I.1 BACKGROUND ................................................................................................. 7
I.2 WRITING OBJECTIVE ....................................................................................... 7
I.3 PROBLEM DOMAIN .......................................................................................... 7
I.4 WRITING METHODOLOGY ............................................................................... 8
I.5 WRITING FRAMEWORK.................................................................................... 8

II. BASIC THEORY ............................................................................................. 9


II.1 DEFINITION OF DEVOPS ................................................................................. 9
II.2 DEVOPS WORKFLOW ..................................................................................... 9
II.3 DEVOPS TOOLS............................................................................................ 11
II.4 CONTINUOUS INTEGRATION ......................................................................... 14
II.6 CONTINUOUS DEPLOYMENT......................................................................... 15
II.7 CONTINUOUS DELIVERY .............................................................................. 16
II.8 CONTINUOUS MONITORING ......................................................................... 17

III. PROBLEM ANALYSIS............................................................................... 19


III.1 DESCRIPTION EZ HOSPITAL MANAGEMENT ............................................... 19
III.2 IMPLEMENTATION GITHUB IN EZ HOSPITAL MANAGEMENT...................... 19

IV. CONCLUSION AND SUGGESTION ........................................................ 24


IV.1 CONCLUSION .............................................................................................. 24
IV.2 SUGGESTION ............................................................................................... 24

3
4
TABLE OF FIGURES

Figure 3.1
Figure 3.2
Figure 3.3
Figure 3.4
Figure 3.5
Figure 3.6
Figure 3.7
Figure 3.8
Figure 3.9
Figure 3.10
Figure 3.11
Figure 3.12

5
6
I. INTRODUCTION

I.1 Background
In this era, many hospital often get problems on their management system. So every
hospital need good management system. EZ Hospital Management comes to finish
these problems. EZ Hospital Management is an application to manage hospital
specially for Room Management.

I.2 Writing Objective


The following is the writing purpose will discuss in Project about implementing devops
technique using git and jenkins.

1. To explain DevOps definition


2. To explain DevOps workflow
3. To explain DevOps tools
4. To explain Continuous integration
5. To explain Continuous deployment
6. To explain Continuous delivery
7. To explain Continuous monitoring
8. To explain the implementation of DevOps

I.3 Problem Domain


The following is the problem domain will discuss in Project about implementing
DevOps technique using git and jenkins.

1. What’s DevOps
2. What’s the workflow DevOps
3. What’s the tool used in DevOps
4. What’s Continuous integration
5. What’s Continuous deployment
6. What’s Continuous delivery
7. What’s Continuous monitoring

7
8. How to implement DevOps

I.4 Writing Methodology


The method used in making this Project with the statement of materials from
various sources, both in the form of expirience, materials from the internet and
books, and from various media that get to support the perfection of this Project.

I.5 Writing Framework


This paper divides into four chapters. Each chapter in this study are interconnected
between chapters with chapter one another by systematic writing as follows:

CHAPTER I INTRODUCTION

Tell about the background, writing objective, problem domain, writing


methodology and writing framework.

CHAPTER II BASIC OF THEORY

Tell the Definition DevOps, DevOps Workflow, DevOps Tools, Continuous


Integration, Continuous Deployment, Continuous Delivery, Continuous
Monitoring

CHAPTER III PROBLEM ANALYSIS

Analyzing and solve the problem that contained in problem domain.

CHAPTER IV CONCLUSION AND SUGGESTION

Conclude and suggest things related to project.

8
II. BASIC THEORY

II.1 Definition of DevOps


A software development methodology that combines software development
(Dev) with information technology operations (Ops). The goal of DevOps is to
shorten the systems development life cycle while delivering features, fixes, and
updates frequently in close alignment with business objectives.

II.2 DevOps Workflow

Figure 1 DevOps WorkFlow

1. Iterative Planning
This means a schedule-planning and task-tracking tool is needed in
order to ensure the team knows what tasks are at hand, what is currently

9
being done and if there are any risks of falling behind the schedule.
(Introduction to DevOps, 2018)

2. Building code
Beyond simply crafting source code, the coding phase should utilize
agile practices and include the creation of test scripts and any additional
code that might be needed for the infrastructure. (Introduction to
DevOps, 2018)

3. Automated testing and continuous integration


Automated testing involved writing tests within the code so that every
change in the code can be evaluated by whether the test failed or not.
Continuous integration is an approach where modules of an application
get integrated with each other at intervals to verify the overall
functionality and stability of an application. (Introduction to DevOps,
2018)

4. Continuous delivery and continuous development


Continuous delivery is a software development practice where code
changes are automatically built, tested, and prepared for a release to
production. When continuous delivery is implemented properly,
developers will always have a deployment-ready build artifact that has
passed through a standardized test process.
Similar with, continuous delivery, but continuous deployment
automatically puts software in the production cycle. (Introduction to
DevOps, 2018)

5. Monitoring and logging


Monitoring involves checking if there’s a problem, or issue, with an
application. Logging involves maintaining the logs of the errors that are
encountered by the application. (Introduction to DevOps, 2018)

10
6. Customer feedback
In a DevOps culture, everyone on the product team has access to user
comments because they help guide everything from release planning to
exploratory testing sessions. (Introduction to DevOps, 2018)

II.3 DevOps Tools


The following sentence explains some of the DevOps tools that are usually
used:

1) Git
Git allows user to track the progress of any user development work.
User can save different versions of your source code and return to a previous
version when necessary. It’s also great for experimenting, as User can create
separate branches and merge new features only when they’re ready to go.

To integrate Git with your DevOps workflow, User also need to host
repositories where user team members can push their work. Currently, the
two best online Git repo hosting services are GitHub and Bitbucket. GitHub
is more well-known, but Bitbucket comes with free unlimited private repos
for small teams (up to five team members). With GitHub, user get access
only to public repos for free — which is still a great solution for many
projects. (Anna, 2018)

2) Jenkins
Jenkins is the go-to DevOps automation tool for many software
development teams. It’s an open source CI/CD server that allows user to
automate the different stages of any user delivery pipeline. The main reason
for Jenkins’ popularity is its huge plugin ecosystem. Currently, it offers
more than 1,000 plugins, so it integrates with almost all DevOps tools, from
Docker to Puppet.

11
It’s easy to get started with Jenkins, as it runs out-of-the-box on
Windows, Mac OS X, and Linux. User can also easily install it with Docker.
User can set up and configure your Jenkins server through a web interface.
If user are a first-time, user can choose to install it with some frequently
used plugins. However, user can create your custom config as well.
With Jenkins, user can iterate and deploy new code as quickly as
possible. It also allows user to measure the success of each step of your
pipeline. I’ve heard people complaining about Jenkins’ “ugly” and non-
intuitive UI. However, Any User could still find everything Any User
wanted without any problem. (Anna, 2018)

3) Puppet
Puppet is a cross-platform configuration management platform. It allows
user to manage your infrastructure as code. As it automates infrastructure
management, user can deliver software faster and more securely. Puppet
also provides developers with an open-source tool for smaller projects.
However, if you are dealing with a larger infrastructure, user may find value
in Puppet Enterprise’s extra features, such as:
 Real-time reports
 Role-based access control
 Node management

With Puppet, user can manage multiple teams and thousands of


resources. It automatically understands relationships within infrastructure.
It deals with dependencies and handles failures smartly. When it encounters
a failed configuration, it skips all the dependent configurations as well. The
best thing about Puppet is that it has more than 5,000 modules and integrates
with many popular DevOps tools. (Anna, 2018)

4) CVS

12
Concurrent Versioning System (CVS) was developed in 1986 by Dick
Grune.CVS has been popular withboth commercial and opensource
developers. CVS letting handles the changes by letting another user work
on the latest file. The CVS server runs on UNIX like system.
(Introduction to DevOps, 2018)

5) SVN

SVN is the successor of CVS as many of the bugs in CVS have been fixed
in the SVN system of version control. SVN includes atomic operations,
which mean that all the change made to the source control are applied or
none of the changes are applied (Introduction to DevOps, 2018)

6) Docker

Docker is an open source software platform to create, deploy and


manage virtualized container applications on a common operating system
(OS), with an ecosystem of allied tools.

Docker is a tool that packages, provisions and runs containers


independent of the OS. Container technology is available through the
operating system: A container packages the application service or function
with all of the libraries, configuration files, dependencies and other
necessary parts to operate. Each container shares the services of one
underlying operating system.

Docker was created to work on the Linux platform, but has


extended to offer greater support for non-Linux operating systems,
including Microsoft Windows and Apple OS X. (Rouse, 2017)

7) Graphite

13
Graphite is an enterprise-ready monitoring tool. Teams use
Graphite to track the performance of their websites, applications, business
services, and networked servers.

Graphite is composed of multiple back-end and front-end


components. The back-end components are used to store numeric time-
series data. The front-end components are used to retrieve the metric data
and optionally render graphs.

Graphite consist of three software components:

 Carbon : a daemon built on Twisted and it listens for time series


data.
 Whisper: a simple database library for storing time series data.

 Graphite webapp : is Django webapp that renders graphs on


demand using Cairo. (infoq, 2015)

8) Logstash

Logstash is an opensource central log file management application.


Usr can collect logs from multiple servers and multiple applications, parse
those logs, and store them in a central place. Logstash allows collect data
and process the data using multiple filters, which can modify and annotate
the event data. (Anna, 2018)

II.4 Continuous Integration


Continuous Integration (CI) is a development practice that requires
developers to integrate code into a shared repository several times a day.
Each check-in is then verified by an automated build, allowing teams to
detect problems early. By integrating regularly, you can detect errors
quickly, and locate them more easily.

14
Continuous Integration brings multiple benefits to your
organization:

 Say goodbye to long and tense integrations

 Increase visibility enabling greater communication

 Catch issues early and nip them in the bud

 Spend less time debugging and more time adding features

 Build a solid foundation

 Stop waiting to find out if your code’s going to work

 Reduce integration problems allowing you to deliver software more


rapidly (Though Work, n.d.)

II.6 Continuous Deployment


Continuous deployment is a software development practice in which
every code change goes through the entire pipeline and is put into
production, automatically, resulting in many production deployments
everyday. With continuous deployment, any updates working version of the
application is automatically pushed to production

The devops team needs to come up with a common tool and strategy
that lets it collaborate across development, testing, and deployment. A
common devops tools strategy must adhere to a common set of objectives
while providing seamless collaboration and integration between tools. Some
of the popular deployment tools are Chef, Electric Cloud, Puppet, and
Docker.

The benefits of continuous deployment:

15
 Each feature, after it is developed, offers an earlier return on the
investment that has been made, which lessen the need for large
capital investments.
 User can use and evaluate each new feature, which allows split
testing on different releases to establish which of the several possible
implementations is preferred by clients
 It provides an extremely fast feedback loop from application usage
to product management
 Feedback frothe continuous deployment loop will usually be
delivered to the whole devops team
 Decision to release a particular version of the application should be
done just by pushing a button, with the surety that the release being
deployed has gone through the entire pipeline successfully
 The risks associated with a release have significantly decreased, and
the release process has become more reliable. With continuous
deployment, the deployment process and scripts are tested
repeatedly before deployment to production. So, most errors in the
deployment process and scripts have already been discovered.
(Though Work, n.d.)

II.7 Continuous Delivery


Continuous Delivery is a software engineering approach for
automating software release at any time. CD is an extension of CI; it uses
the concepts and frameworks of CI, unit testing, and acceptance testing to
streamline software delivery. In CD code is compiled and tested every
time it is changed, and is frequently deployed to test environments and run
through automated acceptance tests

The benefits of continuous delivery:

 Deliver software with fewer bugs and lower risk.

16
When you release smaller changes more frequently, you catch errors
much earlier in the development process. When you implement
automated testing at every stage of development, you don’t pass failed
code to the next stage. And it’s easier to roll back smaller changes
when you need to.
 Release new features to market more frequently — and learn.
Releasing new features early and often — even in a minimally viable
state —
means you get more frequent feedback, giving you the ability to
iterate and learn from your customers. Enlisting customers as
development partners gives them a sense of co-ownership and loyalty,
and makes them more likely to forgive when you stumble.
 Respond to marketing conditions more quickly.
Market conditions change constantly. Whether you’ve just discovered
a new product is losing money, or that more customers are visiting
your site from smartphones than laptops, it’s much easier to make a
fast change if you are already practicing continuous delivery. (Though
Work, n.d.)

II.8 Continuous Monitoring


Continuous Monitoring is an essential part of DevOps, which not
only monitors software (resources) but also developers (people) and
development processes (methods). The resources are measured
continuously in all environments to find errors as early as possible. The
people are measured in terms of competence development (knowledge,
skills and attitude) and the method includes measuring velocity
(processing capacity) and efficiency.

The most important aspect of any managing and monitoring tools is to


provide real-time data that can be analyzed. Some of the most famous
tools for monitoring are Nagios, Zabbix, BigPanda, Pagerduty, Logtash
and Graphite. The monitoring of Information Technology (IT) controls

17
and automation of the monitoring process can offer substantial benefits.
These include:

The continuous monitoring involves checking for issues, security threats,


and performance-based issues.

 Providing crucial information that will help the user to nsure service
uptime and optimal performance.
 Earlier identification and timely corrective action of breakdowns in
processes and internal control deficiencies.
 Log management maintains the record of whatever happens in the
system while the application is running.
 Provide real-time data that can be analyzed. (Though Work, n.d.)

18
III. PROBLEM ANALYSIS

III.1 Description EZ Hospital Management


EZ Hospital Management is an application that can manage hospital room
management. EZ Hospital management integrated with GitHub for the repository
and implement Jenkins for automatically build.

III.2 Implementation GitHub In EZ Hospital Management


How to run Jenkins in local commit :
1) Create an empty folder

Figure 3.1 Create Empty Folder

2) Git Clone Project

Figure 3.2 Clone Project

19
3) Move to the directory that have been cloned

Figure 3.3 Move directory

4) Input this in the URL attribute, input GIT directory that have been cloned

Figure 3.4 Input attribute URL

20
5) Click new items on Jenkins, choose freestyle project

Figure 3.5 Create new item

6) In source code choose Git, input Repository URL with directory that have
been cloned

Figure 3.6 Input Repository URL

7) Choose this in Build Environment

Figure 3.7 Choose in Build Environment

21
8) In Build Trigger choose Poll SCM

Figure 3.8 Choose Poll SCM

Implementation in EZ Hospital Management :

Figure 3.9 EZHM

Figure 3.10 EZHM

22
Figure 3.11 EZHM

Figure 3.12 EZHM

23
IV. CONCLUSION AND SUGGESTION

IV.1 Conclusion
DevOps is a movement that bridges the gap between the
development and the operations teams so that both of them can work
together. There is so many tools that support DevOps such as GIT that can
be used as repository and can collaborated with other people even though
the person is far away and Jenkins that can be used to build the project. With
the help of the DevOps tool, the DevOps team can know what’s updated or
what’s change in the code. So, the process of developing the application
become faster and save some times.

IV.2 Suggestion
Creator strongly recommended developer to use DevOps tools like
GIT and Jenkins because there has many benefits, many feature and free to
use that. The process of developing the application become more faster and
save sometimes.

24

Vous aimerez peut-être aussi