[Run Reloaded] Innovación y liderazgo (Pablo C. García + Jorge Rodríguez)

Post on 24-May-2015

415 views 0 download

Tags:

description

[Run Reloaded] Innovación y liderazgo (Pablo C. García + Jorge Rodríguez)

Transcript of [Run Reloaded] Innovación y liderazgo (Pablo C. García + Jorge Rodríguez)

Innovación y Liderazgo

Jorge Rodríguez(jorgero@microsoft.com)Pablo García (pcgarcia@microsoft.com)

Entendiendo al CIO …‘Top 10 Business and Technology

Priorities’‘Top 10 Strategic Technologies’La evolución de la tecnología hoyLas plataformas de aplicaiconesPlataforma .net 2010

Agenda

2003 2008+1997 2000 2006

Costos de Infraestructur

a

1994Client ServerSolution Silos

N - Tier Service OrientationDynamic Systems

Complejidad

$$ Costos de Administració

n

Que estuvo sucediendo ??

Que se le pide al CIO …?

Accenture: Keeping the lights on is not enough, new capability is required

30%Nueva Capacidad

30%Nueva Capacidad

45%Nueva Capacidad

45%Nueva Capacidad

70%Mantenimiento de capacidad

existente

70%Mantenimiento de capacidad

existente

55%Capacidad existente

55%Capacidad existente

TI HoyTI Hoy TI DeseadoTI Deseado

Incrementar valor

Incrementar valor

Disminuir mantenimientos y día a

día

Disminuir mantenimientos y día a

día

Simplificar la Infraestructura & Administración

Predictibilidad en los desarrollos (tiempos,

escalabilidad, modelos prescriptivos …, etc.)

Reducir Costos o Hacer Crecer el Negocio ?? LOS DOS POR

SUPUESTO !!!!!!

Mejorar la Seguridad !!!

ROI de Proyectos …, con repago en

< 12 meses, OBVIO …!!

Respuestas rápidas a las necesidades de negocio cambiantes

Utilización optima de los recursos disponibles

Ser Proactivo !

!Buscar y Retener el

mejor talento …

Entender el Negocio !!!!!!

Etc.

Etc.

Etc.

Etc.

Etc. Etc.

Etc.

‘The Future of the CIO’ (MIT)

How CIO’s Spend Their Time:Managing IT Services (44%) Working with non-IT Colleagues (36%)Working with Customers (10%)Managing Enterprise Processes (10%)

How Should they Spend Their Time …?

Y … cambios en el rol del CIO

© MIT Sloan CISR

Center for Information Systems Research

Percepción de los CIOs de cómo los va a tratar el CEO y el Directorio …

How Some CIOs Perceive Board Meetings

Percepción de los CIOs de cómo los va a tratar el CEO y el Directorio …

Top 10 Biz&Tech Prtys (Gartner)Top 10 Business Priorities

CEO’sRanking Top 10 Technology Priorities

CIO’sRanking

Business process improvement

1 Business intelligence 1

Reducing enterprise costs 2 Enterprise applications (ERP, CRM and others)

2

Improving enterprise workforce effectiveness

3 Servers and storage technologies (virtualization)

3

Attracting and retaining new customers

4 Legacy application modernization

4

Increasing the use of information/analytics

5 Collaboration technologies 5

Creating new products or services (innovation)

6 Networking, voice and data communications

6

Targeting customers and markets more effectively

7 Technical infrastructure 7

Managing change initiatives

8 Security technologies 8

Expanding current customer relationships

9 Service-oriented applications and architecture

9

Expanding into new markets and geographies

10 Document management

QUE ESTA FALTANDO EN LAS PRIORIDADES DE LOS

CIO’s ???

(que esta ‘implicito’ en las de los CEO’s …)

Cloud Computing …

Social Computing …

Green IT …

Top 10 Strategic Technologies …

Cloud Computing. IT for Green. Advanced Analytics. Client Computing.Reshaping the Data Center. Social Computing. Security – Activity MonitoringFlash Memory.Virtualization for Availability.Mobile Applications.

Tendencia 1: SOA y Web 2.0

Tendencia 2: ManyCore Shift

“… we see a very significant shift in what architectures will look like in the future ...fundamentally the way we've begun to look at doing that is to move from instruction level concurrency to … multiple cores per die. But we're going to continue to go beyond there. And that just won't be in our server lines in the future; this will permeate every architecture that we build. All will have massively multicore implementations.”

Intel Developer Forum, Spring 2004Pat GelsingerChief Technology Officer, Senior Vice PresidentIntel CorporationFebruary, 19, 2004

10,000

1,000

100

10

1

‘70 ‘80 ‘90 ‘00 ‘10

Pow

er D

ensi

ty (

W/c

m2)

40048008

8080

80858086

286386

486

Pentium® processors

Hot Plate

Nuclear Reactor

Rocket Nozzle

Sun’s Surface

Intel Developer Forum, Spring 2004 - Pat Gelsinger

Many-core Peak Parallel GOPs

Single Threaded Perf 10% per year

To Grow, To Keep Up,We Must Embrace Parallel Computing

