Image Compression Storage Policy for Openstack Swift

Matthew Chang
Matthew ChangSoftware Engineer @Urhyme at Urhyme

A research paper

IMAGE COMPRESSION STORAGE POLICY FOR OPENSTACK SWIFT
A Research Paper
Presented to
Computer Engineering Department
San José State University
by
Ikwhan Chang
December 2016
IMAGE COMPRESSION STORAGE POLICY FOR OPENSTACK SWIFT ii
TABLE OF CONTENTS
ABSTRACT....................................................................................................................... 1
Introduction....................................................................................................................... 1
Background ....................................................................................................................... 2
Description of the Project................................................................................................. 2
Goals of the Project........................................................................................................... 3
Related Works................................................................................................................... 3
Technical Aspects.............................................................................................................. 8
Environments .................................................................................................................... 8
Architecture....................................................................................................................... 8
Test Scenario ..................................................................................................................... 9
Performance .................................................................................................................... 10
Challenges........................................................................................................................ 11
Conclusion ....................................................................................................................... 12
References........................................................................................................................ 13
IMAGE COMPRESSION STORAGE POLICY FOR OPENSTACK SWIFT iii
LIST OF TABLES
Table 1.				The Characteristic of Software-defined Network	.....................................................	5	
Table 2.				The Characteristic of Software-defined Data Center	................................................	7	
Table 3.				The list of the Swift’s file to adjust custom storage policy	........................................	9	
Table 4.				The Result of Test Scenario	.................................................................................	10
IMAGE COMPRESSION STORAGE POLICY FOR OPENSTACK SWIFT iv
LIST OF FIGURES
Figure 1.				Average bytes per page by content type	...........................................................	3	
Figure 2.				Content Management System (CMS) usage statistics	......................................	3	
Figure 3.				Source code within diskfile.py with image compression policy	........................	9	
Figure 4.				The procedure of testing to upload/load compressed image file	.....................	10
Image Compression Storage Policy for Openstack Swift
IMAGE COMPRESSION STORAGE POLICY FOR OPENSTACK SWIFT 1
ABSTRACT
Recently, the cloud storage service, such as SkyDrive, Google Drive, iCloud Drive, has
been growing rapidly with almost unlimited capacity. In addition, to simply uploading
data, users can easily share with others via the web with provided URL, and because of
this feature, many people not only simply share resources such as documents, but also
upload and use within their friends. Recently, Amazon Web Service (AWS) Simple
Storage Service (S3) provides REST API and SDKs through various programming
languages have been provided, and it can be utilized for user's web development.
Therefore, the environment of web development is moving the image hosting server and
so on to use the cloud storage service, which provides nearly unlimited capacity at a price
lower than the cost of operating the server itself. In this paper, we create a cloud storage
service for these web developers using OpenStack Swift, a private cloud similar as AWS
S3, and apply the image compression policy to specific containers. Thus, when the image
is uploaded, a compression file is generated. When the web server is used as an image
server, the optimized image is provided. Ultimately, we hope that by using our image
compression policy, the speed of the web page is increased.
Keywords—Software-defined Network; Software-defined Storage; Software-defined
Data Center; OpenStack; Swift; Storage resources; Image Compression; Optimization
Introduction
In the age of the cloud computing, there are many IaaS (Infrastructure-as-a-
Service) services such as Amazon AWS (AWS, n.d.), Google Cloud (GCE, n.d.), and
Microsoft Azure (Azure, n.d.), but they are expensive in terms of testing. With the
emergence of a private cloud like OpenStack (OpenStack, n.d.), many people use it to
install it on their bear metal server. However, for four years, OpenStack is not easy to
install, and even if it is installed, it is difficult to use it because of the amount of
complicated and vast source code. The OpenStack Swift (OpenStack Swift, n.d.) project
has begun, and Swift provides users with the ability to use their private clouds simply as
a cloud storage service, not as an image processing or account management task. For
those who do not need a complicated VM (Virtual Machine), while OpenStack provides
the role of cloud OS, Swift provides the role of cloud storage OS by abstracting the entire
hardware at the storage level and providing it like the cloud drive. Swift is one of the
Software-Defined Storage (SDxCentral, n.d.), “abstracting multiple physical storages and
providing them with the same properties as SDN's basic definition” (M. David, 2014) and
availability. This concept of container and storage (SDxCentral, n.d.) can be applied to
each user's custom policy especially for each container. “If the size of the data center is
turned on, the role of storage policy is very important.” (Thereska, 2013)
In this paper, OpenStack Swift is used to providing web developers with a custom
policy to automatically compress resources such as images. Recently, web developers are
IMAGE COMPRESSION STORAGE POLICY FOR OPENSTACK SWIFT 2
using resources that are cheaper and unlimited traffic with cloud storage service like
Amazon AWS S3, which enables developers such as image servers to automatically
compress resources and fix the speed of web pages thus we can increase the performance
of web page.
Background
The answer to why you need the image compression can be found in recent
Internet trends. According to the survey of Archive.org shown in Figure 1, 64% of the
online content is in image files. That is, the image file plays a very important role in
constituting the Internet page. Moreover, with the recent advances in display resolutions
such as HD images, Apple's Retina, UHD, and 5K, web developers no longer build web
pages with just one simple image. Apple's guide to providing the Retina (Apple Inc.,,
2013) suggests that “to provide high resolution, you need to provide additional images
with twice the resolution apart from regular images.” Alternatively, a vector image rather
than a pixel image, but it is difficult to create a vector for a typical photo file.
In addition to web developers, image-related services like Instagram have become
more important in recent years. Imgur (Imgur, n.d.), famous for providing Reddit (Reddit,
n.d.) images, decided to use Amazon AWS S3 (Amazon S3, n.d.), which provides both
loads balancing and caching while using multiple caching services. Also, many people
use Amazon AWS S3 as an image server for their websites in constant and reliable terms
(Jeff A., 2007). As part of our effort to increase page loading speed as well as caching
and load balancing, image optimization is the most important task, just like Forbes' expert
advice, but S3 does not automatically optimize images. On the other hand, image
optimization sites such as Compressor.io (Compressor.io, n.d.) and Tinypng (Tinypng,
n.d.) are gaining popularity, and Wordpress, which is famous for CMS (Content
Management System), occupies 47.19% of CMS as shown in Figure 2, people are paying
more attention to image compression, including more than 600,000 installations of plugin.
(Built With, 2005)
Based on this, we want to provide a service that uploads images and compresses
images using OpenStack Swift, which allows users to directly construct cloud storage.
Description of the Project
Our project works in three main ways: 1) analyzing the source code of the
complicated OpenStack Swift, how to modify the code, how to modify the individual
storage policy, and what factors can see if the developer wants to develop the storage
policy. 2) Identify the difference between the existing policy by putting the policy on the
specific storage of the actual OpenStack Swift. 3) When the user uploads the file, if the
file is an image type, develop the logic to save the compressed image. In our project, we
can create and use a compressed file in the same format as [File
Name]_compressed.[Extension] according to one upload request of user or developer.
IMAGE COMPRESSION STORAGE POLICY FOR OPENSTACK SWIFT 3
Figure 1. Average bytes per page by content
type (Http Archive, 2016) Figure 2. Content Management System
(CMS) usage statistics (BuiltWith® Pty
Ltd, 2016)
Goals of the Project
Our goal is as follows: 1) Analyze the Swift source code as our first step. The
OpenStack Swift source code consists of a huge amount of Python sources. The
diskfile.py is composed of more than 3000 lines of source code and more than 50 methods.
So, understanding Swift is our first step. 2) Analyze the swift proxy code flow. Once you
have completed the primary analysis, you will understand what each method does for
Swift, which consists of the actual proxy server and the object server. 3) Identify the files
that we need to modify to implement an additional storage policy. Analyze the source to
see where you can link the policy to the outbound. 4) Identified the most suitable image
compression technique. PIL (Python Image Library), Open CV, etc. to see what image
compression algorithm can be applied. 5) Modified the Swift code to add the new image
compression policy and integrated the compression procedure 6) Developed a web page
to demonstrate the usage of the new policy.
Related Works
A. Cloud Computing
Cloud computing is a service that uses all the computing resources from the
application to the data as much as you want in the internet environment and pays as much
as you use. There are two types of services: Infrastructure as a Service (IaaS), Platform as
a Service (PaaS), and Software as a Service (SaaS). Cloud-based services that take
advantage of the scalability and flexibility of the cloud have different data management
structures depending on the type of data serving. “To ensure the availability of data and
IMAGE COMPRESSION STORAGE POLICY FOR OPENSTACK SWIFT 4
services, data is duplicated, or triple managed.” (Chowdhury & Boutaba, 2010)
(Thereska, et al., 2013)
For example, a cloud storage service provides a certain size of volume for each
cloud storage user, and the user uses it. Moreover, “the data uploaded by the user is
managed in triplicate.” (Schaffrath, et al., 2009) However, there are two issues that need
to be addressed in the way data is managed using an existing cloud. First, space is wasted
because a certain size of the volume is allocated. Second, it is difficult to manage
different types of data.
B. Software-Defined Network (SDN)
The software-defined network uses software technology to define and utilize
networks. SDN's core philosophy is to separate network functions into hardware
functions and software functions to increase programmability and increase flexibility. In
the past, SDN has been responsible for data processing, policy management, and data
management in the data network. Moreover, a control layer area in which a control layer
is formed. The control layer area is separated so that it can be controlled by SDN
controller and application program. OpenFlow (McKeown, et al., 2008) is a
representative protocol for implementing SDN defined between the control layer and the
data layer in SDN.
With SDN, the packet path can be controlled through programming rather than
network equipment. In fact, the benefits associated with this have already been suggested
even though SDN is not currently discussed. However, ensuring programmability and
increasing flexibility by standards that are not specific to a specific vendor is possible on
a software-based rather than hardware-based basis. Therefore, SDN technology is
becoming a key technology among the major software base technologies. In particular,
the use of SDN has changed the characteristics of the data center as shown in Table I
Currently, SDN is considered as a representative example of the combination of
abstraction through network virtualization and the possibility of programming using
software.
C. Software-Defined Storage (SDS)
Software-defined storage (SDS) configures the storage pool and stores it in the
user's policy. This model increases the ease of management of storage by automatically
allocating storage according to the application requirements and providing it with a single
software control point. The SDS simplifies the management aspects by providing one
control point. It can be implemented using existing hardware infrastructure, and various
heterogeneous hardware products can be used. Also, various storage types such as blocks,
files and object storage can be integrated and provided.
IMAGE COMPRESSION STORAGE POLICY FOR OPENSTACK SWIFT 5
D. Software-Defined Data Center (SDDC)
Software-defined data centers refer to data centers that virtualize and operate IT
infrastructures such as servers, storage, and networking. Software defined the assessment
that datacenters can virtualize all their IT infrastructures and use them more efficiently
and agile with automated software has received a great deal of attention in the IT industry
today.
Data centers can be deployed using OpenFlow-compatible com- modify equipment with
only the necessary features, without expensive hardware with advanced networking
capabilities, separated into hardware responsible for the data layer and software for
controlling it.
Increased value as network centrally managed software by enabling full control of the
network through programming.
Network complexity in the cloud environment can be solved through network
virtualization using SDN.
Supports automation, auto-scaling, and service chaining, such as network changes due to
movement of virtual machines can be immediately confirmed through programming and
software can be supported.
Table I. The Characteristic of Software-defined Network
E. Software-Defined Anything/Everything (SDx)
As virtualization and cloud computing evolve, the software has emerged as a
software-as-a-service (SaaS), a cloud-based service that is now out of the traditional
simple client-server model. At the same time, the evolving part of the data center is the
infrastructure that provides servers and networks with physical stability and network
scalability. In the late 1990s, the data center, which was dominated by the Internet Data
Center (IDC), is now equipped with a very complex infrastructure consisting of
thousands and tens of thousands of servers, network and storage resources, driven by
virtualization and cloud development.
Software-defined Anything / Everything (SDx), one of the top 10 strategic
technology trends announced by Gartner in 2014 has become a buzzword as market
momentum for establishing software-based standards in these cloud computing and data
center markets has become increasingly strong term. (Gartner, 2013) The concept of
'software definition,' which embodies the philosophy of using software technology to
increase the agility and interoperability of areas that were directly controlled by hardware,
as it has expanded to include business and services in recent years.
IMAGE COMPRESSION STORAGE POLICY FOR OPENSTACK SWIFT 6
Market momentum based on 'software defined' has naturally spread to storage,
infrastructure, and data center as a whole, beginning with industry trends related to SDN.
Just as SDN, which defines software-dependent parts of the software, has advantages
such as automation, auto-scaling, and service chaining, software definitions are being
evaluated as a concept of leapfrogging hardware dependencies by taking advantage of the
software.
This definition of software spreads not only in today's network but also in all
areas of servers, storage, and infrastructures, resulting in the emergence of Software-
Defined Storage (SDS) and Software-Defined Data Center (SDDC) terms. Software-
defined Anything / Everything. Today, SDx is used as a business term to leverage the
benefits of "software definition" not just at the level of the infrastructure such as network,
storage, and data center, but also at the business and application service levels
Table II explains the baseline points that can be referred to as 'software definition,'
taking a software-defined data center as an example. As each of the above criteria is met
and each criterion is combined to optimize the infrastructure and increase utilization at
the application level, innovation in 'software definition' is accelerated. These innovations
include choosing the right infrastructure to meet SLAs and dynamic configurations that
optimize asset utilization.
What is important here is that software definition can increase flexibility and
enable programmability by standards that are not dependent on a specific vendor. Agility
and interoperability are two important philosophies that represent SDx. In the case of
electronics, the specific methods for each field such as network and storage are slightly
different, but the flexibility is improving. On the other hand, in the latter case, there is a
tendency for related companies to make various moves such as pushing the SDx initiative
to strengthen the market standard.
F. OpenFlow
One of the biggest trends associated with SDx is standardization. OpenFlow,
which is a representative example of SDN standardization, was initially led by academia,
not by industry. The OpenFlow protocol, implemented and standardized by Stanford
University professors and students, has been transferred to the Open Networking
Foundation (ONF) since version 1.1 and released 1.4 in October 2013, and is now
standardizing on version 1.5. OpenFlow standardization allows customers to break away
from network vendor dependencies and form a user-driven network ecosystem that
enables customers to take advantage of network pricing, scalability, reliability,
performance and other requirements.
IMAGE COMPRESSION STORAGE POLICY FOR OPENSTACK SWIFT 7
Abstraction – the decoupling of a resource from the consumer of the resource (also
commonly referred to as virtualization when talking about compute resources). This is a
powerful foundation as the virtualization of these resources should enable us to define
‘models’ of infrastructure elements that can be managed without requiring management
of every element individually.
Instrumentation – opening up of the decoupled infrastructure elements with
programmatic interfaces (typically XML-based RESTful APIs).
Automation – using these APIs, wiring up the exposed elements using scripts and other
automation tools to remove “human middleware” from the equation. This is an area
where traditional information security tools are woefully inadequate.
Orchestration – beyond script-based automation, automating the provisioning of data
center infrastructure through linkages to policy-driven orchestration systems where the
provisioning of compute, networking, storage, security and so on is driven by business
policies such as SLAs, compliance, cost and availability. This is where infrastructure
meets the business.
Table II. The Characteristic of Software-defined Data Center (Gartner, 2013)
G. OpenStack
Various of SDx initiatives are being pursued not only on the network but also
through OpenStack, Open Compute Project, and Open Rack. OpenStack is an open
source project initiated by NASA and RackSpace in July 2010. (Rackspace Inc., 2010) It
is a cloud infrastructure management solution project with more than 10,000 developers
from 121 countries as of July 2013. The Open Compute Project (www.opencompute.org)
is a Facebook-led initiative created to share data center design and related experiences in
2011, with Open Rack for energy and cost savings and scalability. One of its server rack
product specifications has been announced. These SDx initiatives offer the advantage of
being able to flexibly meet a wide range of customer requirements, as well as reducing
operational costs (OPEX) from the operator's perspective. It also provides convenience
for automation such as auto-scaling and service chaining.
It is noteworthy that initiatives are underway to establish various standardizations
with the direct participation of several SDx providers. Since NASA announced that it
would not participate in OpenStack in May 2012 (NASA, 2012), VMware joined the
OpenStack Foundation in September 2012. (Gigaom, 2012) Also, many vendors,
including Cisco and HP, directly participate in OpenStack Summit will make a major
announcement. Moreover, the Facebook-led Open Compute project includes hardware
manufacturers such as Intel to discuss low-power mainboards and network interfaces.
The main reason for existing players to participate actively in the SDx market,
which has been undergoing such a change, seems to be efforts to secure software-based
IMAGE COMPRESSION STORAGE POLICY FOR OPENSTACK SWIFT 8
initiatives because existing operators worry about profitability deterioration and
competition expansion.
Technical Aspects
In the case of our project, we developed using various elements of the web. First,
we created the API interface through Node.js for the REST API provided by OpenStack
Swift. Second, using the latest web development technologies, such as AngularJS and
Bootstrap, the test client's programs have made the same experience for front-end
developers. Third, by installing the Swift-All-In-One (SAIO) (SAIO, n.d.) version of
OpenStack, existing users can easily install Swift and run Object Server. Fourth, we used
Bower (Bower, n.d.) and NPM to manage the dependency of the test client. Finally,
Github allows the source code to be easily followed when committing custom libraries to
other users, depending on the commit and archive. To understand this project, it is
necessary to understand basic REST API of SDN, SDS and the web, and techniques such
as Node.js and AngularJS.
Environments
For our project, we needed to build a server environment first. The server used
Google Compute Engine and used two virtual CPUs, 7.5GB of memory and two 100GB
block storage hard disks. The operating system used Ubuntu Server 14.04 LTS image and
OpenStack Swift 2.11.1dev46. I installed the proxy server and the storage server on one
server by referring to the SAIO manual.
Architecture
For the development of our project, Swift itself modified the swift/obj/diskfile.py
file as shown in Figure 3. First, we named the image compression policy
COMP_POLICY and applied it to the file in Table III. The first time we tried to modify
the proxy server, we decided to change diskfile.py to handle the actual file saving by
changing the way. Therefore, first add the CompressedDiskFileManager module as
shown in Figure 3, and register it in policy. Later, by defining CompressedDiskFileWriter
and CompressedDiskFileReader, we create a part that can handle HTTP request /
response and Swift command. Our program defines a new file writing part, so we mainly
worked on CompressedDiskFileWrite, and I got the file stored in this area and uploaded
the compressed file through Swift command.
IMAGE COMPRESSION STORAGE POLICY FOR OPENSTACK SWIFT 9
swift/obj/diskfile.py
swift/common/storage_policy.py
swift/proxy/controllers/obj.py
Table III. The list of the Swift’s file to adjust custom storage policy
Figure 3. Source code within diskfile.py with image compression policy
Test Scenario
As shown in Figure 4, there are two test scenarios. First, there is REST API
processing when the user uploads the file and processing by the actual OpenStack Swift.
Second, when the user presses the Run the Demo button after the upload is completed, the
original image and the compressed image are called at the bottom of the test page It is
about comparing image load speed and size with Chrome Developer Tools.
IMAGE COMPRESSION STORAGE POLICY FOR OPENSTACK SWIFT 10
More specifically, in a web page composed of AngularJS and Dropzone.js
(Dropzone.js, n.d.), the user requests a file upload via drag-and-drop. The client invokes
the file upload portion of the Node.js middleware via an Ajax request. In the middleware,
the actual byte stream of the file in the multipart form is first transmitted through the
Swift REST API implemented by us. The Swift server receives the request and handles
file storage in CompressedDiskFileWriter in diskfile.py mentioned in the above
architecture. We do the actual processing in the _finalize_put_() method with our
implemented image compressor. After that, through Run the Demo, AngularJS makes a
content request to middleware and shows it through REST API.
Figure 4. The procedure of testing to upload/load compressed image file
Performance
Table IV shows our test results. A total of four images were tested, showing an
average 28.28% reduction in image capacity and an average increase in page throughput
of 32.46%. The result is larger in the visual area that the user can see. In fact, it takes 8
seconds to load a 15MB HD image shown in Table IV, Image#4 While the compressed
HD file shows a result of 2.74 seconds, which still allows the user to view the image
quite nicely.
Uncompressed Compressed Reduce Rate (%)
Size
(KB)
Load Speed
(Sec) Size (KB)
Load Speed
(Sec) Size Load Speed
Image #1 1,434 1.16 657 0.5 -45.82 -43.10
Image #2 6,554 4.13 1,011 1.12 -15.43 -27.11
Image #3 969 2.66 217 0.69 -22.39 -25.90
Image #4 15,667 8.13 4,618 2.74 -29.48 -33.70
Average -28.28 -32.46
Table IV The Result of the Test Scenario
IMAGE COMPRESSION STORAGE POLICY FOR OPENSTACK SWIFT 11
Challenges
In the case of OpenStack Swift, the file from the HTTP request or Swift command
request is divided into 500 bytes, separated into chunks, and then transmitted to the
corresponding object server in order. We first tried to compress the file and send it to the
server before splitting the file into chunks. However, since the number of chunk files in
the compressed file differs from the number of chunks in the actual compressed file, the
logic for counting transmitted chunks is so varied that it fails to analyze them. We tried to
compress and then re-compress the file stored on the object server, but it also failed to
fetch metadata and hash. Since we used SAIO (Swift-All-In-One), object server and
proxy server existed on one server, but in practice, these servers will be separated, so it is
necessary to process file compression processing in the proxy server in advance. Also, we
spent a great deal of time analyzing the complex Swift source code and spent much time
building test scenarios and test client environments.
IMAGE COMPRESSION STORAGE POLICY FOR OPENSTACK SWIFT 12
Conclusion
Through this project, we created a policy from the installation of OpenStack Swift
and connected and tested the actual container. In SDDC, we knew that SDS was the basis
so that we could manage huge physical hardware through the policy, and once again
gutted the importance of policy. As the number of users using the latest image server in
Amazon AWS S3 increases, the importance of image compression is expected to increase
in future S3. Thus, other services such as Google Cloud Storage are more interested in
web optimization thus we need to give customization permission to in our project. Since
the image compression was simply used for web optimization, we did not adopt in-depth
algorithms. However, if the policy becomes a structure that adopts file optimization based
on content type in future policy, SDDC we hope to do it properly.
IMAGE COMPRESSION STORAGE POLICY FOR OPENSTACK SWIFT 13
References
1) Amazon Web Service (AWS). (n.d.). Retrieved from http://aws.amazon.com/.
2) Amazon Simple Storage Service (S3) . (n.d.). Retrieved from
http://aws.amazon.com/s3/.
3) Google Compute Engine. (n.d.). Retrieved from http://cloud.google.com.
4) Microsoft Azure. (n.d.). Retrieved from http://www.windowsazure.com/.
5) OpenStack. (n.d.). Retrieved from http://www.openstack.org/.
6) OpenStack Swift. (n.d.). Retrieved from http://swift.openstack.org/.
7) What is Software-Defined Storage? – Definition. (n.d.). In SDxCentral. Retrieved
from https://www.sdxcentral.com/cloud/definitions/what-is-software-defined-
storage/
8) M. David, ‘‘Introduction to SDN (Software-defined Networking),’’ Nov. 2014.
[Online]. Available: https://www.youtube.com/watch?v=DiChnu_PAzA.
9) Thereska, E., Ballani, H., O'Shea, G., Karagiannis, T., Rowstron, A., Talpey, T., ... &
Zhu, T. (2013, November). IOFlow: a software-defined storage architecture.
In Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems
Principles (pp. 182-196). ACM.
10) Average Byte per Page by Content Type. (Mar. 2016). In Http Archive. Retrieved
from
http://httparchive.org/interesting.php#bytesperpage?ictd%5Bmaster%5D=vid~72
0f2d5d-60be-46fc-92c4-
1774ba093d21&ictd%5Bil583%5D=rlt~1441669636~land~2_3853_seo_aa73a52
e6449ecff40e9a5c66e7bb93f.
11) Serving Images With Image Sets. (Sep. 2013). In Apple. Retrieved from
https://developer.apple.com/library/content/documentation/NetworkingInternet/C
onceptual/SafariImageDeliveryBestPractices/ServingImagestoRetinaDisplays/Ser
vingImagestoRetinaDisplays.html#//apple_ref/doc/uid/TP40012449-CH3-SW1.
12) Imgur. (n.d.). Retrieved from http://imgur.com.
13) Reddit. (n.d.). Retrieved from http://www.reddit.com.
14) Alan S. (2013, June 4). TECH TUESDAY: OUR TECHNOLOGY STACK,
Archived at http://blog.imgur.com/2013/06/04/tech-tuesday-our-technology-stack/.
IMAGE COMPRESSION STORAGE POLICY FOR OPENSTACK SWIFT 14
15) Jeff A. (2007, March 6). Using Amazon S3 as an Image Hosting Service, archived
at https://blog.codinghorror.com/using-amazon-s3-as-an-image-hosting-service/.
16) Compressed.io. (n.d.). Retrieved from http://compressor.io.
17) Tinypng. (n.d.). Retrieved from http://tinypng.com.
18) Chowdhury, N. M. K., & Boutaba, R. (2010). A survey of network
virtualization. Computer Networks, 54(5), 862-876. doi:
dx.doi.org/10.1016/j.comnet.2009.10.017
19) Bari, M. F., Boutaba, R., Esteves, R., Granville, L. Z., Podlesny, M., Rabbani, M.
G., ... & Zhani, M. F. (2013). Data center network virtualization: A survey. IEEE
Communications Surveys & Tutorials, 15(2), 909-928.
doi:10.1109/SURV.2012.090512.00043
20) Schaffrath, G., Werle, C., Papadimitriou, P., Feldmann, A., Bless, R., Greenhalgh,
A., ... & Mathy, L. (2009, August). Network virtualization architecture: proposal
and initial prototype. In Proceedings of the 1st ACM workshop on Virtualized
infrastructure systems and architectures (pp. 63-72). ACM.
doi:10.1145/1592648.1592659
21) McKeown, N., Anderson, T., Balakrishnan, H., Parulkar, G., Peterson, L.,
Rexford, J., ... & Turner, J. (2008). OpenFlow: enabling innovation in campus
networks. ACM SIGCOMM Computer Communication Review, 38(2), 69-74.
doi:10.1145/1355734.1355746
22) Janessa R., Gartner, (2013, October 8). Gartner Identifies the Top 10 Strategic
Technology Trends for 2014 [Press release]. Retrieved from
http://www.gartner.com/newsroom/id/2603623.
23) Neil M., Gartner, (2013, January 29). Software Defined Data Centers and
Security–What’s in a Name?. Archived from
http://blogs.gartner.com/neil_macdonald/2013/01/29/software-defined-data-
centers-and-securitywhats-in-a-name/.
24) Lew M., Rackspace Inc., (2010, July 19). Opening The Rackspace Cloud [Press
release]. Retrieved from http://blog.rackspace.com/open-stack.
25) Ali L., NASA, (2012, June 04). Nebula, NASA, and OpenStack [Press release].
Retrieved from https://open.nasa.gov/blog/nebula-nasa-and-openstack./
26) Barb D., Gigaom, (2012, September 7). Finally! VMware joins the OpenStack
Foundation, this time for real [Press release]. Retrieved from
IMAGE COMPRESSION STORAGE POLICY FOR OPENSTACK SWIFT 15
https://gigaom.com/2012/09/07/finally-vmware-joins-the-openstack-foundation-
this-time-for-real/.
27) Built With. (2005). CMS Usage Trend Statistics. BuiltWith® Pty Ltd. Retrieved
from https://trends.builtwith.com/cms.
28) Swift-All-In-One (SAIO) Installation Manual. (n.d.). Retrieved from
http://docs.openstack.org/developer/swift/development_saio.html.
29) Bower. (n.d.). Retrieved from http://bower.io.
30) Dropzone.js. (n.d.). Retrieved from http://dropzonejs.com.

