Full Internship Report

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 50

INTERNSHIP PROJECT REPORT

Server-Based Web-Service
Submitted in partial fulfillment of the requirements for the award of
degree of

BACHELOR OF ENGINEERING
COMPUTER SCIENCE & ENGINEERING

Submitted To: Submitted By:


<Teacher Name> Nitish Joshi

16BCS2733

IS-2

DEPARTMENT OF COMPUTER SCIENCE &

ENGINEERING CHANDIGARH UNIVERSITY

GHARUAN, MOHALI, PUNJAB, INDIA-140413


CERTIFICATE FROM COMPANY

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.

Certificate from Company i


Certificate ii
Declaration iii
Acknowledgement iv
Table of Contents v
List of Figures vii
Abstract viii

CHAPTER 1- INTRODUCTION 1-4


1.1 Introduction 2
1.2 Objectives 2
1.3 Scope 3
1.4 Methodology 3
1.5 Limitations 4

CHAPTER 2- COMPANY PROFILE 5-9


2.1 Background 6
2.2 Mission 7
2.3 Milestones 7
2.4 Core Values 8
2.5 Simple Rules 8

CHAPTER 3- OFFICE ENVIRONMENT 10-14


3.1 Brief Account 11
3.2 Work-hours 11
3.3 Dress Code 11
3.4 Flat Hierarchy 11
3.5 Organized 12
3.6 Responsibility 12
3.7 Scrum 12
3.8 Flexibility 13
3.9 Co-operation 13
3.10 Friendly 13
3.11 Inspiration 13
3.12 Virtual Office 14
3.13 Facilities 14
3.14 Miscellaneous 14

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

CHAPTER 5- PROJECT DESCRIPTION 17-21


5.1 Purpose 18
5.2 Position Occupied in Organization 18
5.3 Problem Definition 18
5.4 Product Scope 18
5.5 Overview 19
5.6 Overall Description 19
5.7 Operating Environment 20
5.8 Assumptions and Dependencies 20
5.9 Conclusion 21

CHAPTER 6- TECHNOLOGY DETAILS 22-27


6.1 Python 23
6.2 REST 23
6.3 Flask 24
6.4 Flask-RESTful 25
6.5 AWS 25
6.6 Git 27
6.7 Postman 27

CHAPTER 7- PROJECT DETAILS 28-31


7.1 Introduction 29

CHAPTER 8- CONCLUSION 32-19


8.1 Level of accomplishment of duties 33
8.2 New Knowledge and Skills Gained 33
8.3 Most Interesting Experiences 34
8.4 Challenges Faced 35
8.5 Benefits derived from Internship 35
8.6 Career Motivation 35

REFERENCES 36
ANNEXURE(s)

vi
LIST OF FIGURES
Figure Page No.

Fig.1 – WatchGuard Motto 6

Fig.2 – WatchGuard Milestones 7

Fig.3 – WatchGuard Core Values 8

Fig.4 – Types of applications 21

Fig.5 – Python Logo 23

Fig.6 – REST Architecture 24

Fig.7 – Flask Logo 24

Fig 8 – Flask RESTful Logo 25

Fig.9 – Amazon Web Services 25

Fig.10 – Amazon Lambda Logo 26

Fig.11 – Amazon SAM Logo 26

Fig.12 – Git Logo 27

Fig.13 – Postman Logo 27

Fig.14 – Progress Report Performa 37

Fig.15 – Stipend Slip (Oct 2019) 38

Fig.16 – Stipend Slip (Nov 2019) 38

Fig.17 – Stipend Slip (Dec 2019) 39

Fig.18 – Stipend Slip (Jan 2020) 39

Fig.19 – Stipend Slip (Feb 2020) 40

Fig.20 – Stipend Slip (Mar 2020) 40

Fig.21 – Stipend Slip (April 2020) 41

Fig.22 – Stipend Slip (May 2020) 41

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.

1.4.1 Selection of the topics

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.

1.4.2 Sources of the data

1.4.2.1 Primary Data

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

 Documents provided by the office.


 Website of WatchGuard Technologies.
 Internet .

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

