Can I focus on one thing only?
I googled "cloud providers" and I got a response of the 15 Top Cloud Computing Services. Some of us have been working with pretty much all of the cloud providers in the past few years. I have been working on projects with Amazon Web Service, Microsoft Azure, Google Cloud Platform, we build demos on IBM Cloud, I've experimented with RedHat OpenShift.
"Can I just say that I want to focus on one and be truly an expert?"
On the list there are the familiar ones, but some of them I haven't even heard of. Especially in the consulting business, we call ourselves technology agnostic, which obviously is true on an organization level, but how about me?
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 on 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 got technology agnostic, and I called myself a generalist. As a solutions architect I have relied a lot on my colleagues, in details the lead developers are worth their weight in gold. Solutions designs I see nowadays 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 extension or 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. I would just lose the main point of the cloud platforms.
What is the point on cloud platforms?
Basically, cloud computing services are categorized into three types; Infrastructure as a Service (IaaS), Platform as a Service (PaaS) or 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 I love, 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 the 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 sooner to our customers. No need to spend excess time to build 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 different clouds
All of the cloud providers obviously offers you all 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.
"That's the thing, cloud systems evolve so rapidly that you cannot keep up with all."
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 have 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 in Siili Solutions.
Have you heard of our new solution tribe in Siili? We call it Siili Azure Studio and It is all about Microsoft Azure. And hey, we are hiring, join us to the dark side as Azure Data Architect or Azure Data Engineer!
Or if you prefer something else, join us as a technology agnostic, it's your choice...