Recommended

A new interface between smart device and web using html5 web socket and qr code by
A new interface between smart device and web using html5 web socket and qr codeA new interface between smart device and web using html5 web socket and qr code
A new interface between smart device and web using html5 web socket and qr codeMatthew Chang
3.1K views9 slides
Frontend. Global domination. by
Frontend. Global domination.Frontend. Global domination.
Frontend. Global domination.Андрей Вандакуров
661 views45 slides
Elastic build environment by
Elastic build environmentElastic build environment
Elastic build environmentCachet Software Solutions Ltd
794 views72 slides
Cloud Computing: A New Trend in IT by
Cloud Computing: A New Trend in ITCloud Computing: A New Trend in IT
Cloud Computing: A New Trend in ITPutchong Uthayopas
944 views65 slides
Slide 1 by
Slide 1Slide 1
Slide 1butest
304 views53 slides
OSCAR & AppHub, fostering market readiness at OW2, OW2con'16, Paris. by
OSCAR & AppHub, fostering market readiness at OW2, OW2con'16, Paris. OSCAR & AppHub, fostering market readiness at OW2, OW2con'16, Paris.
OSCAR & AppHub, fostering market readiness at OW2, OW2con'16, Paris. OW2
228 views16 slides

More Related Content

Viewers also liked

