Today I thought I’d cause a little controversy by comparing my First Principles (things I know to be true) related to building high performance, scalable systems (software, compute, storage and networking) with current conventional wisdom.
Among most architects today, current conventional wisdom states that your architecture must follow a microservice software pattern, use containers like Docker, capture data in an event streaming platform like Kafka, persist data in a NoSQL database, be managed by something like Kubernetes or Mesosphere and run on Linux if you want to have a high performance, scalable system.
So what is something I know to be true from the dot com era?
Back then I was fortunate enough to be part of a team that built an energy trading platform that allowed multiple counterparties to buy and sell financial instruments (think NASDAQ). This platform was built on 32-bit Windows Server 2000 with some kind of Intel Pentium CPU. Classic Active Server Pages would send and receive XML fragments over HTTPS to and from brokers from every major energy company + NYMEX and the Intercontinental Exchange (ICE) following a RESTful API pattern. Incoming data was queued in MSMQ and free-threaded objects pooled inside Microsoft Transaction Server (MTS) moved that data in and out of 32-bit SQL Server 2000. The databases were clustered and Windows Server got 1 GB of RAM whereas SQL Server got most of the remaining 3 GB of RAM. The Internet Information Servers running ASP 3.0 used the built-in network load balancing service (NLB). When we needed to update the software, we just took the servers out of the cluster one by one to make the update. No biggie.
So what’s the takeaway from all this? As someone who has played a prominent role in the Internet of Things space over the years, I struggle to find modern systems that have to deal with the transactional and analytical load that I witnessed with the system I helped build 20 years ago. In spite of all the promise and talk, I’ve yet to see any IoT system that deals with a fraction of the load the world’s financial systems handle effortlessly with their antiquated architectures and relational databases.
Why were we able to do so much more with so much less back then?
Remember folks, we’re just flowing current through a gate to establish a high or low voltage at a particular point in the circuit. The farther away you abstract yourself from this, the more resources your system will require and the slower the system gets. Don’t be impressed by architectural diagrams with hundreds of lines, boxes, arrows and triangles going every which way. Complexity kills. New programming languages, frameworks, and architectural patterns come along all the time. Use you best judgement and fall back to your own first principles before deciding to jump on the next bandwagon.
I was thrilled to join Gus Emery (@n_f_e) and JJ Hammond (@jjhammondmusic) for a lively discussion of the past and future of Microsoft enterprise mobility on CodeCast Episode 12 of @STLTechTalk.
For those of you who couldn’t make it to San Francisco, here’s my session on Wrapping a Mobile API around your Enterprise and taking Data Offline with NoSQL on Windows Phones and Tablets from //build/.
Enterprise mobility is a top priority for Chief Information Officers who must empower employees and reach customers by moving data from backend systems out to apps on mobile devices. This data must flow over inefficient wireless data networks, be consumable by any mobile device, and scale to support millions of users while delivering exceptional performance. Since wireless coverage is inconsistent, apps must store this data offline so users can be productive in the absence of connectivity.
In this video you’ll learn how to build fast and scalable REST + JSON APIs using the ASP.NET Web API while employing techniques such as data sharding and in-memory caching. On the device, you’ll learn how your apps can work with offline data via in-memory NoSQL tables that use LINQ to support the same CRUD operations as relational databases. You’ll walk away from this session with the ability to deliver flexible server solutions that work on-premise or in Azure and device solutions that work with Windows Phones and Tablets.
I’m pleased to announce that my newest book, “Keeping Windows 8 Tablets in Sync with SQL Server 2012,” is now available for sale.
Spending a decade travelling the globe to help the world’s largest companies design and build mobile solutions had taught me a few things. Large organizations are not interested in constantly running on the new technology hamster wheel. They prefer to leverage existing investments, skills, and technologies rather than always chasing the next big thing. Don’t believe me? Take mobile and the cloud for example:
In 2003 I was building Pocket PC solutions for large companies that wirelessly connected apps on those devices to SAP. I assumed mobile was going mainstream that year. I was wrong. I was early. Mobile apps wouldn’t explode until the end of the decade with the iPhone 3G.
In 2004, my partner Darren Flatt and I launched the first cloud-based mobile device management (MDM) company to facilitate software distribution and policy enforcement on early smartphones and handhelds. Early again. MDM didn’t get big until the end of the decade.
At PDC in 2008, my company launched our cloud offering called Azure. We skipped directly to the developer Nirvana called Platform as a Service (PaaS). I spent a few years doing nothing but speaking and writing about Windows Phones communicating with Web Roles. Turns outs companies wanted to take smaller steps to the cloud by uploading their existing servers as VMs.
Being early over and over again taught me how the real world of business operates outside of Redmond and Silicon Valley. Businesses need to make money doing what they do best. Where appropriate, they will use technology to help them improve their processes and give them a competitive advantage. So let’s cut to the chase and talk about why I wrote my new book:
Tablets and Smartphones are taking over the world of business and outselling laptops and desktops. This is a well-known fact and not speculation on my part.
There are 1.3 billion Windows laptops, tablets, and desktops being used all over the world. Windows 7 is in first place with Windows XP in second.
Companies run their businesses on Microsoft Office combined with tens of millions of Win32 apps they created internally over the last 2 decades. Intranet-based web apps also became a huge force starting in the late 90s.
Tools like Visual Basic, Access, PowerBuilder, Java, and Delphi made it easy to rapidly build those Win32 line of business apps in the 90s and helped ensure the success of Windows in the enterprise.
Many of those developers moved to VB and C# in the 2000s to build .NET Windows Forms (WinForms) apps that leveraged their existing Visual Basic skills from the 90s.
Some businesses built Service Oriented Architecture (SOA) infrastructures of Web Services based on SOAP and XML over the last decade in order to connect mobile devices to their servers. Most business did not, and instead opted for out-of-the-box solutions that didn’t require them to write a lot of code so they could get to market faster.
While the “white collar” enterprise recently started building business apps for the iPhone and iPad, the “blue collar” enterprise has been building WinForms apps for rugged Windows Mobile devices using the .NET Compact Framework and a mobile database called SQL Server Compact for over a decade.
Most businesses run servers in their own data centers. Many of them are using virtualization technologies like Hyper-V and VMware to help them create a private cloud.
Of the businesses that have dipped their collective toes in the public cloud for internal apps, most of them are following the Infrastructure as a Service (IaaS) model where they upload their own servers in a VM. Just look at the success of Amazon and the interest in Azure Infrastructure Services.
So the goal of my new book is to help businesses transition to the tablet era in a way that respects their existing investments, skills, technologies, enterprise security requirements, and appetite for risk.
Since I’ve been involved in countless mobile projects where companies used the Microsoft data sync technologies already baked into SQL Server and SQL Server Compact, I decided to illustrate how to virtualize this sync infrastructure with Hyper-V. With an eye towards existing trends that are widely embraced, this gives businesses the flexibility to use this proven technology in a private, public, or hybrid cloud. Companies authenticate their employees against the same Active Directory they’ve used for over a decade. I’m deadly serious about security and you’ll be glad to know the technology in this book handles it at every tier of your solution with Domain credentials plus encrypted data-at-rest and data-in-transit. You also have the option of synchronizing mobile data with any edition of SQL Server 2005, 2008 or 2012 using Microsoft sync technologies that takes care of all data movement plumbing. Your development team avoids writing thousands of lines of code to create web services, sync logic, change tracking, error handling, and retry logic. With Microsoft lowering risk to your project by taking care of the server backend, security, and data sync technologies, your team can focus on building the best possible Windows 8 tablet app for the enterprise.
Speaking of tablet app development, it’s important to show you a path that doesn’t force you to learn all-new tools or programming languages, frameworks, or paradigms. As a developer, you get to keep using Visual Studio along with the Desktop WinForms skills you’ve mastered over the last decade. Better still, you can accomplish everything using the free version of Visual Studio 2012. While you might be thinking Windows 8 tablet solutions must be created via Windows Store apps, this is not the case. Instead, I show you how to apply Modern UI principles to Desktop WinForms apps that are full-screen and touch-first. Concepts like content over chrome, use of typography, and UI elements with large hit targets are all covered in detail. I also respect your investment in Windows 7 laptops and tablets by ensuring your touch apps are backwards compatible and keyboard + mouse/trackpad friendly.
If you’re looking to build a new Windows 8 tablet app using what you have and what you know, this book is for you. If you’re looking to port an existing Windows XP or Windows Mobile WinForm app to a Windows 8 tablet, this book empowers you with the skills to make your porting effort a successful one.
The takeaway is you don’t have to scrap your existing investments to participate in the tablet revolution. I purposely made the book low-cost, hands-on, short, and to-the-point so you can rapidly build mobile solutions for Windows 8 tablets instead of wasting your time with theory. Click here to take “Keeping Windows 8 Tablets in Sync with SQL Server 2012” for a spin so you can start building mobile apps for the world’s first and only enterprise-class tablet today.
Check out the interview I did with David Goon at Tech Ed Europe 2009 in Berlin.
I discuss Microsoft’s Mobile Enterprise Application Platform and talk about how it aligns with Gartner’s MEAP critical capabilities and how it can save money for companies.
With the tidal wave of mobile and wireless technologies sweeping across both the consumer and enterprise landscapes, I believe MEAP offerings give us a glimpse of a new standard for designing all future infrastructures.