The Importance of Open Source. Cloud Native Tech and Developer Advocacy feat. Cheryl Hung of the CNCF

2021-07-15 -

Find out about the importance of Developer Advocacy, how Edge Computing is the next frontier in Cloud Native, why Kubernetes are not for everyone, and why End-User companies should contribute to the Open Source. Featuring Cheryl Hung of Cloud Native Computing Foundation, get expert enlightenment on Kubernetes from someone who heads a 600 member strong Open Source Community Ecosystem.

What Is CNCF The Cloud Native Foundation manages over a hundred open source projects like Kubernetes, Envoy and others. Then there are also over 600 member companies that fund the Cloud Native Foundation and keep it going. Cheryl manages the ecosystem of 150 end-user companies. End users are companies who are adopting cloud-native, like Spotify and MasterCard, and Apple, but they don't sell any kind of cloud-native services or products themselves.

The Cloud Native Foundation encourages all companies - especially the end-user companies - to be a part of the open-source community in whatever way they can. For some more mature, advanced companies, it means contributing directly to the open-source projects, like submitting pull requests on GitHub. But for other companies, their contribution can be just being part of the market research and providing case studies by sharing challenges they are having with cloud-native and what would they recommend to other people. Who is Cheryl Hung Since she was 14, Cheryl had a goal - to work at Google. Google was a cutting-edge start-up at the time, doing amazing things… Plus they offered free food. At the time Cheryl was still playing around with javascript and building terrible websites - but she put her head towards her goal, studied computer engineering, and by age 21 she was working at Google. She spent 5 years working at Google, first working on Google Maps, using C++ to build back-end features, and later in project management. She left Google in 2015 when Kubernetes and Docker were gaining traction. Having worked with Borg - the predecessor of Kubernetes at Google -she wanted to bring that style of building large-scale, reliable, distributed infrastructure out to the rest of the world and help other companies and help other people adopt it as well.

Nowadays. Cheryl works as an open-source advocate. She is still in the tech world and gets to learn about technology every day and play with different things, but day to day, coding is more of a side hobby. Even though as a 14-year-old she dreamed of just being a software engineer, by now she has realized that you have to go and find something you can do to bring value to the world. As an open-source advocate, she gets to help others on their journeys. Furthermore, being the public face of the Cloud Native Foundation, she is a role model and promotes diversity - this is something she would not have been able to do if she was a behind-the-scenes software engineer.

Advocacy as a Software Engineer Cheryl thinks that it's really important for people to not only be able to build high-quality software and do good work, but also to be able to communicate that to other people and show off what they're doing. This is something she feels most software engineers struggle with.

She encourages first-time speakers at her meetups - especially diverse speakers - because she thinks it is really important for there to be visible role models. It is also a chain effect- if you see a peer talking, you start to thinking ‘I think it would be cool if I could talk about what I'm doing. "You just need to go out there and share your story," Cheryl tells people. “You don't need to be a world-class expert in every single technology ever before you can talk about it.”

Being A Role Model When Cheryl was growing up, she didn’t have a lot of role models as an engineer. Now she is a #TechWomen100. So now even though it feels a bit strange for her to be a role model, she does try and reach out to people. “At the end of the day, we're all humans who are trying to do our best and try to work hard and do what we can. So your role model is not like distant people. They are people that you can talk to and you can get to know as well.”

Her Day-to-Day Work Cheryl’s mission is to make sure that end users can be productive and successful as they're adopting cloud-native. Much of her time is spent with the community, talking to them, figuring out what are the issues that they're facing now, figuring out how I can try to help solve them. As the CNCF is a vendor-neutral organization, she can’t recommend one vendor or product over another. But what she could do is match companies up - let's say match a large company struggling with their ML pipeline with another large company also using ML pipelines and perhaps together they can discuss the challenges and come up with a solution.

Her job is unique. Her role involves managing the community, keeping the industry moving forward, the open-source projects progressing and the project maintainers happy.

