2014.10.22 Building Azure Solutions with Office 365

74
AZU02 – Building Azure Solutions with Office 365 Marco Parenzan #CloudConferenceItalia

description

Building Azure Solutions with Office 365

Transcript of 2014.10.22 Building Azure Solutions with Office 365

Page 1: 2014.10.22 Building Azure Solutions with Office 365

AZU02 – Building Azure Solutions

with Office 365Marco Parenzan

#CloudConferenceItalia

Page 2: 2014.10.22 Building Azure Solutions with Office 365

Gli Sponsor

Page 3: 2014.10.22 Building Azure Solutions with Office 365

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

Page 4: 2014.10.22 Building Azure Solutions with Office 365

State of Software Development

Page 5: 2014.10.22 Building Azure Solutions with Office 365

New development trends

• Cloud

• Big Data

• Mobile and Devices

• Internet of Things

Page 6: 2014.10.22 Building Azure Solutions with Office 365

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

Page 7: 2014.10.22 Building Azure Solutions with Office 365

New development patterns

RETRY

QUEUING STORAGEWORKLOAD

IDENTITY

Page 8: 2014.10.22 Building Azure Solutions with Office 365

New development architectures

Page 9: 2014.10.22 Building Azure Solutions with Office 365

Storage

Servers

Networking

O/S

Middleware

Virtualization

Data

Applications

Runtime

Away from premises

Page 10: 2014.10.22 Building Azure Solutions with Office 365

“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

Page 11: 2014.10.22 Building Azure Solutions with Office 365

The Cloud is moving the center

of the modern, agile Company

Page 12: 2014.10.22 Building Azure Solutions with Office 365

Microsoft Azure

Core – compute, networking, storage, identity

Platform

MobileMediaBig DataWebIntegratio

n

Page 13: 2014.10.22 Building Azure Solutions with Office 365

16 regions worldwide in 2014

Azure footprint

Data Centers

Regional Partners

Page 14: 2014.10.22 Building Azure Solutions with Office 365

Azure features for SolutionsPlatform as a Service

Page 15: 2014.10.22 Building Azure Solutions with Office 365

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

Page 16: 2014.10.22 Building Azure Solutions with Office 365

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

Page 17: 2014.10.22 Building Azure Solutions with Office 365

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

Page 18: 2014.10.22 Building Azure Solutions with Office 365

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

Page 19: 2014.10.22 Building Azure Solutions with Office 365

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

Page 20: 2014.10.22 Building Azure Solutions with Office 365

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

Page 21: 2014.10.22 Building Azure Solutions with Office 365

”AzureLab

Demo

Page 22: 2014.10.22 Building Azure Solutions with Office 365

(Some) Azure Storage SolutionsStorage in Azure...Software as a Service

Page 23: 2014.10.22 Building Azure Solutions with Office 365

(Some) Azure Storage Solutions

SQL Database

SQL on IaaS

NoSQL Tables

Page 24: 2014.10.22 Building Azure Solutions with Office 365

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

Page 25: 2014.10.22 Building Azure Solutions with Office 365

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)

Page 26: 2014.10.22 Building Azure Solutions with Office 365

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

Page 27: 2014.10.22 Building Azure Solutions with Office 365

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

Page 28: 2014.10.22 Building Azure Solutions with Office 365

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.

Page 29: 2014.10.22 Building Azure Solutions with Office 365

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

Page 30: 2014.10.22 Building Azure Solutions with Office 365

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)

Page 31: 2014.10.22 Building Azure Solutions with Office 365

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)

Page 32: 2014.10.22 Building Azure Solutions with Office 365

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)

Page 33: 2014.10.22 Building Azure Solutions with Office 365

”Maker365

Demo

Page 34: 2014.10.22 Building Azure Solutions with Office 365

Maker365

• Who? 3 friends

• What? 3D Printing

• Where? No office, just a garage

Page 35: 2014.10.22 Building Azure Solutions with Office 365

What is Office 365?

Page 36: 2014.10.22 Building Azure Solutions with Office 365

Hybrid Cloud is one of the strategies

for Global Cloud Adoption

Page 37: 2014.10.22 Building Azure Solutions with Office 365

Office 365 is in the center of the modern, agile

Company

Page 38: 2014.10.22 Building Azure Solutions with Office 365

Office 365 is in the center of the modern, agile, hybrid

Company

Page 39: 2014.10.22 Building Azure Solutions with Office 365

Office 365 is a rich platform for extending and integrating with