WatchGuard, formally known as WatchGuard Technologies, Inc is a Seattle, Washington-based


network security vendor. Its products are designed to protect computer networks from outside
threats such as malware and ransomware. The company was founded in 1996.

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.

Fig.1 – WatchGuard Motto

6
2.2 Mission

To bring widely deployable enterprise-grade security to small, medium sized organizations and
distributed enterprises.

2.3 Milestones

•Pioneered FIRST security appliance


1996

•FIRST to incorporate UTM capabilities into a single appliance


2003

•New product atchitecture launched


2010

•Cloud-based defense (RED); App Control (NGFW)


2011

•Introduced Access Points


2013 •Introduced Dimension

•Introduced Next Gen Firebox Appliances


2014 •Introduced APT protection

•Introduced Dimension Command


2015

•Secure Cloud-Managed Wi-Fi


2016

•Introduced Threat Correlation


2017 •Expandable Network Security to the Endpoint

•Introduced Multi-Factor Authentication


2018

•Launched WatchGuard Cloud


2019

Fig.2 – WatchGuard Milestones

7
2.4 Core Values

Fig.3 – WatchGuard Core Values

2.5 Simple Rules

 We are a security company so insist on security.

1. Secure defaults.
2. No Backdoors.
3. What user want to protect? How we can protect it?

 People matter.

1. Keep focus and hold onto communication with other teams.


2. Volunteerism.
3. Our company is small, get to know everyone.

 Our platforms are the launching pad to wherever we want to go.

 Not intend just by what we can build.

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?"

 Have fun, be obsessed.

9
Chapter 3

Office Environment

10
This chapter focuses on the professional environment of WatchGuard Technologies, Noida.

3.1 Brief Account

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.

3.3 Dress Code

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.

3.4 Flat Hierarchy

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:

What have you done today?

What are you planning to do next day?

Is there any blocking issue?

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:

 Highly configured development laptops for each developer and tester.


 Enriched study materials.
 Facility of high-speed Internet.
 Communication over GoToMeeting and Microsoft Teams.
 Organized Project Management tool (JIRA).
 Regular session conducted in-house for introducing new technology.

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.

4.2 Facilities provided to interns

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.

4.3 Evaluation of an intern

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.

4.4 My view points

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.

5.2 Position Occupied in Organization


For the eight months in WatchGuard, Noida, I occupied the position of a full-time Engineering
Intern with work schedule from Monday to Friday 9:00am to 5:00 pm as indicated in “Appendix
A”. Additionally, I worked with other staff occupying other different positions at the company,
thereby doing a wide range of roles.

5.3 Problem Definition


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.

5.4 Product Scope


Preliminary investigation examines project feasibility; the likelihood the system will be useful to
the organization. The main objective of the feasibility study is to test Technical, Operational and
Economical feasibility for adding new modules and debugging old running system. All systems

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.

5.6 Overall Description:


This area includes various product perspectives of our both the applications.

5.6.1 User interfaces


GUI (Graphical User Interface) will not be used in both the applications.

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.

5.6.3 Software interfaces


Both the applications are intended to work on any operating system. These have been
programmed in Python which is a platform dependent language. We have tested the software to
run on Windows platforms.

5.6.4 Communication interfaces


• Network protocols for program update information.
• System I/O protocols for local file access.

5.6.5 Memory constraints


The project is expected to use 512 MB of RAM or more and 4 GB of external storage or more.

5.6.6 Site adaptation requirements


User interface must exist in English.

5.7 Operating Environment


The project is intended to be operating system independent. Therefore, no specific operating
system is excluded. But it has been developed in Windows OS. The project will use Python
programming language.

5.8 Assumptions and Dependencies


Future versions of this project should use primarily Python and AWS, but it can also be
developed using Java.

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.

Serverless computing is an evolution in cloud application development, exemplified by the


Function-as-a-Service model where users write small functions, which are then managed by the
cloud platform. This model has proven useful in a number of application scenarios ranging from
event handlers with burst invocation patterns, to compute-intensive big data analytics. Serverless
computing lowers the bar for developers by delegating to the platform provider much of the
operational complexity of monitoring and scaling large-scale applications. However, the
developer now needs to work around limitations on the stateless nature of their functions and
understand how to map their application's SLAs to those of the serverless platform and other
dependent services. While many challenges remain, there have been rapid advances in the tools
and programming models offered by industry, academia, and open source projects.

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.

