Skip to main content

Abstract

Microservice architecture is nowadays a popular design pattern for cloud applications. Usually microservices are launched on the servers of a cloud datacenter inside virtualization containers. This provides their isolation and performance comparable to virtual machines. However, security of virtualization containers remains a problem. They share the hosts machine operating kernel and thus their mutual isolations depends on proper implementation of kernel isolation features like cgroups or namespaces. Moreover the usage of kernel security modules like SELinux is hindered by different base Linux distributions used for containers creation. The concept of unikernels provides much better security for microservices. They are launched on a hypervisor instead of a full operating system kernel and contain only the base files needed to run the application. However their performance in realistic environments still remains a question. In this paper we port a microservice-based cloud application from Docker containers to Rumpkernel and OSv unikernels and analyse its performance. It is shown, that the performance of this unikernel-based port can match or exceed the more traditional approaches.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 129.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 169.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    https://github.com/dockersamples/example-voting-app.

  2. 2.

    https://github.com/rumpkernel/rumprun-packages/tree/master/redis.

  3. 3.

    https://github.com/cloudius-systems/osv-apps/tree/master/redis-memonly.

  4. 4.

    https://news.netcraft.com/archives/2019/05/10/may-2019-web-server-survey.html.

  5. 5.

    https://github.com/rumpkernel/rumprun-packages/tree/master/nodejs.

  6. 6.

    https://github.com/cloudius-systems/osv-apps/tree/master/node.

  7. 7.

    https://httpd.apache.org/docs/2.4/programs/ab.html.

  8. 8.

    https://github.com/rumpkernel/rumprun-packages/tree/master/python3.

  9. 9.

    https://github.com/cloudius-systems/osv-apps/tree/master/python3x.

  10. 10.

    https://flask-restful.readthedocs.io/en/latest/.

References

  1. Madhavapeddy, A., Mortier, R., Rotsos, C., Scott, D.J., Singh, B., Gazagnaire, T., Smith, S.A., Hand, S., Crowcroft, J.A.: Unikernels: library operating systems for the cloud. ACM SIGPLAN Not. 48(4), 461–472 (2013). ASPLOS’13

    Article  Google Scholar 

  2. Engler, D.R., Kaashoek, M., O’Toole, J.: Exokernel: an operating system architecture for application-level resource management. ACM SIGOPS Oper. Syst. Rev. 29(5), 251–266 (1995)

    Article  Google Scholar 

  3. Pavlicek, R.C.: Unikernels: Beyond Containers to the Next Generation of Cloud. O’Reilly Media (2017)

    Google Scholar 

  4. Madhavapeddy, A., Scott, D.J.: Unikernels: rise of the virtual library operating system. Commun. ACM 51(1), 61–69 (2014)

    Article  Google Scholar 

  5. Galois Inc.: The Haskell Lightweight Virtual Machine (HaLVM) source archive. https://github.com/GaloisInc/HaLVM. Accessed 24 May 2019

  6. Bratterud, A., Walla, A., Haugerud H., Engelstad, P.E., Begnum, K.M.: IncludeOS: a minimal, resource efficient unikernel for cloud services. In: 2015 IEEE 7th International Conference on Cloud Computing Technology and Science, pp. 250–257 (2015)

    Google Scholar 

  7. Olivier, P., Chiba, D., Lankes, S., Min, C., Ravindran, B.: A binary-compatible unikernel. In: Proceedings of the 15th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments, pp. 59–73 (2019)

    Google Scholar 

  8. Briggs, I., Day, M.J., Guo, Y., Marheine, P., Eide, E.: A Performance Evaluation of Unikernels (2014). http://media.taricorp.net/performance-evaluation-unikernels.pdf. Accessed 24 May 2019

  9. Xavier, B.G., Ferreto, T., Jersak, L.C.: Time provisioning evaluation of KVM, docker and unikernels in a cloud platform. In: 2016 16th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing, pp. 277–280 (2016)

    Google Scholar 

  10. Goethals, T., Sebrechts, M., Atrey, A., Volckaert, B., Turck, F.D.: Unikernels vs containers: an in-depth benchmarking study in the context of microservice applications. In: 2018 IEEE 8th International Symposium on Cloud and Service Computing, pp. 1–8 (2018).

    Google Scholar 

  11. Plauth, M., Feinbube, L., Polze, A.: A performance evaluation of lightweight approaches to virtualization. In: CLOUD COMPUTING 2017: The Eighth International Conference on Cloud Computing, GRIDs, and Virtualization, pp. 34–48 (2017)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Waldemar Karwowski .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2020 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Jaworski, J., Karwowski, W., Rusek, M. (2020). Microservice-Based Cloud Application Ported to Unikernels: Performance Comparison of Different Technologies. In: Borzemski, L., Świątek, J., Wilimowska, Z. (eds) Information Systems Architecture and Technology: Proceedings of 40th Anniversary International Conference on Information Systems Architecture and Technology – ISAT 2019. ISAT 2019. Advances in Intelligent Systems and Computing, vol 1050. Springer, Cham. https://doi.org/10.1007/978-3-030-30440-9_24

Download citation

Publish with us

Policies and ethics