Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Hogyan fejlesszünk valódi felhő alkalmazásokat?

54 views

Published on

A prezentáció a DATARENA konferencián hangzott el 2018. november 14-én.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Hogyan fejlesszünk valódi felhő alkalmazásokat?

  1. 1. www.leannet.eu How To Develop Truly Cloud Native Applications?
  2. 2. www.leannet.eu Who Am I? PhD in Telecommunications @ Budapest University of Technology  Measurement and monitoring in Software Defined Networks  Participating in 5G-PPP EU projects  Graduated in the EIT Digital Doctoral School Co-founder & CTO @ LeanNet Ltd.  Evangelist of open networking solutions in cloud native environments  Currently focusing on cloud native transformation megyesi@leannet.eu twitter.com/M3gy0 linkedin.com/in/M3gy0
  3. 3. www.leannet.eu From Servers Through Virtualization to Cloud Native Containers Cloud Native A cloud native software was designed to run in a cloud environment which is:  by nature distributed,  can scale up and down by demand,  everything is API driven,  provides no reliability guarantees. Open Source IaaS PaaS Open Source PaaS Virtualiza- tion 2000 2001 2006 2009 2010 2011 Non- Virtualized Hardware 2013 2015 IaaS
  4. 4. www.leannet.eu From Servers Through Virtualization to Cloud Native Containers Cloud Native Cloud native computing uses an open source software stack to:  segment applications into microservices,  package each part into its own container,  and dynamically orchestrate those containers to optimize resource utilization Open Source IaaS PaaS Open Source PaaS Virtualiza- tion 2000 2001 2006 2009 2010 2011 Non- Virtualized Hardware 2013 2015 IaaS
  5. 5. www.leannet.eu What are Microservices? Microservice architecture is software development form that structures an application as a collection of loosely coupled services, which implement business capabilities. Microservices enable the continuous delivery/deployment of large, complex applications. Monolithic software  Vertically scalable  Hard to maintain and evolve  Very long build / test / release cycles  Always fixing bugs  Lack of innovation Service Oriented Architecture Microservices  Horizontally scalable  Services are easy to maintain  Very short build / test / release cycles  Easy to innovate
  6. 6. www.leannet.eu What is a Container? Containers are an application-centric way to deliver high-performing, scalable applications on the infrastructure of your choice  A bundle of the application code along with its runtime and dependencies  It creates an isolated executable environment, also known as container image  It can be deployed on the platform of your choice, such as desktops, servers, VMs or in the cloud LXC LXD
  7. 7. www.leannet.eu What is a Container Orchestration? Running a few containers on a server is easy  Running hundreds of containers on dozens of servers can be handled manually  So container orchestration:  group hosts together to form a cluster  optimally schedule containers to run on different hosts  guarantees that every container can talk to each other  can scale out containers on-demand  can do update/rollback without any downtime
  8. 8. www.leannet.eu Why Use a Platform? It lets you focus on what you should focus: application and data
  9. 9. www.leannet.eu Why Should You Become Cloud Native The 3 main goals of every enterprise: Availability Performance Scale Rapid iteration - very fast code delivery
  10. 10. www.leannet.eu Why Should You Become Cloud Native The 3 main goals of every enterprise: Availability Performance Scale Rapid iteration - very fast code delivery
  11. 11. www.leannet.eu When Should You Become Cloud Native Ask yourself, are you designing an application that is:  Web-scale  Distributed  Highly available  Consumer facing  And you need rapid iterations But also, are you willing to make organizational changes:  Change department structures (DevOps team, cloud platform team)  Give them more responsibilities (serve service platform, automated deployments)  Educate your employees (new components, new languages, etc.)  Can take a long time with overwhelming technology choices
  12. 12. www.leannet.eu When Should You Become Cloud Native
  13. 13. www.leannet.eu Cloud Native applications are:  Microservice oriented  Deployed in containers  Orchestrated by a cloud platform  Long journey through an overwhelming choice of technology components 1. Understand pros and cons not every application should be cloud native 2. Make your technology choices platform is the most important, and Kubernetes is winning by a landslide 3. Move step-by-step the IT world is about brown field, but incremental migration is the preferred way In Summary
  14. 14. www.leannet.eu Backup Slides
  15. 15. www.leannet.eu This is not a Microservice Architecture! Web Server App Server DB Server
  16. 16. www.leannet.eu This is Getting There….
  17. 17. www.leannet.eu But These are True Microservice Architectures! Twitter Amazon Web Service
  18. 18. www.leannet.eu Cloud Native Changes the Fundamental Abstractions to Work With Virtual machines Data centers Hardware redundancy Servers IP addresses, DNS Server monitoring Monolithic applications TCP/IP Containers Orchestrated environments Design for failure Services Service discovery Service monitoring Microservices gRPC, REST
  19. 19. www.leannet.eu Non-Virtualized Servers: Sun (2000) • Launching a new application? Buy a new server; or a rack of them! • Building block of your application is physical servers 2000 Non- Virtualized Hardware
  20. 20. www.leannet.eu Virtualization: VMWare (2001) •Releases for server market in 2001 •Popularizes virtual machines (VMs) •Run many VMs on one physical machine, meaning you can buy fewer servers! •Architectural building block becomes a VM 2000 2001 Virtualiza- tion Non- Virtualized Hardware
  21. 21. www.leannet.eu IaaS: AWS (2006) •Amazon Web Services (AWS) creates the Infrastructure-as-a-Service market by launching Elastic Compute Cloud (EC2) in 2006 •Rent servers by the hour •Convert CapEx to OpEx •Architectural building block is also a VM, called an Amazon Machine Image (AMI) 2000 2001 2006 Virtualiza- tion Non- Virtualized Hardware IaaS
  22. 22. www.leannet.eu PaaS: Heroku (2009) • Heroku popularizes Platform-as-a-Service (PaaS) with their launch in 2009 • Building block is a buildpack, which enables containerized 12-factor applications – The process for building the container is opaque, but: – Deploying new version of an app is just: git push heroku PaaSIaaS 2000 2001 2006 2009 Virtualiza- tion Non- Virtualized Hardware
  23. 23. www.leannet.eu Open Source IaaS: OpenStack (2010) • OpenStack brings together an extraordinarily diverse group of vendors to create an open source Infrastructure-as-a-Service (IaaS) • Competes with AWS and VMWare • Building block remains a VM Open Source IaaS PaaS 2000 2001 2006 2009 2010 Non- Virtualized Hardware Virtualiza- tion IaaS
  24. 24. www.leannet.eu Open Source PaaS: Cloud Foundry (2011) • Pivotal builds an open source alternative to Heroku’s PaaS and launches the Cloud Foundry Foundation in late 2014 • Building block is Garden containers, which can hold Heroku buildpacks, Docker containers and even non-Linux OSes Open Source IaaS PaaS Open Source PaaS 2000 2001 2006 2009 2010 2011 Non- Virtualized Hardware Virtualiza- tion IaaS
  25. 25. www.leannet.eu Containers Containers: Docker (2013) • Docker combines LXC, Union File System and cgroups to create a containerization standard adopted by millions of developers around the world • Fastest uptake of a developer technology ever • Enables isolation, reuse and immutability Open Source IaaS PaaS Open Source PaaS 2000 2001 2006 2009 2010 2011 Non- Virtualized Hardware 2013 Virtualiza- tion IaaS
  26. 26. www.leannet.eu Containers Cloud Native Cloud Native: CNCF (2015) • Cloud native computing uses an open source software stack to: – segment applications into microservices, – package each part into its own container – and dynamically orchestrate those containers to optimize resource utilization Open Source IaaS PaaS Open Source PaaS Virtualiza- tion 2000 2001 2006 2009 2010 2011 Non- Virtualized Hardware 2013 2015 IaaS

×