Page 40: 2014.10.22 Building Azure Solutions with Office 365

Office 365 is a rich platform for extending and

integrating with as a service

Page 41: 2014.10.22 Building Azure Solutions with Office 365

Office 365 APIs SharePoint

Sites

Exchange & Outlook.com

Calendar

Contacts

Mail

Active Directory

Users

Groups

OneDrive

OneDrive for Business

OneDrive

Client API

Search

Sites, Lists and Libs

Taxonomy

BCSWorkflow

Page 42: 2014.10.22 Building Azure Solutions with Office 365

Azure

Modern web hybrid applications

Web Application

Office 365

Vacation request

Event planning

Expense calculator

Learning management

Risk management

Help-desksupport

Page 43: 2014.10.22 Building Azure Solutions with Office 365

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.

Page 44: 2014.10.22 Building Azure Solutions with Office 365

Adding Connected Services

Page 45: 2014.10.22 Building Azure Solutions with Office 365

Your identity goes with you

PCs and devices

3rd party clouds/hosting

Azure AD

Page 46: 2014.10.22 Building Azure Solutions with Office 365

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

Page 47: 2014.10.22 Building Azure Solutions with Office 365

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

Page 48: 2014.10.22 Building Azure Solutions with Office 365

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

Page 49: 2014.10.22 Building Azure Solutions with Office 365

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

Page 50: 2014.10.22 Building Azure Solutions with Office 365

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

Page 51: 2014.10.22 Building Azure Solutions with Office 365

Deep Dive into Office 365 APIs for Calendar, Mail, and Contacts

Page 52: 2014.10.22 Building Azure Solutions with Office 365

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

Page 53: 2014.10.22 Building Azure Solutions with Office 365

53

Mail Messages

•Common API operations• Reading messages

• Deleting messages

• Sending messages

• Working with attachments

Message

Page 54: 2014.10.22 Building Azure Solutions with Office 365

54

Calendar Events

•Common API operations• Reading events for specific date range

• Creating events

• Deleting events

• Editing events

Event

Page 55: 2014.10.22 Building Azure Solutions with Office 365

55

Contacts

•Common API operations• Reading contacts

• Searching for contacts

• Creating contacts

• Deleting contacts

• Editing events

Contact

Page 56: 2014.10.22 Building Azure Solutions with Office 365

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

Page 57: 2014.10.22 Building Azure Solutions with Office 365

57

Adding a new Contact

• POST to Add endpoint

• Provide minimum of @data.type and GivenName property

Page 58: 2014.10.22 Building Azure Solutions with Office 365

58

Deleting a Contact

• DELETE operation targeting

Me/Contacts(Id)

Page 59: 2014.10.22 Building Azure Solutions with Office 365

Deep Dive into Office 365 APIsfor OneDrive for Business

Page 60: 2014.10.22 Building Azure Solutions with Office 365

60

OneDrive for Business

A personal library for storing and organizing your work documents

Page 61: 2014.10.22 Building Azure Solutions with Office 365

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

Page 62: 2014.10.22 Building Azure Solutions with Office 365

62

Reading File Metadata

• GET Files endpoint

• Paging is accomplished post-query using LINQ

Page 63: 2014.10.22 Building Azure Solutions with Office 365

63

Uploading a new File

• POST to Add endpoint

• Provide a file name and the file stream

Page 64: 2014.10.22 Building Azure Solutions with Office 365

64

Deleting a File

• DELETE the target file ID

Page 65: 2014.10.22 Building Azure Solutions with Office 365

”UTec365

Demo

Page 66: 2014.10.22 Building Azure Solutions with Office 365

Conclusions

Page 67: 2014.10.22 Building Azure Solutions with Office 365

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?”

Page 68: 2014.10.22 Building Azure Solutions with Office 365

”How much does it costs?

http://azure.microsoft.com/en-us/pricing/calculator/ Please distinguish between Fixed Costs and Current Costs!

Page 69: 2014.10.22 Building Azure Solutions with Office 365

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!)

Page 70: 2014.10.22 Building Azure Solutions with Office 365

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

Page 71: 2014.10.22 Building Azure Solutions with Office 365

”Developer…you have to change!

Page 72: 2014.10.22 Building Azure Solutions with Office 365

https://github.com/marcoparenzan/Maker365.git

The code is just a prototype!

You find the code on

Page 73: 2014.10.22 Building Azure Solutions with Office 365

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

Page 74: 2014.10.22 Building Azure Solutions with Office 365

22 Ottobre 2014

#CloudConferenceItalia