GO

PS

32,768

2,048

128

162004 2006 2008 2010 2012 2015

Today’s Architecture: Heat becoming an unmanageable problem!

Parallelism Opportunity80X

Tendencia 3: VirtualizaciónIDC Growth Projections (2005-2010)

38% CAGR in Virtual Machines1.7M Physical server used for Virtualization 7.9M Logical servers using virtualization

0.60.9 1.1 1.3 1.5 1.71.9

4.2

5.4

6.7

8.1

9.5

0

1

2

3

4

5

6

7

8

9

10

2006 2007 2008 2009 2010 2011

VirtualizedPhysical Servers CAGR = 24.1%

Virtual Machines CAGR=37.7%

CommerceContentCommunityCommunity

Tendencia 4: personal “computing” & social networking

Tendencia 5: Cloud Computing

Tendencia 6: Lenguajes Dinámicos

ControlJava, C#Tipos EstáticosServicios Web

FlexibilidadJScript, Ruby, PythonTipos DinámicosREST

El control fijar las estructuras de datosResistencia al cambioRecompilar para cambiar

¿Son los lenguajes dinámicos poco maduros?¿Ofrecen mayor flexibilidad y productividad?

VS

Lenguajes + Frameworks

Los lenguajes dinámicos son interesantes“Lenguajes + Frameworks“ impresionanRuby sin su framework Rails no sería lo

mismoObjetivo: Productividad del desarrolloRompen con muchas convenciones en el

desarrollo

Tendencia 7: 4to paradigma4to paradigma Abundancia de datosTeorema CAPEl límite de las bases de datos

relacionales

Beneficios relativos de una innovaciónDesde la ventaja competitiva al costo de hacer negocios

Tiempo

Ventajas competitivas para

la empresa

Primera empresa en la industria que implementa una innovación

Segunda empresa en la industria que implementa una innovación

Tercera empresa en la industria que implementa una innovación

Categorización de los gastos de TIEstratégico versus utilitario

Strategic IT

Utility IT

Ventana de diferenciación

Ventaja competitiv

a de la empresa

Haciendo la conexiónDe negocios estratégicos a plataforma de aplicaciones

Estrategia de negocios significa diferenciarse de la competencia

Diferenciarse de la competencia se basa en inversiones en “Strategic IT” para soportar la diferenciación

La mayoría de las inversiones en “Strategic IT” son aplicaciones a medida.

Las aplicaciones a medida dependen de una plataforma de aplicaciones.

La plataforma de aplicaciones debe soportar la innovación y ser capaz de acompañarla en “Utility IT”

Seleccionando una plataforma de aplicaciones

Una plataforma de aplicaciones tiene que desempeñarse adecuadamente en las dos fases, tanto en la estratégica como en la utilitaria.

La fase estratégica requiere:Tecnologías actualesSoporte para desarrollo rápido

Con los desarrolladores actuales

La fase utilitaria requiere:Soporte en el largo términoBajo costo

Magic Quadrant for Unified Communications

Magic Quadrant for Business Intelligence Platforms

Enterprise Application & SOA

Gartner App

Infrastructure

Gartner Back End App Integration

(Dec 2008)Gartner App

Infrastructure for New

SOA Application Project

Plataforma .net2010

.net como plataforma Secondlife:

In some of the internal benchmarking we’ve done, scripts running on Mono ran up to 220 times faster.

Forrester Research: (TSSJS 2008 Keynote: Why the Next Five Years Will Be About Languages) The language Renaissance has already begun:

AspectJ, Scala, Pizza, E, Groovy, SWI-Prolog, SISC, BeanShell, Rhino, … LINQ, F#, Nemerle, Boo, Spec#, S#, L#, IronPython, Axum… Haskell, Erlang, Ruby, ActionScript, E4X, … … and let's not forget Smalltalk and its cousins … or, for that matter, Lisp and its family

It's a programming language feast! .net languages:

C#, C++/CLI, F#, J#, Windows PowerShell, JScript.NET, IronPython, IronRuby, Managed Extensions for C++, Managed Jscript, Spec#, VBx, VB.NET, A#, Boo, Cobra, Chrome, Component Pascal, IronLisp, L#, Lexico, Mondrian, Nemerle, P#, Phalanger, Phrogram, PowerBuilder, #Smalltalk, AVR.NET, Active Oberon, APLNext, Common Larceny, Delphi.NET, Delta Forth .NET, DotLisp, EiffelEnvision, Fortran .NET, Gardens Point Modula-2/CLR, Haskell for .NET, Haskell.net, Hugs for .NET, IronScheme, LOLCode.NET, Mercury on .NET, Net Express, NetCOBOL, OxygenScheme, S#, IoNET, PL/IL, sml.net, Wildcat Cobol, X#,

AppFabricWindows Server and Windows Azure platform

AppFabric

CACHING

SERVICE BUS ACCESS CONTROL

MONITORINGWORKFLOW HOSTING

SERVICE HOSTING

SCALE OUTHIGH AVAILABILITY MULTI-TENANT MANAGEMENT