Cheryl is also responsible for the CNCF End User Technology Radar. What is Tech Radar Curated by the Cloud Native Foundation, the quarterly Technology Radar guides organizations about tools, their state, and how potentially useful it would be for a company of a certain size. Using crowdsourced opinions, the Tech Radar defines what technologies are the most mature, which ones are up and coming, and which ones are starting to fade. The answers are based on the actual experiences and opinions of the members of the end-user community. It has gotten a lot of positive feedback. For example, a company that is looking at database storage, or continuous deployment, uses these guides internally to figure out what they should be using right now based on what everybody else is using. Tech Radar is published every quarter and has seen great adoption. Too many review platforms are influenced by vendors, so people appreciate the trustworthy vendor-neutral perspective that the CNCF End User Technology Radar provides. The focus on the Open Source is what makes TechRadar unique over other reports like Gartner. Gartner focuses more on vendor technologies, while TechRadar knows more about Open Source tools - although they do include vendor technologies as well. The reports are available online on radar.cncf.io.

Kubernetes

There used to be a saying at Google regarding Borg (the predecessor of Kubernetes) “Borg makes it very difficult to run one of anything, but very easy to run 10,000 of it.”. The same is true for Kubernetes. Kubernetes has a steep learning curve, and takes a long time to onboard and build one application or service. If you need just one application, it is probably not worth it to learn Kubernetes, and thus you still need something like Docker Compose which allows you to start running something small locally.

The complexity of Kubernetes is making room for Platform-as-a-Service companies. Although Kubernetes has rolled out several tools for small use cases like Mini Cube which makes it possible to run a small Kubernetes cluster locally, Cheryl thinks that running it is not the difficult part. Cheryl thinks that understanding the interactions and the different components will always take time no matter how fast it is to spin up a cluster on Google Cloud. One still needs to understand what to do with it from then on. The idea of containers is still very new to a lot of people and Kubernetes is even more so. Beyond the complexity of getting started with Kubernetes, it gets even more complex as you advance as you need to make a lot more choices as you add some kind of observability framework and security to it. You also need to figure out how to make your database highly available etc,

Stateful vs Stateless Kubernetes One of the things people struggle with Kubernetes is stateful vs stateless conundrum. In 2017, Cheryl thought it would be solved in 18 months yet now 4 years later things haven’t changed much. Many companies have just started embracing running the stateful applications within their containerized infrastructure. Cheryl used to say that there is no such thing as a stateless application. "If you're doing something useful, you're going to have to store data somewhere. " She says. At some point, you still have to make a storage decision. Even if you've outsourced that to a cloud provider using, for example, RDS from AWS, it still comes with trade-offs and implications.

JAMStack There are plenty of frameworks delivering blazingly fast websites on the JAMStack. It's simple to use for static pages, yet as soon as it goes beyond it - it becomes harder to code. For example, Cheryl’s website runs on Gecko and GitHub pages and works excellently for static content - yet for everything else, she needs to integrate 3-rd party services. Though, being nerds, people are sticking to it even though using WordPress and Cloudflare would make lives much simpler.

Future Predictions for 2021

On her blog, Cheryl made 10 predictions for 2021, divided into Tech, DevOps, and Ecosystem. You can watch the recording and see the slides here. In general, she sees cloud-native deployments are getting more and more complex with more specialization. She is also seeing cloud-native move into areas like edge where previously we haven't seen very much of it before.

Future of Containers With the rate things develop these days, even predicting 5-10 years in the future is hard. The technology has barely been popular for 10 years and already university students don’t know a world without containers and downloading software from DockHub. However, Cheryl believes that containers will for sure be used in more platforms and will be more integrated into the OS. Now containers are a no-brainer for web-scale applications, and people can easily transfer something from a VM onto a container. But what we are going to see more of is containers in IoT and Edge Computing.