USE IT CLOUD MARKETPLACE, Open Cloud Forum @ Cloud Expo Europe 2014 by
USE IT CLOUD MARKETPLACE, Open Cloud Forum @ Cloud Expo Europe 2014USE IT CLOUD MARKETPLACE, Open Cloud Forum @ Cloud Expo Europe 2014
USE IT CLOUD MARKETPLACE, Open Cloud Forum @ Cloud Expo Europe 2014OW2
1.1K views16 slides
Mobile integration by
Mobile integrationMobile integration
Mobile integrationwall530
382 views10 slides
Blogtabai talk: Blogging Perspectives by
Blogtabai talk: Blogging PerspectivesBlogtabai talk: Blogging Perspectives
Blogtabai talk: Blogging PerspectivesVernon Joseph Go
563 views27 slides
Itf ipp ch09_2012_final by
Itf ipp ch09_2012_finalItf ipp ch09_2012_final
Itf ipp ch09_2012_finaldphil002
555 views22 slides
Git, как инструмент управления веб-контентом by
Git, как инструмент управления веб-контентомGit, как инструмент управления веб-контентом
Git, как инструмент управления веб-контентомAlex Musayev
438 views15 slides
NASA WorldWind를 이용한 로컬 트윗 프로그램 by
NASA WorldWind를 이용한 로컬 트윗 프로그램NASA WorldWind를 이용한 로컬 트윗 프로그램
NASA WorldWind를 이용한 로컬 트윗 프로그램Matthew Chang
3K views25 slides

