-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtin-bachproef.bib
850 lines (777 loc) · 68.8 KB
/
tin-bachproef.bib
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
% Encoding: UTF-8
@inproceedings{tichy_catalogue_1997,
title = {A catalogue of general-purpose software design patterns},
doi = {10.1109/TOOLS.1997.654742},
abstract = {Software design patterns describe proven solutions to recurring software design problems. Knowledge of these patterns increases designers' abilities, leads to cleaner and more easily maintained software, speeds up implementation and test, and helps programmers document and communicate their designs. This paper catalogues over 100 general-purpose design patterns. The organizing principle of the catalogue is the use of patterns, i.e., the problems they solve. Other considerations, such as whether a pattern is behavioral or structural, how it is implemented, or whether it is high or low level, are secondary, because these aspects are less important for a designer looking for a solution to a design problem. The catalogue collects general-purpose patterns from a variety of sources. It includes older patterns such as Module and Layers as well as modern, object-oriented patterns such as Observer and Visitor},
booktitle = {Technology of {Object}-{Oriented} {Languages} and {Systems}, 1997. {TOOLS} 23. {Proceedings}},
author = {Tichy, W. F.},
month = jul,
year = {1997},
keywords = {behavioral pattern, catalogue, Electrical capacitance tomography, Electronic switching systems, general purpose software design patterns, Identity-based encryption, Layers, Module, object-oriented methods, object oriented patterns, Observer, Organizing, Programming profession, program testing, Reactive power, Read only memory, Software design, software maintenance, software reusability, structural pattern, Testing, Visitor, Yarn},
pages = {330--339},
file = {IEEE Xplore Abstract Record:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/HG8U3VZZ/articleDetails.html:text/html}
}
@misc{alpine_linux_development_team_alpine_????,
title = {Alpine {Linux} {\textbar} {Alpine} {Linux}},
url = {http://alpinelinux.org/},
urldate = {2016-05-18},
journal = {Alpine Linux},
author = {{Alpine Linux Development Team}},
note = {Opgehaald op 18/05/2016 van http://alpinelinux.org/},
file = {Alpine Linux | Alpine Linux:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/SVR9MMNT/alpinelinux.org.html:text/html}
}
@inproceedings{mao_performance_2012,
title = {A performance study on the {VM} startup time in the cloud},
isbn = {978-0-7695-4755-8},
doi = {10.1109/CLOUD.2012.103},
abstract = {One of many advantages of the cloud is the elasticity, the ability to dynamically acquire or release computing resources in response to demand. However, this elasticity is only meaningful to the cloud users when the acquired Virtual Machines (VMs) can be provisioned in time and be ready to use within the user expectation. The long unexpected VM startup time could result in resource under-provisioning, which will inevitably hurt the application performance. A better understanding of the VM startup time is therefore needed to help cloud users to plan ahead and make in-time resource provisioning decisions. In this paper, we study the startup time of cloud VMs across three real-world cloud providers – Amazon EC2, Windows Azure and Rackspace. We analyze the relationship between the VM startup time and different factors, such as time of the day, OS image size, instance type, data center location and the number of instances acquired at the same time. We also study the VM startup time of spot instances in EC2, which show a longer waiting time and greater variance compared to on-demand instances.},
booktitle = {Proc. - 2012 {IEEE} 5th {Int}. {Conf}. {Cloud} {Comput}. {CLOUD} 2012},
author = {Mao, Ming and Humphrey, Marty},
year = {2012},
keywords = {cloud computing, performance study, spot instances, VM startup/acquisition/spinup time},
pages = {423--430}
}
@article{griffin_survey_2007,
title = {A {Survey} on {Web} {Services} in {Telecommunications}},
volume = {45},
issn = {0163-6804},
doi = {10.1109/MCOM.2007.382657},
abstract = {This article presents a survey of service-oriented architecture and Web services within telecommunications. Telecommunications over the past few years has been in a state of constant flux, with shifts in regulations, increased competition, and technological progress. The article describes these forces in detail and shows that the need for successful adoption of SOA within telecommunication has become a major agenda item for the majority of telecommunication network operators. The article then proceeds to describe SOA and its key enablers in telecommunications - Web services, event-driven architectures, Parlay X/ECMA specifications, and the enterprise service bus.},
number = {7},
journal = {IEEE Communications Magazine},
author = {Griffin, D. and Pesch, D.},
month = jul,
year = {2007},
keywords = {Collaboration, computer networks, Condition monitoring, Context-aware services, Data security, Electronic design automation and methodology, enterprise service bus, event driven architectures, Internet, Packaging, Parlay X/ECMA specifications, Quality management, Quality of service, service oriented architecture, telecommunications, Web services},
pages = {28--35},
file = {IEEE Xplore Abstract Record:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/ZCVJHMCC/login.html:text/html}
}
@misc{satya_popuri_tour_????,
title = {A {Tour} of {Mini}-{OS} {Kernel}},
url = {https://www.cs.uic.edu/~spopuri/minios.html},
urldate = {2016-05-18},
author = {{Satya Popuri}},
note = {Opgehaald op 18/05/2016 van https://www.cs.uic.edu/{\textasciitilde}spopuri/minios.html},
file = {A Tour of Mini-OS Kernel:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/T8BFISRT/minios.html:text/html}
}
@misc{martin_fowler_bluegreendeployment_2016,
title = {{BlueGreenDeployment}},
shorttitle = {bliki},
url = {http://martinfowler.com/bliki/BlueGreenDeployment.html},
abstract = {Blue-green deployment allows you to upgrade production software without downtime. You deploy the new version into a copy of the production environment and change routing to switch.},
urldate = {2016-05-19},
journal = {martinfowler.com},
author = {{Martin Fowler}},
month = jan,
year = {2016},
note = {Opgehaald op 19/05/2016 van http://martinfowler.com/bliki/BlueGreenDeployment.html},
file = {Snapshot:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/V9IUH9XX/BlueGreenDeployment.html:text/html}
}
@inproceedings{colp_breaking_2011,
address = {New York, NY, USA},
series = {{SOSP} '11},
title = {Breaking {Up} is {Hard} to {Do}: {Security} and {Functionality} in a {Commodity} {Hypervisor}},
isbn = {978-1-4503-0977-6},
shorttitle = {Breaking {Up} is {Hard} to {Do}},
url = {http://doi.acm.org/10.1145/2043556.2043575},
doi = {10.1145/2043556.2043575},
abstract = {Cloud computing uses virtualization to lease small slices of large-scale datacenter facilities to individual paying customers. These multi-tenant environments, on which numerous large and popular web-based applications run today, are founded on the belief that the virtualization platform is sufficiently secure to prevent breaches of isolation between different users who are co-located on the same host. Hypervisors are believed to be trustworthy in this role because of their small size and narrow interfaces. We observe that despite the modest footprint of the hypervisor itself, these platforms have a large aggregate trusted computing base (TCB) that includes a monolithic control VM with numerous interfaces exposed to VMs. We present Xoar, a modified version of Xen that retrofits the modularity and isolation principles used in micro-kernels onto a mature virtualization platform. Xoar breaks the control VM into single-purpose components called service VMs. We show that this componentized abstraction brings a number of benefits: sharing of service components by guests is configurable and auditable, making exposure to risk explicit, and access to the hypervisor is restricted to the least privilege required for each component. Microrebooting components at configurable frequencies reduces the temporal attack surface of individual components. Our approach incurs little performance overhead, and does not require functionality to be sacrificed or components to be rewritten from scratch.},
urldate = {2016-05-18},
booktitle = {Proceedings of the {Twenty}-{Third} {ACM} {Symposium} on {Operating} {Systems} {Principles}},
publisher = {ACM},
author = {Colp, Patrick and Nanavati, Mihir and Zhu, Jun and Aiello, William and Coker, George and Deegan, Tim and Loscocco, Peter and Warfield, Andrew},
year = {2011},
pages = {189--202}
}
@misc{danilo_sato_canaryrelease_2014,
title = {{CanaryRelease}},
shorttitle = {bliki},
url = {http://martinfowler.com/bliki/CanaryRelease.html},
abstract = {A canary release occurs when you roll out a new version of some software to a small subset of your user base to see if there are any problems before you make it available to everyone.},
urldate = {2016-05-19},
journal = {martinfowler.com},
author = {{Danilo Sato}},
month = jun,
year = {2014},
note = {Opgehaald op 25/06/2014 van http://martinfowler.com/bliki/CanaryRelease.html},
file = {Snapshot:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/3PCGPDB5/CanaryRelease.html:text/html}
}
@misc{linux_chroot2_????,
title = {chroot(2) - {Linux} manual page},
url = {http://man7.org/linux/man-pages/man2/chroot.2.html},
urldate = {2016-05-18},
author = {{Linux}},
note = {Opgehaald op 17/05/2016 van http://man7.org/linux/man-pages/man2/chroot.2.html},
file = {chroot(2) - Linux manual page:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/DSHPIQ36/chroot.2.html:text/html}
}
@inproceedings{martins_clickos_2014,
address = {Berkeley, CA, USA},
series = {{NSDI}'14},
title = {{ClickOS} and the {Art} of {Network} {Function} {Virtualization}},
isbn = {978-1-931971-09-6},
url = {http://dl.acm.org/citation.cfm?id=2616448.2616491},
abstract = {Over the years middleboxes have become a fundamental part of today's networks. Despite their usefulness, they come with a number of problems, many of which arise from the fact that they are hardware-based: they are costly, difficult to manage, and their functionality is hard or impossible to change, to name a few. To address these issues, there is a recent trend towards network function virtualization (NFV), in essence proposing to turn these middleboxes into software-based, virtualized entities. Towards this goal we introduce ClickOS, a high-performance, virtualized software middlebox platform. ClickOS virtual machines are small (5MB), boot quickly (about 30 milliseconds), add little delay (45 microseconds) and over one hundred of them can be concurrently run while saturating a 10Gb pipe on a commodity server. We further implement a wide range of middleboxes including a firewall, a carrier-grade NAT and a load balancer and show that ClickOS can handle packets in the millions per second.},
urldate = {2016-05-18},
booktitle = {Proceedings of the 11th {USENIX} {Conference} on {Networked} {Systems} {Design} and {Implementation}},
publisher = {USENIX Association},
author = {Martins, Joao and Ahmed, Mohamed and Raiciu, Costin and Olteanu, Vladimir and Honda, Michio and Bifulco, Roberto and Huici, Felipe},
year = {2014},
pages = {459--473}
}
@article{dhakar_cloud_2009,
title = {Cloud {Computing} {Architecture}},
volume = {40},
issn = {0163-5700},
doi = {10.1016/B978-1-59749-592-9.00002-6},
number = {June},
journal = {Chinagrid.Net},
author = {Dhakar, RS and Gupta, A.},
year = {2009},
pages = {29--53},
file = {Cloud Computing Architecture - preview & related info | Mendeley:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/7KUMJZN5/cloud-computing-architecture-21.html:text/html}
}
@Misc{cloudius-systems/osv_0000,
author = {Cloudius System},
title = {cloudius-systems/osv},
note = {bibtex: cloudius-systems/osv\_0000},
abstract = {osv - OSv, a new operating system for the cloud.},
file = {Snapshot:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/VR33N6T9/osv.html:text/html},
journaltitle = {GitHub},
url = {https://github.com/cloudius-systems/osv},
urldate = {2016-05-18},
}
@misc{cloud_networking_performance_lab_cloud_????,
title = {Cloud {Networking} {Performance} {Lab} {\textbar} {ClickOS} {\textbar} {Modular} {VALE} {\textbar} {Xen}},
url = {http://cnp.neclab.eu/getting-started/#clickos},
urldate = {2016-05-18},
journal = {Cloud Networking Performance Lab {\textbar} ClickOS {\textbar} modular VALE {\textbar} Xen},
author = {{Cloud Networking Performance Lab}},
note = {Opgehaald op 18/05/2016 van http://cnp.neclab.eu/getting-started/\#clickos},
file = {Cloud Networking Performance Lab | ClickOS | Modular VALE | Xen:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/FTRPB4WR/getting-started.html:text/html}
}
@misc{erlang_on_xen_cloudozer/ling_????,
title = {cloudozer/ling},
url = {https://github.com/cloudozer/ling},
abstract = {ling - Erlang on Xen},
urldate = {2016-05-18},
journal = {GitHub},
author = {{Erlang on Xen}},
note = {Opgehaald op 18/05/2016 van https://github.com/cloudozer/ling},
file = {Snapshot:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/CQXFDBKM/ling.html:text/html}
}
@article{soltesz_container-based_2007,
title = {Container-based operating system virtualization},
volume = {41},
abstract = {Hypervisors, popularized by Xen and VMware, are quickly becoming commodity. They are appropriate for many usage scenarios, but there are scenarios that require system virtualization with high degrees of both isolation and efficiency. Examples include HPC clusters, the Grid, hosting centers, and PlanetLab. We present an alternative to hypervisors that is better suited to such scenarios. The approach is a synthesis of prior work on resource containers and security containers applied to general-purpose, time-shared operating systems. Examples of such container-based systems include Solaris 10, Virtuozzo for Linux, and Linux-VServer. As a representative instance of container-based systems, this paper describes the design and implementation of Linux-VServer. In addition, it contrasts the architecture of Linux-VServer with current generations of Xen, and shows how Linux-VServer provides comparable support for isolation and superior system efficiency.},
number = {3},
journal = {ACM SIGOPS Oper. Syst. Rev.},
author = {Soltesz, Stephen and Pötzl, Herbert and Fiuczynski, Marc E. and Bavier, Andy and Peterson, Larry},
year = {2007},
pages = {275}
}
@book{humble_continuous_2010,
address = {Upper Saddle River, NJ},
edition = {1 edition},
title = {Continuous {Delivery}: {Reliable} {Software} {Releases} through {Build}, {Test}, and {Deployment} {Automation}},
isbn = {978-0-321-60191-9},
shorttitle = {Continuous {Delivery}},
abstract = {Winner of the 2011 Jolt Excellence Award! Getting software released to users is often a painful, risky, and time-consuming process. This groundbreaking new book sets out the principles and technical practices that enable rapid, incremental delivery of high quality, valuable new functionality to users. Through automation of the build, deployment, and testing process, and improved collaboration between developers, testers, and operations, delivery teams can get changes released in a matter of hours— sometimes even minutes–no matter what the size of a project or the complexity of its code base. Jez Humble and David Farley begin by presenting the foundations of a rapid, reliable, low-risk delivery process. Next, they introduce the “deployment pipeline,” an automated process for managing all changes, from check-in to release. Finally, they discuss the “ecosystem” needed to support continuous delivery, from infrastructure, data and configuration management to governance. The authors introduce state-of-the-art techniques, including automated infrastructure management and data migration, and the use of virtualization. For each, they review key issues, identify best practices, and demonstrate how to mitigate risks. Coverage includes • Automating all facets of building, integrating, testing, and deploying software • Implementing deployment pipelines at team and organizational levels • Improving collaboration between developers, testers, and operations • Developing features incrementally on large and distributed teams • Implementing an effective configuration management strategy • Automating acceptance testing, from analysis to implementation • Testing capacity and other non-functional requirements • Implementing continuous deployment and zero-downtime releases • Managing infrastructure, data, components and dependencies • Navigating risk management, compliance, and auditing Whether you’re a developer, systems administrator, tester, or manager, this book will help your organization move from idea to release faster than ever—so you can deliver value to your business rapidly and reliably.},
language = {English},
publisher = {Addison-Wesley Professional},
author = {Humble, Jez and Farley, David},
month = aug,
year = {2010}
}
@article{yallop_declarative_????,
title = {Declarative foreign function binding through generic programming},
author = {Yallop, Jeremy and Sheets, David and Madhavapeddy, Anil},
file = {Attachment:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/Z44FUJNR/2016-cmeleon-flops.pdf:application/pdf}
}
@misc{docker_docker_2016,
title = {Docker},
url = {https://www.docker.com/},
urldate = {2016-05-17},
author = {{Docker}},
year = {2016},
note = {Opgehaald op 17/05/2015 van https://www.docker.com/}
}
@article{merkel_docker:_2014,
title = {Docker: lightweight {Linux} containers for consistent development and deployment},
volume = {2014},
url = {http://dl.acm.org/ft_gateway.cfm?id=2600241&type=html$\backslash$nhttp://www.linuxjournal.com/content/docker-lightweight-linux-containers-consistent-development-and-deployment},
abstract = {Docker promises the ability to package applications and their dependencies into lightweight containers that move easily between different distros, start up quickly and are isolated from each other.},
number = {239},
journal = {Linux J.},
author = {Merkel, Dirk},
year = {2014},
pages = {2}
}
@misc{oreilly_media_docker_2015,
title = {Docker report - {Docker} \& containerization survey {\textbar} {Dynatrace} {Ruxit}},
url = {http://www.dynatrace.com/en/ruxit/docker-report/#dockerreport_get-report},
language = {English},
urldate = {2016-05-24},
journal = {The State of Containers and the Docker Ecosystem: 2015},
author = {{O’Reilly Media} and {Ruxit}},
month = sep,
year = {2015},
note = {Opgehaald op 23/05/2016 van http://www.dynatrace.com/en/ruxit/docker-report/},
file = {Docker report - Docker & containerization survey | Dynatrace Ruxit:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/DMVJPM7D/docker-report.html:text/html}
}
@misc{wikipedia_docker_????,
title = {Docker (software)},
url = {https://en.wikipedia.org/wiki/Docker_%28software%29},
urldate = {2016-05-16},
author = {{Wikipedia}},
note = {Opgehaald op 17/05/2015 van https://en.wikipedia.org/wiki/Docker\_\%28software\%29}
}
@article{bala_dynamo_2000,
title = {Dynamo},
volume = {35},
issn = {03621340},
url = {http://portal.acm.org/citation.cfm?doid=358438.349303},
doi = {10.1145/358438.349303},
abstract = {Computing as you know it is about to change, your applications and documents are going to move from the desktop into the cloud. I'm talking about cloud computing, where applications and files are hosted on a "cloud" consisting of thousands of computers and servers, all linked together and accessible via the Internet. With cloud computing, everything you do is now web based instead of being desktop based. You can access all your programs and documents from any computer that's connected to the Internet. How will cloud computing change the way you work? For one thing, you're no longer tied to a single computer. You can take your work anywhere because it's always accessible via the web. In addition, cloud computing facilitates group collaboration, as all group members can access the same programs and documents from wherever they happen to be located. Cloud computing might sound far-fetched, but chances are you're already using some cloud applications. If you're using a web-based email program, such as Gmail or Hotmail, you're computing in the cloud. If you're using a web-based application such as Google Calendar or Apple Mobile Me, you're computing in the cloud. If you're using a file- or photo-sharing site, such as Flickr or Picasa Web Albums, you're computing in the cloud. It's the technology of the future, available to use today.},
number = {5},
journal = {ACM SIGPLAN Not.},
author = {Bala, Vasanth and Duesterwald, Evelyn and Banerjia, Sanjeev},
year = {2000},
pmid = {22988693},
pages = {1--12}
}
@article{beloglazov_energy_2010,
title = {Energy {Efficient} {Resource} {Management} in {Virtualized} {Cloud} {Data} {Centers}},
url = {http://www.scopus.com/inward/record.url?eid=2-s2.0-77954894902&partnerID=tZOtx3y1},
doi = {10.1109/CCGRID.2010.46},
abstract = {Rapid growth of the demand for computational power by scientific, business and web-applications has led to the creation of large-scale data centers consuming enormous amounts of electrical power. We propose an energy efficient resource management system for virtualized Cloud data centers that reduces operational costs and provides required Quality of Service (QoS). Energy savings are achieved by continuous consolidation of VMs according to current utilization of resources, virtual network topologies established between VMs and thermal state of computing nodes. We present first results of simulation-driven evaluation of heuristics for dynamic reallocation of VMs using live migration according to current requirements for CPU performance. The results show that the proposed technique brings substantial energy savings, while ensuring reliable QoS. This justifies further investigation and development of the proposed resource management system. © 2010 IEEE.},
journal = {2010 10th IEEE/ACM Int. Conf. Clust. Cloud Grid Comput.},
author = {Beloglazov, Anton and Buyya, Rajkumar},
year = {2010},
keywords = {Allocation of virtual machines, cloud computing, Energy consumption, Energy efficiency, Green IT, Live migration of virtual machines, Resource management, Virtualization},
pages = {826--831}
}
@inproceedings{villamizar_evaluating_2015,
title = {Evaluating the monolithic and the microservice architecture pattern to deploy web applications in the cloud},
doi = {10.1109/ColumbianCC.2015.7333476},
abstract = {Cloud computing provides new opportunities to deploy scalable application in an efficient way, allowing enterprise applications to dynamically adjust their computing resources on demand. In this paper we analyze and test the microservice architecture pattern, used during the last years by large Internet companies like Amazon, Netflix and LinkedIn to deploy large applications in the cloud as a set of small services that can be developed, tested, deployed, scaled, operated and upgraded independently, allowing these companies to gain agility, reduce complexity and scale their applications in the cloud in a more efficient way. We present a case study where an enterprise application was developed and deployed in the cloud using a monolithic approach and a microservice architecture using the Play web framework. We show the results of performance tests executed on both applications, and we describe the benefits and challenges that existing enterprises can get and face when they implement microservices in their applications.},
booktitle = {Computing {Colombian} {Conference} (10CCC), 2015 10th},
author = {Villamizar, M. and Garcés, O. and Castro, H. and Verano, M. and Salamanca, L. and Casallas, R. and Gil, S.},
month = sep,
year = {2015},
keywords = {cloud computing, Companies, Complexity theory, Computer architecture, continuous delivery, enterprise applications, IaaS, infrastructure as a services, Internet companies, microservice architecture, microservice architecture pattern, Microservices, monolithic architecture pattern, PaaS, platform as a service, Play Web framework, scalable applications, Service-oriented architecture, service oriented architectures, SOA, Software architecture, software engineering, Web applications},
pages = {583--590},
file = {IEEE Xplore Abstract Record:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/2EB4GAFA/articleDetails.html:text/html}
}
@book{kantee_flexible_2012,
title = {Flexible {Operating} {System} {Internals}: {The} {Design} and {Implementation} of the {Anykernel} and {Rump} {Kernels}},
isbn = {978-952-60-4917-5},
shorttitle = {Flexible {Operating} {System} {Internals}},
url = {https://aaltodoc.aalto.fi:443/handle/123456789/6318},
abstract = {The monolithic kernel architecture is significant in the real world due to the large amount of working and proven code. However, the architecture is not without problems: testing and development is difficult, virtualizing kernel services can be done only by duplicating the entire kernel, and security is weak due to a single domain where all code has direct access to everything. Alternate kernel architectures such as the microkernel and exokernel have been proposed to rectify these problems with monolithic kernels. However, alternate system structures do not address the common desire of using a monolithic kernel when the abovementioned problems do not apply.
We propose a flexible anykernel architecture which enables running kernel drivers in a variety of configurations, examples of which include microkernel-style servers and application libraries. A monolithic kernel is shown to be convertible into an anykernel with a reasonable amount of effort and without introducing performance-hindering indirection layers. The original monolithic mode of operation is preserved after the anykernel adjustments, and alternate modes of operation for drivers are available as a runtime choice. For non-monolithic modes of operation, the rump kernel is introduced as a lightweight container for drivers. A rump kernel runs on top of a hypervisor which offers high-level primitives such as thread scheduling and virtual memory. A production quality implementation for the NetBSD open source OS has been done. The anykernel architecture and rump kernels are evaluated both against four years of real-world experience from daily NetBSD development as well as against synthetic benchmarks.},
language = {en},
urldate = {2016-05-18},
publisher = {Aalto University},
author = {Kantee, Antti},
year = {2012},
file = {Full Text PDF:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/Z6FUBH45/Kantee - 2012 - Flexible Operating System Internals The Design an.pdf:application/pdf;Snapshot:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/SJMPFKJB/6318.html:text/html}
}
@article{popek_formal_1974,
title = {Formal {Requirements} for {Virtualizable} {Third} {Generation} {Architectures}},
volume = {17},
issn = {0001-0782},
url = {http://doi.acm.org/10.1145/361011.361073},
doi = {10.1145/361011.361073},
abstract = {Virtual machine systems have been implemented on a limited number of third generation computer systems, e.g. CP-67 on the IBM 360/67. From previous empirical studies, it is known that certain third generation computer systems, e.g. the DEC PDP-10, cannot support a virtual machine system. In this paper, model of a third-generation-like computer system is developed. Formal techniques are used to derive precise sufficient conditions to test whether such an architecture can support virtual machines.},
number = {7},
urldate = {2016-05-23},
journal = {Commun. ACM},
author = {Popek, Gerald J. and Goldberg, Robert P.},
month = jul,
year = {1974},
keywords = {abstract model, formal requirements, hypervisor, operating system, proof, sensitive instruction, third generation architecture, virtual machine, virtual machine monitor, virtual memory},
pages = {412--421}
}
@misc{_gliderlabs/docker-alpine_????,
title = {gliderlabs/docker-alpine},
url = {https://github.com/gliderlabs/docker-alpine},
abstract = {docker-alpine - Alpine Linux Docker image. Win at minimalism!},
urldate = {2016-05-18},
journal = {GitHub},
note = {Opgehaald op 18/05/2016 van https://github.com/gliderlabs/docker-alpine},
file = {Snapshot:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/IEAJHQ58/docker-alpine.html:text/html}
}
@misc{oslo_and_akershus_university_college_hioa-cs/includeos_????,
title = {hioa-cs/{IncludeOS}},
url = {https://github.com/hioa-cs/IncludeOS},
abstract = {IncludeOS - A minimal, resource efficient unikernel for cloud services},
urldate = {2016-05-18},
journal = {GitHub},
author = {{Oslo and Akershus University College} and {of Applied Sciences}},
note = {Opgehaald op 18/05/2016 van https://github.com/hioa-cs/IncludeOS},
file = {Snapshot:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/8B89MXF8/IncludeOS.html:text/html}
}
@book{morris_infrastructure_2016,
edition = {1 edition},
title = {Infrastructure as {Code}: {Managing} {Servers} in the {Cloud}},
isbn = {978-1-4919-2435-8},
shorttitle = {Infrastructure as {Code}},
abstract = {This book explains how to take advantage of technologies like cloud, virtualization, and configuration automation to manage IT infrastructure using tools and practices from software development. These technologies have decoupled infrastructure from the underlying hardware, turning it into data and code. "Infrastructure as Code" has emerged alongside the DevOps movement as a label for approaches that merge concepts like source control systems, Test Driven Development (TDD) and Continuous Integration (CI) with infrastructure management.Virtualization and cloud make it easy to rapidly expand the size of infrastructure, but the habits and practices we used in the past with hardware-based infrastructure don't keep up. Teams end up with hundreds of servers, all a bit different, and find themselves unable to fully automate their infrastructure.The book will go through the challenges and problems created by all these wonderful new tools, and the principles and mindset changes that a team needs to make to use them effectively. It describes patterns, practices, and ideas that have been adopted from software development, especially Agile concepts, and brought into the IT Ops world as part of the DevOps movement. These ways of working have been proven in many organizations, including well known names like Netflix, Amazon, and Etsy, and also in more established organizations including publishers, banks, and even the British government.},
language = {English},
publisher = {O'Reilly Media},
author = {Morris, Kief},
month = jul,
year = {2016}
}
@article{madhavapeddy_jitsu:_2015,
title = {Jitsu: {Just}-in-time summoning of unikernels},
url = {https://www.usenix.org/system/files/conference/nsdi15/nsdi15-paper-madhavapeddy.pdf},
abstract = {Network latency is a problem for all cloud services. It can be mitigated by moving computation out of remote datacenters by rapidly instantiating local services near the user. This requires an embedded cloud platform on which to deploy multiple applications securely and quickly. We present Jitsu, a new Xen toolstack that satisfies the demands of secure multi-tenant isolation on resource-constrained embedded ARM devices. It does this by using unikernels: lightweight, compact, single address space, memory-safe virtual machines (VMs) written in a high-level language. Using fast shared memory channels, Jitsu provides a directory service that launches unikernels in response to network traffic and masks boot latency. Our evaluation shows Jitsu to be a power-efficient and responsive platform for hosting cloud services in the edge network while preserving the strong isolation guarantees of a type-1 hypervisor},
journal = {USENIX Symp. Networked Syst. Des. Implement.},
author = {Madhavapeddy, Anil and Leonard, Thomas and Skjegstad, Magnus and Gazagnaire, Thomas and Sheets, David and Scott, Dave and Mortier, Richard and Chaudhry, Amir and Singh, Balraj and Ludlam, Jon and Crowcroft, Jon and Leslie, Ian},
year = {2015},
pages = {559--573},
file = {Attachment:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/7VRFGKX7/2015-nsdi-jitsu.pdf:application/pdf}
}
@misc{containers_linux_????,
title = {Linux {Containers} ({LXC})},
url = {https://linuxcontainers.org/lxc/},
author = {Containers, Linux},
note = {Opgehaald op 17/05/2016 van https://linuxcontainers.org/lxc/}
}
@misc{_linux_????,
title = {Linux {Containers} - {LXC} - {Introduction}},
url = {https://linuxcontainers.org/lxc/},
urldate = {2016-05-18},
file = {Linux Containers - LXC - Introduction:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/IAF4WZVN/lxc.html:text/html}
}
@inproceedings{bratterud_maximizing_2013,
title = {Maximizing {Hypervisor} {Scalability} {Using} {Minimal} {Virtual} {Machines}},
volume = {1},
doi = {10.1109/CloudCom.2013.11},
abstract = {The smallest instance offered by Amazon EC2 comes with 615MB memory and a 7.9GB disk image. While small by today's standards, embedded web servers with memory footprints well under 100kB, indicate that there is much to be saved. In this work we investigate how large VM-populations the open Stack hyper visor can be made to sustain, by tuning it for scalability and minimizing virtual machine images. Request-driven Qemu images of 512 byte are written in assembly, and more than 110 000 such instances are successfully booted on a 48 core host, before memory is exhausted. Other factors are shown to dramatically improve scalability, to the point where 10 000 virtual machines consume no more than 2.06\% of the hyper visor CPU.},
booktitle = {2013 {IEEE} 5th {International} {Conference} on {Cloud} {Computing} {Technology} and {Science} ({CloudCom})},
author = {Bratterud, A. and Haugerud, H.},
month = dec,
year = {2013},
keywords = {Amazon EC2, cloud computing, embedded Web servers, hypervisor CPU, hypervisor scalability, Kernel, kvm, Memory management, minimal virtual machines, open Stack hypervisor, operating system bloat, Random access memory, Request-driven Qemu images, Scalability, Servers, virtual machine images minimization, Virtual machine monitors, virtual machines, Virtual machining},
pages = {218--223},
file = {IEEE Xplore Abstract Record:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/683ATX2X/login.html:text/html}
}
@article{farinier_mergeable_2014,
title = {Mergeable persistent data structures},
journal = {J. Discret. {\textbackslash}ldots},
author = {Farinier, B and Gazagnaire, T},
year = {2014},
pages = {1--13},
file = {Attachment:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/8DRVV3MC/2015-jfla-irmin.pdf:application/pdf}
}
@misc{martin_fowler_microservicepremium_2015,
title = {{MicroservicePremium}},
shorttitle = {bliki},
url = {http://martinfowler.com/bliki/MicroservicePremium.html},
abstract = {The microservice architectural style is useful for handling complex systems, but brings its own complexity so should not be used for simpler environments.},
urldate = {2016-05-19},
journal = {martinfowler.com},
author = {{Martin Fowler}},
month = may,
year = {2015},
note = {Opgehaald op 19/05/2016 van http://martinfowler.com/bliki/MicroservicePremium.html},
file = {Snapshot:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/HCZ8I2JU/MicroservicePremium.html:text/html}
}
@article{balalaie_microservices_2016,
title = {Microservices {Architecture} {Enables} {DevOps}: {Migration} to a {Cloud}-{Native} {Architecture}},
volume = {33},
issn = {0740-7459},
shorttitle = {Microservices {Architecture} {Enables} {DevOps}},
doi = {10.1109/MS.2016.64},
abstract = {When DevOps started gaining momentum in the software industry, one of the first service-based architectural styles to be introduced, be applied in practice, and become popular was microservices. Migrating monolithic architectures to cloud-native architectures such as microservices reaps many benefits, such as adaptability to technological changes and independent resource management for different system components. This article reports on experiences and lessons learned during incremental migration and architectural refactoring of a commercial MBaaS (mobile back end as a service) to microservices. It explains how adopting DevOps facilitated a smooth migration. Furthermore, the researchers transformed their experiences in different projects into reusable migration practices, resulting in microservices migration patterns. This article is part of a theme issue on DevOps. The Web extra at https://youtu.be/MF3-dKTCQ88 is an audio recording of Brian Brannon speaking with author Pooyan Jamshidi and James Lewis, principal engineer at ThoughtWorks, about DevOps and microservices architecture.},
number = {3},
journal = {IEEE Software},
author = {Balalaie, A. and Heydarnoori, A. and Jamshidi, P.},
month = may,
year = {2016},
keywords = {architectural refactoring, cloud computing, Computer architecture, DevOps, Microservices, migration pattern, mobile back end as a service, Mobile communication, Refractoring, Scalability, Servers, Software architecture, software development, software engineering},
pages = {42--52},
file = {IEEE Xplore Abstract Record:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/CQKWAVC7/articleDetails.html:text/html}
}
@misc{martin_fowler_microservices_????,
title = {Microservices {Guide}},
url = {http://martinfowler.com/microservices/},
abstract = {A guide that picks out the best information resources for the microservices style of software architecture.},
urldate = {2016-05-19},
journal = {martinfowler.com},
author = {{Martin Fowler} and {James Lewis}},
note = {Opgehaald 19/05/2016 van http://martinfowler.com/microservices/},
file = {Snapshot:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/HITZPQ9Q/microservices.html:text/html}
}
@Misc{mirage/mirage_0000,
author = {Mirage},
title = {mirage/mirage source code},
note = {bibtex: mirage/mirage\_0000},
abstract = {mirage - MirageOS is a library operating system that constructs unikernels},
file = {Snapshot:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/SX5Z4A52/mirage.html:text/html},
journal = {GitHub},
url = {https://github.com/mirage/mirage},
urldate = {2016-05-18},
}
@misc{mit_mit_1998,
title = {{MIT} {Exokernel} {Operating} {System}},
url = {https://pdos.csail.mit.edu/exo.html},
author = {{MIT}},
year = {1998},
note = {Opgehaald op 17/05/2016 van https://pdos.csail.mit.edu/exo.html}
}
@article{vakilinia_modeling_2015,
title = {Modeling of the resource allocation in cloud computing centers},
volume = {91},
issn = {1389-1286},
url = {http://www.sciencedirect.com/science/article/pii/S138912861500290X},
doi = {10.1016/j.comnet.2015.08.030},
abstract = {Cloud computing offers on-demand network access to the computing resources through virtualization. This paradigm shifts the computer resources to the cloud, which results in cost savings as the users leasing instead of owning these resources. Clouds will also provide power constrained mobile users accessibility to the computing resources. In this paper, we develop performance models of these systems. We assume that jobs arrive to the system according to a Poisson process and they may have quite general service time distributions. Each job may consist of multiple numbers of tasks with each task requiring a virtual machine (VM) for its execution. The size of a job is determined by the number of its tasks, which may be a constant or a variable. The jobs with variable sizes may generate new tasks during their service times. In the case of constant job size, we allow different classes of jobs, with each class being determined through their arrival and service rates and number of tasks in a job. In the variable case a job generates randomly new tasks during its service time. The latter requires dynamic assignment of VMs to a job, which will be needed in providing service to mobile users. We model the systems with both constant and variable size jobs using birth–death processes. In the case of constant job size, we determined joint probability distribution of the number of jobs from each class in the system, job blocking probabilities and distribution of the utilization of resources for systems with both homogeneous and heterogeneous types of VMs. We have also analyzed tradeoffs for turning idle servers off for power saving. In the case of variable job sizes, we have determined distribution of the number of jobs in the system and average service time of a job for systems with both infinite and finite amount of resources. We have presented numerical results and any approximations are verified by simulation. The results of the paper may be used in the dimensioning of cloud computing centers.},
urldate = {2016-05-23},
journal = {Computer Networks},
author = {Vakilinia, Shahin and Ali, Mustafa Mehmet and Qiu, Dongyu},
month = nov,
year = {2015},
keywords = {cloud computing, Markov process, Queuing systems, Resource allocation},
pages = {453--470},
file = {ScienceDirect Snapshot:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/KVB9HD77/S138912861500290X.html:text/html}
}
@book{conferences_modern_1968,
title = {Modern {Methods} for {Solving} {Engineering} {Problems}: {Numerical} {Methods}, {Optimization} {Techniques} and {Simulation}},
shorttitle = {Modern {Methods} for {Solving} {Engineering} {Problems}},
language = {en},
author = {Conferences, University of Michigan Engineering Summer},
year = {1968}
}
@article{engestrom_mundane_1996,
title = {Mundane tool or object of affection? {The} rise and fall of the {Postal} {Buddy}.},
issn = {14701006},
doi = {AE 2013029},
abstract = {studies of human–computer interaction [HCI] are commonly limited to micro-level interactions between programmers or users and computers / [suggests that the] varied uses of computers as technologies embedded in other artifacts, typically consumer electronics, appliances, and machinery of all kinds, are seldom examined in HCI studies / analyzes the rise and fall of a technological innovation, focusing on and interrelating both macro- and microlevel events and interactions / the artifact we analyze, the Postal Buddy kiosk, was not identified as a "computer" by its users, yet its functioning was entirely based on sophisticated computer technology embedded within the artifact (PsycINFO Database Record (c) 2012 APA, all rights reserved)},
journal = {Context Conscious. Act. theory human–computer Interact.},
author = {Engeström, Yrjö and Escalante, Virginia},
year = {1996},
pmid = {398002257},
keywords = {*Computer Applications, *Computers, Human Machine Systems},
pages = {325--374}
}
@misc{university_of_cambridge_nemesis_2000,
title = {Nemesis},
url = {http://www.cl.cam.ac.uk/research/srg/netos/projects/archive/nemesis/},
urldate = {2016-05-17},
author = {{University of Cambridge}},
year = {2000},
note = {Opgehaald op 17/05/2016 van http://www.cl.cam.ac.uk/research/srg/netos/projects/archive/nemesis/}
}
@article{kaloper-mersinjak_not-quite-so-broken_2015,
title = {Not-quite-so-broken {TLS}: lessons in re-engineering a security protocol specification and implementation},
url = {http://anil.recoil.org/papers/2015-usenixsec-nqsb.pdf},
journal = {24th USENIX Secur. {\textbackslash}ldots},
author = {Kaloper-Meršinjak, D},
year = {2015},
file = {Attachment:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/AXVNMBMK/2015-nqsbtls-usenixsec.pdf:application/pdf}
}
@misc{oracle_oracle_2016,
title = {Oracle {Virtualbox}},
url = {https://www.virtualbox.org/},
urldate = {2016-05-17},
author = {{Oracle}},
year = {2016},
note = {Opgehaald op 21/05/2016 van https://www.virtualbox.org/}
}
@inproceedings{kivity_osvoptimizing_2014,
title = {{OSv}—{Optimizing} the {Operating} {System} for {Virtual} {Machines}},
isbn = {978-1-931971-10-2},
url = {https://www.usenix.org/conference/atc14/technical-sessions/presentation/kivity},
urldate = {2016-05-18},
author = {Kivity, Avi and Laor, Dor and Costa, Glauber and Enberg, Pekka and Har’El, Nadav and Marti, Don and Zolotarov, Vlad},
year = {2014},
pages = {61--72},
file = {Full Text PDF:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/3KDG2BSZ/Kivity et al. - 2014 - OSv—Optimizing the Operating System for Virtual Ma.pdf:application/pdf;Snapshot:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/9IVZZZDD/kivity.html:text/html}
}
@misc{martin_fowler_phoenixserver_2012,
title = {{PhoenixServer}},
shorttitle = {bliki},
url = {http://martinfowler.com/bliki/PhoenixServer.html},
abstract = {a bliki entry for PhoenixServer},
urldate = {2016-05-19},
journal = {martinfowler.com},
author = {{Martin Fowler}},
month = dec,
year = {2012},
note = {Opgehaald op 19/05/2016 van http://martinfowler.com/bliki/PhoenixServer.html},
file = {Snapshot:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/GQTG7NQZ/PhoenixServer.html:text/html}
}
@Misc{_rkt_????,
author = {CoreOS},
title = {rkt {CoreOS}},
note = {Opgehaald op 23/05/2016 van https://coreos.com/rkt/},
abstract = {A security-minded, standards-based container engine.},
file = {Snapshot:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/X5VVJUC4/rkt.html:text/html},
url = {https://coreos.com/rkt/},
urldate = {2016-05-24},
}
@Misc{_rumpkernel/rumprun_????,
author = {Rumpkernel},
title = {rumpkernel/rumprun source code},
note = {bibtex: rumpkernel/rumprun\_0000},
abstract = {rumprun - The Rumprun unikernel and toolchain for various platforms},
file = {Snapshot:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/K4RJWIZV/rumprun.html:text/html},
journal = {GitHub},
url = {https://github.com/rumpkernel/rumprun},
urldate = {2016-05-18},
}
@article{mortleman_security_2009,
title = {Security {Advantages} of {Virtualisation}},
url = {http://search.ebscohost.com/login.aspx?direct=true&db=buh&AN=40090750&site=ehost-live&scope=site},
abstract = {The article discusses the views of information technology experts on the benefits of virtualisation or virtual networks. Ian Pratt, vice president of advanced products at Citrix Systems Inc. says that on a laptop, virtualisation is about providing secure isolation for virtual environments. Richard Jacobs, chief technical officer at Sophos says that virtualisation helps them getting people work from home. Jon Collins, at Freeform Dynamics, says that virtualisation improves security.},
journal = {Comput. Wkly.},
author = {Mortleman, Jim},
year = {2009},
pages = {23}
}
@article{ridge_sibylfs_2015,
title = {{SibylFS}},
url = {http://dl.acm.org/citation.cfm?doid=2815400.2815411},
doi = {10.1145/2815400.2815411},
abstract = {Systems depend critically on the behaviour of file systems, but that behaviour differs in many details, both between implementations and between each implementation and the POSIX (and other) prose specifications. Building robust and portable software requires understanding these details and differences, but there is currently no good way to systematically describe, investigate, or test file system behaviour across this complex multi-platform interface. In this paper we show how to characterise the envelope of allowed behaviour of file systems in a form that enables practical and highly discriminating testing. We give a mathematically rigorous model of file system behaviour, SibylFS, that specifies the range of allowed behaviours of a file system for any sequence of the system calls within our scope, and that can be used as a test oracle to decide whether an observed trace is allowed by the model, both for validating the model and for testing file systems against it. SibylFS is modular enough to not only describe POSIX, but also specific Linux, OS X and FreeBSD behaviours. We complement the model with an extensive test suite of over 21,000 tests; this can be run on a target file system and checked in less than 5 minutes, making it usable in practice. Finally, we report experimental results for around 40 configurations of many file systems, identifying many differences and some serious flaws.},
journal = {Proc. 25th Symp. Oper. Syst. Princ. - SOSP '15},
author = {Ridge, Tom and Sheets, David and Tuerk, Thomas and Giugliano, Andrea and Madhavapeddy, Anil and Sewell, Peter},
year = {2015},
pages = {38--53},
file = {Attachment:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/SQCGTZBG/2015-sibylfs-sosp.pdf:application/pdf}
}
@misc{oracle_solaris_2016,
title = {Solaris},
url = {https://www.oracle.com/solaris},
urldate = {2016-05-17},
author = {{Oracle}},
year = {2016},
note = {Opgehaald op 17/05/2016 van https://www.oracle.com/solaris}
}
@misc{toby_clemson_testing_2014,
title = {Testing {Strategies} in a {Microservice} {Architecture}},
url = {http://martinfowler.com/articles/microservice-testing/},
abstract = {The microservice architectural style presents challenges for
organizing effective testing, this deck outlines the kinds of
tests you need and how to mix them.},
urldate = {2016-05-19},
journal = {martinfowler.com},
author = {{Toby Clemson}},
month = nov,
year = {2014},
note = {Opgehaald op 19/05/2016 van http://martinfowler.com/articles/microservice-testing/},
file = {Snapshot:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/XBTPJCC3/microservice-testing.html:text/html}
}
@article{smith_architecture_2005,
title = {The architecture of virtual machines},
volume = {38},
issn = {0018-9162},
doi = {10.1109/MC.2005.173},
abstract = {A virtual machine can support individual processes or a complete system depending on the abstraction level where virtualization occurs. Some VMs support flexible hardware usage and software isolation, while others translate from one instruction set to another. Virtualizing a system or component -such as a processor, memory, or an I/O device - at a given abstraction level maps its interface and visible resources onto the interface and resources of an underlying, possibly different, real system. Consequently, the real system appears as a different virtual system or even as multiple virtual systems. Interjecting virtualizing software between abstraction layers near the HW/SW interface forms a virtual machine that allows otherwise incompatible subsystems to work together. Further, replication by virtualization enables more flexible and efficient and efficient use of hardware resources.},
number = {5},
journal = {Computer},
author = {Smith, J. E. and Nair, Ravi},
month = may,
year = {2005},
keywords = {abstraction level, application binary interface, application program interfaces, application programming interface, Application software, Computer architecture, computer architectures, Computer interfaces, disk storage, formal specification, Hardware, hardware resources, hardware-software codesign, HW/SW interface, instruction set architecture, Instruction sets, Microprocessors, multiprocessing systems, multiprogramming, Operating systems, real system, software systems, virtualization technology, virtual machine architecture, virtual machines, Virtual machining, Virtual manufacturing, VM taxonomy, Voice mail},
pages = {32--38},
file = {IEEE Xplore Abstract Record:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/ZTCQRND7/articleDetails.html:text/html}
}
@article{ballesteros_clive_????,
title = {The {Clive} {Operating} {System}},
author = {Ballesteros, Francisco J},
file = {Attachment:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/MVHKSPAT/clivesys (1).pdf:application/pdf}
}
@book{chisnall_definitive_2014,
title = {The {Definitive} {Guide} to the {Xen} {Hypervisor}},
volume = {25},
url = {http://www.ncbi.nlm.nih.gov/pubmed/15003161$\backslash$nhttp://cid.oxfordjournals.org/lookup/doi/10.1093/cid/cir991$\backslash$nhttp://www.scielo.cl/pdf/udecada/v15n26/art06.pdf$\backslash$nhttp://www.scopus.com/inward/record.url?eid=2-s2.0-84861150233&partnerID=tZOtx3y1},
abstract = {Xen is a virtualization tool, but what does this mean? In this chapter, we will explore some of the history of virtualization, and some of the reasons why people found, and continue to find, it useful. We will have a look in particular at the x86, or IA32, architecture, why it presents such a problem for virtualization, and some possible ways around these limitations from other virtualization systems and finally from Xen itself.},
number = {9},
author = {Chisnall, David},
year = {2014},
keywords = {xen hypervisor virtualization}
}
@book{hykes_future_2013,
title = {The future of {Linux} {Containers}},
urldate = {2016-05-17},
author = {Hykes, Solomon},
year = {2013}
}
@misc{galois_inc._haskell_????,
title = {The {Haskell} {Lightweight} {Virtual} {Machine} ({HaLVM}) source archive},
url = {https://github.com/GaloisInc/HaLVM},
abstract = {The Haskell Lightweight Virtual Machine (HaLVM): GHC running on Xen},
urldate = {2016-05-18},
journal = {GitHub},
author = {{Galois Inc.}},
note = {Opgehaald op 18/05/2016 van https://github.com/GaloisInc/HaLVM},
file = {Snapshot:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/A5VCI8J2/HaLVM.html:text/html}
}
@article{soundararajan_impact_2010,
title = {The impact of management operations on the virtualized datacenter},
volume = {38},
abstract = {Virtualization has the potential to dramatically reduce the total cost of ownership of datacenters and increase the flexibility of deployments for general-purpose workloads. If present trends continue, the datacenter of the future will be largely virtualized. The base platform in such a datacenter will consist of physical hosts that run hypervisors, and workloads will run within virtual machines on these platforms. From a system management perspective, the virtualized environment enables a number of new workflows in the datacenter. These workflows involve operations on the physical hosts themselves, such as upgrading the hypervisor, as well as operations on the virtual machines, such as reconfiguration or reverting from snapshots. While traditional datacenter design has focused on the cost vs. capability tradeoffs for the end-user applications running in the datacenter, we argue that the management workload from these workflows must be factored into the design of the virtualized datacenter. In this paper, we examine data from real-world virtualized deployments to characterize common management workflows and assess their impact on resource usage in the datacenter. We show that while many end-user applications are fairly light on I/O requirements, the management workload has considerable network and disk I/O requirements. We show that the management workload scales with the increasing compute power in the datacenter. Finally, we discuss the implications of this management workload for the datacenter.},
number = {3},
journal = {ACM SIGARCH Comput. Archit. News},
author = {Soundararajan, Vijayaraghavan and Anderson, Jennifer M.},
year = {2010},
keywords = {all or part of, cloud computing, datacenter, management, management workload, or hard copies of, permission to make digital, this work for, virtual machine management},
pages = {326}
}
@incollection{pyke_jr._time-shared_1967,
title = {Time-{Shared} {Computer} {Systems}},
volume = {8},
url = {http://www.sciencedirect.com/science/article/pii/S0065245808606932},
abstract = {Time-sharing is the simultaneous access to a computer system by a number of independent users. Close study of the time-sharing systems that are in operation and of the designs for systems now being implemented reveals the apparent trends in the time-sharing field. This chapter discusses the common characteristics of these systems. The strengths and weaknesses of current systems and the way they can be improved are described. Applications of these systems by a thorough examination of the techniques involved in the design of time-sharing systems and the problems met when using them are discussed. The chapter presents different types of time-sharing systems. Time-sharing systems span a spectrum from very specialized to completely general. They may be placed into two classes: dedicated and general purpose. The class of dedicated systems can be further divided into two categories. The first kind of dedicated system is that restricted to the solution of a single problem or set of problems. A second kind of dedicated system gives the users the capability of submitting programs for execution.},
urldate = {2016-05-23},
booktitle = {Advances in {Computers}},
publisher = {Elsevier},
author = {Pyke Jr., Thomas N.},
editor = {Rubinoff, Franz L. Alt {and} Morris},
year = {1967},
pages = {1--45},
file = {ScienceDirect Snapshot:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/ZMVNN6CI/S0065245808606932.html:text/html}
}
@article{garcia_villalba_trends_2015,
title = {Trends on virtualisation with software defined networking and network function virtualisation},
volume = {4},
url = {http://digital-library.theiet.org/content/journals/10.1049/iet-net.2014.0117},
abstract = {Software defined networking (SDN) and network function virtualisation (NFV) have become hot topics in recent years. On one hand, SDN decouples the control plane from the data plane allowing the rapid innovation and the introduction of new services in an easy way. On the other hand, currently proprietary appliances such as load balancers and firewalls are implemented in hardware, NFV aims to change these network functions to an open software environment using virtualisation and cloud technologies. This means a reduction of spends in the provisioning and management of telecom services. SDN and NFV are two different concepts but these can coexist and help each other. In this study, the authors present a survey of SDN and NFV focusing in virtualisation projects and the use cases where a synergy between these technologies is possible. This study includes the basic concepts of network virtualisation, NFV and SDN, current research and the relation between both technologies.},
number = {5},
journal = {IET Networks},
author = {García Villalba, Luis Javier and Valdivieso Caraguay, Ángel Leonardo and Barona López, Lorena Isabel and López, Diego},
year = {2015},
pages = {255--263}
}
@article{madhavapeddy_turning_2010,
title = {Turning {Down} the {LAMP}: {Software} {Specialisation} for the {Cloud}.},
volume = {10},
shorttitle = {Turning {Down} the {LAMP}},
url = {https://www.usenix.org/legacy/event/hotcloud10/tech/full_papers/Madhavapeddy.pdf},
urldate = {2016-05-18},
journal = {HotCloud},
author = {Madhavapeddy, Anil and Mortier, Richard and Sohan, Ripduman and Gazagnaire, Thomas and Hand, Steven and Deegan, Tim and McAuley, Derek and Crowcroft, Jon},
year = {2010},
pages = {11--11},
file = {[PDF] from usenix.org:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/XHU67GN8/Madhavapeddy et al. - 2010 - Turning Down the LAMP Software Specialisation for.pdf:application/pdf}
}
@misc{canonical_ubuntu_????,
title = {Ubuntu},
url = {http://www.ubuntu.com/server},
urldate = {2016-05-17},
journal = {Ubuntu Server - for scale out workloads {\textbar} Ubuntu},
author = {{Canonical}},
note = {Opgehaald op 17/05/2016 van http://www.ubuntu.com/server}
}
@misc{matthias_gelbmann_ubuntu_2016,
title = {Ubuntu became the most popular {Linux} distribution for web servers},
url = {http://w3techs.com/blog/entry/ubuntu_became_the_most_popular_linux_distribution_for_web_servers},
abstract = {Ubuntu has a Linux distribution market share of 32.1\% on web servers, just ahead of Debian, which was market leader since 2011.},
urldate = {2016-05-18},
journal = {Ubuntu became the most popular Linux distribution for web servers},
author = {{Matthias Gelbmann}},
month = feb,
year = {2016},
note = {Opgehaald op 18/05/2016 van http://w3techs.com/blog/entry/ubuntu\_became\_the\_most\_popular\_linux\_distribution\_for\_web\_servers}
}
@book{bovet_understanding_2005,
address = {Beijing ; Sebastopol, CA},
edition = {3 edition},
title = {Understanding the {Linux} {Kernel}},
isbn = {978-0-596-00565-8},
abstract = {In order to thoroughly understand what makes Linux tick and why it works so well on a wide variety of systems, you need to delve deep into the heart of the kernel. The kernel handles all interactions between the CPU and the external world, and determines which programs will share processor time, in what order. It manages limited memory so well that hundreds of processes can share the system efficiently, and expertly organizes data transfers so that the CPU isn't kept waiting any longer than necessary for the relatively slow disks. The third edition of Understanding the Linux Kernel takes you on a guided tour of the most significant data structures, algorithms, and programming tricks used in the kernel. Probing beyond superficial features, the authors offer valuable insights to people who want to know how things really work inside their machine. Important Intel-specific features are discussed. Relevant segments of code are dissected line by line. But the book covers more than just the functioning of the code; it explains the theoretical underpinnings of why Linux does things the way it does. This edition of the book covers Version 2.6, which has seen significant changes to nearly every kernel subsystem, particularly in the areas of memory management and block devices. The book focuses on the following topics: Memory management, including file buffering, process swapping, and Direct memory Access (DMA) The Virtual Filesystem layer and the Second and Third Extended Filesystems Process creation and scheduling Signals, interrupts, and the essential interfaces to device drivers Timing Synchronization within the kernel Interprocess Communication (IPC) Program execution Understanding the Linux Kernel will acquaint you with all the inner workings of Linux, but it's more than just an academic exercise. You'll learn what conditions bring out Linux's best performance, and you'll see how it meets the challenge of providing good system response during process scheduling, file access, and memory management in a wide variety of environments. This book will help you make the most of your Linux system.},
language = {English},
publisher = {O'Reilly Media},
author = {Bovet, Daniel Plerre and Cesati, Marco},
month = nov,
year = {2005}
}
@article{madhavapeddy_unikernels_2013,
title = {Unikernels},
volume = {48},
issn = {03621340},
url = {http://dl.acm.org/citation.cfm?doid=2499368.2451167},
doi = {10.1145/2499368.2451167},
abstract = {We present unikernels, a new approach to deploying cloud services via applications written in high-level source code. Unikernels are single-purpose appliances that are compile-time specialised into standalone kernels, and sealed against modification when deployed to a cloud platform. In return they offer significant reduction in image sizes, improved efficiency and security, and should reduce operational costs. Our Mirage prototype compiles OCaml code into unikernels that run on commodity clouds and offer an order of magnitude reduction in code size without significant performance penalty. The architecture combines static type-safety with a single address-space layout that can be made immutable via a hypervisor extension. Mirage contributes a suite of type-safe protocol libraries, and our results demonstrate that the hypervisor is a platform that overcomes the hardware compatibility issues that have made past library operating systems impractical to deploy in the real-world.},
number = {4},
journal = {ACM SIGPLAN Not.},
author = {Madhavapeddy, Anil and Mortier, Richard and Rotsos, Charalampos and Scott, David and Singh, Balraj and Gazagnaire, Thomas and Smith, Steven and Hand, Steven and Crowcroft, Jon},
year = {2013},
keywords = {functional programming, hypervisor, microkernel},
pages = {461},
file = {Attachment:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/EVMV7IT4/2013-asplos-mirage.pdf:application/pdf}
}
@article{madhavapeddy_unikernels_2014,
title = {Unikernels},
volume = {57},
issn = {00010782},
url = {http://dl.acm.org/citation.cfm?doid=2541883.2541895},
doi = {10.1145/2541883.2541895},
abstract = {What if all the software layers in a virtual appliance were compiled within the same safe, high-level language framework?},
number = {1},
journal = {Commun. ACM},
author = {Madhavapeddy, Anil and Scott, David J.},
year = {2014},
pages = {61--69},
file = {Attachment:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/SCQVS2QB/2014-cacm-unikernels.pdf:application/pdf}
}
@misc{unikernel_systems_unikernels_2016,
title = {Unikernels},
url = {http://unikernel.org/},
urldate = {2016-05-10},
author = {{Unikernel Systems}},
year = {2016},
keywords = {unikernel},
note = {Opgehaald op 17/05/2016 van http://unikernel.org/}
}
@misc{bryan_cantrill_unikernels_2016,
title = {Unikernels are unfit for production - {Blog} - {Joyent}},
url = {https://www.joyent.com/blog/unikernels-are-unfit-for-production},
urldate = {2016-05-18},
author = {{Bryan Cantrill}},
month = jan,
year = {2016},
note = {Opgehaald op 18/05/2016 van https://www.joyent.com/blog/unikernels-are-unfit-for-production},
file = {Unikernels are unfit for production - Blog - Joyent:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/UZQM42MC/unikernels-are-unfit-for-production.html:text/html}
}
@misc{_usage_2016,
title = {Usage share of operating systems},
copyright = {Creative Commons Attribution-ShareAlike License},
url = {https://en.wikipedia.org/w/index.php?title=Usage_share_of_operating_systems&oldid=720851829},
abstract = {The usage share of operating systems is the percentage market share of the operating systems used in computers. Different categories of computers use a wide variety of operating systems (OS), so the total usage share varies significantly from one category to another.
Android has the largest installed base of all operating systems of any kind (on smartphones it is dominant by any metric), and it is the most popular OS in Asia and Africa, by web usage. Since 2013, devices running it have been selling more than Windows, iOS and OS X devices combined. That makes Android the most popular smartphone operating system, while on tablets, the iPad tablet still makes iOS more used in that category. In certain categories, one family of operating systems dominates, for example, most desktop and laptop computers use Microsoft Windows, while most supercomputers use Linux, although these categories are not similar in their use cases at all. In the servers category, there is more diversity. Data about operating system share is difficult to obtain, since in most categories there are few reliable primary sources or agreed methodologies for its collection.},
language = {en},
urldate = {2016-05-18},
journal = {Wikipedia, the free encyclopedia},
month = may,
year = {2016},
note = {Page Version ID: 720851829},
file = {Snapshot:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/8FBP22GM/index.html:text/html}
}
@misc{vmware_vmware_2016-1,
title = {{VMware} {ESXi}},
url = {http://www.vmware.com/products/esxi-and-esx/},
urldate = {2016-05-17},
author = {{VMware}},
year = {2016},
note = {Opgehaald op 17/05/2016 van http://www.vmware.com/products/esxi-and-esx/}
}
@misc{vmware_vmware_2016,
title = {{VMware} {Workstation}},
url = {http://www.vmware.com/products/workstation/},
urldate = {2016-05-17},
author = {{VMware}},
year = {2016},
note = {Opgehaald op 17/05/2016 van http://www.vmware.com/products/workstation/}
}
@misc{_what_????,
title = {What are the use(s) for tags in {Go}? - {Stack} {Overflow}},
shorttitle = {What are the use(s) for tags in {Go}?},
url = {http://stackoverflow.com/questions/10858787/what-are-the-uses-for-tags-in-go},
urldate = {2016-05-18},
file = {Snapshot:/Users/Coding/Library/Application Support/Zotero/Profiles/0naxjkjs.default/zotero/storage/WDH2S9TU/what-are-the-uses-for-tags-in-go.html:text/html}
}