Saying that a lot has happened in the world of technology over the last decade would be an understatement, to say the least. But if you ask Yohan Belval, DevOps Lead and Full-Stack Developer for our ShareGate, the rise of SaaS – or Software as a Service – may be the lynchpin of it all.
“In the past few decades, software engineering has to be one of, if not the most, interesting occupation anyone could adopt.”
DevOps Lead and Full-Stack Developer, ShareGate
Traditionally approached like an individual object – say a phone or an AOL trial cd – software had previously been packaged, marketed and sold to users who took it home and installed it locally. Conceptually, SaaS moved away from this framework and gave access to the software’s functionality as though it was a service rather than a thing to be bought. Today, a single instance of the software is hosted in the Cloud and accessed simultaneously by users from across the world. “What that’s meant for the past, present and future of technology,” says Yohan, “is an incredible sandbox of engineering opportunities”.
When SaaS means you need to stay sharp
Beyond changing the way we distribute software, the paradigm shift to SaaS challenges many of the core concepts related to software engineering. Since a single instance of the software can potentially serve thousands of clients at the same time, issues such as hosting, concurrency, security, caching and deployment strategies are now key to any product’s success. That means a big part of the engineering complexity now lies at the back end. Communication protocols, data persistence, authentication, authorization; the interesting daily challenges are endless.
With that in mind, as SaaS’ natural habitat – i.e. the Cloud – expands, more and more developers are sharpening their skills around infrastructure and operations.
With that in mind, as SaaS’ natural habitat – i.e. the Cloud – expands, more and more developers are sharpening their skills around infrastructure and operations. This area is more commonly known as DevOps and is one of Yohan’s specialties. Traditionally, you may have expected the IT crowd to tackle those challenges, but they’re now tied so closely to software development that mastering them makes for a huge advantage on the job market. Here are two areas in which Yohan has had to put that expertise to work over the last few years:
Securing personal information
One of the biggest challenges with today’s SaaS solutions is the amount of personal user data handled by a single application at any given time. As such, extra attention and care must be placed in properly securing and isolating information collected from users. Because of this, SaaS environments can be attractive targets for ransomware: software created by hackers to hold data hostage in the hopes of securing a ransom from the targeted company. In July 2020, for example, fitness company Garmin was held hostage in precisely this way. As a result, they were unable to provide their online service for 5 full days and eventually had to pay the hackers 5 million dollars to regain access to their data.
In a 10-year career, Yohan also faced a similar threat when ShareGate came under attack in 2018. Luckily, it had a lesser impact since it was a quality assurance environment that contained only fictitious data, used for testing purposes.
Proof that this kind of attack doesn’t just happen to others and that you always have to consider all scenarios.
“It was a wake-up call on a security level for us. Even if all we had to do was delete a disposable environment, we doubled-down on our sense of vigilance and we limited public information to what is really essential.”
DevOps Lead and Full-Stack Developer, ShareGate
Yohan’s takeaway? Always test the security levels of a new SaaS environment with quality rounds of testing before entering personal or valuable data.
Optimizing the Cloud
Another interesting challenge inherent to engineering a SaaS solution? Exploiting the Cloud’s powerful processing and hosting capabilities to its fullest potential.
One of the advantages to a SaaS environment is that the Cloud makes it easy to dynamically scale infrastructure according to the application’s required load, especially with containers and other such “virtualization” technologies.
But “putting in place a big machine won’t necessarily solve the problem” cautions Yohan:
“You have to carefully study the architecture of the software instead of throwing money out of the window. We have to identify key performance issues and conduct multiple tests before investing.”
That’s why the most successful SaaS developers cultivate a data-driven approach to every decision they make. Being a car guy, Yohan is quick to point out that this approach is similar to that of car racing techniques. Just like drivers before a race, developers shouldn’t simply start programming without getting to know the racetrack and doing several practice runs on the circuit. “It’s really an iterative process,” assures Yohan, “you have to think of everything that could go wrong and solve it before it happens by collecting a lot of data on [the] immediate environment.” This information is crucial for developers to continually adjust codes and make smart decisions.
Opt for small test environments and foster a data-driven approach with Cloud optimization in mind, especially at the early stages of development.