I am a Consultant in IT and that is..?
If you ask an IT consultant what their job involves, 9 times out of 10 they will say designing and building server solutions. The terminology may change a little, but ultimately it’s still servers, storage, networking.
If I ask DevOps?
DevOps is maturing but in relative terms a new thing. I have been a consultant for 10 years. I’ve also worked in DevOps teams, worked to agile methodology, and worked to the spirit of DevOps. Talk DevOps with someone and they will generally turn your attention to sprints, backlogs, automation, coding language, repository, and source control. Good DevOps guys will start talking Continuous Development (CD) and Continuous Improvement (CI). Consultants in the conversation hear “dev, dev, dev, that’s not me” – and in my humble opinion, not entirely acurate. Ultimately though, DevOps typically don’t design and build server solutions – the consultants do… for now!
So Mr Consultant, What is Infrastructure?
Now I’ll turn your attention to defining what consultants all the way through to support teams typically think of as infrastructure.
Since I started working in IT I’ve been working with servers. From physical Windows NT 3.51 servers to virtual Windows Server 2016 VMs. Today it’s virtual servers in Microsoft Azure. Relatively speaking not a great deal has changed for servers over the past 20 years. You still log onto them using a user account, you still manage features / services, and you still install applications on them. Many of those applications provide services to your user or customer base. Where they are housed has changed, and with the advent of public cloud that has made setting up a distributed virtual data centre a lot easier, cheaper, and more secure than doing it yourself. But at the end of the day a server is still a server, no matter where it is you are still limited by it’s OS capability. Infrastructure guys, love servers (and storage, networking, etc). It’s what we know, and because it hasn’t changed much, it’s been easy to continuously build knowledge to be good at building solutions using servers. For the same reason it’s not that hard to wrap your head around Azure IaaS.
New (ish) Era of Infrastructure
Azure Platform as a Service is not new, but it is very much infrastructure.
App Service Environment (ASE) and Scale Sets
The point of an ASE is to provide an isolated environment to host say, web apps, or mobile apps. Think dedicated web server in traditional terms as apposed to shared web hosting. ASEs can be scaled for a multi-region spread making your application truly global, and protected by a web application firewall.
ASE’s are split into front ends and workers. Neither of which are managed by you. You scale out your service plan, and Microsoft do the rest. Obviously the code that runs your app is still your responsibility.
Azure SQL and Big Data
SQL in the cloud. Think SQL Management studio, but you don’t connect to and manage the server bits. Microsoft manage the servers, you manage your database configuration. You can even mix and match features by having SQL AAG on SQL servers using Azure SQL witnesses.
This service is complemented by:
- Azure Datalake – large volumes of unstructured data (telemetry)
- Azure Data Factory – orchestrates large volumes of data, publishing into,
- Azure SQL Data Warehouse – data analytics (slice and dice)
- PowerBI – presenting data analytics
- Azure CosmosDB – globally distributed data by nature
With Microsoft (Office) 365 Microsoft took your Exchange email systems, SharePoint systems, a portion of your Enterprise Voice, and a portion of your storage that you were hosting on-prem. They put it in the cloud, put a barrier around it, and gave you a web front end for self-service management. This is the absolute epitome of PaaS.
Microsoft also did this with Microsoft Project Server, and CRM.
You’re still running your email on those systems, its just Microsoft data centre teams managing the server infra instead of you.
You’re going to tell me I’m blurring the lines here with what is and isn’t infrastructure, and to be honest I am, but only because I’m trying to unlock a view point. You integrate your infrastructure with these services, so they become an extension.
For example, I have an SQL database. I need some infrastructure to host it. I can choose Microsoft SQL Server, or I can choose Azure SQL as my database infrastructure of choice. I’m no longer making the distinction between PaaS and IaaS, I’m just choosing a service by it’s function and benefit, rather than its label.
The easiest way I can think of to describe microservices is to use an example. Think of a monolithic web application. Now split it down into much smaller parts, or functions. Each of these parts becomes a microservice. I can hear you asking, why would I want to do that, it sounds complicated? There is one big reason, scalability. Monolithic apps are typically very difficult to scale out, quickly or otherwise. When you start breaking your app down into micro parts using a microservice, then that service be elasticated very easily if just that part needs to burst beyond it’s current resource allocation.
“That sounds like a lot of management” – don’t worry there are orchestration services for that.
A container is another evolution of the server. Think Windows Server feature as a container – just enough code to stand up the service which can then operate a portion of your application. The container also contains enough code to be able to replicate itself when told to. As you can imagine a container has a much, much smaller footprint, resource cost, and attack area than a VM.
The characteristics of a container are defined at creation. For example a container configured for web services (IIS) will always be a container for web services. You want to add another service to that container – destroy it and rebuild it. You would store your code (the part that is likely to change regularly) in a repository that your containers have access to and read from.
Containers have been around for a while, indeed they are built into Windows 2016. However to manage those “microservices’ you need an orchestration platform for load balancing, scaling and security (auto-patching).
Docker and Kubernetes container orchestration platforms have been around for a few years. Microsoft have been operating a Docker container service on Azure for over a year, and Kubernetes as a service on Azure, ergo Azure Container Services (AKS) is in preview now. There is firm commitment from Microsoft in these areas, and it’s no wonder when current predictions from Gartner state that 50% of enterprises will be using containers by 2020, up from less than 20% now. This is fuelled by prediction of enterprises moving larger production workloads to containers rather than just pilot workloads.
With investment in Kubernetes managed by Azure, and continued investment in Service Fabric, leveraging all the serverless architecture power, inherent security, and innovations, Microsoft are aiming to quell the current concerns around container adoption.
What is the Point to all these Ramblings?
The IaaS space is a narrowing band. Continuing to only work in this thinning vertical might hone your skills for lifting and shifting into cloud, and to be honest servers are going to be around for a while to come, or if you’re a CIO it will satisfy your need to be in the cloud. However, the rapidly expanding non-IaaS infra will steadily eat into what you migrate, and what you continue to manage. Businesses are leveraging the innovations that come with cloud evolution. If you don’t evolve too, then where are you going to be in 18 months time?
A lot of people laughed when Microsoft announced they were starting Exchange Online, and Azure. “This cloud thing… it’ll never happen… people will never trust their data in the cloud”. Then everyone sat up straight when Microsoft revealed their multi-billion dollar commitment to building data centres and connectivity round the globe to host the services. Today it’s the fastest growing and highest valued cloud service, with customers clambering to leverage the possibilities, and unlock their business potential.
Now Microsoft are investing in the next evolutions of big data, microservices, serverless architecture, AI, and IoT. They are bringing these Azure services to bear, just as they did with the advent of Office 365 and Azure Classic.
So now, businesses are being shown alternative technologies to innovate or transform as they move to the cloud, rather than just lift n’ shift their servers again. The possibilities available now for anyone considering a move to the cloud are bigger and wider than ever.
Do you want to be left behind?
One Reply to “Azure Microservices and PaaS as Infrastructure – That’s a DevOps Thing, Isn’t It?”