Azure oferuje wiele platform na których możesz uruchomić swoją aplikację. Każda ma swoje zalety i wady. Zrobiłem przegląd tych platform dla Ciebie. W prezentacji wyrażam swoją prywatną opinię.
8. Platform Services
Infrastructure Services
Web
Apps
Mobile
Apps
API
Apps
Notification
Hubs
Hybrid
Cloud
Backup
StorSimple
Azure Site
Recovery
Import/Export
SQL
Database DocumentDB
Redis
Cache
Azure
Search
Storage
Tables
SQL Data
Warehouse
Azure AD
Health Monitoring
AD Privileged
Identity
Management
Operational
Analytics
Cloud
Services
Batch
RemoteApp
Service
Fabric
Visual Studio
Application
Insights
VS Team Services
Domain Services
HDInsight Machine
Learning Stream Analytics
Data
Factory
Event
Hubs
Data Lake
Analytics Service
IoT Hub
Data
Catalog
Security &
Management
Azure Active
Directory
Multi-Factor
Authentication
Automation
Portal
Key Vault
Store/
Marketplace
VM Image Gallery
& VM Depot
Azure AD
B2C
Scheduler
Xamarin
HockeyApp
Power BI
Embedded
SQL Server
Stretch Database
Mobile
Engagement
Functions
Cognitive Services Bot Framework Cortana
Security Center
Container
Service
VM
Scale Sets
Data Lake Store
BizTalk
Services
Service Bus
Logic
Apps
API
Management
Content
Delivery
Network
Media
Services
Media
Analytics
16. Maszyny wirtualne
(być może) Idealny model do
migracji Lift&Shift
Uruchomisz na nich wszystko,
wybierzesz dowolny system
Wyłączone, nic nie kosztują
Duży wybór. Od małych po takie,
co mają 2TB pamięci
Każdy „admin” wie jak nimi
zarządzać
Zawsze są w jakiejś sieć, Wasz
sieciowie Was polubi
17
Można skalować ale to wolne
Proces CI/CD
Nadal masz przy nich tyle samo
pracy
Wszystkie znane problemy
związane z VM’kami ich dotyczą
Czy faktycznie po to budowano
Cloud by hostować w nim
maszyny?
17. Virtual Machine Scale Set
18
Idealne tam, gdzie w jednej
warstwie potrzebujesz wiele
maszyn naraz i są identyczne
Mają wszystkie zalety maszyn
Szybko się „powołują”
Kiedy maszyny są w Scale Set
zachowują się „prawie” jak PaaS
Chcą się „auto-scalować”
Dobrze nadają się procesu
automatyzacji
Łatwo zautomatyzować
przygotowanie nowych wydań
Łatwo wydać nową wersję… ale
trochę trwa zbudowanie image’u
To nadal tylko maszyny
Wszystkie znane problemy
związane z VM’kami ich dotyczą
(np. patch management)
21. AppService
To naprawdę PaaS -> szybko się
tworzy, wstaje, skaluje, restartuje,
wiąże krawat.
Proces wdrożenia, zarządzania
wydaniami i konfiguracją to
prawdziwa bajka. (Sloty to must
have)
Nie jest wybredna :) lubi i wspiera
.Net, Java, PHP, NodeJS, Python,
Ruby
Jest gotowy sklep, która zawiera
paczki m.in. WordPress’a, Django,
wiele innych
Na dole ma Windows lub Linux z
Dockerem
22
Skoro to PaaS, to nie macie
wpływu na to, co pod spodem,
czasem Wasze IT / Security tego
bardzo chce
Proces maintanance jest poza
Wami
Ma zawsze publiczny adres IP
Kosztuje zawsze, nawet jak nic
nie robi… ale można skalować w
dół
Ma ograniczenia co do ilości
nawiązanych połączeń i
zestawionych sesji
22. App Service (Win&Linux)
Instancje o danej wielkości mają tę samą wydajność,
niezależnie od planu (S1==B1==P1)
Łączny koszt dla AppService będzie niższy niż dla
VM’ek (TCO)
Wersja z Windows / Linux kosztuje tyle samo
Jeśli piszesz w PHP, Python, RubyOnRails weź wersją z
Linux, będzie szybciej i mam na to dowody
23.
24.
25. App Service Environment
Ma wszystkie zalety App Service
Rozumie co to sieć, możemy go
wystawić na zewnątrz jak i zrobić
rozwiązanie „prywatne”
Ma dedykowanego Load
Balancera, przy dużym obciążeniu
nie zgubi Twoich requestów
Pomogło wybrać nowego
Premiera Kanady, udało się
wyciągnąć 25kRPS i dostarczać to
z 2 kontynentów i 3 DC
26
Nadal postawienie środowiska
trwa dość długo (ok. 40 min)
Skalowanie „w górę” / „w dół”
jest szybsze ale…
Bazowe środowisko nie jest
tanie. Zdecydowanie opcja dla
Enterprise.
Nowa wersja wydajnościowo
jest dużo ciekawsza niż pierwsza
(dyski SSD i nowe serie CPU
robią swoje)
27. App Service Env.
Load Balancer i jego obciążenie ma gigantyczny wpływ
na wydajność całego rozwiązania. Trzeba to
monitorować.
Maksymalna ilość instancji na dziś to 100 i można to
skalować po regionach (np. 3 instancje w 3 regionach)
W ramach ASE można pomieszać rozwiązanie Webowe,
dla potrzeb API czy Functions
30. Jeśli już korzystasz z AppService/ASE to
wyciśnij z niego ile się da.
Wyłącz frameworki z których nie korzystasz
Ustaw AlwaysOn na On
Ustaw Affinity Cookie na Off
Weź Redis Cache albo bazę dla potrzeb sesji
Jeśli nie znasz obciążenia swojej aplikacji ustaw „autoscaling” ale… nie
polecam.
Bez dobrego podejścia do badania telemetrii nie podchodź. Np.
AppInsight czy DynaTrace
Korzystaj z Application Settings i wbudowanych Slot’ów. Spodoba Ci
się to jako model wdrażania aplikacji.
31
31.
32. Kontenery
33
Jeśli nadal nie wiesz czym są, czas zacząć się
uczyć.
3 różne usługi i 3 różne cele
Container Services
Container Services Managed
Container Instances
Jeśli korzystasz z Windows’a – nie przejmuj się.
Też w tym świecie są kontenery.
34. Kontenery
Wspiera podział aplikacji na
architekturę usługową /
mikroserwisów
Bardzo przyspiesza development,
pięknie wpisuje się w proces
automatyzacji środowiska.
Szybko się buduje i tworzy kolejna
instancja.
Poprawia utylizację sprzętu
Dobrze wpisuje się w hybrydową
architekturę środowisk
Działa wszędzie
Zdecydowanie warto inwestować
35
Piękne dla aplikacji Stateless,
Statefull to nie tutaj
Mega dynamiczny rozwój, który
wprowadza „breaking changes”
Dużo różnych pomysłów na
architekturę środowiska, dużo
dostawców rozwiązań (również
tych, które działają w Azure)
Dużo różnych narzędzi
Trzeba zbudować kompetencje
zarówno po stronie
Dev/Ops/DevOps/SysOps
35.
36. Czy ktoś tego używa? Microsoft – Azure i
usługi stoją na SF.
Usługi globalne korzystają z SF: Cortana, Skype &
Cosmos DB
Dla Azure, SF to fundamentalna technologia
Pytacie o skalę? 60 miliardów zdarzeń na dzień
po milionach baz
SQL
{ }Power BI
Dynamics
Intune
Cortana Skype
Cosmos DB
IoT Hub
Events Hub
SQL Database
37. Service Fabric w dwóch słowach
Środowisko dla kontenerów czy mikroserwisów na każdym OS, w każdej
chmurce
Programming
Models
Dev & Ops
Tooling
Orchestration Lifecycle
Management
Health &
Monitoring
Always On
Availability
Auto
Scaling
Azure On-premises infrastructure Other cloudsDev machine
38. Bardzo różne modele programistyczne
Lifecycle
Management
Always On
Availability
Orchestration Programming
Models
Health &
Monitoring
Dev & Ops
Tooling
Auto
Scaling
Programming
Models
Dev & Ops
Tooling
Orchestration Lifecycle
Management
Health &
Monitoring
Always On
Availability
Auto
Scaling
.NET or Java …
Built-in ASP.NET core integration;
work with VS and VSTS or
Eclipse and Jenkins
Reliable Services
Manage state reliability
without a database,
lowering latency
Guest Executables
Run existing code and
orchestrate life cycle using
service fabric
Reliable Actors
Use familiar tools: Visual Studio +
Team Services for .NET or Jenkins
+ Yeomen for Java
Containers
Orchestrate your Windows
Server or Linux containers
reliably at scale
</>
39. Service Fabric
Cechy i zalety były już na
poprzednim slajdzie.
Sprawdzona technologia w boju.
Nie ważne w czym piszesz, na co
piszesz, może być dla Ciebie.
Za darmo jest. Płacisz tylko za
maszyny.
Gdybym dziś wybierał
architekturę pod system kluczowy
w Banku, byłyby to SF
40
Potężne rozwiązanie – pewnie
nie wjedziesz z tym jutro na
produkcję (ale to nie po to jest)
W sumie nie ma wad poza tym,
że trzeba to poznać, nauczyć się
Framework’u i nauczyć się z tego
korzystać
42. Queues Storage
Stateless Services Pattern
Front End
(Stateless
Web)
Stateless
Middle-tier
Compute
Cache
• Scale stateless services
backed by partitioned
storage
• Increase reliability and
ordering with queues
• Reduce read latency with
caches
• Manage your own
transactions for state
consistency
Load Balancer
43. Stateful
Middle-tier
Compute
Stateful Services Pattern Simplify design, reduce latency
Front End
(Stateless
Web)
• Application state resides
in the compute tier
• Low latency reads and
writes
• Partitions are first class at
the service layer for scale-
out
• Built in transactions
• External stores for exhaust
and offline analytics
Load Balancer
Cold Data Stores
(Optional)
49. Jak ocenić dostępne rozwiązania?
50
Zarządzanie
Automatyzacja
wydań
Model kosztowy
Wydajność i
skalowanie
Wiedza zespołu
50. Osiołkowi w żłobie dano – co wybrać?
Usługi
Dostosowanie
OS
Narzut na
zarządzanie
DevOps
Zarządzanie
klastrem
Refactoring
aplikacji
Model
kosztowy
VM/VMSS -
App
Service
ACS
Service
Fabric
Functions -
51.
52.
53.
54. Linki, które musisz przeczytać
Kontenery
ACS Engine https://github.com/Azure/acs-engine
5 biggest challanges with containers http://rancher.com/top-5-challenges-with-deploying-container-in-production/
Serverless
Play with Azure Functions https://blog.jeremylikness.com/exploring-cosmosdb-with-powerbi-9192317087d8
Serverless impact on Cost Management https://blog.acolyer.org/2017/10/19/serverless-computing-economic-and-architectural-impact/
Durable functions https://docs.microsoft.com/en-us/azure/azure-functions/durable-functions-sequence
Wydajność funkcji by Janusz Nowak https://blog.janono.pl/2017/10/azure-function-benchmark-for-net-4-7-vs-net-core-beta/
How Cloud Compouting witll change by Azure Functions https://www.datamation.com/cloud-computing/how-serverless-changes-cloud-
computing.html
App Service / ASE porównanie
Roberto Pravato https://robertoprevato.github.io/More-about-Linux-vs-Windows-hosted-ASP-NET-Core-applications-in-Azure-App-Service/
Dalsze dyskusje o tym co wybrać
https://blogs.msdn.microsoft.com/maheshkshirsagar/2016/11/21/choosing-between-azure-container-service-azure-service-fabric-and-
azure-functions/
https://docs.microsoft.com/pl-pl/azure/app-service/choose-web-site-cloud-service-vm
https://medium.com/@WorkloadRancher/service-fabric-functions-and-app-services-which-ones-for-me-4e275128ed0
Service Fabric
• Najlepsza sesja o Service Fabric: https://myignite.microsoft.com/sessions?q=service%2520fabric