2014.10.22 building azure solutions with office 365
DESCRIPTION
Building Azure Solutions with Office 365TRANSCRIPT
AZU02 – Building Azure Solutions
with Office 365Marco Parenzan
#CloudConferenceItalia
Gli Sponsor
Marco Parenzan
• Formazione & Divulgazione con 1nn0va
• Parlo di Cloud e di tutto quello che gira intorno
• Ad esempio Internet of Things
• Microsoft MVP 2014 for Microsoft Azure
• Formazione & Progettazione con ITS Kennedy
• Insegno principi di Cloud Computing
• Ricerca e Innovazione con Servizi Cgn
• Sviluppo software
• Formazione interna
State of Software Development
New development trends
• Cloud
• Big Data
• Mobile and Devices
• Internet of Things
New development challenges
• None of the following is true:
• “Network is reliable”
• “Latency is near to zero or irrelevant”
• “Bandwidth is unlimited”
• “Network is secure”
• “Topology doesn’t change”
• “Transport cost is irrelevant”
• “Network is homogeneous”
From Mauro Servienti presentationhttp://www.slideshare.net/mauroservienti/in-the-brain-designing-distributed-scalable-and-reliable-systems
New development patterns
RETRY
QUEUING STORAGEWORKLOAD
IDENTITY
New development architectures
Storage
Servers
Networking
O/S
Middleware
Virtualization
Data
Applications
Runtime
Away from premises
“Mobile First, Cloud First”
We develop for the customer
Software (as a Service)
Storage
Servers
Networking
O/S
Middleware
Virtualization
Applications
Runtime
Data
To consume services
Platform (as a Service)
Storage
Servers
Networking
O/S
Middleware
Virtualization
Applications
Runtime
Data
To consume his services
Infrastructure(as a Service)
Storage
Servers
Networking
O/S
Middleware
Virtualization
Data
Applications
Runtime
To consume his legacy services
“
”
The Cloud is moving the center
of the modern, agile Company
Microsoft Azure
Core – compute, networking, storage, identity
Platform
MobileMediaBig DataWebIntegratio
n
16 regions worldwide in 2014
Azure footprint
Data Centers
Regional Partners
Azure features for SolutionsPlatform as a Service
Microsoft Azure Services
Clien
t la
yer
(on
-pre
mis
es)
Tablet PhoneGames consolePC
On-premises databaseBrowser
Office Add-in
On-premises service
AD
MultifactorAuthentication
Access C
on
trol
Layer
Inte
gra
tion
la
yer
Service Bus CDN
BizTalk Services
Traffic Manager
Virtual Networks
Express Route
Ap
plicati
on
layer
API Mgmt WebsitesCloud Services VM
Mobile Services
Media Services
Notification Hubs
Scheduler
Automation
Data
Layer
Storage Blobs Tables Queues Data
Machine Learning
HD Insight
Backup and Recovery
SQL Database Caching
StorSimple
Microsoft Azure Web Sites
Start simple Code smart Go liveCreate new sites in seconds
Easily manage and scale your sites
Automatic load balancing and shared storage across instances
Scale out or up to reserved instances for improved performance and scale
Built-in web jobs support
Use ASP.NET, ASP, PHP, Java or Node.js
SQL Azure or MySQL databases
Start with open source apps and frameworks
Develop with VS and WebMatrix
Supports any Web development tool on any platform (Windows, OSX, Linux)
Rapid deployment for quick iteration
Integrated source control with Team Foundation Server (TFS) and Git
Built-in monitoring of perf and usage data
Quick access to request logs, failed requests diagnostics and diagnostics
Push Notifications
Store Data in the Cloud
User Authentication
Windows Store
iOS
Android
Xamarin
Sencha
Windows Phone
iOS
Android
HTML 5/JS
SDKs
Node.js Express.NET Web API
RE
ST A
PI
Facebook Twitter Microsoft Google Active Directory
SQL Table Storage
Blob Storage
WNS & MPNS
APNS GCM
Mongo DB
Notification Hubs
Source Control
Hybrid Connections
Mobile Services
Azure Virtual Machines
• Launch Windows Server and Linux in minutes
• Scale from 1 to 1000s of VM Instances
• Save money with per-minute billing
• Open and extensible
Virtual Machine SizesVM Size CPU Cores Memory # (1TB) Data
Disks
Extra Small (A0) Shared 768 MB 1
Small (A1) 1 1.75 GB 2
Medium (A2) 2 3.5 GB 4
Large (A3) 4 7 GB 8
Extra Large (A4) 8 14 GB 16
A5 2 14 GB 4
A6 4 28 GB 8
A7 8 56 GB 16
A8 8 56 GB 16
A9 16 112 GB 16
VM Gallery
Windows Server 2012 R2
Ubuntu Server 14.04 LTS
CentOS 6.5SUSE Linux
Enterprise Server Oracle Linux 6.4.0.0.0
Windows 8.1 Enterprise
SQL Server 2014 Standard
Oracle Database 11g R2 BizTalk Server 2013 SharePoint Server FarmMicrosoft Dynamics
GP 2013 Zulu 8
SAP HANA Developer Edition Puppet Enterprise 3.2.3 Barracuda Web
Application
Oracle WebLogicServer 12.1.2
Visual Studio Ultimate 2013
openSUSE 13.1
“
”AzureLab
Demo
(Some) Azure Storage SolutionsStorage in Azure...Software as a Service
(Some) Azure Storage Solutions
SQL Database
SQL on IaaS
NoSQL Tables
24
Run SQL on VM
• Run any SQL product on cloud VM
• Support for SQL Server, Oracle, MySql
• Ready to go VM images available in Gallery
• Persistent storage using attached disk in blob storage
SQL IaaS Comparison vs SQL Database
SQL DatabaseFully managed SQL Server environment
HA/DR features automatically included
Automatic backup enabled by default
SQL IaaSChoice of a variety of DB engines (SQL Server, Oracle, MySql)
Larger database sizes possible (16TB)
All features of native DB available
Windows authentication available (requires VM to be joined to on-premises domain)
26
NoSQL Generally more scalable
• The storage engines of NoSQL stores are designed to minimize contentions enabling higher throughput and therefore more scalable
• Lower transaction capability in NoSQL results in less contention and therefore more scalable
• Less complex query processor means that a single query can’t degrade service
• Built-in replication capability means that store can scale out which better aligns to other application tiers (e.g. websites)
• No fixed schema or lower schema requirements
NoSQL on Azure
• Cassandra is a columnar store with excellent replication
• HBase is a Big Data (Hadoop) NoSQL store available in HDInsight
• MongoDB is a document (JSON) store
• The new DocumentDB document (JSON) store
• The new DocumentDB document (JSON) store
• Azure Tables service is NoSQL row store
Windows Azure Storage Abstractions
TablesStructured storage. A table is a set of entities; an entity is
a set of properties.
QueuesReliable storage and delivery of messages for an application.
BlobsSimple named files along with metadata for the file.
DrivesDurable NTFS volumes for Windows Azure applications to use. Based on Blobs.
Azure Table
FIRST LAST BIRTHDATE
Wade Wegner 2/2/1981
Nathan Totten 3/15/1965
Nick Harris May 1, 1976
?$filter=Last eq ‘Wegner’Query
FAV SPORT
Canoeing
No fixed schema
PARTITIONKEY(CATEGORY)
ROWKEY(TITLE)
TIMESTAMP MODELYEAR
Bikes Super Duper Cycle … 2009
BikesQuick Cycle 200 Deluxe
… 2007
… … … …
Canoes Whitewater … 2009
Canoes Flatwater … 2006
PARTITIONKEY(CATEGORY)
ROWKEY(TITLE)
TIMESTAMP MODELYEAR
Rafts 14ft Super Tourer … 1999
… … … …
SkisFabrikam Back Trackers
… 2009
… … … …
Tents Super Palace … 2008
PARTITIONKEY(CATEGORY)
ROWKEY(TITLE)
TIMESTAMP MODELYEAR
Bikes Super Duper Cycle … 2009
BikesQuick Cycle 200 Deluxe
… 2007
… … … …
Canoes Whitewater … 2009
Canoes Flatwater … 2006
Rafts 14ft Super Tourer … 1999
… … … …
SkisFabrikam Back Trackers
… 2009
… … … …
Tents Super Palace … 2008
Partitions and Partition Ranges
Server ATable = Products
Server BTable = Products
[Canoes - MaxKey)
Server ATable = Products
[MinKey - Canoes)
Sharing Files – The old way
• Setup an IaaS VM to host a File Share backed by an IaaS Disk
• Write code to find the IaaS File Share from the rest of the VMs in your service.
• Write some code to provide high availability
• Handle host upgrades, node failures
• You can only access the File Share from other VMs
IaaS VM
IaaS VM
IaaS VM
PaaS VM
IaaS VM(Sharing IaaS Disk)
Backup IaaS VMs (Mount/Share after failover)
Azure Files
• Shared Network File Storage for Azure
• Availability, durability, scalability are managed automatically
• Supports two interfaces: SMB and REST
• Share data across VMs and applications
• Multiple writers, multiple readers using standard file system semantics.
• Share settings throughout services
• VMs can read settings and files from a common, shared location. These can be updated externally via REST.
• Dev/Test/Debug
• Very useful to have a shared location for installing applications, setting up VMs, running tools, and keeping notes while developing, testing, and debugging cloud services.
IaaS VM
IaaS VM
IaaS VM
PaaS VM
Azure File Share(PaaS)
“
”Maker365
Demo
Maker365
• Who? 3 friends
• What? 3D Printing
• Where? No office, just a garage
What is Office 365?
“
”
Hybrid Cloud is one of the strategies
for Global Cloud Adoption
“
”
Office 365 is in the center of the modern, agile
Company
“
”
Office 365 is in the center of the modern, agile, hybrid
Company
“
”
Office 365 is a rich platform for extending and integrating with
“
”
Office 365 is a rich platform for extending and
integrating with as a service
Office 365 APIs SharePoint
Sites
Exchange & Outlook.com
Calendar
Contacts
Active Directory
Users
Groups
OneDrive
OneDrive for Business
OneDrive
Client API
Search
Sites, Lists and Libs
Taxonomy
BCSWorkflow
…
Azure
Modern web hybrid applications
Web Application
Office 365
Vacation request
Event planning
Expense calculator
Learning management
Risk management
Help-desksupport
Build for the cloud
• Web Standards
• Apps are built using industry proven web standards such as HTML, JavaScript and REST
• Scalable and Safe
• Apps are independently scalable which reduces total cost of ownership. Apps are secured and isolated from SharePoint
• Accessible
• Apps can be accessed from any device with a web browser. Write once, run anywhere
• An app can run outside the firewall in the cloud and from inside the firewall in a data center.
• Apps can be hosted on any platform giving you complete freedom.
Adding Connected Services
Your identity goes with you
PCs and devices
3rd party clouds/hosting
Azure AD
Browser
Native app
Server app
Web applicatio
n
Web service
API
OAuth 2.0
OAuth 2.0
WS-Fed, SAML 2.0, OpenID
Connect
OAuth 2.0
Standard, http-based protocols for maximum platform reach
Modern Authentication Protocols
ASP.NET Identity 2.1 Features• Login username/ password
• Roles
• Profile
• Claims
• User Management – Create, edit and delete Users
• Role Management – Create, edit, delete Roles and manage Users.
• External Logins – Social providers + Azure AD
• Identity Storage Extensibility
ASP.NET Identity 2.1 Features
• Stronger passwords
• Two-Factor Authentication
• Account Lockout
• Account Confirmation
• Security Stamp (Sign out everywhere)
• Reset password
• Custom Password Policies
• User Validators
• Customize Primary Key
ASP.NET Identity 2.1 Features
• Login username/ password
• Roles
• Profile
• Claims
• User Management – Create, edit and delete Users
• Role Management – Create, edit, delete Roles and manage Users.
• External Logins – Social providers + Azure AD
• Identity Storage Extensibility
ASP.NET Identity 2.1 Features [2]
• Stronger passwords
• Two-Factor Authentication
• Account Lockout
• Account Confirmation
• Security Stamp (Sign out everywhere)
• Reset password
• Custom Password Policies
• User Validators
• Customize Primary Key
Deep Dive into Office 365 APIs for Calendar, Mail, and Contacts
52
Office 365 APIs for Calendar, Mail and Contacts
• Office 365 APIs • Mail Message API
• Calendar Events API
• Contacts API
• Office 365 APIs accessible through REST• https://outlook.office365.com/ews/odata/Me/Inbox/Messages
• https://outlook.office365.com/ews/odata/Me/Events
• https://outlook.office365.com/ews/odata/Me/Contacts
• Office 365 APIs accessible through ExchangeClient library• A library which abstracts away sending and receiving REST request
53
Mail Messages
•Common API operations• Reading messages
• Deleting messages
• Sending messages
• Working with attachments
Message
54
Calendar Events
•Common API operations• Reading events for specific date range
• Creating events
• Deleting events
• Editing events
Event
55
Contacts
•Common API operations• Reading contacts
• Searching for contacts
• Creating contacts
• Deleting contacts
• Editing events
Contact
56
Reading Contacts using REST
• Send GET request to Contacts endpoint
• Office 365 Exchange API only returns JSON responses
• Paging is accomplished using $skip and $top
57
Adding a new Contact
• POST to Add endpoint
• Provide minimum of @data.type and GivenName property
58
Deleting a Contact
• DELETE operation targeting
Me/Contacts(Id)
Deep Dive into Office 365 APIsfor OneDrive for Business
60
OneDrive for Business
A personal library for storing and organizing your work documents
OneDrive for Business Files REST API
• Get the metadata for all files in OneDrive
• GET http://<onedrive>/_api/Files
• Get the metadata for a folder in OneDrive
• GET http://<onedrive>/_api/Files('folder')
• Get the metadata for the children of a folder in OneDrive
• GET http://<onedrive>/_api/Files('folder')/Children
• Get the metadata for a single file in OneDrive
• GET http://<onedrive>/_api/Files('folder/filename.docx')
• Download a single file from OneDrive
• GET http://<onedrive>/_api/Files('folder/filename.docx')/download
62
Reading File Metadata
• GET Files endpoint
• Paging is accomplished post-query using LINQ
63
Uploading a new File
• POST to Add endpoint
• Provide a file name and the file stream
64
Deleting a File
• DELETE the target file ID
“
”UTec365
Demo
Conclusions
Azure (Web Site) o SharePoint (Site)?
Azure(Windows Server)
• Focus on
• Functionalities
• Full Control on infrastructure
• All pros and cons
• Develop applications
• Flexible experience
• Common question:
• “How do I handle this power?”
SharePoint On Line (SharePoint on Premise)
• Focus on:
• documents (content)
• Light Control on infrastructure
• All pros and cons
• Develop apps
• Specialized/controlled experience
• Common question
• “How do I manage template change when new SP version come out?”
“
”How much does it costs?
http://azure.microsoft.com/en-us/pricing/calculator/ Please distinguish between Fixed Costs and Current Costs!
Security and Privacy
• I’m not a security expert
• I’m a honest developer
• Some anti-examples…
• Development teams, Sales force is distributes “by design”
• On premise issues (Firewall, for example)
• People that talk about security issues publish photo of their children on Facebook
• I have every document on Cloud…
• …but not my photos (only in my on premise W2K12R2 Essentials @ home with two external backups!)
Conclusions
• Office 365 is the best solution on which you can build your Company
• A complete set of RESTful services to be integrated
• Identity, Storage and Communications for the Company
• Azure is the best solution with which you can extend your Company
• A complete set of .NET and RESTful services
• Visual Studio ecosystem is the best solution with which you can customize your company
• A complete set of tools
“
”Developer…you have to change!
https://github.com/marcoparenzan/Maker365.git
The code is just a prototype!
You find the code on
Ricordati il feedbackCod. Sessione: AZU02
#CloudConferenceItalia
www.slideshare.net/marco.parenzangithub.com/marcoparenzan
it.linkedin.com/in/marcoparenzanmarco [dot] parenzan [at] 1nn0va [dot] onmicrosoft [dot] com
www.innovazionefvg.net
22 Ottobre 2014
#CloudConferenceItalia