Fig.4 – Types of applications

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.

Fig.5 – Python Logo

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.

Fig.6 – REST Architecture

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.

Fig.7 – Flask Logo

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.

Fig.8 – Flask RESTful Logo

6.5 Amazon Web Services (AWS)


Amazon Web Services (AWS) is a subsidiary of Amazon that provides on-demand cloud
computing platforms and APIs to individuals, companies, and governments, on a metered pay-
as-you-go basis. In aggregate, these cloud computing web services provide a set of primitive
abstract technical infrastructure and distributed computing building blocks and tools. One of
these services is Amazon Elastic Compute Cloud, which allows users to have at their disposal a
virtual cluster of computers, available all the time, through the Internet. AWS's version of virtual
computers emulate most of the attributes of a real computer, including hardware central
processing units (CPUs) and graphics processing units (GPUs) for processing; local/RAM
memory; hard-disk/SSD storage; a choice of operating systems; networking; and pre-loaded
application software such as web servers, databases, and customer relationship management
(CRM).

Fig.9 – Amazon Web Services

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.

Fig.10 – Amazon Lambda Logo

6.5.2 AWS Serverless Application Model (SAM)


The AWS Serverless Application Model (SAM) is an open-source framework for building
serverless applications. It provides shorthand syntax to express functions, APIs, databases, and
event source mappings. With just a few lines per resource, you can define the application you
want and model it uses YAML. During deployment, SAM transforms and expands the SAM
syntax into AWS CloudFormation syntax, enabling you to build serverless applications faster.

Fig.11 – Amazon SAM Logo

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.

Fig.12 – Git Logo

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.

Fig.13 – Postman Logo

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.

7.1.1 Addressing the problem statements-

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

Functionalities to be provided by the web-service:

Signup:

1. Create an API to add a librarian or user.

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:

1. The below operation can only be possible after the signup/login.


2. Search the books by Category, author, publish year (Use path parameter and query
parameter or combination of both) if exists, then can it be issued or not based on number
of copies and issued status.
3. Request librarian to issue the book.

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.

8.2 New Knowledge and Skills Gained

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

 Python Programming. This was the first aspect for me to cover.


 Cloud Computing. This was through courses assigned on Udemy which were related
to AWS i.e. Amazon Web Services.
 Technical Support. Providing technical assistance to other members, from training
individuals in new software applications to clearing their doubts and confusions.

 Project and Technical Services Management. Through overseeing individual


projects, from communication to coordinating with team members.

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.

8.3 Most Interesting Experiences

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:

8.3.1 Internship project

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.

8.3.2 Interaction with experienced people in the field

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.

8.3.3 Learning IT area of interest

Internship offered me the opportunity to essentially customize my placement in order to gain


valuable work experience in my areas of interest and I had the opportunity to look at a server.

8.3.4 Working with experienced and more skilled individuals

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.

8.5 Benefits derived from Internship

The Internship was of great importance, some of the benefits include:

 Internship helped me understand work ethics, employment demands, responsibilities and


opportunities.
 Field attachment provided career direction and confidence in my abilities by narrowing
down the list of potential careers.
 My internship broadened my horizons through converting my academic knowledge into
industry skills.
 It prepared me for the working environment.
 It enhanced my CV needed to negotiate future jobs.

8.6 Career Motivation

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

Fig.14 – Progress Report Performa

37
Annexure-II: Stipend Slips

Fig.15 – Stipend Slip (Oct 2019)

Fig.16 – Stipend Slip (Nov 2019)

38
Fig.17 – Stipend Slip (Dec 2019)

Fig.18 – Stipend Slip (Jan 2020)

39
Fig.19 – Stipend Slip (Feb 2020)

Fig.20 – Stipend Slip (Mar 2020)

40
Fig.21 – Stipend Slip (April 2020)

Fig.22 – Stipend Slip (May 2020)

41

You might also like