30

ParalelismoIEnumerable<BabyInfo> babies = ...;var results = new List<BabyInfo>();foreach (var baby in babies){ if (baby.Name == queryName && baby.State == queryState && baby.Year >= yearStart && baby.Year <= yearEnd) { results.Add(baby); }}results.Sort((b1, b2) => b1.Year.CompareTo(b2.Year));

31

Solución manual en paraleloIEnumerable<BabyInfo> babies = …;var results = new List<BabyInfo>();int partitionsCount = Environment.ProcessorCount;int remainingCount = partitionsCount;var enumerator = babies.GetEnumerator();try { using (ManualResetEvent done = new ManualResetEvent(false)) { for (int i = 0; i < partitionsCount; i++) { ThreadPool.QueueUserWorkItem(delegate { var partialResults = new List<BabyInfo>(); while(true) { BabyInfo baby; lock (enumerator) { if (!enumerator.MoveNext()) break; baby = enumerator.Current; } if (baby.Name == queryName && baby.State == queryState && baby.Year >= yearStart && baby.Year <= yearEnd) { partialResults.Add(baby); } } lock (results) results.AddRange(partialResults); if (Interlocked.Decrement(ref remainingCount) == 0) done.Set(); }); } done.WaitOne(); results.Sort((b1, b2) => b1.Year.CompareTo(b2.Year)); }}finally { if (enumerator is IDisposable) ((IDisposable)enumerator).Dispose(); }

Synchronization Knowledge

Inefficient locking

Manual aggregation

Lack of foreach simplicity

Tricks

Heavy synchronization

Lack of thread reuse

Non-parallel sort

32

Usando Linqvar results = from baby in babies where baby.Name == queryName && baby.State == queryState && baby.Year >= yearStart && baby.Year <= yearEnd orderby baby.Year ascending select baby;

.AsParallel()

Hyper-V 2.0 FeaturesSoporte de procesadores

64 procesadores lógicos en el hostHot Add/Remove Storage

Permite agregar discos VHD sin necesidad de reiniciar la VM

Second Level Translation (SLAT) Reduce la carga del hipervisor usando caracterísiticas

de los procesadores modernosVM Chimney (TCP Offload Support)

Tráfico TCP/IP puede ser asignado directamente a una tarjeta de red con acceso directo a la VM.

Processor Compatibility Mode Permite migración en vivo entre diferentes CPUs

(manteniendo la familia tecnológica).

net 4.0

Win 2008 R2

IIS 7.5

«Dublin»

SQL 2008 R2

Live Migration

ClusterNode 1

Network Storage

ClusterNode 2

Configuration Data

Virtual Machine

Memory Content

VHD

Memory Sync

Virtual Machine

User

net 4.0

Win 2008 R2

IIS 7.5

«Dublin»

SQL 2008 R2

Green IT - Core Parking

GeneralidadesConsolidando procesos en un servidor único

cuando las condiciones de carga lo permiten.Habilita a colocar procesadores en estado

“C”Beneficios

Reduce el consumo de potencia de la CPU

Windows Live messenger

Democratizando el desarrollo de videojuegos

Cloud Computing

Azure™ Services PlatformMicrosoft SharePoint Services

Microsoft Dynamics CRM Services

Costos:- VMs: (0.12 a 0.98)- Bandwidth: In 0.10 / out 0.15 (GB)- Storage: 0.15 GB/Month- Services: 0.15/100k messages- BDD Rel: 1GB/Month = 9.99,

10GB/m=99.99

6 datacenters18 connection pointsStorage availability:

99.9%/MonthVM availability: 99.95

El costo ya no es un impedimento

Common Language Runtime

Statically-Typed

C#VB

RubyPython

Dynamically-Typed

Dynamic Language Runtime

Dynamic Language RuntimeNuevos lenguajes: IronPython, IronRuby, F#• Tuples• BigInteger• Tail recursion

Standard Pystone Benchmark higher numbers are better

0K10K20K30K40K50K60K70K80K90K

100K

IronPython0.1

Python2.3

IronPython

1.0

Python2.5

Python2.1

46K

90K80

K

50K

36K

Interoperando con lenguajes dinámicos

La interoperabilidad con lenguajes dinámicos es complicada.

Calculator calc = GetCalculator(); int sum = calc.Add(10, 20);

object calc = GetCalculator();Type calcType = calc.GetType();object res = calcType.InvokeMember("Add",

BindingFlags.InvokeMethod, null,new object[] { 10, 20 });

int sum = Convert.ToInt32(res);

ScriptObject calc = GetCalculator();object res = calc.Invoke("Add", 10, 20);int sum = Convert.ToInt32(res);

dynamic calc = GetCalculator();int sum = calc.Add(10, 20);

BI de tiempo real: StreamInsightProcesamiento de eventos complejosEn tiempo realMinería de

datosConsultas SQL

«Madison» – DW distribuida

R2 en producción

ServiceBus

AccessControl

Workflow

Database

Reporting

Analytics

Compute Storage Manage

Identity

Devices

Contacts

Aplicaciones