[Run Reloaded] Innovación y liderazgo (Pablo C. García + Jorge Rodríguez)
-
Upload
microsoft-argentina-y-uruguay-official-space -
Category
Business
-
view
414 -
download
0
description
Transcript of [Run Reloaded] Innovación y liderazgo (Pablo C. García + Jorge Rodríguez)
Innovación y Liderazgo
Jorge Rodríguez([email protected])Pablo García ([email protected])
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