As technology agnostics, we work with almost all cloud service providers. At the same time, cloud systems are evolving so rapidly that it's impossible for an expert to stay on top of everything. Can an expert focus on just one solution?
Through projects I've become familiar with Amazon Web Service, Microsoft Azure and Google Cloud Platform. In addition, we're often building demos on IBM Cloud and I've also tried RedHat OpenShift. I googled "cloud providers" and got the top 15 answers. Some of the names were familiar, but some I had never heard of.
We tend to call ourselves technology agnostic – we don't believe in universal tools – which is obviously true on an organization level. But what's my personal situation? Can I truly be an expert if I only want to focus on one thing?
From one platform to multiple choices and cloud
When I was studying we used to joke that the head of the department had Microsoft underwear. There was some sort of battle already between Open Source and Microsoft. We used a lot of Microsoft Technologies, remember Visual Basic? What a fantastic tool, you could draw a user interface with forms! Gladly there was object oriented programming courses as well, which the VB didn't suite, so I got to know Java as well.
Back then, public clouds didn't even haunt us in our nightmares, applications were executables running on local system. I don't miss those days at all...
When I was working in a software company there was a clear selection of the solutions we used to build the platform on, and again it was Microsoft Technologies. Silverlight wasn't the best choice though... Emerging public cloud changed the company to start moving the stack into AWS cloud. Well, no harm running .NET in AWS Infra. At this time I started my journey in public cloud as well; serverless computing, APIs, no-sql databases, lambda architecture, all the cool stuff. I worked in that company for 16 years, then it was time to move on from a kind of niche technology to something a bit more common.
This is the time I became technology agnostic, and I called myself a generalist. As a solutions architect I have relied a lot on my colleagues: in knowing the details the lead developers are worth their weight in gold. Nowadays the solutions designs I see are made on PowerPoint. You can pick a reference architecture from all the major cloud providers for different use cases and there you go, a nice architecture design for our customers. I can do that for Azure, AWS, GCP, you name it. They all have pretty much the same components too, message queues, managed relational databases, container platforms and so on.
If I would consider cloud platforms just as an extension or a replacement for my on-premise network everything would be even easier. Just use the compute and maybe storage and custom code everything on top of that. But that's not the main point of the cloud platforms.
What is the point of cloud platforms?
Basically, cloud computing services are categorized into three types:
- Infrastructure as a Service (IaaS)
- Platform as a Service (PaaS) and
- Software as a Service (SaaS).
IaaS gives the greatest flexibility: just do the computing, networks and storage from cloud. PaaS already is something a bit more productized, database as a service for example. SaaS is the most productized form of a cloud offering. They are usually third party solutions running on cloud like Salesforce.
PaaS is my favourite: they are the bits of technology required to run your solutions. PaaS doesn't include the business logic and that's where we start our work. The asset for a consulting company is the personnel that creates the business logic. Because of PaaS we no longer need to invest a lot of time on the infrastructure but can really focus on the business value. Second asset are the reusable components: DevOps methods and ready-made CI/CD pipelines.
With these assets we can create value to our customers faster. No need to spend excess time building the infrastructure and going from 0 to 60 happens in days rather than weeks.
For example, building a Spark Cluster – which used to be complex and something only a very specialized person could do – now takes literally minutes to ramp up. As does the entire infrastructure for specific customer workflows.
Keeping up with the development of cloud services
All of the cloud providers obviously offer you all of this. Let's take lambda architecture as an example. The architecture pattern is the same in AWS, Azure and probably in all others as well. The devil lies again in the details. Even though Databricks (Spark Cluster) is in the center of both clouds, the other components around it vary. It's Azure Data Factory, Storage, Event Hub, Functions, Stream Analytics, SQL DW, Analysis Services vs. AWS S3, Kinesis Firehose or Data Streams, Lambda, Redshift, Kinesis Analysis...
These component are loosely coupled and could be replaced with other components or newer versions.
There's also strength in numbers. I know now that people around me are working mainly with the same components as I am and I can actually get insights from them. The community also goes beyond our own organization: I know Microsoft Architects and MVP's whose responsibilities are to train and help us. That's just amazing. That's true for other clouds probably as well but the Microsoft guys I know by name and that always helps.
My choice? Azure.
As you probably guessed, my choice is Azure. I've had only one small affair with Google Cloud Platform but otherwise Azure has been my one and only. The past few months have been great: I passed the certification exams to be an Azure Solutions Architect Expert, so I've put a lot of effort and focus on Azure.
Now I can really say with confidence that I am the Azure Lead at Siili Solutions.