Lesdag 1 Flashcards
4 voordelen van distributie netwerk
● Eenvoudig schaalbaar.
Incrementele groei is mogelijk door toevoegen van
componenten, horizontaal schalen.
● Performance.
De mogelijke prestaties van een gedistribueerd
systeem hebben geen hard plafond.
● Flexibiliteit en open netwerk.
● Betrouwbaarheid.
Internet oorspronkelijk ontworpen voor
robuustheid, (resilience).
3 garanties in CAP theorem
○ Consistency:
Every read receives the most recent write or an error
○ Availability:
Every request receives a (non-error) response, without the
guarantee that it contains the most recent write
○ Partition tolerance:
The system continues to operate despite an arbitrary
number of messages being dropped (or delayed) by the
network between nodes
Wat is stateful?
Een component is stateful wanneer het
ontworpen is om voorafgaande
gebeurtenissen of gebruikershandelingen
bij te houden. Het component houdt zelf de
informatie bij over de sessie waarvan
specifieke operaties onderdeel uitmaken
Wat is Stateless?
het component kan acties uitvoeren
zonder informatie of status bij te houden
over voorgaande requests in een sessie
Consequenties stateless
design van transacties en
operaties; sessie moet bijvoorbeeld op
cliënt worden bijgehouden en met elk
verzoek worden meegestuurd; het
component kan op elk moment offline
gaan en vervangen worden door een
andere instantie van het component.
Consequenties stateful
consequentie: Single point of failure;
kwetsbaar; niet te distribueren, enkel
verticaal schaalbaar.
Verticaal scalen
scale up, vergroten van de capaciteit door grotere hardware
Horizontaal scalen
Scale out, uitbreiden van meerdere hardware componenten. Beter bestemt tegen schalen naar meer hardware.
Wat is cloud?
Elastisch schaalbare levering van gestandaardiseerde en
gemeten services over een open en toegankelijk netwerk, on
demand en self service (NIST definitie)
Cloud service delivery
Cloud service delivery:
- Self service
- pay per use
- models: IaaS, PaaS, SaaS, CaaS, FaaS…
5 karakteristieken van NIST defitintion
● On-demand self-service.
A consumer can unilaterally provision computing capabilities, such as server time and network storage, as
needed automatically without requiring human interaction with each service provider.
● Broad network access.
Capabilities are available over the network and accessed through standard mechanisms that promote use by
heterogeneous thin or thick client platforms (e.g., mobile phones, tablets, laptops, and workstations).
● Resource pooling.
The provider’s computing resources are pooled to serve multiple consumers using a multi-tenant model,
with different physical and virtual resources dynamically assigned and reassigned according to consumer
demand. There is a sense of location independence in that the customer generally has no control or
knowledge over the exact location of the provided resources but may be able to specify location at a higher
level of abstraction (e.g., country, state, or datacenter). Examples of resources include storage, processing,
memory, and network bandwidth.
● Rapid elasticity.
Capabilities can be elastically provisioned and released, in some cases automatically, to scale rapidly outward
and inward commensurate with demand. To the consumer, the capabilities available for provisioning often
appear to be unlimited and can be appropriated in any quantity at any time.
● Measured service.
Cloud systems automatically control and optimize resource use by leveraging a metering capability at some
level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user
accounts). Resource usage can be monitored, controlled, and reported, providing transparency for both the
provider and consumer of the utilized service.
NIST definition self service
● Software as a Service (SaaS).
The capability provided to the consumer is to use the provider’s applications running on a cloud
infrastructure. The applications are accessible from various client devices through either a thin client
interface, such as a web browser (e.g., web-based email), or a program interface. The consumer does not
manage or control the underlying cloud infrastructure including network, servers, operating systems,
storage, or even individual application capabilities, with the possible exception of limited userspecific
application configuration settings.
● Platform as a Service (PaaS).
The capability provided to the consumer is to deploy onto the cloud infrastructure consumer-created or
acquired applications created using programming languages, libraries, services, and tools supported by the
provider. The consumer does not manage or control the underlying cloud infrastructure including network,
servers, operating systems, or storage, but has control over the deployed applications and possibly
configuration settings for the application-hosting environment.
● Infrastructure as a Service (IaaS).
The capability provided to the consumer is to provision
processing, storage, networks, and other fundamental computing resources where the consumer is able to
deploy and run arbitrary software, which can include operating systems and applications. The consumer
does not manage or control the underlying cloud infrastructure but has control over operating systems,
storage, and deployed applications; and possibly limited control of select networking components (e.g., host
firewalls).
NIST 4 deployment models
● Software as a Service (SaaS).
The capability provided to the consumer is to use the provider’s applications running on a cloud
infrastructure. The applications are accessible from various client devices through either a thin client
interface, such as a web browser (e.g., web-based email), or a program interface. The consumer does not
manage or control the underlying cloud infrastructure including network, servers, operating systems,
storage, or even individual application capabilities, with the possible exception of limited userspecific
application configuration settings.
● Platform as a Service (PaaS).
The capability provided to the consumer is to deploy onto the cloud infrastructure consumer-created or
acquired applications created using programming languages, libraries, services, and tools supported by the
provider. The consumer does not manage or control the underlying cloud infrastructure including network,
servers, operating systems, or storage, but has control over the deployed applications and possibly
configuration settings for the application-hosting environment.
● Infrastructure as a Service (IaaS).
The capability provided to the consumer is to provision
processing, storage, networks, and other fundamental computing resources where the consumer is able to
deploy and run arbitrary software, which can include operating systems and applications. The consumer
does not manage or control the underlying cloud infrastructure but has control over operating systems,
storage, and deployed applications; and possibly limited control of select networking components (e.g., host
firewalls).
Pay per use
- per unit of compute
- per gebruiker
- Network egress en ingress (binnenkomend en
uitgaand verkeer in Mb’s)
Cloud native development
Gids Gevende principes
● Design for automation Ontwerp om te automatiseren
● Prefer managed services Prefereer managed services
● Be smart with state Ga slim om met waar je status bijhoudt
● Security by design Security is aspect van het ontwerp
● Always be architecting