Edge Computing The Edge refers to when you move computing closer to the user. Closer can mean to the mobile phone in their hand or something a hundred meters away - anywhere other than a centralized cloud data center (which might be thousands of kilometers away). The edge gives a better user experience as the system can process things faster and deliver a better response to the user. The challenges of edge computing is that it removes the protection of things we have come to rely on like reliable networks and having a secure data center because you can control a data center but you can’t control what happens on someone's device.

However, some of the concepts behind Cloud Native technology can solve it. For example, you can very easily wrap a piece of software into a container, deploy that on one IoT device, test it, and then be reassured that you can deploy it to thousands of IoT devices at the same time.

Raspberry Pi is a good example for running containers on the Edge in a way. There are also a lot of companies offering edge computing as a service, in which they just offer their network and their nodes so that you can run like micro containers on them. Examples of this are Fastly and Cloudflare.

A nice example of switching something on the Edge is that one can just use an extension from Cloudflare or Fastly which just filters the traffic of your website, adds some security, and perhaps even scrapers - without you having to do anything with it. This is a departure from traditional web apps where everything is happening on your servers.

It is also the idea behind WebAssembly - that it enables people to build micro containers that are containerized and secure by definition. The edge enables people to run web technologies that you wouldn't be able to previously use like JavaScript on a virtual machine. It’s about expanding the different environments that you can run containers in.

Of course, this is still a very early, very nascent technology that Cheryl has not yet seen deployed at a large scale so far, but it is one of the trends that we see happening over 2021 and probably a couple more years into the future.

Open Source Commercialization of Open Source A lot of open source projects also are commercialized after a while. For example, MongoDB; elastic, and others at a certain time started becoming publicly listed. Sometimes it's because you have to form a professional organization to run something. Cheryl thinks that the commercialization of Open Source is a good thing, it is only natural that if you have great software, there has to be some reward for it. In general, CCNF sees commercialization as a way of making Open Source projects more sustainable. If it's a hobby project like open source was 20 years ago, maintainers can’t invest so much time in it. Even though they love working on it, at some point some they can't throw infinite amounts of time into something that takes time away from other things The CCNF likes to think of commercialization as a way the maintainers who are working on the open-source projects form companies around them which can capture some of the commercial value and then some of that value goes back into the next round of open source projects and supporting the maintainers. But if you look at Elastic on GitHub, the main contributor is still the founder of elastic. Commercialization does have its challenges though. Docker provides great value using amazing technology yet it was founded on open-source and Cheryl thinks they struggled a bit with properly monetizing, commercializing, and getting people to pay for it. Perhaps that is because it is primarily used by individual engineers and it's hard to monetize a product used by individual engineers as they don’t like to pay for software.

Encouraging Contributions to the Open Source Cheryl and the CNF encourage contributions of all kinds. They also offer additional support if the company has the willingness to contribute more, yet needs assistance.

Why it's Important End-users Contribute to Open Source

Sometimes End-Users (companies using Cloud-Native Technology yet don’t sell it as a product), don’t see how contributing to the open-source helps their business directly. After all, it does sometimes seem as though having engineers working on open source takes time away from building infrastructure and building services that can be used to sell shoes and sporting goods, and so on.

Cheryl believes that End-User Companies should contribute to open source merely to have a say on how the technology they are built on - develops.

If your business is built on top of open-source, it's really important that you have a say in these open source technologies, especially if you would like them to be around for the next 5, 10, 20 years just as Linux is. It's important for you to get involved so that you can determine the direction, the future direction, the technical direction of these projects. Cheryl sees four main reasons why companies, particularly end-user companies get involved with open source.

Cheryl sees four main reasons why companies, particularly end-user companies get involved with open source. 1. Learn from Peers - They are looking to meet their peers who are doing similar work like them. The Open Source community gives people the ability to understand how other companies have built their infrastructure and learn from each other and share what they're doing. 2. Recruiting - It's a developers market these days and good developers are attracted to working at a company that is a good open-source citizen 3. Long Term Strategy -sometimes that might be because they want to build a new business unit around something. Typically they have their own open-source project and they want to release that to the community. Sometimes it's because they want to build a business unit or a new line of workaround that open source project. 4. Involvement in the Tech their company is built on -Companies recognize that it is important for them to be involved in the technical direction of the infrastructure.