Viewers also liked(20)

USE IT CLOUD MARKETPLACE, Open Cloud Forum @ Cloud Expo Europe 2014 by OW2
USE IT CLOUD MARKETPLACE, Open Cloud Forum @ Cloud Expo Europe 2014USE IT CLOUD MARKETPLACE, Open Cloud Forum @ Cloud Expo Europe 2014
USE IT CLOUD MARKETPLACE, Open Cloud Forum @ Cloud Expo Europe 2014
OW21.1K views
Mobile integration by wall530
Mobile integrationMobile integration
Mobile integration
wall530382 views
Blogtabai talk: Blogging Perspectives by Vernon Joseph Go
Blogtabai talk: Blogging PerspectivesBlogtabai talk: Blogging Perspectives
Blogtabai talk: Blogging Perspectives
Vernon Joseph Go563 views
Itf ipp ch09_2012_final by dphil002
Itf ipp ch09_2012_finalItf ipp ch09_2012_final
Itf ipp ch09_2012_final
dphil002555 views
Git, как инструмент управления веб-контентом by Alex Musayev
Git, как инструмент управления веб-контентомGit, как инструмент управления веб-контентом
Git, как инструмент управления веб-контентом
Alex Musayev438 views
NASA WorldWind를 이용한 로컬 트윗 프로그램 by Matthew Chang
NASA WorldWind를 이용한 로컬 트윗 프로그램NASA WorldWind를 이용한 로컬 트윗 프로그램
NASA WorldWind를 이용한 로컬 트윗 프로그램
Matthew Chang3K views
Методики разработки ПО от колесниц к космическим кораблям by Pavel Antonenko
Методики разработки ПО от колесниц к космическим кораблямМетодики разработки ПО от колесниц к космическим кораблям
Методики разработки ПО от колесниц к космическим кораблям
Pavel Antonenko545 views
OW2con'14 - OpenCloudware: The vApp Lifecycle Management Solution for Multi-C... by OW2
OW2con'14 - OpenCloudware: The vApp Lifecycle Management Solution for Multi-C...OW2con'14 - OpenCloudware: The vApp Lifecycle Management Solution for Multi-C...
OW2con'14 - OpenCloudware: The vApp Lifecycle Management Solution for Multi-C...
OW2923 views
CHOReOS: "Large Scale Choreographies for the Future Internet", from theory to... by OW2
CHOReOS: "Large Scale Choreographies for the Future Internet", from theory to...CHOReOS: "Large Scale Choreographies for the Future Internet", from theory to...
CHOReOS: "Large Scale Choreographies for the Future Internet", from theory to...
OW2520 views
Xwiki Extension Manager in Action, OW2con’12, Paris by OW2
Xwiki Extension Manager in Action, OW2con’12, ParisXwiki Extension Manager in Action, OW2con’12, Paris
Xwiki Extension Manager in Action, OW2con’12, Paris
OW2643 views
OpenCloudware: the Cloud application lifecycle management platform, OW2con'12... by OW2
OpenCloudware: the Cloud application lifecycle management platform, OW2con'12...OpenCloudware: the Cloud application lifecycle management platform, OW2con'12...
OpenCloudware: the Cloud application lifecycle management platform, OW2con'12...
OW2621 views
Continuous Integration & Delivery by Jen Wei Lee
Continuous Integration & DeliveryContinuous Integration & Delivery
Continuous Integration & Delivery
Jen Wei Lee793 views
Self Service BI with SpagoBI 4, Virginie Pasquon, Engineering Group. by OW2
 Self Service BI with SpagoBI 4, Virginie Pasquon, Engineering Group. Self Service BI with SpagoBI 4, Virginie Pasquon, Engineering Group.
Self Service BI with SpagoBI 4, Virginie Pasquon, Engineering Group.
OW2780 views
OCEAN - support for Open Cloud projects, Yuri Glikman, Fraunhofer FOKUS by OW2
OCEAN - support for Open Cloud projects, Yuri Glikman, Fraunhofer FOKUSOCEAN - support for Open Cloud projects, Yuri Glikman, Fraunhofer FOKUS
OCEAN - support for Open Cloud projects, Yuri Glikman, Fraunhofer FOKUS
OW2939 views
RGAA, REFERENTIEL D’ACCESSIBILITE MULTICANAL by OW2
RGAA, REFERENTIEL D’ACCESSIBILITE MULTICANAL RGAA, REFERENTIEL D’ACCESSIBILITE MULTICANAL
RGAA, REFERENTIEL D’ACCESSIBILITE MULTICANAL
OW2522 views
What’s new in Bonita Open Solution ? OW2con'12, Paris by OW2
What’s new in Bonita Open Solution ? OW2con'12, ParisWhat’s new in Bonita Open Solution ? OW2con'12, Paris
What’s new in Bonita Open Solution ? OW2con'12, Paris
OW2537 views
나의사업계획서 by Matthew Chang
나의사업계획서나의사업계획서
나의사업계획서
Matthew Chang1.2K views
Mantis Code Deployment Process by Jen Wei Lee
Mantis Code Deployment ProcessMantis Code Deployment Process
Mantis Code Deployment Process
Jen Wei Lee1.4K views
Cloud and Grid Integration OW2 Conference Nov10 by OW2
Cloud and Grid Integration OW2 Conference Nov10Cloud and Grid Integration OW2 Conference Nov10
Cloud and Grid Integration OW2 Conference Nov10
OW2682 views

Similar to Image Compression Storage Policy for Openstack Swift

Cloud Computing Open Stack Compute Node by
Cloud Computing Open Stack Compute NodeCloud Computing Open Stack Compute Node
Cloud Computing Open Stack Compute NodePalak Sood
836 views30 slides
Cloud Computing OpenStack Compute Node by
Cloud Computing OpenStack Compute NodeCloud Computing OpenStack Compute Node
Cloud Computing OpenStack Compute NodeNamita Arora
2.2K views30 slides
Fowa Miami 09 Cloud Computing Workshop by
Fowa Miami 09 Cloud Computing WorkshopFowa Miami 09 Cloud Computing Workshop
Fowa Miami 09 Cloud Computing WorkshopMark Masterson
16.7K views275 slides
Cloud Computing Workshop by
Cloud Computing WorkshopCloud Computing Workshop
Cloud Computing WorkshopCharlie Moad
1.3K views72 slides
Introduction to Orchestration and DevOps with OpenStack by
Introduction to Orchestration and DevOps with OpenStackIntroduction to Orchestration and DevOps with OpenStack
Introduction to Orchestration and DevOps with OpenStackAbderrahmane TEKFI
503 views56 slides
Cloud Computing Primer: Using cloud computing tools in your museum by
Cloud Computing Primer: Using cloud computing tools in your museumCloud Computing Primer: Using cloud computing tools in your museum
Cloud Computing Primer: Using cloud computing tools in your museumRobert J. Stein
2.4K views70 slides

Similar to Image Compression Storage Policy for Openstack Swift(20)

