59

Desenvolvendo software como serviço para negócios

Embed Size (px)

DESCRIPTION

A computação na nuvem cria novas oportunidades de negócio, habilitando a exploração de novos segmentos de mercado com novos conceitos de aplicações. Aproveitar estas oportunidades requer uma mudança fundamental no modo de criar, comercializar e entregar soluções de software. O fornecimento de aplicações como serviço apresenta inúmeros desafios como escalabilidade, elasticidade, eficiência econômica, tolerância a falhas, disponibilidade, segurança, privacidade. Nesta apresentação serão compartilhadas lições aprendidas no desenvolvimento de projetos para o Windows Azure com arquitetura orientada a serviços no estilo REST e protocolo OData, implementados em C# com WCF Data Services e Entity Framework, armazenando dados relacionais no SQL Database com particionamento por inquilinos via Federations, armazenamento de objetos binários, processamento assíncrono baseado em mensagens e interface rica no browser em HTML5 e JavaScript. Palestra apresentada no evento BluDotNet abril/2013

Citation preview

Page 1: Desenvolvendo software como serviço para negócios
Page 2: Desenvolvendo software como serviço para negócios
Page 3: Desenvolvendo software como serviço para negócios
Page 4: Desenvolvendo software como serviço para negócios

• Acesso por Internet

• Compartilhamento de recursos

• Auto-serviço sob demanda

• Elasticidade rápida

• Pagamento conforme o uso

Page 5: Desenvolvendo software como serviço para negócios

USO COMPARTILHADO E SOB DEMANDA

ARMAZENAMENTO

COMPUTAÇÃO

SERVIÇOS

APLICAÇÕES

Page 6: Desenvolvendo software como serviço para negócios

Padrõesde uso dacomputaçãoem nuvem

Page 7: Desenvolvendo software como serviço para negócios
Page 8: Desenvolvendo software como serviço para negócios
Page 9: Desenvolvendo software como serviço para negócios
Page 10: Desenvolvendo software como serviço para negócios

Plataforma de nuvem pública da Microsoft

windowsazure.com

Page 11: Desenvolvendo software como serviço para negócios

Plataforma em nuvem de nível empresarial

Page 12: Desenvolvendo software como serviço para negócios
Page 13: Desenvolvendo software como serviço para negócios

Server Rack 1 Server Rack 2

Page 14: Desenvolvendo software como serviço para negócios
Page 15: Desenvolvendo software como serviço para negócios
Page 16: Desenvolvendo software como serviço para negócios
Page 17: Desenvolvendo software como serviço para negócios
Page 18: Desenvolvendo software como serviço para negócios
Page 19: Desenvolvendo software como serviço para negócios
Page 20: Desenvolvendo software como serviço para negócios
Page 21: Desenvolvendo software como serviço para negócios
Page 22: Desenvolvendo software como serviço para negócios
Page 23: Desenvolvendo software como serviço para negócios
Page 24: Desenvolvendo software como serviço para negócios
Page 25: Desenvolvendo software como serviço para negócios
Page 26: Desenvolvendo software como serviço para negócios
Page 27: Desenvolvendo software como serviço para negócios

Serviços de aplicação na nuvem

fornecem software

através da Internet,

sem a necessidade de instalar

e executar o aplicativo

em computadores próprios.

Page 28: Desenvolvendo software como serviço para negócios

• Poupa tempo

• Economiza dinheiro

• Aumenta o foco no negócio

• Inova mais rapidamente

• Traz segurança

• Melhora o fluxo de caixa

• Traz benefícios fiscais

• Cria uma comunidade

Page 29: Desenvolvendo software como serviço para negócios

• Modelo de negócio

• Necessidade grande de marketing

• Foco em cliente e serviço

• Feedback mais rápido

• Uma única versão

• Suporte mais eficaz

• Qualidade é fundamental

• Segurança é pré-requisito

Page 30: Desenvolvendo software como serviço para negócios
Page 31: Desenvolvendo software como serviço para negócios

• Eficiência

• Escalabilidade

