Describe your company and position.
PSL is a software development company. We are driven to help our clients, communities, and society. Our main goal is to provide the best software development services for the world. We have over 30 years of experience and over 560 engineers. We specialize in partnering with U.S. companies in order to solve their software engineering needs.
We have different areas of interest and expertise. We work with advanced processes and technologies and focus on complex challenges involving the cloud, DevOps, Big Data, machine learning, and advanced backend. We create different experiences in the frontend, and are working with chat bots. We work on challenging projects in the Bay Area, for example, and on DevOps in general in the U.S.
I’m the Director of Engineering at PSL. My goal is to ensure our company can better help more people. But specifically, I work to ensure that we use state-of-the-art technologies. I also work to ensure that the whole software development process is done properly, and I oversee the training and research processes at PSL.
Cloud & DevOps
Why is it important to have a cloud strategy for your business? What about a DevOps strategy specifically?
Both terms are tied together. DevOps, first of all, is a mindset; it’s not a technology.
The main purpose of DevOps is to accelerate the cycles and to move faster in your supply chain from the conception of an idea to the release of the idea. Then you can integrate faster.
DevOps has been around for a while and many people have different opinions about it, but we focus on the feedback cycle. The more we can integrate our feedback cycle, the more we can learn about the users of the application that we’re developing. We must adjust or learn new ideas in order to implement better solutions. This is key if you want to innovate. DevOps enables innovation and accelerated cycles.
ThoughtWorks mentioned that cloud is the new normal. That is what we have seen. Your business’s competition is really moving into DevOps and the cloud. RightScale just mentioned that around 85% of companies are moving into a cloud strategy. You mentioned that 80% of the businesses are exploring hybrid cloud as an option, but in general, the competition is looking for faster iterations and this is a proven way to do that.
However, there are going to be many challenges. This should not be a zero to 100 change; this should be a carefully calibrated process where you analyze which of your products are the best fit for the cloud.
You learn from the cloud. You mitigate risks with a cloud vendor. It’s not an easy task. You need to have a clear strategy and you need to leverage past experiences from companies like ours or from a lot of research. You need to iterate in order to have a better understanding. You need to do it step-by-step and have a clear strategy.
Public, Private, & Hybrid Clouds
What types of companies are the best fit for public, private, or hybrid clouds? What are the pros and cons of each?
The terms are not fully standardized. When we are talking about hybrid cloud, let’s talk first about a combination of a private cloud and a public cloud. We have seen that a hybrid cloud is a very good approach in terms of all the flexibility it gives you to get the best of the public and the private. It offers multiple options: Do you want to keep some applications in your own data center with a private cloud solution? Or in a separated private environment with a public infrastructure? You can do that.
For example, you may want to keep some data in your own data center for offline access. We have seen some businesses where you need to store information locally because you are moving – you are a ship, a car, etc. Second, depending on your country, there are some regulations that may force you to keep where you store and process data private. That may be a reason for using a private cloud.
However, a public cloud allows you to integrate with other services that you cannot do if you are primarily using a private cloud. Public cloud manages some infrastructure, so you do not need to worry about logistics, and the public cloud provides you with more speed to scale.
One of the things about the cloud is that if you are succeeding, you can keep growing. Which means that you don’t have to worry about implementing a big data center if you’re just a startup. The cloud allows you to scale in the way you need. If you are going to keep it in a private data center, you are not going to be able to explore that.
In the end, what we recommend for clients is to have the option of the public cloud for certain solutions. If you need to keep some data private for particular reasons, that’s okay. But it’s clear that a hybrid cloud, mixing public and private, seems to be a good option for a lot of businesses.
A 2017 survey by Clutch found that over 80% of businesses that aren't using a hybrid cloud are exploring it as a future option, though a private cloud remains the most popular option. What is your reaction to this?
Hybrid is a good option, but I also need to talk about a cloud agnostic approach. At the end, businesses are looking for flexibility and independence. Having your whole strategy fit into one vendor is something that many businesses are looking to move away from.
The name is not well standardized, but the cloud agnostic model is the ability to deploy to different vendors as you need. It’s a very valid option.
It’s clear that we have a lot of vendors right now – a lot of big companies. AWS, Azure, Google and IBM, for example, are always looking to create new services and are providing new competitive advantages over other vendors. It’s okay to leverage that. For example, you can leverage the machine learning service from one vendor. It’s good, at least from a deployment strategy, to have the ability to deploy on multiple vendors or refuse dependence on just one of those vendors. That’s something that clients are looking for more and more.
Continuous Integration and Delivery
Can you describe the importance of a continuous integration and delivery pipeline?
The practice of continuous integration and delivery work much better on the cloud. If you want to do continuous delivery, you need to implement infrastructure as a code, which is an individual infrastructure that is only possible in the cloud.
At PSL, we look to accelerate cycles in all ways. We prefer continuous integration that is more like a discipline than creating a continuous integration server. It’s team discipline that will allow you to iterate faster and get to know defects and potential improvement opportunities early on in the process. The faster you catch a defect, the cheaper it is to solve it.
This whole cycle from development and continuous delivery – allowing production without human intervention – is a key practice. It enables your company to move faster than the competition, which means you can test hypotheses and innovation faster.
Selecting a Cloud Service
What are some of the factors that companies need to consider when selecting a cloud service? What are the biggest challenges companies may face with their cloud service?
You need to consider your dependence on different vendors. Although some infrastructure as a service vendors are more homogenous now, vendors usually specialize in some platform as a service features or some other types of services that you should evaluate. These extra features can be machine learning or monitoring or others.
I think also you need to look at your architecture. Some vendors support programming languages that others don’t. But in general, my message would be that you should understand that the strategy you’re implementing should not be tied to a particular vendor. You need to evaluate the options that you have and take the best of each.
Paraphrasing ThoughtWorks again, there is a term that they mentioned: “poly-cloud,” which means to take the best of each vendor.
It’s great to not tie yourself to only one vendor. Use the best of each. At least for basic deployment and monitoring, you should have a level of independence that allows you to move from one vendor to another in the future, or to deploy to different vendors for the sake of availability or risk mitigation.
With the big data/fast data movement, you see companies moving to a more data-centric process. They are looking to data as a way to innovate and to find new business opportunities.
When you are looking to process big data/fast data, you need to first think about governance of that data. Second, you need to think about the scalability of that processing and third, you should think about the complexity of implementing large-scale efforts related to machine learning or data processing.
Cloud has made data governance of big data/fast data much better. You can process data through many different data streaming services, for example.
In general, machine learning can be empowered and accelerated by using a cloud strategy. A big part of your cloud strategy also has to deal with data management. With cloud-enabled big data and machine learning opportunities, you can enable new business cases through better use of your data.
We are seeing a lot of more sophisticated machine learning and data processing services. This is very exciting for us because we have been able to learn and test a lot of those vendors for complex challenges. It’s very important for businesses to be aware of those opportunities as well.