Cloud Computing Open Stack Compute Node by Palak Sood
Cloud Computing Open Stack Compute NodeCloud Computing Open Stack Compute Node
Cloud Computing Open Stack Compute Node
Palak Sood836 views
Cloud Computing OpenStack Compute Node by Namita Arora
Cloud Computing OpenStack Compute NodeCloud Computing OpenStack Compute Node
Cloud Computing OpenStack Compute Node
Namita Arora2.2K views
Fowa Miami 09 Cloud Computing Workshop by Mark Masterson
Fowa Miami 09 Cloud Computing WorkshopFowa Miami 09 Cloud Computing Workshop
Fowa Miami 09 Cloud Computing Workshop
Mark Masterson16.7K views
Cloud Computing Workshop by Charlie Moad
Cloud Computing WorkshopCloud Computing Workshop
Cloud Computing Workshop
Charlie Moad1.3K views
Introduction to Orchestration and DevOps with OpenStack by Abderrahmane TEKFI
Introduction to Orchestration and DevOps with OpenStackIntroduction to Orchestration and DevOps with OpenStack
Introduction to Orchestration and DevOps with OpenStack
Abderrahmane TEKFI503 views
Cloud Computing Primer: Using cloud computing tools in your museum by Robert J. Stein
Cloud Computing Primer: Using cloud computing tools in your museumCloud Computing Primer: Using cloud computing tools in your museum
Cloud Computing Primer: Using cloud computing tools in your museum
Robert J. Stein2.4K views
A Strategy for Improving the Performance of Small Files in Openstack Swift by Editor IJCATR
 A Strategy for Improving the Performance of Small Files in Openstack Swift  A Strategy for Improving the Performance of Small Files in Openstack Swift
A Strategy for Improving the Performance of Small Files in Openstack Swift
Editor IJCATR5 views
Architecting Cloud Apps by jineshvaria
Architecting Cloud AppsArchitecting Cloud Apps
Architecting Cloud Apps
jineshvaria3.2K views
Microsoft Azure News - 2018 April by Daniel Toomey
Microsoft Azure News - 2018 AprilMicrosoft Azure News - 2018 April
Microsoft Azure News - 2018 April
Daniel Toomey69 views
Research Paper On Cloud Services by Diana Meza
Research Paper On Cloud ServicesResearch Paper On Cloud Services
Research Paper On Cloud Services
Diana Meza4 views
OpenStack Training | OpenStack Tutorial For Beginners | OpenStack Certificati... by Edureka!
OpenStack Training | OpenStack Tutorial For Beginners | OpenStack Certificati...OpenStack Training | OpenStack Tutorial For Beginners | OpenStack Certificati...
OpenStack Training | OpenStack Tutorial For Beginners | OpenStack Certificati...
Edureka!626 views
Cassandra-Based Image Processing: Two Case Studies (Kerry Koitzsch, Kildane) ... by DataStax
Cassandra-Based Image Processing: Two Case Studies (Kerry Koitzsch, Kildane) ...Cassandra-Based Image Processing: Two Case Studies (Kerry Koitzsch, Kildane) ...
Cassandra-Based Image Processing: Two Case Studies (Kerry Koitzsch, Kildane) ...
DataStax1.6K views
Cloud Computing by Edureka!
Cloud ComputingCloud Computing
Cloud Computing
Edureka!4.5K views
Study and implementation a cloud solution based on by Dendani Bilal
Study and implementation a cloud solution based onStudy and implementation a cloud solution based on
Study and implementation a cloud solution based on
Dendani Bilal514 views

More from Matthew Chang

Research and Analysis of SSH by
Research and Analysis of SSH Research and Analysis of SSH
Research and Analysis of SSH Matthew Chang
614 views44 slides
Digital Certified Mail (PPT) by
Digital Certified Mail (PPT)Digital Certified Mail (PPT)
Digital Certified Mail (PPT)Matthew Chang
698 views8 slides
Digital Certified Mail by
Digital Certified MailDigital Certified Mail
Digital Certified MailMatthew Chang
671 views9 slides
Twitter Trend Analyzer by
Twitter Trend AnalyzerTwitter Trend Analyzer
Twitter Trend AnalyzerMatthew Chang
1.3K views13 slides
The implementation of Banker's algorithm, data structure and its parser by
The implementation of Banker's algorithm, data structure and its parserThe implementation of Banker's algorithm, data structure and its parser
The implementation of Banker's algorithm, data structure and its parserMatthew Chang
2K views19 slides
Urhyme introduction by
Urhyme introductionUrhyme introduction
Urhyme introductionMatthew Chang
305 views10 slides

More from Matthew Chang(20)

Research and Analysis of SSH by Matthew Chang
Research and Analysis of SSH Research and Analysis of SSH
Research and Analysis of SSH
Matthew Chang614 views
Digital Certified Mail (PPT) by Matthew Chang
Digital Certified Mail (PPT)Digital Certified Mail (PPT)
Digital Certified Mail (PPT)
Matthew Chang698 views
Twitter Trend Analyzer by Matthew Chang
Twitter Trend AnalyzerTwitter Trend Analyzer
Twitter Trend Analyzer
Matthew Chang1.3K views
The implementation of Banker's algorithm, data structure and its parser by Matthew Chang
The implementation of Banker's algorithm, data structure and its parserThe implementation of Banker's algorithm, data structure and its parser
The implementation of Banker's algorithm, data structure and its parser
Matthew Chang2K views
Logic Circuit Project Final Presentation by Matthew Chang
Logic Circuit Project Final PresentationLogic Circuit Project Final Presentation
Logic Circuit Project Final Presentation
Matthew Chang738 views
Programming Language Final PPT by Matthew Chang
Programming Language Final PPTProgramming Language Final PPT
Programming Language Final PPT
Matthew Chang718 views
Profile_ Ikwhan chang by Matthew Chang
Profile_ Ikwhan changProfile_ Ikwhan chang
Profile_ Ikwhan chang
Matthew Chang3.6K views
모바일 앱 개발 최종 발표 Proposal by Matthew Chang
모바일 앱 개발 최종 발표 Proposal모바일 앱 개발 최종 발표 Proposal
모바일 앱 개발 최종 발표 Proposal
Matthew Chang1.3K views
Capstone Project Final Presentation by Matthew Chang
Capstone Project Final PresentationCapstone Project Final Presentation
Capstone Project Final Presentation
Matthew Chang801 views
Project Avalon Online(Game) Final Report by Matthew Chang
Project Avalon Online(Game) Final ReportProject Avalon Online(Game) Final Report
Project Avalon Online(Game) Final Report
Matthew Chang1.2K views
Report : Android Simple Bug Catch Game(Korean) by Matthew Chang
Report : Android Simple Bug Catch Game(Korean)Report : Android Simple Bug Catch Game(Korean)
Report : Android Simple Bug Catch Game(Korean)
Matthew Chang2.1K views
Capstone Project Last Demonstration by Matthew Chang
Capstone Project Last DemonstrationCapstone Project Last Demonstration
Capstone Project Last Demonstration
Matthew Chang707 views
Db설계 프로젝트 1조 _중간제출 by Matthew Chang
Db설계 프로젝트 1조 _중간제출Db설계 프로젝트 1조 _중간제출
Db설계 프로젝트 1조 _중간제출
Matthew Chang12K views
​Presentation team ngx 5주차 발표자료 by Matthew Chang
​Presentation team ngx 5주차 발표자료​Presentation team ngx 5주차 발표자료
​Presentation team ngx 5주차 발표자료
Matthew Chang1.2K views

Recently uploaded

Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium... by
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...Lisi Hocke
35 views124 slides
nintendo_64.pptx by
nintendo_64.pptxnintendo_64.pptx
nintendo_64.pptxpaiga02016
5 views7 slides
EV Charging App Case by
EV Charging App Case EV Charging App Case
EV Charging App Case iCoderz Solutions
5 views1 slide
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with... by
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...sparkfabrik
7 views46 slides
FOSSLight Community Day 2023-11-30 by
FOSSLight Community Day 2023-11-30FOSSLight Community Day 2023-11-30
FOSSLight Community Day 2023-11-30Shane Coughlan
5 views18 slides
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports by
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug ReportsBushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug ReportsRa'Fat Al-Msie'deen
8 views49 slides

Recently uploaded(20)

Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium... by Lisi Hocke
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...
Lisi Hocke35 views
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with... by sparkfabrik
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...
sparkfabrik7 views
FOSSLight Community Day 2023-11-30 by Shane Coughlan
FOSSLight Community Day 2023-11-30FOSSLight Community Day 2023-11-30
FOSSLight Community Day 2023-11-30
Shane Coughlan5 views
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports by Ra'Fat Al-Msie'deen
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug ReportsBushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
Generic or specific? Making sensible software design decisions by Bert Jan Schrijver
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
Dapr Unleashed: Accelerating Microservice Development by Miroslav Janeski
Dapr Unleashed: Accelerating Microservice DevelopmentDapr Unleashed: Accelerating Microservice Development
Dapr Unleashed: Accelerating Microservice Development
Miroslav Janeski10 views
Headless JS UG Presentation.pptx by Jack Spektor
Headless JS UG Presentation.pptxHeadless JS UG Presentation.pptx
Headless JS UG Presentation.pptx
Jack Spektor8 views
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI... by Marc Müller
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...
Marc Müller41 views
.NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra... by Marc Müller
.NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra....NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra...
.NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra...
Marc Müller40 views
Myths and Facts About Hospice Care: Busting Common Misconceptions by Care Coordinations
Myths and Facts About Hospice Care: Busting Common MisconceptionsMyths and Facts About Hospice Care: Busting Common Misconceptions
Myths and Facts About Hospice Care: Busting Common Misconceptions
AI and Ml presentation .pptx by FayazAli87
AI and Ml presentation .pptxAI and Ml presentation .pptx
AI and Ml presentation .pptx
FayazAli8712 views
Sprint 226 by ManageIQ
Sprint 226Sprint 226
Sprint 226
ManageIQ5 views
DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J... by Deltares
DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J...DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J...
DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J...
Deltares12 views
Copilot Prompting Toolkit_All Resources.pdf by Riccardo Zamana
Copilot Prompting Toolkit_All Resources.pdfCopilot Prompting Toolkit_All Resources.pdf
Copilot Prompting Toolkit_All Resources.pdf
Riccardo Zamana10 views
Software evolution understanding: Automatic extraction of software identifier... by Ra'Fat Al-Msie'deen
Software evolution understanding: Automatic extraction of software identifier...Software evolution understanding: Automatic extraction of software identifier...
Software evolution understanding: Automatic extraction of software identifier...
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ... by Donato Onofri
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...
Donato Onofri860 views

