Veikko Väätäjä

Veikko Väätäjä

Cloud Architect

This is so easy that anyone can do this. Why do we need an architect?

To start building a new cloud solution is a very easy job. Just google or bing for a tutorial on how to create it in your preferred cloud. This is why I sometimes have discussions with clients and project teams on whether an architect is even needed in a project team.  Almost every time the answer would be that there is a need for the architect role. 

If the project already has detailed plans that are verified to match client requirements and just need to be executed, then there is no role for an architect. In data and analytics related software projects this is very rarely the situation. Normal projects in this area are either implementing something totally new, or a mix of something existing and something new. In these scenarios a cloud architect should be in the team to guide decisions on what cloud services should be used and how. Otherwise the implementation will be done without technical leadership and you will end up somewhere, not necessary there where you wanted to be. 

It’s about the new hard part: scalability, running costs and manageability

Architecture is the overall design and implementation guidelines for the information system. This purpose is the same in the new cloud era as it was in the old on-premise world. Architecture focuses on the impactful and "hard to change later" -aspects of the system. 

The "hard to change" -aspect has shifted hugely in the cloud era. The old hard to change aspect was hardware and software investments. With cloud services and zero investment this is the easy part now. The scalability and running costs are the new hard part, in addition to the manageability. Manageability has been important and will be even more important with the wide portfolio of cloud services used. Without good cloud architecture the complexity will ruin your system development velocity and you are not able to respond to new business requirements agilely. Without proper flexible architecture you could even get hurt by cloud service provider deprecating some old cloud service that you still depend on. I have heard this happened...

Good architecture is like salt. If you have too much of it, it tastes bad. If you have too little, it does not taste at all. With a good amount of architecture, the system works deliciously and nobody even notices the perfect architecture.

Good Cloud architecture is more about flexibility to change things when necessary. Purpose of cloud architecture is to make solution development and management easier and to provide more business value with better scalability and flexibility now and in the future.  Good architecture makes it easy to implement systems. It also makes it easy to maintain and develop these systems further. This can have huge impact on enabling new innovations quickly. You do not want to be fixed to your current setup for next five years in cloud and analytics world. Things progress so quickly that it is a requirement to be able to utilize new cutting-edge technologies all the time. 

Common pitfalls for cloud architecture

  1. Rely on best practices. Best practice documentations are nice, but sometimes you should create new even better practices. Even if someone states a best practice, it could not be that in your case. Do not blindly rely on best practices without understanding them.  
  2. Reusing the good old architecture. Things change, especially in the cloud. Do not rely in the old practices without validating. Especially do not reuse your on-premise best practices and architectures without validating them and modernizing to fit cloud. 
  3. Not knowing the requirements. If you do not know what the requirements are now and what they will be in the future, you cannot plan for fulfilling them. Sometimes the initial requirements can be very conflicting, e.g. "we want real-time, scalable and cheap system with 100% SLA". There is a big impact on technical architecture depending on the definition of real-time. People can talk about real-time system and mean that the data should be less than 1 hour fresh, or the data should be less than 10ms fresh. Make sure you know the requirements and know where you are aiming to. If you do not know where you are going, you may end up exactly there.  
  4. Aiming directly for the final architecture. Architecture is and should be evolving in cloud. Architecture used to be about big, hard to change decisions. In the cloud architecture is about designing things so that they are possible to change when needed. The flexibility can be an important requirement for example when planning for scalable architecture. Implement a target architecture plan and roadmap with steps to get there. Keep your target architecture up-to-date.

Implementing the right plan and implementing the plan right

You need the best team of superstar developers to implement a system that a decent architect could have designed so that any team with normal developers could have implemented it easily.

Architect does the planning of the system so that it fulfils the owner's requirements and fits for its purpose now and in the future. Sometimes this plan can be done at a very high and abstract level, sometimes it needs to be in a very detailed level with concrete development guidelines. 

There is a clear difference between developer and architect roles, even though some developers have already much experience and can also do architectural planning, and some architects are able to work hands-on and do the development. It’s not either-or, it is a continuum. Architect with hands-on experience is valuable also for guiding the detailed development work. But in general developer focuses “how” and on implementing the plan right while architect focuses on “why” and implementing the right plan. Both roles are necessary.

The world has changed and today there are new “hard to change” topics to solve. I recommend having a cloud competent architect in your team to make your cloud data and analytics projects prosper. It will make your projects succeed and pays back well.

Kirjoittajasta

Veikko Väätäjä

Veikko Väätäjä

Cloud Architect

Veikko works as a hands-on cloud data platform architect and architect team lead. As a cloud architect he maps clients' business vision to the most viable cloud technology solutions.