Because I can't see my full screen, so maybe from time to time, I will check if everything is working well. Firstly, again,it's great I'm honored to be able to deal with training today. My name is Steve. I'm working in Alibaba Cloud Training and Education Team. Today, the topic is DevOps. We know DevOps is a very big topic. So with the time limit, we will focus on these following points. Hopefully, I will emphasize the target of the training today. Based on this training, hopefully, you can have some takeaway from my session. Firstly, you will have a direct understanding about what is Alibaba Cloud Container Registry and what is Alibaba Cloud Container service and their highlights, and more importantly, about the selling point. Secondly, is about I will do the live demo. Through the demo, hopefully you can understand how can we connect the Container Registry and Alibaba Cloud Container Service, especially for GitHub, and how can we connect them together to create, automatically, software pipeline. After you check the one code, it can ultimately deployed to your product environment. That will be the two major learning points and learning target are we going to achieve today. Lets look into the first slide. What is DevOps? I believe some of the people may have some ideas about DevOps. But from the live chart, you can see when we talk about DevOps, we're actually talking about two bunch of peoples, the developer and operation guys. Before the DevOps concepts come out, these two bunch of people they can now work very well together. Previously, developers they only cared about how fast I can view the software. But on contrary, the origin guys were more concerned about, how can I make the system more stable? Given some small changes, I need to make sure it doesn't break my existing ramming product on the system. They have two totally different demands and requirements. But all in all, when we look into the right chart, we see there are two things we need to think about talking about DevOps collaboration. Not only we need to make sure the whole software development value chain can be running smoothly starting from the soft code development to the continuing integration through the path and some configurations deployment, then finally your product may go to the market. This line, how can I make it more smooth? Another direction we need to consider about DevOps is, how can we still organize our project and smooth as possible? Which means starting from the project planning, we want to track the projects where it is just like the RGL methodology, and finally between the developer, task engineer, and project manager, and even the operating guys, we can use some collaboration tools to communicate. All in All, this is idea of the DevOps. In the following slides, I will go more and more details to illustrate how Alibaba Cloud really implement this idea. But one guy we shouldn't forgotten his name is called Patrick. This guy initiate the ideas of the DevOps. Just remember his face. Starting from mid-year to some nine, this guy borrowed the idea from a company of the Flickr and they're trying to introduce the concept of DevOps and organize the first DevOps Summit in year 2009. Now it's such a popular idea for every engineer and software engineer know. DevOps is very important. I don't think I need to spend too much time to talk about it's importancy regarding to the quality improvement and make your software development more scalable and also to bring work more efficiency. I want to emphasize here is about the cost saving. Why the DevOps can bring cost saving to your organization. There's a very famous saying that if you fix something too late, will cost you even much. We are developers. We all know that, for example, if you're software had a bug, if the bug was not found until the product was already released to the customer, then if you want to call back the software and the sending of packs to the customer, you can imagine how much cost you may have. But instead, if you found this bug in the very early stage, like even the checking their first code after running, you need to test, the system automatically sends feedback that you have a bug here. That will save you a lot of cost. Think about that. That is the key value of the DevOps, to make sure your whole product line, the software developing the product line, running much faster and the feedback can begin much faster. Here I'm trying to show this slide, I'm not trying to scare you out. I'm just saying that again, regarding DevOps, there's so many choices you can make. Because if we split the DevOps into the different categories. Later on we will introduce the idea of how to comfortably split DevOps into different categories. But we do have a lot of choices. But how can we make a better choice through such a big menu? If you are ordering in a restaurant and it gives you such a big menu, how can I pick up the one I really need? I'm going to introduce what Alibaba Cloud can offer based on this very big chart. Before we move to the specific species we prepared for you, we can review the software developing procedure a little bit deeper. Because some people before the broadcasting, the feedback that they may be more interested in the CI/CD process. Here, when we talk about continuous integration and when we talk about it continuous delivery, what are we actually talking about? Through this small milestones, you maybe be able to understand what we are actually talking about. Because if you are a developer, when you write down the first line of the code of the software, the first thing you need to do is maybe do some testing, make sure that the code is very well organized, then you do your first build. Because usually the developer own a small module, they didn't give up their own module. They then pass a unit test, and then they begin to collaborate with the other teams because other teams are in charge of the other modules or other features and when you put all these features together, we call them the integration. That is the Integration process. How can we put the different software modules and the pieces together and make sure it can be bundled into a software package including all the functions we want to provide for this release. That is Software Package. With your Package Software make sure it's installable, it's testable, it's stable then you deliver it. You deliver it to your customers through different channels like the APP store, nowadays people sell through that. Maybe you can sell it in a disc. Nowadays we have the SAS software, you can test and release it on the browser so your customer can access your new product software [inaudible] and immediately. That is called software delivery, where we want to deliver to someone else. After the product was used and released, you might find some problems from the customer, some feedback. You do the bug fix. You'll go back to the first step, continue, and then repeat the whole software life cycle. That's the basic idea of the software integration and software delivery. It's called a continuous integration and a continuous delivery because we want to continue this cycle again and again. [inaudible] Well now you know the continuous integration concept. But what is delivery? Now let's look into two possible infrastructures to deploy your software to the product environment. Again, I'm naming this slide the Hypervisor Based Infrastructure for a reason. Because previously when we talked about DevOps, maybe three years ago or 10 years ago, we were still talking about the physical deployment of your software. After you develop your software, after you make your first release, you'll want to install it into an environment called the Test. You want the other team to test it. Then you'll want to put your software into an environment called the Stage environment, which means you're still not very confident about your software being deployed directly into the Product environment. You want to put it in a Stage environment where the whole environment is very much like a real customer environment. You'll have your software running there for maybe one week or even three weeks, to make sure everything is working fine now that you have more confidence to move to the product environment. But at that time, as I said, you were trying to leverage the hardware and maybe the go-to machine from the Cloud. All these DevOps Continuous Integration idea is based on this work flow. The developer submits the code into the Source Code Repository and you have some CI, continuous integration server, and the CD server to organize all the package and build the image. That's why you need some storage like the OSS to install something called the ECS image, it's the operating system image including your software stack. Then in the environment you need to deploy will pull the package or pull the image from here. Finally through the CD server it can be put here, here, or here. At that time, because we are using the Hypervisor Based Infrastructure like the ECS or On-Premises hardware, the tools we are trying to leverage is something like the Terraform or Alibaba Cloud resource or test service. Or you may be familiar with the configuration providers like the Ansible, Shaft or packer. But nowadays, this is obsolete. I don't think too many companies will still working on this infrastructure, because regarding DevOps and the Docker, we are moving to something like this. This framework looks pretty much like the previous one, but the fundamental is different. The fundamental infrastructure is different because now I'm seeing your test environment, your stage environment, and a product environment, now are all deployed through container instead of the ECS or the physical hot hardware. We were putting the environment in a container. Most specifically, I would have said the combinative whole instructor. Also, at the same time, the image built, we don't put it into OSS, it's not a good choice. Now, what do we put it into? We put it into a container registry. Remember the container registry is the product we use to hold all the Docker image you'll build so that we can always have this environment to being able to pull some image, the most analytics image from there. The other parts are still the same, the git part and the CI/CD, but who will play the CI/CD's role? I will give you more explanation later on. Nowadays, while we're regarding the DevOps and the Docker based infrastructure, DevOps infrastructure, we are talking about some new tools, like the Kubernetes, like container registry, even the Prometheus, if you know, Prometheus is for logging and monitoring. We can even leverage the Lambda idea. The function computed from Alibaba Cloud to do some very quick [inaudible] department and the clue scripting development. I want to use these two pictures to will give you the idea about how we're moving now. The IT instructor is moving from the UCS based DevOps to the Docker based DevOps. Remember this is called the GitOps, it's very important. Now, we have a basic idea understanding about the DevOps that's looking through the Alibaba Cloud products. Here, I will recall the constant like the DevOps, how can we split it into the different category? Because for the human being, our learning habits is if we can split one concept into the small pieces so we can grab and understand each piece very well, so we can wholly understand the idea. DevOps, we split into the different category like the IaC. What is IaC? IaC is the infrastructure and Code. The idea of the IaC is previously in the hardware on-premise database, hardware in hardware, we cannot do software management too much. But nowadays, we have Docker. Docker is totally a self-service solution. We can create a Docker and create a different architect just based on the hyper-weather environment. We would turn the whole infrastructure into the software. It's infrastructure and code. That's where the concept comes from. In the middle, we have a two-step reaction like the PaaS and the CaaS. PaaS is a very common idea from the Cloud computing platform and the service. Platform service is usually the middle layer which provide a lot of API and solutions for the application layer can be referred to and to call from. The CaaS is container and the service. It's not a very common idea, but I love it here because we have a full container service products in Alibaba Cloud. Again, a very important concept of a CI and the CD, Jenkins is very popular. From your feedback before they allow greater costing, I see a lot of people really use the Jenkins in your daily work, and today I'll also introduce the download of the GitLab. You'll understand what the GitLab actually can do. It can integrate with Alibaba Cloud products. The last one is logging and monitoring. Logging and monitoring is about feedback. Without the feedback, we cannot improve. We need to know what is going on, what is going wrong, and what can we do better and make sure the whole life cycle can be running again and again. This is idea of how can we separate the DevOps into the different category. But honestly speaking, Alibaba Cloud didn't provide everything here because some of the products, we call them the open-source tools. But it can very smoothly collaborate with Alibaba Cloud products like Prometheus, like Jenkins, like the Terraform, Ansible, those are from the open source community. But Alibaba Cloud, what we have, you can see, Cloud Monitor, our product, Log Service, very powerful, CodePipeline, you can take a note here, the CodePipeline is now only available in the domestic market. I will suggest you to consider the a Jenkins or GitLab to manage your products and manage your product pipeline. Then we have the container service, I've introduced today and the Container Registry and also the function compute, and the ROS. Let's look into some details. Again, I want to re-emphasize the importance of the Docker and the cognitive, the significant change they bring to a DevOps work, okay. Again, because Docker was so lightweight, was so quickly to be deployed and destroyed, which turn over the whole value chain into a next level of the DevOps. Nowadays you check in one line on the code, right? It only takes minutes. You can go through the unit pass, you can go through the deployment and [inaudible] , to stay all new creative line of the code into protecting environment. That is all, you know, the benefit that came from the Docker technology and equivalent orchestration capabilities. It's very important to understand the dockers positioning in the DevOps work. Regarding docker, Alibaba cloud, definitely we are very strong player this technology area, because again, every year, if you know us very well, every year in China, also in globally, I think, we have a global shopping festival called the top week 11. It had been running for 11 years. So every year when we talk about [inaudible] resources, nowadays we are trying to use Docker a lot, okay. You can say we actually extend our back end instructors through the docker and Container, just in several minutes we can extend our container in thousand of numbers. With those kind of capabilities, we can process 500 thousand orders per second, on the peak hour, you know, the double eleven peak hour is coming. So it's very significant and it's very approved technologically because we've been running it for five or six years to put our [inaudible] business onto the Dockers in structure. Again, we are also a strong player in the, Alibaba cloud in the Ecosystem, especially the community. We contribute our code back to the community, and also we have been certified as the different members and contributors to different organizations, so those are very important and very influence organization regarding to the Docker and cognitive Ecosystem.Okay. I know it's a little bit quick, but because, I think most of you have that DevOps background. All I want to say, nowadays we are saying in the Cloud meeting was such a hard concept. So everyone will maybe ask your question, how can I turn my application into a Cloud-Native application? So no matter it's called Cloud native or anything else, you'll still need to develop it, you still need a Package it, you still need to deliver it, and deploy i, right? So that's why I'm saying, remember the idea of the importance of the supply chain of the application. There's a very important product called a Container Registry, which is hold, which is holding your container image, and to try our best to try and protect your image security, and to try our best to distribute your image cross the world. So that's why I want to introduce our first Alibaba Cloud products, it's called, A Container Registry Service, in the short of, the ACR. We put the Enterprise Edition here because we have a very strong power and a feature about the ACR regarding to the Enterprise edition. Let's go here, to the scenarios you'll be understanding what I'm talking about. Remember the ACR is our Registry repository, okay, for the Container Image. One scenario is, if you have a big organization, right? You have so many branch offices in the global area, you want to distribute your image here and there, right. But if you wanted to deliver it, the speed in the key, how can you fastly deliver so many nodes like 10,000 nodes, maybe in a very fast way, the idea is, you can leverage a concept called peer-to-peer distribution. Which means every node in your distribution unnatural can be the one trying to pass down the information to the others, which will greatly improve the efficiency of the distribution. So our ECE, sorry, our ACR, and the Press ideation support these kinds of this large-scale distributed capability, okay. Remember this is a very important feature. Another feature is brand security, right? You build the image, you want to make sure that the image is coming from me, I don't want some image deployed without verification and validation, to my very important the environment. Okay. Our ACR enterprise edition will do this kind of monitoring, scanning for the security and even sign the image.By sign that image, you need to leverage some security keys which will be collaborative with our key management system. Finally the ACK, will accept this kind of security image. If someone was trying to deploy something, didn't pass the validation, didn't go through the ACR it will not be accepted. So this is called Security Pipelines, its very important The last one scenario I want to introduce Image Replication. Remember, why you created the ECS in Alibaba Cloud, I will ask you a question, which region do you want to put your ECS at? Here to the ACR, same idea. Because while you create the ACR, enterprise edition, you need to create the instance first. This instance may be in Singapore, maybe in Hong Kong. The later you want to synchronize the different repository through the different instance, and we provide this kind of image replication methodology and features. Through the image syncker, we can sync between the different ACR instance, and even we can sync the other registry through our OSS impulse tools, to impulse them directly to the OSS bucket can. Because actually ACR, we'll use the OSS and the bucket can. It actually improves the replication efficiency seven times. Hopefully, through these three scenarios, you can have a quick understanding about what Alibaba Cloud registry can do, especially at the enterprise level. You can introduce these enterprise edition to a customer, I strongly recommend it. Now, let's look into the one I think most of us are familiar with, it's called the Alibaba Cloud Container Service and Kubernetes. Through this big picture, we are seeing, we have a full-stack of container service. But you invest a lot of development efforts under results to improve it, to make it enterprise level architect. In this chart, we may not look into the details, but the red ones are the open source modules but we do a lot of blue modules to improve it and make it more customized to fit into the commercial environment. Regarding the cluster types, if you will install a software open source wherein you may have, we call them the Dedicated cluster. But Alibaba Cloud will provide you several different types of clusters. The first one, we call them the Dedicated cluster, the little statement are like the open source cluster. You manage the Master, you'll manage the Worker node. But to reduce your operation efforts, we actually provided something else like the first line is called the Management cluster, which means you can just totally give the operational work to Alibaba Cloud. We'll be happier we manage the Master nodes. Because a Master node is the most complex one, with which we'll do the scheduling to the work assignments and those kind of things, you only need to work on your Worker node, that's all. This is the one that manages the cluster. We can even give you a more K8 solutions to put your different nodes, across K8s, to do the disaster tolerance. And even sometimes you don't want to manage it, you just want to use the functional, the Kubernetes you can choose the Serverless. A word in Serverless means you don't need it to see any nodes actually, it's transparent to you. But you can still use the Kubernetes control to login, to your cluster to do all those kind of darker related stuff. A lot of different choices you can make based on your needs, and you specially for Serverless, Kuberneters I will recommend for the developers or Kubernetes, you just want to have a quick cluster set-up. To try something out. You can use our Serverless cluster. That is something to start features comparison, if you don't list them one by one, but later you can review this slide. I'm going to send it out. Again, if I have to highlight some of the Alibaba Cloud container service features, I will start from here, the security, I always talk about that, very specially for the image. Some of the Identity Management. For the deployment, for sure it's such an easy way. You don't need to know all the GPUs you just choose the node type configuration, some of the configuration of the network, and then you click "Deploy". So we'll do all the back-end work for you. The integration is also very important because while you use Alibaba Cloud Container Service, now you actually talk to the SROB, talk to our OSS and leverage our Auto Scaling to scale your Worker node, or even the Master node, right? And yielding the monitor log to monitor your every thing happening on your Kubernetes cluster. Also the DevOps, there's no need to say. We can work very well with so many open-source software like Gitlab, Gatelab, Jenkins it's even that powerful. Even your entire form to provide our ACK cluster. Now, let's go with the last one. Let's see some live demo. I think a lot of people are looking for the demos because demo is much more interesting than the slides. Let's look at the demos, today I prepared three demos. On the first demo is the Alibaba Cloud Container Service for Kubernetes Console. I will walk through the Console and show you the different types of clusters. And also give you a very quick peek about Container Registry. In the starting demo, we'll talk about DevOps process. I will set up a CI/CD process building our Container Registry and the ACK. This one is very interesting because you don't need to have even a build server, and you don't need to have a build server we can build the image, we can deploy the package without building anything else, just the Container Registry and the ACK. The last one I will show you an even more interesting one. If you are familiar with GitLab or not familiar with, I will show you how you can connect the GitLab into our Container Registry and ACK to make a real pipeline to produce your Cloud-native application. Let's start from the first one. Now, let's go to the browser. I have something prepared here. I may want to go here. Let's start from the Kubernetes. What you are looking at is my screen. This is our container service for Kubernetes. From the overview, you are seeing that I have one class here called Demo One. There are some deployment here. Deployment is a concept from the Kubernetes and the Pass, and Stable Set, those are all the Kubernetes concept. We're showing the status here. If you want to create, how can we create? We go here. I already have a cluster, but I want to create a cluster. Oh, my god. There are so many choices. Don't be scared by this many. I put it away. I don't like this manual because when you click in File, when you go inside, you will say, "Okay". Now, you feel a little bit relieved because we give you four choices. I started the dedicated Kubernetes cluster, the managed Kubernetes cluster. The serverless one, and another one called the managed edge Kubernetes. That's interesting. Maybe I should log out and log in. Sorry. My session has already timed out, I think. Hopefully, it is not my network problem. Let me try another browser. Maybe I have a browser problem. I will turn that into English. Let's go to the container service. That's the way you go to the create. I will shrink the screen a little bit. Go to the create. What is the dedicated Kubernetes? It is something like this, I will show you here. I will choose the region. This is a region like Singapore. We choose the [inaudible]. We will give you the different address block for the different service and the pod. You can configure the IP address. The dedicated Kubernetes is something you can always think about like, "How can we organize a master and the worker at the same time?" If you go to the next page, let's see, that's demo two. Can I move to the next page? Let's try to create a new stuff. You can see, it asks you how many max node you are going to manage. Three is the minimum choice. After you make the zone choice, you can still pick up the UCS instance because our container cluster was viewed on the UCS, we can always choose the different type of the UCS. Now, you go to the next. It is the instance for the worker node. For the worker node, you can see here, we suggest for you to have the three worker nodes. To see if I'm [inaudible] with a minimal worker node could be only one, which means you only need one worker to work. You'd have server master and the one work. Just like our working environment. You have three bosses and maybe only one employee. For the managed Kubernetes, I think the difference is you don't need to care about the master. You can see here. You can go to the work that you activate because the master [inaudible] Cloud that will take over the management. The serverless is even more interesting. I may not go through the details, but after you choose the serverless, which means you don't need to take care of the master and worker. You only pick up some network configuration, that's all. I may not create the cluster in real because I already have one. I'd go back to show you after the creation what kind of [inaudible] I already have one cluster created here. It's called demo one. When you click in, you say this is my dedicated cluster. That's why you can see some of the basic information here. The API access, end-point, entry point, and also some of the related resources, because the cluster we're leveraged are a lot about Alibaba Cloud products. You can have this kind of certification. Cached. I'll also copy it to the different clients so you can talk to me directly from your own client. If you go to the notes, you see we are showing you that you have, let's say this is the master, I have three workers and three masters. You can see this, CPU memory monitoring, it's because we have the Cloud monitoring features integrated with this cluster and you can click the "Monitor" directly here to see if they're monitoring information. It'll lead you to the data console. I will call it monitor console. Also, go back here. If I click more, you see, we have some details to show here. You can go here to see that each of those details. You can even see something like this. You can go to the terminal and see all the ports running on the nodes. I think I have another thing to show here. Go back to the cluster manual. We have a lot of operations you can do. You can delete the cluster, you can do the Auto Scaling. If you are familiar with Alibaba Cloud, we have a product called Auto Scaling for the UCS. Now, because the whole cluster would appear within UCS, it can leverage the Auto Scaling very well. If you think the work node is not enough, you can just call the Auto Scaling to add more and more working node and must now node int rate. It's very interesting. There's also a dashboard here. I click the dashboard, to giving you another different angle to watch into the cluster, CPU memory, workload, deployments. Again, I have a two deployments, I will have that demonstrated later on. I have several pods running. Even I have some replication set because I want to pro-word pod level high availability. For all you know, you can have all your Kubernetes related concept can be found here if you already have some setup. But that's not all. I would show you another interesting one, it is here. Let's go here, the cluster. I'm not done with a cluster. You can upgrade your cluster, which means if you are running some Kubernetes which is not related to [inaudible] you can still upgrade. Because now I'm already new, so I don't need to upgrade. Here, the cluster auditing, now this one is my personal favorite. Because when you click the class auditing, this will automatically generate a dashboard for you. I don't think you can have any this feature from any open-source solutions, because this is combined to our Alibaba Cloud logs service. You have so much DDoS dashboard to show the different factors and parameters or some of status of your whole cluster. We can see the operational overview. The operational overview means you know who is doing what in you history. You know what result I have. It is quite a significant dashboard. Operation details. You can also go here to look into to some event, who creates something and who can help something All in all, it's fantastic feature, although obsolete to monitor and operate your cluster in a more [inaudible] way. I recommend you to consider that. Then the other features is more like Kubernetes related. Because you can find all the Kubernetes concept in the quick console. I have two deployments; I have a status sets. I don't have save set, but I have a menu here on the demon sets, jobs lets say all the concept. If you have something created in the Kubernetes, you already see it here and operate it here directly. You can even do something like this. You can create from a template to create deployment. Just a few changes, changing something like the image, name or something. You can create deployment in just several seconds. You don't need to go to the terminal to use the Kubernetes control. That's such a good advantage. Then you have services, Ingress. Even we have the service mesh embedded. Later on, if we have more chance, I can introduce our service mesh solution called Alibaba Cloud Container. Another one in here is marketplace. It's just like the ECS. If you want to use the Kubernetes cluster, you should have a lot of pre-built package. You can always pick up something from here, like the AHS, our real-time monitoring of the application and the highly available application service, prometheus, the log in service, even Jenkins. Remember we have GitLab also, can be deployed through here. You see the GitLab lab is here. This is very useful, just like our ECS marketplace or something, then install or click a framework of software just a single click, and we have some service also. This is a quick demo about our console. Now, you can see, we have a very powerful GUI operation dashboard for the Alibaba Kubernetes. Also, if you create the cluster, we have so many integration with Alibaba Cloud products. We'll give you a more vivid measurement channel and a tool to manage this cluster. Now, let's look into another product. We call on the Container Registry. Now, let's go here. Container Registry, again, the idea of the Container Registry, I want to highlight and also introduce some feature for the next demo is something like this. It's very interesting. I will click this one. This is a Registry. When you create a Registry, it's very simple. You choose the Region, Namespace, give it a name, and that's all. If you go inside, you can see regarding one Registry. I have some details, especially for how can I access my Registry. Will give you all the command. You can get a copy from here and into the image push and pull, those operation. But here, I think this is my personal favorite feature of our Registry. We can have a build here, because we were giving you the package of building capabilities without charging anything. You can directly build your image in our Container Registry. You see, I have built several successful build before, and you can choose to build it in trainee domestic to give you a better speed. If you open this button every time you're checking a new code and it triggers some immediate change, then you'll build the image directly. Another very important feature is the Trigger. Why we have a Trigger here? The Trigger, this long string is not from some of the arrows, it's from here. I will show something like this and that's that. We already have a Kubernetes cluster here. If you know Kubernetes, they have something called a Deployment, and I have several Deployment here. This is two demos I prepared for you. If you go into one of this Deployment, like I will go this one, here, there's a long string here. You can just click the Trigger. It is called a Redeployment, and if you confirm the Trigger, it will generate a long HTTP hook for you. You just copy this hook and put it into the Trigger. Why do you want to put it in here? Because this Trigger will actually be triggered by this build, which means every time you are checking one line of a code and putting into your code Repository, you will be able to see something like, the build will automatically begin to build on the backend. After the build has finished, we will call the Trigger directly and the Trigger will notify the deployment in here, and your new image will automatically be deployed into the cluster directly. That is a very interesting scenario. I will show this demo in the next demo. Another thing I wanted to show you is, let's create a Repository and let's say, htk-live-demo, Public or Private, just demo. Then just click the "Next". What I wanted to show here is, you see, we have the different code repository for you to choose. What is the code repository? Here, I want to clarify the idea of the Container Image Registry and the Code Repository. It's certainly different. Code Repository means something like the GitHub or GitLab, or you can put your code locally. Those are the Source Codes, where you write down all those development software code. If you login to the GitHub, next scene, let's go to the GitHub. I forgot the name of GitHub. The way we do is, this is my GitHub password. This is GitHub, I have some code posted right here. What I want to do, why I want to log in, because now if you look into this picture, sorry, I need to do this again. You see, now I will automatically log in for the GitHub because I have a live log in session from GitHub in the same probe there. There you can just pick up the different namespace, I have a namespace, and different repository from the GitHub. Maybe I just pick up one thing like the k8s demo. I pick up some features and it creates a repository. This is an idea about how you can connect your source code repository with container registry. Then now you have something like this. In the future, it'll be a clean side. You can always tell others, you can just pull and push the Docker image from here. We can find the latest version of the image here, and also you can set up your own building rules to build those images. That is one of the demo for the container registry. Also, we have enterprise instance, this is enterprise-level addition. I'll do inserting directly. I said, you'll need to create an instance. I go to the instance inside. You see it's more capable, and a lot of good features like I just introduced: the P2P acceleration, instance replication, security scanning, and then they have the same idea to do the repository namespace, code source. All in all, remember this, if you recommend to the customer about a container registry, try to recommend them not only the free one, but also the enterprise one. The enterprise one will bring you even more interesting features and help your customer to distribute the image globally and worldwide. That is the end of my first demo. Now you know the dashboard of Alibaba Cloud Container, you know the dashboard of the container registry and the enterprise addition. What I'm going to do, the next demo is like this one. This one is funny and I said it will be your leverage, a lot of features like the container registry and the ACK. What we do is, I'm going to have a code repository being cloned to my client but on my ECS. I will change one line of code and do a checking, and this channel checking will be cached by the container registry directly. Remember, let me go here, this is my example. The first demo, I will leverage this registry. I already turned on the build image automatically, which means I will also go here, you can see, this is my code repository. I just bind this stalker registry with this code repository. I hate these words. This is my very original source code. I connect them, and I'm going to build an Alibaba Cloud Registry. This is the idea. If I push one code when you trigger the auto-build, when the building was done, how can I notify Alibaba Cloud ACK to pick up the image and do the deployment? This kind of process will be using this one, the trigger. Remember, I have something from here, the trigger. This trigger belongs to this deployment. The simple web-located default, this is deployment. This deployment, the last tool of service. If you know Kubernetes a little bit, the service is something you can visit from the public, it's just like a web service. I build this service based on that deployment and give it an entry point like this one. Let's see what is happening. I have something like this, simple web A-P-P. This is my already deployed service. It has a front page called the version one. It's all coming from the software I deployed in this Kuberneted cluster. Remember I have a service, I have a deployment, and I have a registry to campaign the most latest build and the images. How can I change this page if I want to change this page to word and tool? How can I do it? I'm going to show you how can I change it. Just with one line of code checking, I will change this front page, which is coming from the cluster of the Kubernetes to turn it into a new page like the word and tool. Now, I'm trying to log into one of my UCS. This is just a UCS. Let me extract this to make sure it is. Let me go back here. Let me open another window to show you the UCS. I just want to make sure this is not a fake demo, it's a real demo. I have some UCS here. Actually, not in Singapore, it's in Malaysia. I have a instance here. Let me change the region to Malaysia, Kuala Lumpur. This is my public IP address of this UCS. It is the similar like this one. I'm going to login to this UCS because I'm trying to use this UCS to simulate, I’m a developer. Now, I'm a developer, I'm trying to work on my own laptop. This is my one of laptop. I have no idea about where the Caminos integration environment is. I just login to it. I will do something like the Git, clone. Should be here, sorry. To clone this code repository. What I need to do is do something like this. But I'm not going to do that because I already have a cloned workspace which is here. It’s a simple application. I already have everything here. Git is already installed. I clone this code repository and put it into this directory. What I need to do is, this is my very small website and if you go here, you'll see something like this. This is my front page website, you already saw this, right? The DevOps version 1. Is coming from here. This one, the DevOps version 1. I'm going to change this from the page into another word. Or I just copy it. I have a new line of the code and I'm going to change it to the version 2. This is the developers worker. They change the code every day. Now I change the one line of code. After I do this, I usually do only three line of code. I will do the GitHub is to make sure the Git know I changed something. Git comment with the comments like change it to version 2. This is a Git comment. Now Git knows, you have some changes here and now you already comment a change. The last one is you do the push. Remember, this is for the code change push to the GitHub. You push to the origin and to the master branch because you are trying to visit the GitHub, so you have to be authorized. I'm trying to copy into my GitHub password. Sorry, maybe I typed it wrong. It treat me like I typed the Gmail wrong. Again, I'm a developer, I changed the one line of my code. What I want to do is I want to see this change will be deployed here. But actually what is happening on the back end of that is if you go here, go to the Registry. If you go to this page and if you refresh, you'll see something is happening here. Your code was being built automatically here is called the building. You can go to the log and see what is happening here actually. A lot of logs is trying to be shown here because we are trying to build your application on the back end. So that's it. I'm saying it's a very good advantage because we don't need to have a built server. We don't build the image from your local machine. We just build somewhere, Alibaba call it the polarity. Now you say you'll keep refreshed and you will see the building is ongoing. They’re trying not only to build the package but also build the Docker file. Ideally, this will be happening in, let’s say, in one or two minutes. Why it was building, I'm saying that you can see here. I will give you a little bit more interest by the build. You can add a building rule. The building rule means you can select what kind of branch on top of the code you want to build. The branch, you are in the master. This is a Dockerfile. Why are the Dockerfile is important? Because the Dockerfile is how the compiler that's how you want to generate your Docker image. Dockerfile is quite important. You'll have to tell the building machine where is the Dockerfile. Where is in my Dockerfile? It's under the soft code root directory, which is actually here. Let's say there is the Dockerfile here. This is my Dockerfile. I have some very interesting lines putting these very simple because they say that Java file, it has to evolve with the maven run to do the package of making. Finally, they leverage of the Tomcat image and the baseline image and build this new image. This a Dockerfile. Remember, if you want to build a docker image, the Dockerfile is something you cannot avoid, you have to configure it. Now you see my image was build successfully in a little bit more than two minutes. What is happening here is if you go here, I believe these aren't deployed. Let's say it's now deployed. But how can it be deployed just from the build to the container is because I have a trigger. Remember, after the building was done, the trigger will be triggered. It will trigger the deployment. Let's go back to the deployment. This is my deployment, if I click into it, you will see there are something I will show you here. The time now is 3:00 PM. My time is almost up, it's 3:00 PM. This pod is actually deployed just now, one minute ago because it is the very latest triggered deployment. It s a lucrative pod and this one is also. I have two pod to do the HA. Which means this deployment is fresh new. That is also why we refresh the service here from here. We got this new pages. Let us finish the second demo. Again, let's have a quick recap. I have a container registry to connect that with the code repository. The developer only needs to do unrelated work to interact with the code repository like the GitHub, the push and the pull of the code. Every checking will trigger the container registry to do auto build and we maintain the build summary for you. After the build, with the ACK's trigger hook, we will tell ACK that a new build was ready. The ACK will pull the image from there and using the deployment to deploy it to the Alibaba Cloud container. That's the second demo. Let do the third one. How do I do the third one? The third one is a little bit more complex, but don't be scared, I will be taking you from step to step. Now what do we chain these? I added one more player into this demo's value chain or the pipeline, something called the GitLab server or the GitLab runner. GitLab is a very common used demo tools. The idea is you can deploy your own GitLab server and also you can sum other results and your GitLab runner. The major function of the GitLab server is to project the management to the CICD pipeline management and even manages runner. Runner is just like a worker. In summary, the runner is the worker, the worker will do something like they will do the code compile, the code packaging, and the image build. You can compare the worker just like a build server or a CICD server. The GitLab server is the brain, it will do the measurement control. It sends the control commands to the GitLab's runner. GitLab server play another important role is playing code, repository role. It will hold all your code in the GitLab server. Let's put this two ideas in your mind. I will show you what a GitLab looks like. I have a GitHub already installed like the training lab, doc lab- So this is my personal installed. It is a private GitLab server. The username is root and I have my password. This is my GitLab dashboard. In the dashboard, I have a project created, it's called a simple-rest-service, it's another demo. So if you go the inside the project, you will see a lot of things. It could be a little overwhelming information, but I will tell you what I want to show you here is. Fortunately, every project will be connected with a code repository. So here is the code repository, and they are going to show you all the files, which was now in this repository. Also, you can see, it's a little bit slow. Let me try this one, it should be the same, maybe it's working well. Let me try this one, sorry. Different product, but the same idea. I'm in the same project. For the project repository, you'll see I have some cells. I mean, the source code are in there. This is where you can use the git command to do the repository pull and push. One important thing is the CI/CD. For every project, they have their own CI/CD pipeline. I have several different history runs already. Later, I will show you how can you trigger this pipeline. What you need to do is one thing, very important here is in the repository. For the GitLab, the idea of the GitLab to do the DevOps all through the CI/CD is they need you to define one thing called a gitlab-ci. This is the a file you have to define by yourself. It's little bit like Jenkins, I think the idea is the same. In this file, you'll need define some stages, like the build, package, deploy various common three stages. For the build, you'll tell them how can you build your package because this is another Java project. I use Maven to do the package build, and also I use Maven to do the packaging. But here, not only to package the Java, but also we use the Maven jib;build to build the docker image. After you build the image, we call the product stage. We call the Kubernetes, which is from a temporary docker, where you need Kubernetes control to call the deploy file and deploy the whole website into the Alibaba Cloud cluster. So maybe you are not quite understanding this, but I'm telling you that this file is important to GitLab. It's trying to tell GitLab what they need to do and what stages they need to handle. So you have the build, package and the production phases. I will show how can I trigger this process. The code, I already have one piece of the Chrome code repository here. Let me go here. This is another repository it's called a simple-rest-service. It also have something like this one, the source cord, and also the deploy file. If you're familiar with the deploy, the deploy is trying to tell the Kubernetes how can you apply this into the Kubernetes cluster. Now let's go back over here, hope I didn't confuse you. I have another service it's called a simple-rest-service. Previously, I used this one and now I'm using this one. It had another end point. I go here, click. So it is a very simple page, it says "Hello world1." Now I'm going to do the same thing. I'm going to change the source code from my laptop and the develop to change it to hello world2. I will see this page will be automatically refreshed and deployed. How can I do this? I will do from here. I will go here, I will modify the source code from here, go here, here, and controller. It's a very long directory. You see. It's very simple page. There's a world here. So this is how the hello word was shown on the front page, I changed it to the world2. I do this. Same thing, remember, I will do something like the git add -git commit -m "world2", and the git push origin master. This is same thing. Now they are asking me the authentication for the GitLab server. This is my username, this is my password. My one line of code, [inaudible] was sub making. Now what will happening here is if you go to the GitLab, CI/CD pipeline, you will see there is the pipelines running here, you saw this, and it is a build stage. You click the running here, and you will see there are three stages you define by yourself, it will go build. There the failure happening here, what's going on? You look into the terminal, you can see, they are telling you the job failed, and if you look into the log, you are seeing, yeah. They are saying the test failed. There are two test runs and you failed two tests. I got the idea because in my Java code, I not only write down the soft code, also I write some unit test. This is my unit test. I go here. This is my unit test, I forgot to change the unit test because the unit test, will test all the commit out. The unit test is looking like this. I have two tests. I'm trying to test the output is exactly, "Hello world1." But I already changed it to, "Hello world2," so I need to change it to, "Hello world2" here also to make sure the test can match with the real output. I change the unit test, but hopefully this time I can make sure it can work. Again, git add git commit, changed "world 2", then we git push origin master. Well sorry, again. Now have a new code push. Now you go back to the pipeline, the previous one they failed, there's a new one is running on, then we go click inside. The build is going to build now, I click inside. This time I didn't see the unit test failure. It should be okay and then we'll trying to build the code now. Based on my experience it should be finished quickly. Sorry, I think I over build for 15 minutes, I will try to finish as quickly as possible. It's running here, let's go back to the pipeline. Yeah, this one was finished. You'll see the test also passed. We go back to the pipeline, we can see, now they were on the package stage. I go inside here, I can see how they do the package. Now we are on the second stage, the package. I click the package, now and the packaging is going on. You can see, they were pulling some Docker image like the Maven to do something they need. Hopefully this one shouldn't last too long. This job is done. Now the package is done, we are on the deployment stage. I'm going to go inside. Now we were on the third deployment stage, I go inside. You see, we are trying to pull up a Docker image which had a kubectl control command inside, and this kubectl control command will call this file. We'll call the deployment here. Either we call this file and to the deployment. Now, if we go back, the deployment was done. All the steps were finished. Luckily, if we go here and refresh, we already see this change to world2. Which means our code was successfully deployed to here. If you go the second at deployment, I have another deployment. You remember I have another deployment here. It's called the Simple REST Service, if you go here. You see, here. Now the time is 3 PM and the 15. The Cloud was just deployed one minute ago. So this is the new deployment that's why I have a new page. Can be changed. Sorry, I should refresh again here. Can be changed to a Hello world2. I think this will end my demo for the GitLab. GitLab, again it's interesting because it gives you the definition, like I shown here about your convenience integration process. Remember using this GitLab test the fly.io to define your own stage. After you've defined the stage, you'll give some new data preparation on the command line. Then later on, you can control your whole pipeline, through the CI/CD window. You'll see the different stage and see the status, and then even go inside to check out the command line output, to do some log debugging. That is the end of my short demo. Hopefully, I can recap a little bit. So this time the developer will just pull the code from the GitLab server. When the developer change the code, the GitLab will know. Then the GitLab will notify the GitLab Runner. The server will notify Runner, the Runner will pull the source code out, and do the compile, and the packaging, and a Docker Image build on his side. So the GitLab Runner here in my environment is another UCS. I have this one as a UCS. The Runner will later on alternate with the Docker image or the build, they will push the image to the Container Registry. At the same time, the GitLab Runner will use the kube control to talk to the ACK to tell him, "You'll need to deploy a new deployment now." So the ACK will based on the image address, will pull it out from the Container Registry and deploy it to the different cluster and then make it a deployment and a service. That is a recap of my lab demo for the short demo. So all in all, Alibaba Cloud Container is very capable. Again, you can consider it as ecosystem. A lot of Alibaba Cloud products can work together with the Container Service. If you have to some take away from this training, I will leave you to recommend this selling point for the ACK. It's easy to use, we have the enterprise level technical support, and we have a lot of best practice we can provide you, to help you to deal with the different environment. Also if you use Docker, use Kubernetes, it'll give you a very good strategy to do the multi-cloud deployment. You're not locked in on a particular Cloud provider. The last line, also, we have so many different instance type like the Bare Metal, the ECI, can all go together to support your Docker instruction. Those are the selling points for the ACK. The last of pages, sorry for the delay. The last page for the DevOps from the Alibaba Academy, we have a learning pass. Now it include almost 12, one hour videos. Every course is one hour, so it's 12 hours videos. It is almost free, it will only cost you four cents for the one site. It's almost free. Well, so just scan this QR code and make sure if you want to get all information and learning material from our academy website, scan this QR code and then reach to the loading pass directly, and you can purchase it. It's only available before the end of the March, this year. Is less than one month, please take this chance. Thank you very much, I know it's a long tedious presentation. Hopefully, everyone can enjoy this training and know more about Alibaba Cloud. Let me stay online a little bit longer to see if you have some more questions.