Image Compression Storage Policy for Openstack Swift

  • 1. IMAGE COMPRESSION STORAGE POLICY FOR OPENSTACK SWIFT A Research Paper Presented to Computer Engineering Department San José State University by Ikwhan Chang December 2016
  • 2. IMAGE COMPRESSION STORAGE POLICY FOR OPENSTACK SWIFT ii TABLE OF CONTENTS ABSTRACT....................................................................................................................... 1 Introduction....................................................................................................................... 1 Background ....................................................................................................................... 2 Description of the Project................................................................................................. 2 Goals of the Project........................................................................................................... 3 Related Works................................................................................................................... 3 Technical Aspects.............................................................................................................. 8 Environments .................................................................................................................... 8 Architecture....................................................................................................................... 8 Test Scenario ..................................................................................................................... 9 Performance .................................................................................................................... 10 Challenges........................................................................................................................ 11 Conclusion ....................................................................................................................... 12 References........................................................................................................................ 13
  • 3. IMAGE COMPRESSION STORAGE POLICY FOR OPENSTACK SWIFT iii LIST OF TABLES Table 1. The Characteristic of Software-defined Network ..................................................... 5 Table 2. The Characteristic of Software-defined Data Center ................................................ 7 Table 3. The list of the Swift’s file to adjust custom storage policy ........................................ 9 Table 4. The Result of Test Scenario ................................................................................. 10
  • 4. IMAGE COMPRESSION STORAGE POLICY FOR OPENSTACK SWIFT iv LIST OF FIGURES Figure 1. Average bytes per page by content type ........................................................... 3 Figure 2. Content Management System (CMS) usage statistics ...................................... 3 Figure 3. Source code within diskfile.py with image compression policy ........................ 9 Figure 4. The procedure of testing to upload/load compressed image file ..................... 10
  • 6. IMAGE COMPRESSION STORAGE POLICY FOR OPENSTACK SWIFT 1 ABSTRACT Recently, the cloud storage service, such as SkyDrive, Google Drive, iCloud Drive, has been growing rapidly with almost unlimited capacity. In addition, to simply uploading data, users can easily share with others via the web with provided URL, and because of this feature, many people not only simply share resources such as documents, but also upload and use within their friends. Recently, Amazon Web Service (AWS) Simple Storage Service (S3) provides REST API and SDKs through various programming languages have been provided, and it can be utilized for user's web development. Therefore, the environment of web development is moving the image hosting server and so on to use the cloud storage service, which provides nearly unlimited capacity at a price lower than the cost of operating the server itself. In this paper, we create a cloud storage service for these web developers using OpenStack Swift, a private cloud similar as AWS S3, and apply the image compression policy to specific containers. Thus, when the image is uploaded, a compression file is generated. When the web server is used as an image server, the optimized image is provided. Ultimately, we hope that by using our image compression policy, the speed of the web page is increased. Keywords—Software-defined Network; Software-defined Storage; Software-defined Data Center; OpenStack; Swift; Storage resources; Image Compression; Optimization Introduction In the age of the cloud computing, there are many IaaS (Infrastructure-as-a- Service) services such as Amazon AWS (AWS, n.d.), Google Cloud (GCE, n.d.), and Microsoft Azure (Azure, n.d.), but they are expensive in terms of testing. With the emergence of a private cloud like OpenStack (OpenStack, n.d.), many people use it to install it on their bear metal server. However, for four years, OpenStack is not easy to install, and even if it is installed, it is difficult to use it because of the amount of complicated and vast source code. The OpenStack Swift (OpenStack Swift, n.d.) project has begun, and Swift provides users with the ability to use their private clouds simply as a cloud storage service, not as an image processing or account management task. For those who do not need a complicated VM (Virtual Machine), while OpenStack provides the role of cloud OS, Swift provides the role of cloud storage OS by abstracting the entire hardware at the storage level and providing it like the cloud drive. Swift is one of the Software-Defined Storage (SDxCentral, n.d.), “abstracting multiple physical storages and providing them with the same properties as SDN's basic definition” (M. David, 2014) and availability. This concept of container and storage (SDxCentral, n.d.) can be applied to each user's custom policy especially for each container. “If the size of the data center is turned on, the role of storage policy is very important.” (Thereska, 2013) In this paper, OpenStack Swift is used to providing web developers with a custom policy to automatically compress resources such as images. Recently, web developers are
  • 7. IMAGE COMPRESSION STORAGE POLICY FOR OPENSTACK SWIFT 2 using resources that are cheaper and unlimited traffic with cloud storage service like Amazon AWS S3, which enables developers such as image servers to automatically compress resources and fix the speed of web pages thus we can increase the performance of web page. Background The answer to why you need the image compression can be found in recent Internet trends. According to the survey of Archive.org shown in Figure 1, 64% of the online content is in image files. That is, the image file plays a very important role in constituting the Internet page. Moreover, with the recent advances in display resolutions such as HD images, Apple's Retina, UHD, and 5K, web developers no longer build web pages with just one simple image. Apple's guide to providing the Retina (Apple Inc.,, 2013) suggests that “to provide high resolution, you need to provide additional images with twice the resolution apart from regular images.” Alternatively, a vector image rather than a pixel image, but it is difficult to create a vector for a typical photo file. In addition to web developers, image-related services like Instagram have become more important in recent years. Imgur (Imgur, n.d.), famous for providing Reddit (Reddit, n.d.) images, decided to use Amazon AWS S3 (Amazon S3, n.d.), which provides both loads balancing and caching while using multiple caching services. Also, many people use Amazon AWS S3 as an image server for their websites in constant and reliable terms (Jeff A., 2007). As part of our effort to increase page loading speed as well as caching and load balancing, image optimization is the most important task, just like Forbes' expert advice, but S3 does not automatically optimize images. On the other hand, image optimization sites such as Compressor.io (Compressor.io, n.d.) and Tinypng (Tinypng, n.d.) are gaining popularity, and Wordpress, which is famous for CMS (Content Management System), occupies 47.19% of CMS as shown in Figure 2, people are paying more attention to image compression, including more than 600,000 installations of plugin. (Built With, 2005) Based on this, we want to provide a service that uploads images and compresses images using OpenStack Swift, which allows users to directly construct cloud storage. Description of the Project Our project works in three main ways: 1) analyzing the source code of the complicated OpenStack Swift, how to modify the code, how to modify the individual storage policy, and what factors can see if the developer wants to develop the storage policy. 2) Identify the difference between the existing policy by putting the policy on the specific storage of the actual OpenStack Swift. 3) When the user uploads the file, if the file is an image type, develop the logic to save the compressed image. In our project, we can create and use a compressed file in the same format as [File Name]_compressed.[Extension] according to one upload request of user or developer.
  • 8. IMAGE COMPRESSION STORAGE POLICY FOR OPENSTACK SWIFT 3 Figure 1. Average bytes per page by content type (Http Archive, 2016) Figure 2. Content Management System (CMS) usage statistics (BuiltWith® Pty Ltd, 2016) Goals of the Project Our goal is as follows: 1) Analyze the Swift source code as our first step. The OpenStack Swift source code consists of a huge amount of Python sources. The diskfile.py is composed of more than 3000 lines of source code and more than 50 methods. So, understanding Swift is our first step. 2) Analyze the swift proxy code flow. Once you have completed the primary analysis, you will understand what each method does for Swift, which consists of the actual proxy server and the object server. 3) Identify the files that we need to modify to implement an additional storage policy. Analyze the source to see where you can link the policy to the outbound. 4) Identified the most suitable image compression technique. PIL (Python Image Library), Open CV, etc. to see what image compression algorithm can be applied. 5) Modified the Swift code to add the new image compression policy and integrated the compression procedure 6) Developed a web page to demonstrate the usage of the new policy. Related Works A. Cloud Computing Cloud computing is a service that uses all the computing resources from the application to the data as much as you want in the internet environment and pays as much as you use. There are two types of services: Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS). Cloud-based services that take advantage of the scalability and flexibility of the cloud have different data management structures depending on the type of data serving. “To ensure the availability of data and
  • 9. IMAGE COMPRESSION STORAGE POLICY FOR OPENSTACK SWIFT 4 services, data is duplicated, or triple managed.” (Chowdhury & Boutaba, 2010) (Thereska, et al., 2013) For example, a cloud storage service provides a certain size of volume for each cloud storage user, and the user uses it. Moreover, “the data uploaded by the user is managed in triplicate.” (Schaffrath, et al., 2009) However, there are two issues that need to be addressed in the way data is managed using an existing cloud. First, space is wasted because a certain size of the volume is allocated. Second, it is difficult to manage different types of data. B. Software-Defined Network (SDN) The software-defined network uses software technology to define and utilize networks. SDN's core philosophy is to separate network functions into hardware functions and software functions to increase programmability and increase flexibility. In the past, SDN has been responsible for data processing, policy management, and data management in the data network. Moreover, a control layer area in which a control layer is formed. The control layer area is separated so that it can be controlled by SDN controller and application program. OpenFlow (McKeown, et al., 2008) is a representative protocol for implementing SDN defined between the control layer and the data layer in SDN. With SDN, the packet path can be controlled through programming rather than network equipment. In fact, the benefits associated with this have already been suggested even though SDN is not currently discussed. However, ensuring programmability and increasing flexibility by standards that are not specific to a specific vendor is possible on a software-based rather than hardware-based basis. Therefore, SDN technology is becoming a key technology among the major software base technologies. In particular, the use of SDN has changed the characteristics of the data center as shown in Table I Currently, SDN is considered as a representative example of the combination of abstraction through network virtualization and the possibility of programming using software. C. Software-Defined Storage (SDS) Software-defined storage (SDS) configures the storage pool and stores it in the user's policy. This model increases the ease of management of storage by automatically allocating storage according to the application requirements and providing it with a single software control point. The SDS simplifies the management aspects by providing one control point. It can be implemented using existing hardware infrastructure, and various heterogeneous hardware products can be used. Also, various storage types such as blocks, files and object storage can be integrated and provided.
  • 10. IMAGE COMPRESSION STORAGE POLICY FOR OPENSTACK SWIFT 5 D. Software-Defined Data Center (SDDC) Software-defined data centers refer to data centers that virtualize and operate IT infrastructures such as servers, storage, and networking. Software defined the assessment that datacenters can virtualize all their IT infrastructures and use them more efficiently and agile with automated software has received a great deal of attention in the IT industry today. Data centers can be deployed using OpenFlow-compatible com- modify equipment with only the necessary features, without expensive hardware with advanced networking capabilities, separated into hardware responsible for the data layer and software for controlling it. Increased value as network centrally managed software by enabling full control of the network through programming. Network complexity in the cloud environment can be solved through network virtualization using SDN. Supports automation, auto-scaling, and service chaining, such as network changes due to movement of virtual machines can be immediately confirmed through programming and software can be supported. Table I. The Characteristic of Software-defined Network E. Software-Defined Anything/Everything (SDx) As virtualization and cloud computing evolve, the software has emerged as a software-as-a-service (SaaS), a cloud-based service that is now out of the traditional simple client-server model. At the same time, the evolving part of the data center is the infrastructure that provides servers and networks with physical stability and network scalability. In the late 1990s, the data center, which was dominated by the Internet Data Center (IDC), is now equipped with a very complex infrastructure consisting of thousands and tens of thousands of servers, network and storage resources, driven by virtualization and cloud development. Software-defined Anything / Everything (SDx), one of the top 10 strategic technology trends announced by Gartner in 2014 has become a buzzword as market momentum for establishing software-based standards in these cloud computing and data center markets has become increasingly strong term. (Gartner, 2013) The concept of 'software definition,' which embodies the philosophy of using software technology to increase the agility and interoperability of areas that were directly controlled by hardware, as it has expanded to include business and services in recent years.
  • 11. IMAGE COMPRESSION STORAGE POLICY FOR OPENSTACK SWIFT 6 Market momentum based on 'software defined' has naturally spread to storage, infrastructure, and data center as a whole, beginning with industry trends related to SDN. Just as SDN, which defines software-dependent parts of the software, has advantages such as automation, auto-scaling, and service chaining, software definitions are being evaluated as a concept of leapfrogging hardware dependencies by taking advantage of the software. This definition of software spreads not only in today's network but also in all areas of servers, storage, and infrastructures, resulting in the emergence of Software- Defined Storage (SDS) and Software-Defined Data Center (SDDC) terms. Software- defined Anything / Everything. Today, SDx is used as a business term to leverage the benefits of "software definition" not just at the level of the infrastructure such as network, storage, and data center, but also at the business and application service levels Table II explains the baseline points that can be referred to as 'software definition,' taking a software-defined data center as an example. As each of the above criteria is met and each criterion is combined to optimize the infrastructure and increase utilization at the application level, innovation in 'software definition' is accelerated. These innovations include choosing the right infrastructure to meet SLAs and dynamic configurations that optimize asset utilization. What is important here is that software definition can increase flexibility and enable programmability by standards that are not dependent on a specific vendor. Agility and interoperability are two important philosophies that represent SDx. In the case of electronics, the specific methods for each field such as network and storage are slightly different, but the flexibility is improving. On the other hand, in the latter case, there is a tendency for related companies to make various moves such as pushing the SDx initiative to strengthen the market standard. F. OpenFlow One of the biggest trends associated with SDx is standardization. OpenFlow, which is a representative example of SDN standardization, was initially led by academia, not by industry. The OpenFlow protocol, implemented and standardized by Stanford University professors and students, has been transferred to the Open Networking Foundation (ONF) since version 1.1 and released 1.4 in October 2013, and is now standardizing on version 1.5. OpenFlow standardization allows customers to break away from network vendor dependencies and form a user-driven network ecosystem that enables customers to take advantage of network pricing, scalability, reliability, performance and other requirements.
  • 12. IMAGE COMPRESSION STORAGE POLICY FOR OPENSTACK SWIFT 7 Abstraction – the decoupling of a resource from the consumer of the resource (also commonly referred to as virtualization when talking about compute resources). This is a powerful foundation as the virtualization of these resources should enable us to define ‘models’ of infrastructure elements that can be managed without requiring management of every element individually. Instrumentation – opening up of the decoupled infrastructure elements with programmatic interfaces (typically XML-based RESTful APIs). Automation – using these APIs, wiring up the exposed elements using scripts and other automation tools to remove “human middleware” from the equation. This is an area where traditional information security tools are woefully inadequate. Orchestration – beyond script-based automation, automating the provisioning of data center infrastructure through linkages to policy-driven orchestration systems where the provisioning of compute, networking, storage, security and so on is driven by business policies such as SLAs, compliance, cost and availability. This is where infrastructure meets the business. Table II. The Characteristic of Software-defined Data Center (Gartner, 2013) G. OpenStack Various of SDx initiatives are being pursued not only on the network but also through OpenStack, Open Compute Project, and Open Rack. OpenStack is an open source project initiated by NASA and RackSpace in July 2010. (Rackspace Inc., 2010) It is a cloud infrastructure management solution project with more than 10,000 developers from 121 countries as of July 2013. The Open Compute Project (www.opencompute.org) is a Facebook-led initiative created to share data center design and related experiences in 2011, with Open Rack for energy and cost savings and scalability. One of its server rack product specifications has been announced. These SDx initiatives offer the advantage of being able to flexibly meet a wide range of customer requirements, as well as reducing operational costs (OPEX) from the operator's perspective. It also provides convenience for automation such as auto-scaling and service chaining. It is noteworthy that initiatives are underway to establish various standardizations with the direct participation of several SDx providers. Since NASA announced that it would not participate in OpenStack in May 2012 (NASA, 2012), VMware joined the OpenStack Foundation in September 2012. (Gigaom, 2012) Also, many vendors, including Cisco and HP, directly participate in OpenStack Summit will make a major announcement. Moreover, the Facebook-led Open Compute project includes hardware manufacturers such as Intel to discuss low-power mainboards and network interfaces. The main reason for existing players to participate actively in the SDx market, which has been undergoing such a change, seems to be efforts to secure software-based
  • 13. IMAGE COMPRESSION STORAGE POLICY FOR OPENSTACK SWIFT 8 initiatives because existing operators worry about profitability deterioration and competition expansion. Technical Aspects In the case of our project, we developed using various elements of the web. First, we created the API interface through Node.js for the REST API provided by OpenStack Swift. Second, using the latest web development technologies, such as AngularJS and Bootstrap, the test client's programs have made the same experience for front-end developers. Third, by installing the Swift-All-In-One (SAIO) (SAIO, n.d.) version of OpenStack, existing users can easily install Swift and run Object Server. Fourth, we used Bower (Bower, n.d.) and NPM to manage the dependency of the test client. Finally, Github allows the source code to be easily followed when committing custom libraries to other users, depending on the commit and archive. To understand this project, it is necessary to understand basic REST API of SDN, SDS and the web, and techniques such as Node.js and AngularJS. Environments For our project, we needed to build a server environment first. The server used Google Compute Engine and used two virtual CPUs, 7.5GB of memory and two 100GB block storage hard disks. The operating system used Ubuntu Server 14.04 LTS image and OpenStack Swift 2.11.1dev46. I installed the proxy server and the storage server on one server by referring to the SAIO manual. Architecture For the development of our project, Swift itself modified the swift/obj/diskfile.py file as shown in Figure 3. First, we named the image compression policy COMP_POLICY and applied it to the file in Table III. The first time we tried to modify the proxy server, we decided to change diskfile.py to handle the actual file saving by changing the way. Therefore, first add the CompressedDiskFileManager module as shown in Figure 3, and register it in policy. Later, by defining CompressedDiskFileWriter and CompressedDiskFileReader, we create a part that can handle HTTP request / response and Swift command. Our program defines a new file writing part, so we mainly worked on CompressedDiskFileWrite, and I got the file stored in this area and uploaded the compressed file through Swift command.
  • 14. IMAGE COMPRESSION STORAGE POLICY FOR OPENSTACK SWIFT 9 swift/obj/diskfile.py swift/common/storage_policy.py swift/proxy/controllers/obj.py Table III. The list of the Swift’s file to adjust custom storage policy Figure 3. Source code within diskfile.py with image compression policy Test Scenario As shown in Figure 4, there are two test scenarios. First, there is REST API processing when the user uploads the file and processing by the actual OpenStack Swift. Second, when the user presses the Run the Demo button after the upload is completed, the original image and the compressed image are called at the bottom of the test page It is about comparing image load speed and size with Chrome Developer Tools.
  • 15. IMAGE COMPRESSION STORAGE POLICY FOR OPENSTACK SWIFT 10 More specifically, in a web page composed of AngularJS and Dropzone.js (Dropzone.js, n.d.), the user requests a file upload via drag-and-drop. The client invokes the file upload portion of the Node.js middleware via an Ajax request. In the middleware, the actual byte stream of the file in the multipart form is first transmitted through the Swift REST API implemented by us. The Swift server receives the request and handles file storage in CompressedDiskFileWriter in diskfile.py mentioned in the above architecture. We do the actual processing in the _finalize_put_() method with our implemented image compressor. After that, through Run the Demo, AngularJS makes a content request to middleware and shows it through REST API. Figure 4. The procedure of testing to upload/load compressed image file Performance Table IV shows our test results. A total of four images were tested, showing an average 28.28% reduction in image capacity and an average increase in page throughput of 32.46%. The result is larger in the visual area that the user can see. In fact, it takes 8 seconds to load a 15MB HD image shown in Table IV, Image#4 While the compressed HD file shows a result of 2.74 seconds, which still allows the user to view the image quite nicely. Uncompressed Compressed Reduce Rate (%) Size (KB) Load Speed (Sec) Size (KB) Load Speed (Sec) Size Load Speed Image #1 1,434 1.16 657 0.5 -45.82 -43.10 Image #2 6,554 4.13 1,011 1.12 -15.43 -27.11 Image #3 969 2.66 217 0.69 -22.39 -25.90 Image #4 15,667 8.13 4,618 2.74 -29.48 -33.70 Average -28.28 -32.46 Table IV The Result of the Test Scenario
  • 16. IMAGE COMPRESSION STORAGE POLICY FOR OPENSTACK SWIFT 11 Challenges In the case of OpenStack Swift, the file from the HTTP request or Swift command request is divided into 500 bytes, separated into chunks, and then transmitted to the corresponding object server in order. We first tried to compress the file and send it to the server before splitting the file into chunks. However, since the number of chunk files in the compressed file differs from the number of chunks in the actual compressed file, the logic for counting transmitted chunks is so varied that it fails to analyze them. We tried to compress and then re-compress the file stored on the object server, but it also failed to fetch metadata and hash. Since we used SAIO (Swift-All-In-One), object server and proxy server existed on one server, but in practice, these servers will be separated, so it is necessary to process file compression processing in the proxy server in advance. Also, we spent a great deal of time analyzing the complex Swift source code and spent much time building test scenarios and test client environments.
  • 17. IMAGE COMPRESSION STORAGE POLICY FOR OPENSTACK SWIFT 12 Conclusion Through this project, we created a policy from the installation of OpenStack Swift and connected and tested the actual container. In SDDC, we knew that SDS was the basis so that we could manage huge physical hardware through the policy, and once again gutted the importance of policy. As the number of users using the latest image server in Amazon AWS S3 increases, the importance of image compression is expected to increase in future S3. Thus, other services such as Google Cloud Storage are more interested in web optimization thus we need to give customization permission to in our project. Since the image compression was simply used for web optimization, we did not adopt in-depth algorithms. However, if the policy becomes a structure that adopts file optimization based on content type in future policy, SDDC we hope to do it properly.
  • 18. IMAGE COMPRESSION STORAGE POLICY FOR OPENSTACK SWIFT 13 References 1) Amazon Web Service (AWS). (n.d.). Retrieved from http://aws.amazon.com/. 2) Amazon Simple Storage Service (S3) . (n.d.). Retrieved from http://aws.amazon.com/s3/. 3) Google Compute Engine. (n.d.). Retrieved from http://cloud.google.com. 4) Microsoft Azure. (n.d.). Retrieved from http://www.windowsazure.com/. 5) OpenStack. (n.d.). Retrieved from http://www.openstack.org/. 6) OpenStack Swift. (n.d.). Retrieved from http://swift.openstack.org/. 7) What is Software-Defined Storage? – Definition. (n.d.). In SDxCentral. Retrieved from https://www.sdxcentral.com/cloud/definitions/what-is-software-defined- storage/ 8) M. David, ‘‘Introduction to SDN (Software-defined Networking),’’ Nov. 2014. [Online]. Available: https://www.youtube.com/watch?v=DiChnu_PAzA. 9) Thereska, E., Ballani, H., O'Shea, G., Karagiannis, T., Rowstron, A., Talpey, T., ... & Zhu, T. (2013, November). IOFlow: a software-defined storage architecture. In Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles (pp. 182-196). ACM. 10) Average Byte per Page by Content Type. (Mar. 2016). In Http Archive. Retrieved from http://httparchive.org/interesting.php#bytesperpage?ictd%5Bmaster%5D=vid~72 0f2d5d-60be-46fc-92c4- 1774ba093d21&ictd%5Bil583%5D=rlt~1441669636~land~2_3853_seo_aa73a52 e6449ecff40e9a5c66e7bb93f. 11) Serving Images With Image Sets. (Sep. 2013). In Apple. Retrieved from https://developer.apple.com/library/content/documentation/NetworkingInternet/C onceptual/SafariImageDeliveryBestPractices/ServingImagestoRetinaDisplays/Ser vingImagestoRetinaDisplays.html#//apple_ref/doc/uid/TP40012449-CH3-SW1. 12) Imgur. (n.d.). Retrieved from http://imgur.com. 13) Reddit. (n.d.). Retrieved from http://www.reddit.com. 14) Alan S. (2013, June 4). TECH TUESDAY: OUR TECHNOLOGY STACK, Archived at http://blog.imgur.com/2013/06/04/tech-tuesday-our-technology-stack/.
  • 19. IMAGE COMPRESSION STORAGE POLICY FOR OPENSTACK SWIFT 14 15) Jeff A. (2007, March 6). Using Amazon S3 as an Image Hosting Service, archived at https://blog.codinghorror.com/using-amazon-s3-as-an-image-hosting-service/. 16) Compressed.io. (n.d.). Retrieved from http://compressor.io. 17) Tinypng. (n.d.). Retrieved from http://tinypng.com. 18) Chowdhury, N. M. K., & Boutaba, R. (2010). A survey of network virtualization. Computer Networks, 54(5), 862-876. doi: dx.doi.org/10.1016/j.comnet.2009.10.017 19) Bari, M. F., Boutaba, R., Esteves, R., Granville, L. Z., Podlesny, M., Rabbani, M. G., ... & Zhani, M. F. (2013). Data center network virtualization: A survey. IEEE Communications Surveys & Tutorials, 15(2), 909-928. doi:10.1109/SURV.2012.090512.00043 20) Schaffrath, G., Werle, C., Papadimitriou, P., Feldmann, A., Bless, R., Greenhalgh, A., ... & Mathy, L. (2009, August). Network virtualization architecture: proposal and initial prototype. In Proceedings of the 1st ACM workshop on Virtualized infrastructure systems and architectures (pp. 63-72). ACM. doi:10.1145/1592648.1592659 21) McKeown, N., Anderson, T., Balakrishnan, H., Parulkar, G., Peterson, L., Rexford, J., ... & Turner, J. (2008). OpenFlow: enabling innovation in campus networks. ACM SIGCOMM Computer Communication Review, 38(2), 69-74. doi:10.1145/1355734.1355746 22) Janessa R., Gartner, (2013, October 8). Gartner Identifies the Top 10 Strategic Technology Trends for 2014 [Press release]. Retrieved from http://www.gartner.com/newsroom/id/2603623. 23) Neil M., Gartner, (2013, January 29). Software Defined Data Centers and Security–What’s in a Name?. Archived from http://blogs.gartner.com/neil_macdonald/2013/01/29/software-defined-data- centers-and-securitywhats-in-a-name/. 24) Lew M., Rackspace Inc., (2010, July 19). Opening The Rackspace Cloud [Press release]. Retrieved from http://blog.rackspace.com/open-stack. 25) Ali L., NASA, (2012, June 04). Nebula, NASA, and OpenStack [Press release]. Retrieved from https://open.nasa.gov/blog/nebula-nasa-and-openstack./ 26) Barb D., Gigaom, (2012, September 7). Finally! VMware joins the OpenStack Foundation, this time for real [Press release]. Retrieved from
  • 20. IMAGE COMPRESSION STORAGE POLICY FOR OPENSTACK SWIFT 15 https://gigaom.com/2012/09/07/finally-vmware-joins-the-openstack-foundation- this-time-for-real/. 27) Built With. (2005). CMS Usage Trend Statistics. BuiltWith® Pty Ltd. Retrieved from https://trends.builtwith.com/cms. 28) Swift-All-In-One (SAIO) Installation Manual. (n.d.). Retrieved from http://docs.openstack.org/developer/swift/development_saio.html. 29) Bower. (n.d.). Retrieved from http://bower.io. 30) Dropzone.js. (n.d.). Retrieved from http://dropzonejs.com.