Professional Documents
Culture Documents
Full Internship Report
Full Internship Report
Full Internship Report
Server-Based Web-Service
Submitted in partial fulfillment of the requirements for the award of
degree of
BACHELOR OF ENGINEERING
COMPUTER SCIENCE & ENGINEERING
16BCS2733
IS-2
i
CERTIFICATE
This is to certify that the work embodied in this report entitled Server-Based Web-Service being
submitted by Nitish Joshi (16BCS2733) for partial fulfillment of the requirement for the degree
of Bachelor of Engineering in Computer Science & Engineering discipline to Chandigarh
University during the academic year 2016-2020 is a record of bonafide piece of work, carried out
by him. The matter embodied in this project is a genuine work done by him and is worth
appreciation.
--------------------------------
(Name of Project Teacher)
(Designation)
ii
DECLARATION
I Nitish Joshi, final year student of Bachelor of Engineering in Computer Science & Engineering
discipline, session: 2016-2020, Chandigarh University, hereby declare that the work presented in
this report entitled “Server-Based Web-Service” is the outcome of my own work, is bona fide
and correct to the best of my knowledge and this work has been carried out taking care of
Engineering Ethics. The work presented does not infringe any patented work and has not been
submitted to any other university or anywhere else for the award of any degree or any
professional diploma.
iii
ACKNOWLEDGEMENT
The internship opportunity I had with WatchGuard Technologies, Noida was a great chance for
learning and professional development. Therefore, I consider myself as a very lucky individual
as I was provided with an opportunity to be a part of it. I am also grateful for having a chance to
meet so many wonderful people and professionals who led me though this internship period.
Bearing in mind previous I am using this opportunity to express my deepest gratitude and special
thanks to Mrs. Awanti Singh (Vice President of Engineering at WatchGuard Technologies,
Noida) who in spite of being extraordinarily busy with her duties, took time out to hear, guide
and keep me on the correct path and allowing me to carry out my project at their esteemed
organization and extending during the training.
I express my deepest thanks to Mr. Anand Dev (Senior Staff Engineer at WatchGuard
Technologies, Noida) for taking part in useful decision & giving necessary advices and guidance
and arranged all facilities to make life easier. I choose this moment to acknowledge his
contribution gratefully.
I respect and thank Mr. Arsh Arafaat (Tech Lead at WatchGuard Technologies, Noida) for
providing me an opportunity to do the project work and giving me support and guidance which
made me complete the project duly. I am extremely thankful to him for providing such a nice
support and guidance, although he had busy schedule managing the corporate affairs.
I owe my deep gratitude to my mentor Mr. Arjun S. Rautela (Senior Software Engineer at
WatchGuard Technologies, Noida), who took keen interest on my project work and guided me
all along till the completion of my project work by providing all the necessary information for
developing a good system.
I am thankful to and fortunate enough to get constant encouragement, support and guidance from
all the members of WatchGuard Technologies, Noida which helped me in successfully
completing my project work.
Nitish Joshi
iv
CONTENTS
Topic Page No.
v
CHAPTER 4- INTERNSHIP @WATCHGUARD 15-16
4.1 Internship at WatchGuard 16
4.2 Facilities provided to Interns 16
4.3 Evaluation of an Intern 16
4.4 My View-Points 16
REFERENCES 36
ANNEXURE(s)
vi
LIST OF FIGURES
Figure Page No.
vii
ABSTRACT
Web service is a standardized medium to propagate communication between the client and
server applications on the World Wide Web. A web service is a software module that is designed
to perform a certain set of tasks.
Software companies large and small are embracing microservices as a superior approach to
application development and management, compared to the earlier monolithic model that
combines a software application with the associated user interface and underlying database into a
single unit on a single server platform. With microservices, a complex application is broken up
into a series of smaller, more specialized services, each with its own database and its own
business logic. Microservices then communicate with each other across common interfaces (like
APIs) and REST interfaces (like HTTP). Using microservices, development teams can focus on
updating specific areas of an application without impacting it as a whole, resulting in faster
development, testing, and deployment. The concepts behind microservices and containerization
are similar as both are software development practices that essentially transform applications into
collections of smaller services or components which are portable, scalable, efficient and easier to
manage.
On the contrary, Cloud computing has enabled organizations to focus less on their IT
infrastructure and more on their core products and services. In fact, the cloud is no longer viewed
as an alternative to hosting infrastructure: In today’s world, all kinds of businesses are using
cloud services without having to worry about any underlying infrastructure issues. This new
consumption model has evolved to serverless architecture. By adopting serverless architectures,
customers can re-imagine their next-generation products from ideation to production, without
waiting for, or worrying about, infrastructure. The benefits are significant, generating
efficiencies, lowering costs, and speeding time to market.
viii
Chapter 1
Introduction
1
This chapter specifies the objectives, scope and data sources of this document.
1.1 Introduction
Internship is an opportunity to bridge the gap between academics and industry expectations. It
provides the students an opportunity to relate their academic knowledge with the industry trend.
It also helps the academic institutions to get up-to-date with the new industry trends. Industries
also get the idea about the research and development fields of the academia. So, we may call it a
two-way communication between academia and industry.
Chandigarh University provides this opportunity to its students within the bachelor program.
Every bachelor student of CU has to join an industry as an intern for minimum six months. Being
a bachelor student of CU, I was selected in WatchGuard Technologies to complete my
internship. I joined WatchGuard Technologies as an intern on 30th Sept 2019 and expecting to
successful end of this program on 30th June 2020.
CU expects feedback from the industries and the students. This document is that opportunity to
provide feedback to CU.
1.2 Objectives
This report has certain objectives. It will provide a feedback about the curriculum of the
Bachelor of Science in Computer Science and Engineering program. It will justify the industry
environment. It will also provide a direction to the upcoming batches how they need to prepare
themselves for the professional environment. Last but not the least, it will help me to analyze my
strength, weakness, opportunities and threats.
2
1.3 Scope
This report gives an insight of the challenges that I faced in my workplace. It also provides an
idea about how I adapt with the professional environment. A short description about the working
environment is added to this report. It also summarizes the outcomes of the internship period. A
brief discussion about my works is also provided. Finally, a comparison of my skills before and
after internship is provided which will justify my achievements.
1.4 Methodology
The report is conducted in a systematic procedure starting from very first challenge that I faced
to final report preparation. The integral part was to identify appropriate information, analyze
them, find the outcomes and present them in a systematic manner to find the vital points. The
overall process of methodology followed in this report is explained further.
I have divided the whole report into three main categories including the work place details, my
professional growth and my self-assessment. Depending on these categories I select the topics of
the report.
Primary Data was derived from the practical experience during my internship period.
Communication with my team-mates and other employees was also an important source of
primary data. Attending in different in-house activities was also a source.
3
1.4.2.2 Secondary Data
1.5 Limitations
I only worked on a few projects. So, it is not possible for me to provide proper justification of the
firm. I analyzed the information mainly from the feedbacks from my team mates and my co-
workers, so some opinions may be biased.
4
Chapter 2
Company Profile
5
This chapter emphasizes on the historical background of the company, overview of the company,
its product, services, clients and market condition.
2.1 Background
For over 20 years, WatchGuard has pioneered cutting-edge cyber security technology and
delivered it as easy-to-deploy and easy-to-manage solutions. With industry-leading network
security, secure Wi-Fi, multi-factor authentication, and network intelligence products and
services, WatchGuard enables more than 80,000 small and midsize enterprises from around the
globe to protect their most important assets. In a world where the cyber security landscape is
constantly evolving, and new threats emerge each day, WatchGuard makes enterprise-grade
cyber security technology accessible for every company. WatchGuard is headquartered in
Seattle, Washington, with offices throughout North America, Europe, Asia Pacific, and Latin
America. WatchGuard has deployed nearly a million integrated, multi-function threat
management appliances worldwide.
6
2.2 Mission
To bring widely deployable enterprise-grade security to small, medium sized organizations and
distributed enterprises.
2.3 Milestones
7
2.4 Core Values
1. Secure defaults.
2. No Backdoors.
3. What user want to protect? How we can protect it?
People matter.
8
This is our product that we send out into the world to make it a better place.
1. Build it right.
2. Be proud of it.
3. Demonstrate it yourself.
4. Release standard is "Would you want to use the product?"
9
Chapter 3
Office Environment
10
This chapter focuses on the professional environment of WatchGuard Technologies, Noida.
WatchGuard views its people as the prime capital of the company. This is a performance driven
organization, which believes that performance is very much related to work environment. So,
they always try to ensure an environment which is helpful for the employees to perform their
bests. Last eight months I have gone through this excellent work environment. I have observed
practical implementation of some professional buzzwords.
3.2 Work-hours
WatchGuard provides a flexible work hour. Though the scheduled work hour is 9.30 AM to 5.30
PM, anyone can come or leave office before or after schedule time. But every team member must
join team meeting. As this meeting takes place over GoToMeeting, anyone can join from outside
of the office.
There are no specific dress codes for the employees. But that doesn’t mean that someone can
arrive at the office by wearing something which is not that decent. Most of the employees come
to the office by having a business casual get up, though some maintain formal dress code.
WatchGuard was one of the pioneers of introducing flat hierarchy in our country. Any outsider
cannot differentiate employees having different designation. Most senior and most junior
member of the company treated equally. For example, we are the interns never feel us different
11
from other employees. There is no fixed seat arrangement at WatchGuard. Generally, team
members of a team sit together.
3.5 Organized
WatchGuard has an organized office structure. It has an organized leave management system.
There is an application by which any employee can apply for his requirements. Project sprints
are maintained strictly. Every employee should entry his or her work hour regularly into his/her
Confluence page.
3.6 Responsibility
Every employee has to be responsible for his or her work. One must complete his or her assigned
task within the time frame. He may take help from anyone of the team, but he must report his
daily progress. If anyone casually makes any mistake, he has to roll back the changes with his or
her own responsibility.
3.7 Scrum
Every team member has to join scrum whether he or she is at office or not unless he or she is in
leave. Scrum happens every working day except Saturday and Sunday. Tech Leads operate the
meeting. Everyone has to answer three questions on that meeting. The questions are:
12
3.8 Flexibility
WatchGuard offers employees a balance between work and life. Anyone may get flexibility for
his or her important personal works. WatchGuard offers a better flexibility for the students to
work with WatchGuard besides their study. During political unrest one may join office from
house.
3.9 Co-operation
An excellent co-operative environment exists at WatchGuard. Most employees are very willing
to help others. End of the year WatchGuard judges an employee’s co-operative skill and
communication skill.
3.10 Friendly
Employees of WatchGuard works in a very friendly environment. Most of the time there are fun
going. This environment will keep you enthusiastic. Being a part of WatchGuard for last eight
months I have discovered that friendly environment is very much helpful instead of very formal
environment for software development.
3.11 Inspiration
The environment of WatchGuard is really very inspiring for employees. When I have
successfully done a single task team leader appreciated me a lot. End of the year WatchGuard
provides reward for better performers which is really inspirable.
13
3.12 Virtual Office
If you feel unwell to come into office or have any important task in house, you can join office
from house or anywhere you want. The concept of this virtual office is really helpful for the
employees.
3.13 Facilities
WatchGuard provides lots of facilities to the employees. Here are some noteworthy points
regarding facilities:
3.14 Miscellaneous
Birthday Celebration: Birthdays of the employees are celebrated with birthday cakes.
Office throws a surprise party & wishes him/her by cutting a birthday cake.
Achievement Celebration: It is not necessary that it will be someone’s own achievement
to throw a treat. It can be for his family or relative’s achievement event. They never
forget to share their weal and woe because of its homely feelings.
Parties lots of parties are held over the year including- Potluck, Dine-out Parties etc.
14
Chapter 4
Internship @WatchGuard
15
4.1 Internship at WatchGuard
WatchGuard lately adopted the tradition of providing the facility of internship program. We are
the first ones who have a chance to become full-time employees through the internship program.
They take this internship program to make an individual habituated with the culture of the
company. This really helps both the employee and the company.
Interns are equally treated as full time employee. We got a healthy amount of remuneration
compared to the interns of other software firms. Interns do not have a fixed leave schedule, they
can take leave for their academic activities. Interns are not isolated from regular employees and
work among them only. Interns are provided some special guidance to adapt with the company.
Intern also has to go through an evaluation. Team lead and team members evaluate intern for
their communication skill, technical skill, analytical ability and quality of work. This evaluation
is really helpful for the future career of interns.
I have found everything at WatchGuard that I expect as intern. They have a planned working
procedure for interns. The internship program of WatchGuard Technologies. is really of world
class level.
16
Chapter 5
Project Description
17
This chapter will focus on the project that was assigned to me during my internship at
WatchGuard.
5.1 Purpose
This document provides a detailed overview of Server-Based Applications. During the internship
at WatchGuard, Noida I was largely involved in the development of Serverless Applications
using AWS Serverless Application Model (SAM). Prior to work on Serverless Computing, I was
subjected to development of server-based applications using Python and Flask. So, this report
consists of only server-based service that I developed during the internship.
18
are feasible if they are given unlimited resources and infinite time. There are aspects in the
feasibility study portion of the preliminary investigation:
• Operational feasibility.
• Technical feasibility.
• Economical feasibility.
5.5 Overview
New architectural patterns (e.g. microservices), the massive adoption of Linux containers (e.g.
Docker containers), and improvements in key features of Cloud computing such as auto-scaling,
have helped developers to decouple complex and monolithic systems into smaller stateless
services. In turn, Cloud providers have introduced serverless computing, where applications can
be defined as a workflow of event-triggered functions. Cloud computing introduced the ability to
provision on-demand computational resources reducing the needs for on-premises resources.
Indeed, Virtual Machines (VMs) have played a fundamental role to create customized and
replicable execution environments for applications, in order to guarantee successful executions.
Also, elasticity has been the cornerstone functionality of IaaS (Infrastructure as a Service) Cloud
computing where new VMs can be provisioned in order to cope with increased workloads.
Public Cloud providers such as Amazon Web Services (AWS) have fostered the migration of
complex application architectures to the Cloud in order to take advantage of the pay-per-use cost
model.
19
5.6.2 Hardware interfaces
Both the applications are intended to be platform independent. Therefore, no specific hardware is
excluded. But it will at least work on x86 systems without any additional porting efforts.
Moreover, no special hardware is needed for software operation. More details are covered in
section 3.1.2.
20
5.9 Conclusion
Rather than thinking in terms of containers vs. serverless, it’s better to think of containers and
serverless as technologies that complement each other. Most organizations are likely to use
containers and serverless, not one or the other. In fact, you might even use both technologies to
help deliver the same application.
Adopting serverless can deliver many benefits—but the road to serverless can get challenging
depending on the use case. And like any new technology innovations, serverless architectures
will evolve enroute to becoming a well-established obvious standard. While serverless
architecture may not be a solution to every IT problem, it surely represents the future of many
kinds of computing solutions in the coming years.
21
Chapter 6
Technology Details
22
This chapter will focus on the technologies that I learnt during my internship at WatchGuard.
6.1 Python
Python is an interpreted, high-level, general-purpose programming language. Created by Guido
van Rossum and first released in 1991, Python's design philosophy emphasizes code readability
with its notable use of significant whitespace. Its language constructs and object-oriented
approach aim to help programmers write clear, logical code for small and large-scale projects.
Python is dynamically typed and garbage-collected. It supports multiple programming
paradigms, including structured (particularly, procedural), object-oriented, and functional
programming. Python is often described as a "batteries included" language due to its
comprehensive standard library.
6.2 REST
Representational state transfer (REST) is a software architectural style that defines a set of
constraints to be used for creating Web services. Web services that conform to the REST
architectural style, called RESTful Web services, provide interoperability between computer
systems on the Internet. RESTful Web services allow the requesting systems to access and
manipulate textual representations of Web resources by using a uniform and predefined set of
stateless operations. Other kinds of Web services, such as SOAP Web services, expose their own
arbitrary sets of operations. "Web resources" were first defined on the World Wide Web as
documents or files identified by their URLs. However, today they have a much more generic and
abstract definition that encompasses everything, entity, or action that can be identified, named,
addressed, handled, or performed, in any way whatsoever, on the Web. In a RESTful Web
23
service, requests made to a resource's URI will elicit a response with a payload formatted in
HTML, XML, JSON, or some other format. The response can confirm that some alteration has
been made to the resource state, and the response can provide hypertext links to other related
resources. When HTTP is used, as is most common, the operations (HTTP methods) available
are GET, HEAD, POST, PUT, PATCH, DELETE, CONNECT, OPTIONS and TRACE.
6.3 Flask
Flask is a micro web framework written in Python. It is classified as a microframework because
it does not require particular tools or libraries. It has no database abstraction layer, form
validation, or any other components where pre-existing third-party libraries provide common
functions. However, Flask supports extensions that can add application features as if they were
implemented in Flask itself. Extensions exist for object-relational mappers, form validation,
upload handling, various open authentication technologies and several common framework
related tools. Extensions are updated far more frequently than the core Flask program.
Applications that use the Flask framework include Pinterest and LinkedIn.
24
6.4 Flask-RESTful
Flask-RESTful is an extension for Flask that adds support for quickly building REST APIs. It is
a lightweight abstraction that works with your existing ORM/libraries. Flask-RESTful
encourages best practices with minimal setup. If you are familiar with Flask, Flask-RESTful
should be easy to pick up.
25
6.5.1 AWS Lambda
AWS Lambda lets you run code without provisioning or managing servers. You pay only for the
compute time you consume. With Lambda, you can run code for virtually any type of application
or backend service - all with zero administration. Just upload your code and Lambda takes care
of everything required to run and scale your code with high availability. You can set up your
code to automatically trigger from other AWS services or call it directly from any web or mobile
app.
26
6.6 Git
Git is a distributed version-control system for tracking changes in source code during software
development. It is designed for coordinating work among programmers, but it can be used to
track changes in any set of files. Its goals include speed, data integrity, and support for
distributed, non-linear workflows. Git was created by Linus Torvalds in 2005 for development of
the Linux kernel, with other kernel developers contributing to its initial development. Its current
maintainer since 2005 is Junio Hamano. As with most other distributed version-control systems,
and unlike most client–server systems, every Git directory on every computer is a full-fledged
repository with complete history and full version-tracking abilities, independent of network
access or a central server. Git is free and open-source software distributed under the terms of the
GNU General Public License version 2.
6.7 Postman
Postman is a scalable API testing tool that quickly integrates into CI/CD pipeline. It started in
2012 as a side project by Abhinav Asthana to simplify API workflow in testing and
development. API stands for Application Programming Interface which allows software
applications to communicate with each other via API calls.
27
Chapter 7
Project Details
28
This section throws light upon the problem statement that I had to tackle in order for successful
completion of project.
7.1 Introduction
For the better understanding of containerized or server-based service, the first project that I made
in my Internship was Library Management System. It is not a normal application, but a web-
service that can only be accessed by accessing API-endpoints. It is an epitome of server-based
application as it can only be accessed when the server is running. If the server is not running, we
will not be able to access its functionalities.
Here are the problem statements listed, with the intention to addressing the approach question
and methods to solve the problem statements. In this section methods for trying to solve the
current problem statement is mentioned.
Problem Statement
This service must have two types of Users/Roles i.e. Librarian (Admin) and User.
Both the users will have following information associated with them:
First Name
Last Name
Role
Age
Address
Following are the Inventory related information that are to be stored in database regarding each
book:
Title
Author
Publish Year
29
Category
Total Number of copies.
Available copies
Signup:
Login/Logout:
1. Add login and logout endpoints for every user to do any operation.
Librarian Use-Case:
1. After a successful login, only the Librarian will able to add any new book or update an
existing book. It should fail for any other user.
2. List all the users in the system.
3. Check for any issue request and take the required action.
4. Issue an existing book to an existing user and update the available copies or if available
copies are zero should raise an error.
5. Search the books by Category, author, publish year (Use path parameter and query
parameter or combination of both)
6. Search by Title all the users who currently have the book.
7. Update inventory in case of a book is returned.
User Use-Case:
30
4. Check all the books currently issued to him/her.
5. Request for a new book to be purchased.
System:
1. Create a log file that records every event along with the timestamp and other useful
details.
a. User Creation
b. Book added
c. Book issue/Return.
d. Etc.
2. The logfile should be rotated every hour.
3. Use JSON, YAML, CSV or database to store the data.
4. Create a Postman collection to test the application.
31
Chapter 8
Conclusion
32
8.1 Level of accomplishment of duties and responsibilities assigned
To a greater extent I successfully accomplished the duties and responsibilities assigned. Being in
the Research and Development department responsibilities included: Day to day work and daily
standup meetings, completion of courses assigned in Udemy, reverse KT sessions for the new
topics learnt. Once I was ready and gained enough knowledge, I was involved in On-Site
Projects that played an instrumental role in honing my knowledge and skills.
During the internship, I accumulated a lot of knowledge and skills. Each of the duties and
responsibilities assigned, empowered me and greatly impacted on my skills.
8.2.1 Knowledge
8.2.2 Skills
Computer competency, attention to detail, organization, problem solving, critical thinking, clear
written and spoken communication, time management, close listening.
8.2.3 Responsibilities
Working towards achieving my individual goals, which helped the organization reach its
objectives, Taking responsibility for your own professional and career development, Being open
and Accepting constructive feedback and take the initiative to improve, Giving others feedback,
Completing any development plans assigned to me and applying the learning to improve my
33
performance, Keeping record of my performance achievements, successes and challenges i.e.
evaluation sheets in case of assignments, Completing my self-appraisal by the specified deadline.
During this period, I really enjoyed the experience of working at WatchGuard including the
comfortable working atmosphere, the technical guidance on the latest web technologies and the
friendly relationship among the field staff. A list of interesting moments, are highlighted below:
Accomplishing my project assigned (developing a web-service using Python and Flask). The
project involved several parts: developing a database using SQLAlchemy, responsive, attractive
API-endpoints. It was a very self-contained project which every intern built up from scratch.
I also had the opportunity to network with potential future employers and gain insight into the
types of employees they look for. This made me realize the greatest value of Internship which is
providing a unique and exciting experience that is unparalleled in the classroom and to
coordinate job experience with academic.
Working with some of the best developers, designers and managers RnD department, solving
problems that you can never face in a school environment, bonding with other interns that make
up a very diverse demographic.
34
8.4 Challenges Faced
Due to the healthy work environment and great efforts from the Manager of WatchGuard, Noida,
I faced no challenge during my internship. Everybody was helpful and kind and I don’t even
know how I have already passed my 8 months here.
For the different values in regard to work and need for different things in the job market today
that include satisfaction and fulfillment from the career motivation attained. This makes me plan
a more fulfilling and productive career and create an environment I can thrive in motivation's
role in influencing workplace behavior and performance at school
35
REFERENCES
[1] https://www.watchguard.com
[2] https://www.cloudflare.com/learning/serverless/serverless-vs-containers/
[3] https://cacm.acm.org/magazines/2019/12/241054-the-rise-of-serverless-computing/fulltext
[4] https://searchitoperations.techtarget.com/definition/application-containerization-app
containerization
[5] https://www.tcs.com/content/dam/tcs/pdf/technologies/cloud-microservices
api/abstract/Serverless%20Computing.pdf
[6] https://www.ibm.com/cloud/learn/containerization#toc-applicatio-1xzdLX6E
[7] https://www.sumologic.com/blog/serverless-vs-containers/
[8] https://wiki.ubuntu.com/LTS, 2013-10-23.
36
ANNEXURES
Annexure-I: Progress Report Performa
37
Annexure-II: Stipend Slips
38
Fig.17 – Stipend Slip (Dec 2019)
39
Fig.19 – Stipend Slip (Feb 2020)
40
Fig.21 – Stipend Slip (April 2020)
41