• Elasticidade

• Disponibilidade

• Tolerância a falhas

• Usabilidade

• Conectividade

• Segurança

Page 32: Desenvolvendo software como serviço para negócios

específico

eficiente

configurável

escalável

Inquilino 1

Instância 1

Inquilino 2

Instância 2

Inquilino 3

Instância 3

Inquilino 1

Instância

Inquilino 2

Instância

Inquilino 3

Instância

Inquilino 1 Inquilino 2

Instância

Inquilino 3 Inquilino 1 Inquilino 2

Balanceador de Carga

Inquilino 3

Instância Instância Instância

Page 33: Desenvolvendo software como serviço para negócios
Page 34: Desenvolvendo software como serviço para negócios

Para migrar com sucesso

para a modalidade SaaS

os ISVs tradicionais

têm que mudar fundamentalmente

o seu modo de desenvolver,

vender e entregar

suas soluções de software.

Page 35: Desenvolvendo software como serviço para negócios

Uma aplicação que não foi projetada para escalar não vai escalar só porque está “na nuvem”.

Page 36: Desenvolvendo software como serviço para negócios

• Multi-tenant

• Scale out

• Sharding

• Federation

• Stateless services

• Rich clients

• Load balancing

• Asynchronous operations

• Message queues

• Publish/subscribe

Page 37: Desenvolvendo software como serviço para negócios

Design

Security

Management

Data & Content

Processes

Page 38: Desenvolvendo software como serviço para negócios

Storage• Relational & transactional data

• Federated databases

• Unstructured, de-normalized data

• Logical partitioning

• Persistent file & blob storage

• Encrypted storage

Connectivity• Message queues

• Service orchestrations

• Identity federation

• Claims-based access control

• External services connectivity

Presentation• ASP.NET C#, PHP, Java

• Distributed in-memory cache

Services• .NET C#, Java, native code

• Distributed in-memory cache

• Asynchronous processes

• Distributed parallel processes

• Transient file storage

SERVICE BUSACCESS

CONTROL

WORK

FLOWS

Page 39: Desenvolvendo software como serviço para negócios
Page 40: Desenvolvendo software como serviço para negócios
Page 41: Desenvolvendo software como serviço para negócios

Otimizada para tirar proveito dos pontos fortes

das plataforma Azure, .NET e HTML5.

Page 42: Desenvolvendo software como serviço para negócios
Page 43: Desenvolvendo software como serviço para negócios

Aplicativo Cliente

Serviços de Negócio

SQL Azure Blob Storage

Page 44: Desenvolvendo software como serviço para negócios

ClienteHTML

CSS

JavaScript

JSON

ServidorOData

WCF Data Services

Entity Framework

SQL Azure

Page 45: Desenvolvendo software como serviço para negócios

PCs e Laptops

Aplicativo

Cliente

Servidores

Arquivos

estáticos

Serviços de

aplicativo

download

dados

Smartphones

e tablets

Aplicativo

Cliente

dados

download

Page 46: Desenvolvendo software como serviço para negócios

Serviços de Aplicativo

Serviços de Aplicativo

Processamento de Mensagens

Processamento de Mensagens

Fila de Mensagens

Banco de Dados Federado

SQL SQL SQL

Serviço de Armazenamento

Browser Smartphone Tablet

Page 47: Desenvolvendo software como serviço para negócios
Page 48: Desenvolvendo software como serviço para negócios
Page 49: Desenvolvendo software como serviço para negócios
Page 50: Desenvolvendo software como serviço para negócios
Page 51: Desenvolvendo software como serviço para negócios
Page 52: Desenvolvendo software como serviço para negócios
Page 53: Desenvolvendo software como serviço para negócios
Page 54: Desenvolvendo software como serviço para negócios
Page 55: Desenvolvendo software como serviço para negócios
Page 56: Desenvolvendo software como serviço para negócios
Page 57: Desenvolvendo software como serviço para negócios
Page 58: Desenvolvendo software como serviço para negócios
Page 59: Desenvolvendo software como serviço para negócios