Challenges Some Companies Face With the Open Source - Legal Challenges - Sometimes the legal department doesn't have any kind of process about open source. Cloud Native Foundation first talks with the legal department and helps them figure it out. - Lack of Internal Champions - Even if companies acknowledge that open source is actually critical to their business, and worth investing in, there still needs to be someone to support the individual engineers involved. - Lack of Education - It's important to educate companies around the complexity of open source. Open Source contributions need a lot to be done before things are published. Even with a company like Zalando which has a lot of nice open-source projects.

She finds that most challenges are faced when getting started, yet once people get started they are fine. Yet a lot needs to happen within the organization first before they can get to that point, which is where the CNF helps out.

Do Developers Put More Effort Into Open Source? Tobias was wondering if an engineer contributing to open source is also sometimes more into the quality of his work because he or she knows that it's available for everyone and that everyone can check the code. This means they are motivated to put more effort into their code. Perhaps making your code open source ensures accountability?

Cheryl holds that this is true for things like Kubernetes where there are hundreds of thousands of contributors and everything is checked very thoroughly, and the quality of it is beyond what any single company or a single person could do. But is making code open source enough to motivate everyone? Not really, there are plenty of people that put what they want on GitHub and assume no one will check it anyway.

Diversity In The Tech World The thing that attracted Cheryl to the Open Source community and Kubernetes, in particular, is how embracing they were of diversity. “I'm mostly confident in what I do and my own skills, but it's great when you go to an event to a conference, into a company and you see other people who are like you,” says Cheryl. She has worked in a startup as the only woman for 2 years and the rest of the team was lovely to her, yet there is something to not feeling like you are the only one. Diversity does not happen on its own. It isn’t something you can check off on a list. You need to invest it continuously and across the company. Even past the recruiting stage, it's important for individuals to feel valued and supported by the company.

Even in the CNCF foundation things are not perfect, admits Cheryl. There are a lot of people from ethnic minorities, women, and LGBTQ+ people visibly contributing to open source projects, yet if you look at the total number of people who have contributed to the Kubernetes projects - it's only 3% women! Challenges faced by Women in Tech These days, no one really says girls are not good at maths any more. (In fact, you don’t need to be good at maths to be able to code claims Tobias). Yet women are still held back when they feel they are the only female teenagers there and perhaps the environment is not supportive of them. No 25-year-old male is asked about his future plans regarding having a family. Yet Cheryl was. Cheryl feels that there is still pressure in the environment that holds women back from applying for leadership positions.

Another thing Cheryl mentions regarding incubating future women in tech is that it's important to encourage women and girls to do what they enjoy doing. Cheryl enjoyed puzzles as a child and that is what led her into computer science and software engineering.

It is also important to support others as much as you can. Cheryl encourages women wherever she can to come and speak at the London meetup. It gives people that little opportunity to do something that they couldn't do before. It can mean a lot to their career and it's not a big thing that you have to do.

Things Changing Her Life At The Moment - Journaling - For the past 10 years, Cheryl has been journaling in a GoogleDoc. She writes down everything that happened in her life, work career, health, relationships, and more. It helps her to get down those ideas, to really think about it and what to do next - Anki - Anki is an open-source tool that helps people memorise large quantities of information. Cheryl is using it to memorise her vocabulary as she teaches herself Mandarin Chinese. She does it daily for 30 minutes to an hour and has seen her language skills improve.

The Importance Of Giving Other People Opportunities What Cheryl has learned most over the last few years is how important it is to give opportunities to other people. The further you get in your career, the more success that you see for yourself individually, the more you should spread that around, the more you should bring in other people. It's important to give people a nudge, an opportunity to present at a meetup, or an introduction to an open-source community - especially when they're early in their career, or if they're not very confident. These little things are very meaningful for people.

« back to Homepage